4. Стратегии конструирования программных средств с точки зрения моделей жц. Характеристика стратегий, достоинства и недостатки.
С точки зрения использования модели ЖЦ рассматривают следующие стратегии конструирования ПС:
- однократный подход – линейная последовательность этапов конструирования;
- инкрементная стратегия: в начале процесса определяются все системные и пользовательские требования, а оставшиеся этапы ЖЦ выполняются в виде по-следовательности версий: первая версия реализует некоторую часть запланиро-ванных возможностей, а каждая следующая версия дополняет возможности предыдущей до тех пор, пока не будут удовлетворены все требования;
- эволюционная стратегия, тоже предполагающая итерационное построение конкретного программного продукта, но (в отличие от инкрементной стратегии) в начале разработки определены не все требования (они уточняются в результа-те разработки версий).
5. Инкрементная и эволюционная стратегии конструирования программных средств, их характеристики и модели ЖЦ. (+ каскадная модель)
Каскадная модель. Обеспечивает стратегию однократного подхода и представляет собой классическую модель ЖЦ, разработанную Уинстоном Ройсом в 1970 г.
Разработка ПС рассматривается как линейная последовательность этапов, причем переход на следующий (нижний) этап происходит только после завершения работ на текущем этапе (рис. 1.1).
Достоинства: определение четкого плана и временного графика работ по всем этапам ЖЦ и упорядочивание хода разработки.
Недостатки:
невозможность отклонения от стандартной строго определенной последовательности этапов (чего часто требуют в реальные проекты);
исходные требования к разработке должны быть сформулированы точно в начале цикла работ, хотя реально в начале проекта требования заказчика определены лишь частично);
результаты работы над проектом доступны заказчику только в конце работы.
Быстрая разработка приложений (Rapid Application Development – RAD). Отражает применение инкрементной стратегии и обеспечивает экстремально короткий цикл разработки ПС за счет использования компонентно-ориентированного конструирования.
Основателем RAD считается сотрудник IBM Джеймс Мартин, который в 1980-х годах сформулировал основные принципы RAD, а в 1991 году опубликовал книгу, в которой детально изложил концепцию RAD и возможности её применения.
RAD-подход ориентирован на разработку информационных систем. Линейная последовательность цикла включает следующие этапы (рис. 1.2):
бизнес-моделирование (определение информационных потоков между бизнес-функциями);
моделирование данных (построение объектной модели информационных потоков – выделение объектов, их свойств и связей);
моделирование обработки (описание процессов преобразования данных, обеспечивающих бизнес-функции – добавление, модификацию, поиск, удаление);
генерация приложения (работа в средах быстрой разработки приложений, повторное использование программных компонентов или создание повторно используемых компонентов);
Применение RAD возможно в том случае, когда разработка и реализация главных функций продукта может быть поделена между отдельными группами разработчиков (каждой отдельной группе адресуется своя функция).
В отличие от традиционного подхода, при котором использовались специфические средства прототипирования, не предназначенные для построения реальных приложений, а прототипы выбрасывались после того, как выполняли задачу устранения неясностей в проекте, в подходе RAD каждый прототип развивается в часть будущей системы. Таким образом, на следующую фазу передается более полная и полезная информация.
Недостатки: модель применима только в проектах, где можно провести декомпозицию приложения на отдельные модули без потери в производительности, а также тот факт, что реализация модели в случае крупных разработок требует существенных людских ресурсов.
Современная реализация инкрементного подхода – экстремальное программирование (XP), предложенное Кентом Беком (1996 г.). XP-процесс ориентирован на очень малые приращения функциональности при условии неопределенных или быстро меняющихся требований. Четырьмя базовыми действиями в линейной последовательности XP-цикла являются: программирование, тестирование, выслушивание заказчика, проектирование (рис.1.3). Одной из основных характеристик цикла является непрерывная связь с заказчиком.
Extreme Programming не стремится к выпуску всеобъемлющего продукта за 2-3 месяца, а, напротив, стремится к выпуску множества небольших продуктов за больший промежуток времени.
Экстремальное программирование эффективно применяется:
в проектах, над которыми может работать от двух до десяти программистов;
в проектах с постоянно изменяющимися требованиями;
при заранее заданных сроках сдачи проекта;
Недостатки: устранение формальных письменных требований к разработке делает ее уязвимой к постоянно возникающим изменениям программы. Отсутствие детальных требований и непродуманное планирование.
Спиральная модель. Классический пример применения эволюционной стратегии разработки. Автор модели – Барри Боэм (1988 г.). Модель добавляет в процесс разработки новую стадию – анализ риска (рис.1.4).
Внимание модели концентрируется на итерационном процессе начальных этапов проектирования. Всего модель определяет четыре этапа:
планирование (определение целей, вариантов и ограничений);
анализ риска (анализ вариантов и распознавание риска);
конструирование (разработка проектов каждого нового уровня);
оценивание (оценка заказчиком текущих результатов конструирования).
Продвижение по спирали определяет все более полные версии ПС. В первом витке спирали определяются начальные требования, анализируется риск. Если в результате анализа риска выявлена неопределенность требований, то этап конструирования обеспечивает только создание модели (или макета) продукта, который оценивает заказчик. Следующий виток планирования и анализ риска базируется на предложениях заказчика. Таким образом, углубляются и последовательно конкретизируются детали проекта ПС. Анализ риска в качестве результата формирует рекомендации по продолжению проекта или прекращению работ (если риск слишком велик).
Следует отметить, что этап конструирования на каждом новом витке охватывает все больше этапов классического ЖЦ.
Достоинства: наиболее реальное (эволюционное) отображение процесса разработки ПС; возможность явного учета риска на каждом витке спирали, а также использование моделирования и макетирования для уменьшения риска и совершенствования ПС.
Недостатки модели – повышенная требовательность к заказчику и трудности, связанные с контролем временных затрат и управлением разработкой.
- 1. Определение понятий «программа», «программное средство», «программный продукт». Виды и краткое содержание программных документов (по еспд).
- 2. Связь программных документов с этапами жизненного цикла по.
- 3. Жизненный цикл программных средств. Базовые этапы моделей жц: назначение и характеристика.
- 4. Стратегии конструирования программных средств с точки зрения моделей жц. Характеристика стратегий, достоинства и недостатки.
- 6. Назначение, архитектура, классификация case-средств.
- 7. Определение и содержание процесса тестирования. Информационные потоки процесса тестирования.
- 8. Основные стратегии тестирования, их характеристики, достоинства и недостатки. Основные типы ошибок, выявляемых каждой из стратегий.
- 9. Потоковый граф и цикломатическая сложность программы. Примеры.
- 10. Способ тестирования базового пути.
- 11. Способ тестирования условий.
- 12. Способ тестирования потоков данных.
- 13. Функциональное тестирование. Способ разбиения по эквивалентности и анализа граничных значений.
- 14. Способ диаграмм причин-следствий.
- 15. Основные характеристики качества и надежности программных средств.
- 16. Понятия функциональной пригодности, корректности и надежности программных средств.
- 17. Функция надежности и функция отказа: определение, основные свойства.
- 18. Дискретные модели надежности по. Модель Муса.
- 19. Дискретные модели надежности по. Модель Шумана.
- 20. Статические модели надежности по (простая интуитивная модель, модель Нельсона, модель Миллса).
- 21. Эмпирические модели надежности по. Определение оптимальной продолжительности тестирования.
- 22. Понятие пользовательского интерфейса. Основные принципы разработки пользовательского интерфейса.
- 23. Оконные интерфейсы. Типы окон. Основные операции с окнами.
- 24. Типы диалога пользовательского интерфейса.
- 25. Типы элементов управления оконных интерфейсов.
- 26. Назначение элемента управления «меню». Стандартные разновидности меню.
- 27. Назначение элемента управления «кнопка». Стандартные разновидности кнопок.
- 28. Назначение элемента управления «список». Стандартные разновидности списков.
- 29. Назначение элемента управления «текстовая область». Стандартные разновидности текстовых областей.
- 30. Правовые методы защиты программных продуктов и баз данных.
- 31. Понятие компонента. Функциональные группы компонентов.
- 32. Открытый интерфейс доступа к базам данных (odbc).
- 33. Архитектуры сервера баз данных совместной обработки клиентских запросов.
- 34. Доступ к базам данных в двухзвенных моделях «клиент-сервер».
- 35. Основные требования к распределенной обработке данных.
- 36. Функции «типового» приложения обработки данных.
- 37. Базовые архитектуры распределенной обработки данных.
- Архитектура сервера баз данных
- Архитектура «один к одному»
- Многопотоковая односерверная архитектура
- 38. Источник данных. Архитектура приложения, работающего с внешними источниками данных.
- 39. Последовательность действий для обеспечения работы с объектом источника данных.
- 40. Форматы представления слабоструктурированных данных. Основные понятия стандарта iso 2709.
- 41. Форматы представления слабоструктурированных данных. Основные понятия коммуникативного формата мекоф.
- 42. Языки определения слабоструктурированных данных. Основные понятия xml.
- 43. Инфраструктура описания ресурсов (rdf).
- 44. Структура процессов в абстрактной аипс.
- 45. Фактографические и документальные бд.
- 46. Классификации. Типология классификаций на основе отношений, возможных между классами и атрибутами.
- 47. Библиотечно-библиографические классификации.
- 48. Патентные классификации.
- 49. Классификации наук.
- 50. Онтология как средство формализованного представления информации.
- 51. Методы выделения информативных терминов.
- 52. Методы классификации и кластеризации текстовой информации.