- •Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Ивановский государственный энергетический университет имени в.И. Ленина».
- •Иваново 2014
- •Оглавление
- •Предисловие
- •Введение
- •1.Предмет программной инженерии
- •1.1.Определение и свойства программного обеспечения
- •1.2.Проблемы разработки программного обеспечения
- •1.3.Процессы производства программного обеспечения
- •1.4.Понятие программного проекта
- •1.5. Стандартизация в области производства по
- •1.6.Определение программной инженерии и ее место в системе информационных технологий
- •2.Жизненный цикл программных продуктов
- •2.1.Понятие жизненного цикла
- •2.2.Процессы жизненного цикла программного обеспечения
- •2.3.Модели жизненного цикла
- •3.Виды деятельности в программной инженерии
- •3.1.Управление требованиями
- •3.1.1.Проблема
- •3.1.2.Цикл работы с требованиями
- •3.1.3.Виды и свойства требований
- •3.1.4.Варианты формализации требований
- •3.2.Проектирование программного обеспечения
- •3.2.1.Понятие
- •3.2.2.Принципы
- •3.2.3.Шаблоны
- •3.2.4.Моделирование по
- •3.2.5.Методологии
- •3.2.6.Оценка качества
- •3.3.Конструирование программного обеспечения
- •3.3.1.Определение
- •3.3.2.Связь с другими процессами
- •3.3.3.Принципы
- •3.3.4.Модели и методы
- •3.3.5.Языки конструирования
- •3.4.Конфигурационное управление
- •3.4.1.Проблемы управления активами программного проекта
- •3.4.2.Единицы конфигурационного управления
- •3.4.3.Управление версиями
- •3.4.4.Управление сборками
- •3.4.5.Понятие baseline
- •3.5.Тестирование программного обеспечения
- •3.5.1.Основные определения
- •3.5.2.Уровни тестирования (Test Levels)
- •3.5.3.Виды тестирования
- •3.5.4.Метрики
- •3.6.Сопровождение программного обеспечения
- •Эволюция программного обеспечения (Evolution of Software)
- •4.Методология объектно-ориентированного анализа и проектирования
- •4.1.Основные понятия
- •4.1.1.Объекты и классы
- •4.1.2.Принципы ооп
- •4.1.3.Разработка объектно-ориентированных программ
- •4.2.Язык uml
- •4.2.1.Что дает uml
- •4.2.2.Структура языка uml
- •4.2.3.Uml диаграммы
- •4.2.4.Программы поддержки языка uml
- •4.3.Вопросы для самоконтроля
- •5.Технологии разработки программного обеспечения
- •5.1.Тяжеловесные и облегченные технологии
- •5.2.Технология rup
- •5.3.Гибкие технологии
- •5.4.Технология msf
- •5.4.1. Управление рисками в msf for Agile Software Development1
- •5.4.2.Основные сведения о рисках
- •5.4.3.Планирование управления рисками
- •5.4.4.Процесс управления рисками
- •5.4.5.Управление рисками как составная часть жизненного цикла проекта
- •5.4.6.Учебный пример. Выделение рисков
- •5.5.Модель процессов msf for Agile Software Development2
- •5.5.1.Принципы модели процессов
- •5.5.2.Управление компромиссами
- •5.5.3.Схема процесса разработки
- •5.6.1. Подготовка проекта
- •5.6.2. Планирование проекта
- •5.6.3. Планирование спринта
- •5.6.4. Выполнение спринта
- •5.6.5. Отслеживание проекта
- •5.7.1. Каково назначение модели cmmi?
- •5.7.2. Как лучше использовать модель cmmi?
- •5.7.3. Элементы модели cmmi
- •Заключение Литература
- •153003, Г. Иваново, ул. Рабфаковская, 34.
3.2.5.Методологии
Существуют различные общие стратегии, помогающие в проведении работ по проектированию и методологий проектирования. Каждая методология обычно использует собственный набор нотаций для описания моделей ПО. Наибольшую известность и популярность в проектировании ПО получили следующие методы:
1. Функционально-ориентированное или структурное проектирование .
Это один из классических методов проектирования, в котором декомпозиция сфокусирована на идентификации основных программных функций и, затем, детальной разработке и уточнении этих функций “сверху-вниз”. Структурное проектирование, обычно, используется после проведения структурного анализа с применением диаграмм потоков данных (DFD) и связанным описанием процессов.
2. Объектно-ориентированное проектирование.
Представляет собой множество методов проектирования, базирующихся на концепции объектов.
Объекты, это сущности, которые имеют уникальность(идентификатор), состяние, которе описывается в виде набора атрибутов (переменных) и поведение или действия, пердсталенное в виде методов (програмнных процедур). В рамках развития данной методолгии был создан язык моделипрования UML.
3 Проектирование на основе структур данных
В данном подходе фокус сконцентрирован в большей степени на структурах данных, которымиуправляет система, чем на функциях системы. Инженеры по программному обеспечению частовначале описывают структуры данных входов (inputs) и выходов (outputs), а, затем, разрабатываютструктуру управления этими данными (или, например, их трансформации).
4 Компонентное проектирование (в настоящее развилось в сервисно-ориентированный подход в проектировании).
Существуют и другие интересные, но менее распространенные подходы
3.2.6.Оценка качества
На стадии проектрования проводят анализ качества и оценку программного дизайна. Существует целый спектр различных атрибутов, помогающих оценить и добиться качественного дизайна. Эти атрибуты могут описывать многие характеристики системы и элементов дизайна как такового – “тестируемость”, “переносимость”, “модифицируемость”, “производительность”,“безопасность” и т.п. Важно понимать, что обсуждаемые атрибуты касаются только дизайна (какрезультата), но не проектирования (как процесса).
Для оцеки качства созданных моделей исполльзуются метрики - количественные оценки показателей. С помощью метрик можно оценивать степень декомпозиции функций и сущностей в модели, количество различных видов связей, количество обращений одних компонетов к другим впроцессе выполненения функций, распределенность и локальность данных и другие свойства моделей. Однако не все характеристики можно измерить.
3.3.Конструирование программного обеспечения
3.3.1.Определение
Термин конструирование программного обеспечения (software construction) описывает детальное создание рабочей программной системы посредством комбинации кодирования, верификации (проверки), модульного тестирования (unit testing), интеграционного тестирования и отладки.
Данная деятельбность тесно с проектированием и тестированием. Более того, в реальных процессах разработки часто бывает достаточно сложно провести границы между проектированием, конструированием и тестированием. В зависимости от выбранной модели жизненного цикла и применяемых методов, такое разделение может выглядеть по разному. Хотя ряд операций по проектированию детального дизайна может происходить до стадии конструирования, большой объем такого рода проектных работ происходит параллельно с конструированием или как его часть. В свою очередь, на протяжении всей деятельности по конструированию, инженеры используют модульное и интеграционное тестирование.
