Контрольные вопросы Определите термин Программное обеспечение
Скачать 88.22 Kb.
|
Контрольные вопросыОпределите термин «Программное обеспечение» Совокупность программ, процедур, правил и соответствующей документации систем обработки информации Определите термин «Программный проект» Это временное предприятие, предназначенное для создания уникального ПО Какой программный проект можно считать успешным? (Критерии успешности программного проекта) Успешным можно считать проект, который завершился созданием ПО, признанного заказчиком качественным, в поставленные сроки и с запланированным бюджетом. Таким образом, основными критериям успешности проекта является: Качество, Время, Бюджет. Что такое качество? Перечислите группы характеристик качества ПО. Качество - совокупность свойств и характеристик изделий или услуг, обеспечивающих удовлетворение установленных или предполагаемых потребностей. В стандарте определяется восемь характеристик (фактически групп характеристик), которые описывают различные аспекты качества программного продукта (ПП): Функциональная пригодность (Functional suitability) - степень, в которой продукт или система обеспечивают выполнение функции в соответствии с заявленными и подразумеваемыми потребностями при использовании в указанных условиях Надежность (Reliability) - степень выполнения системой, продуктом или компонентом определенных функций при указанных условиях в течение установленного периода времени Удобство использования (Usability) - степень, в которой продукт или система могут быть использованы определенными пользователями для достижения конкретных целей с эффективностью, результативностью и удовлетворенностью в заданном контексте использования. Производительность (эффективность, Efficiency) - Связь точности и полноты достижения пользователями целей с израсходованными ресурсами (ИСО 9241-11). Сопровождаемость (модифицируемость, Maintainability) - результативность и эффективность, с которыми продукт или система могут быть модифицированы предполагаемыми специалистами по обслуживанию Переносимость (мобильность, Portability) - степень простоты эффективного и рационального переноса системы, продукта или компонента из одной среды (аппаратных средств, программного обеспечения, операционных условий или условий использования) в другую. Совместимость (Сompatibility) - Способность продукта, системы или компонента обмениваться информацией с другими продуктами, системами или компонентами, и/или выполнять требуемые функции при совместном использовании одних и тех же аппаратных средств или программной среды. Защищенность (Security): Степень защищенности информации и данных, обеспечиваемая продуктом или системой путем ограничения доступа людей, других продуктов или систем к данным в соответствии с типами и уровнями авторизации. Какой процент программных проектов, согласно мировой статистики, являются успешными? 1/4 Чем обусловлена сложность разработки современного программного обеспечения? Работать в группе сложнее чем одному. Во многом из-за трудностей коммуникации Что такое программная инженерия? Программная инженерия - система инженерных принципов для создания экономичного ПО, которое надежно и эффективно работает в реальных компьютерах. Или другими словами, программная инженерия - совокупность методов, средств и процессов для создания экономичного ПО, которое надежно и эффективно работает в реальных компьютерах. Что такое жизненный цикл ПО? Жизненный цикл ПО это период времени с момента принятия решения о необходимости создания ПО до момента его полного изъятия из эксплуатации. Назовите основные этапы жизненного цикла ПО и их цели. Подготовка (сбор требований) Планирование (оценка, расписание) Моделирование (анализ требований, проектирование) Конструирование (кодирование, интеграция, тестирование) Развертывание (поставка, внедрение и сопровождение) Перечислите характеристики трех стратегий разработки ПО (однократной, итеративной, эволюционной). Каскадная модель жизненного циклаДанная модель реализует однократную стратегию конструирования ПО. Разработка рассматривается как последовательность классических этапов, причем переход на следующий, иерархически нижний этап, происходит только после полного завершения работ на текущем. Возврат на предыдущий этап не предусмотрен. Инкрементная модельЭта модель объединяет в себе элементы каскадной модели и идею итерации (повторения) этапов разработки с целью улучшения ПО. В начале процесса полностью определятся все требования к ПО. Затем разрабатывается прототип ПО. Прототипом обычно называют действующие ПО, реализующее отдельные функции и внешние интерфейсы разрабатываемого ПО. Процесс разработки прототипа называют прототипированием. Разработка прототипа (инкремент) в инкрементной модели происходит в рамках этапов каскадной модели «анализ требований - определение спецификаций – проектирование- кодирование - тестирование». Первый прототип реализует базовые требования к ПО. План следующего инкремента предусматривает модификацию первого прототипа, обеспечивающую дополнительные характеристики и функциональность ПО. (см. рис) Спиральная модельСпиральная модель - пример применения эволюционной стратегии разработки, то есть стратегии, где требования заказчика уточняются в процессе разработки. Спиральная модель была предложена Барри Боэмом в 1988 г. Она базируется на классическом жизненном цикле и идеях прототипирования, к которым добавляется новый элемент разработки – анализ риска на этапе планирования. Как показано на рисунке модель определяет четыре действия, представляемые четырьмя квадрантами спирали. Анализ риска происходит на этапе планирования и заключается в анализе вариантов и распознавании риска. На данной стадии исследуется область неопределенности, имеющаяся в наличии, и анализируется ее влияние на продукт. Не станут ли изменения, проявившиеся в ходе проектирования, причиной недопустимого отставания по срокам? В каждом цикле по спирали результаты анализа риска формулируются в виде «продолжать, не продолжать». Если риск слишком велик, проект может быть остановлен. На этапах моделирования и конструирования происходит разработка продукта следующего уровня. Квадрант конструирования может быть реализован классическим жизненным циклом или прототипированием. Количество действий при разработке возрастает по мере продвижения от центра спирали. С каждой итерацией по спирали строятся все более полные версии ПО. Перечислите достоинства и недостатки моделей в рамках различных стратегий разработки ПО. Каскадная Достоинства модели: Простота планирования процесса разработки (составление точного плана работ и временного графика) Получение в конце каждой стадии законченного набора проектной документации, отвечающего требованиям полноты и согласованности. Недостатки модели: Неудачные решения на одной стадии разработки ставит под угрозу всю разработку Разработка основана на точной формулировке требований к ПО, однако в реальных системах не всегда возможно в начале разработки точно и полно сформулировать все требования. Результаты проекта доступны заказчику только в конце работы. Инкрементная Достоинства модели: Простота планирования процесса разработки (составление точного плана работ и временного графика) Получение после каждого инкремента работающего ПО, с которым может ознакомиться заказчик. Недостатки модели: Заказчик может принять прототип за продукт. Для быстрого получения работающего прототипа разработчик может использовать не самые подходящие решения (выбор языка программирования, операционной системы, алгоритма и т.д.) а затем просто забыть, почему данные решения не походят и интегрировать не лучший вариант прототипа в систему. Разработка основана на точной формулировке требований к ПО. Спираль Достоинства модели: Позволяет уточнять требования заказчика в процессе разработки, что позволяет получить действительно востребованный и не устаревший (за время разработки) продукт. Позволяет явно учитывать риск на каждом витке эволюции разработке Позволяет заинтересовать большое количество пользователей, обеспечивая быстрое продвижение следующих версий продукта на рынке Недостатки модели: Повышенные требования к заказчику. Трудности контроля и управления временем разработки Трудности определения момента перехода на следующие стадии (обычно используются оценки экспертов) Чем отличаются прогностические и адаптивные модели разработки ПО. В прогностических сразу известны все возможные требования Чем отличаются инкрементные и интерактивные модели разработки ПО. Инкрементная весь цикл разработки совершенствуется Итеративная весь цикл разработки перестраивается |