- •Лекция 17
- •Источники литературы
- •Основные виды деятельности программной инженерии
- •Основные виды деятельности программной инженерии
- •Основные виды деятельности программной инженерии
- •Реализация и Построение
- •Выполнение и Конструирование
- •Реализация, Внедрение, Сопровождение
- •Реализация в RUP
- •Конструирование, согласно SWEBOK
- •Смежные области знаний
- •Конструирование ПО, SWEBOK
- •1. Основы конструирования (Software Construction Fundamentals)
- •1.1. Минимизация сложности
- •1.1.Минимизация сложности - 2
- •1.2. Ожидание изменений (Anticipating Changes)
- •1.3 Конструирование с возможностью проверки (Constructing for Verification)
- •1.4. Стандарты в конструиро- вании (Standards in Constructing):
- •2. Управление конструированием (Managing Construction)
- •3. Практические соображения
- •3.1 Проектирование в конструировании
- •3.2 Языки конструирования (Construction Languages)
- •3.3Кодирование (Coding)
- •3.3Кодирование - 2
- •3.4 Тестирование в конструиро- вании (Construction Testing)
- •3.5. Повторное использование (Reuse)
- •Задачи повторного исп-я
- •3.6 Качество конструирования (Construction Quality)
- •3.7Интеграция (Integration)
- •Фаза внедрения (Transition) в RUP
- •Планирование фазы внедрения
- •Деятельность фазы внедрения
- •Подготовка бета-версии
- •Адаптация продукта под условия пользователей
- •Проверка системы
- •Работа с сообщениями бета- тестеров
- •Завершение артефактов
- •Определение факта окончания проекта
- •Внедрение – резюме
- •Эксплуатация (ISO IEC 12207)
- •Эксплуатация-2
- •Эксплуатация-3
- •Эксплуатация-4
- •Испытание
- •Документирование
- •Обучение
- •Источники литературы
3.1 Проектирование в конструировании
•Некоторые проекты предполагают больший объем работ по проектированию именно на стадии конструирования; другие проекты явно выделяют проектную деятельность в форме проектной фазы
•Вне зависимости от этого, на стадии конструирования всегда приходится заниматься и вопросами детального проектирования системы. Отличие заключается в большем внимании деталям.
3.2 Языки конструирования (Construction Languages)
•Конфигурационный язык
•Инструментальный язык (обычно скрипт)
•Язык программирования
3.3Кодирование (Coding)
•техники создания легко понимаемого исходного кода на основе:
•использования соглашений об именовании, форматирования и структурирования кода;
•использование классов, перечисляемых типов, переменных, именованных констант и других выразительных сущностей;
•организация исходного текста (в выражения, шаблоны, классы, пакеты/модули и другие структуры);
•использование структур управления.
3.3Кодирование - 2
•обработка ошибочных условий и исключительных ситуаций
•предотвращение возможных брешей в безопасности (например, переполнение буфера или выход за пределы индекса в массиве)
•использование ресурсов на основе установки порядка доступа к параллельно используемым ресурсам (например, на основе блокировки данных, использования потоков и их синхронизации и т.п.)
•документирование кода.
3.4 Тестирование в конструиро- вании (Construction Testing)
•модульное тестирование (unit testing)
•тестирование интеграции (integration testing)
3.5. Повторное использование (Reuse)
•«Реализация повторного использования программного обеспечения подразумевает и влечёт за собой нечто большее, чем просто создание и использование библиотек активов.
•Оно требует формализации практики повторного использования на основе интеграции процессов и деятельности по повторному использованию в сам жизненный цикл программного обеспечения»
•(IEEE Std. 1517-99 “IEEE Standard for Information Technology – Software Lifecycle Process – Reuse Processes”).
Задачи повторного исп-я
•выбор единиц (units), подлежащих повторному использованию
•Оценка потенциала повторного использования кода и тестов
•Отслеживание информации и создание отчетности по повторному использованию в новом коде, тестовых процедурах и данных, полученных в результате тестов.
3.6 Качество конструирования (Construction Quality)
•Модульное и интеграционное тестирование
•Опережающее тестирование
•Итеративное кодирование с тестированием
•Использование процедур утверждений
•Отладка
•Технические обзоры и оценки (review)
3.7Интеграция (Integration)
•Интеграция отдельно сконструированных операций (процедур), классов, компонентов
иподсистем (модулей).
•Специальная интеграция с другим программным и аппаратным обеспечением.
•Планирование последовательности, в которой интегрируются компоненты;
•Обеспечение поддержки промежуточных версий;
•Задание “глубины” тестирования;
•Планирование вех тестирования интеграции.