- •4 Курс 2 семестр
- •Задача проектирования программных систем
- •Общие сведения о технологии программирования
- •Тестирование программ
- •Тестирование программного обеспечения
- •Правила тестирования Майерса
- •Уровни тестирования
- •Введение в программную инженерию История и основные понятия
- •Эволюция подходов к управлению программными проектами
- •Модели процесса разработки по
- •Управление проектами. Определения и концепция
- •Расчет экономической ис
- •Моделирование программных систем
- •Словарь uml
Введение в программную инженерию История и основные понятия
Программная инженерия – есть применение определенного систематического измеримого подхода при разработке эксплуатации и поддержки программного обеспечения.
Программирование – процесс отображения определенного множества целей на множество машинных команд и данных, интерпретация которых на компьютере или вычислительном комплексе обеспечивает достижение поставленных целей.
Профессиональное программирование – это деятельность, направленная на получение доходов при помощи программирования.
Программный продукт – совокупность программ и сопроводительной документации по их установке, настройке, использования и доработки.
Разработка и поддержка
Проект разработки версия 1.0
Проект разработки версия 2.0
Развертывание
Проект внедрения версия 1.0
Проект внедрения версия 2.0
Сопровождение
Время
Процесс разработки ПО – совокупность процессов, обеспечивающих создание и развитие программного обеспечения.
Модель процесса разработки ПО формализовано представления процесса разработки ПО.
Области знаний, на которых базируется процессы разработки ПО (ПП):
Программные требования
Дизайн
Конструирования ПО
Тестирование
Эксплуатация (поддержка ПО)
Конфигурационное управление
Управление в программной инженерии
Процессы в программной инженерии
Инструменты и методы
Качество программного обеспечения
Дополнительные области знаний:
Разработка компьютеров
Информатика
Общий менеджмент
Математика
Управление проектами
Управление качеством
Системное проектирование
Эволюция подходов к управлению программными проектами
Как получится – разомкнутая система управления, полное доверие техническим лидерам, представители бизнеса практически не участвуют в проекте, планирование – словесное, бюджет и время – не контролируются.
Водопад (каскадная модель) – жесткое управление с обратной связью, имеется план проекта.
Гибкое управление – расчет опорной траектории - измерение отклонений - расчет новой траектории.
Метод частых поставок – аналогичен предыдущему, более жестко идет к первоначальной цели.
Модели процесса разработки по
Модели процесса принято классифицировать по весу – количеству формализованных процессов и детальности их регламентации. Чем больше процессов документировано и более детально они описаны, тем больше вес модели.
Наиболее распространенные современные процессы разработки ПО:
ГОСТ 19 и ГОСТ 34 ориентирован на последовательный подход к разработке ПО (разработка по этапам).
ГОСТ 19 – единая система программной документации
ГОСТ 34 – стандарты на разработку и сопровождение автоматизированных систем
SW CMM – в качестве эталонной модели организации разработки ПО определяет 5 уровней зрелости процесса разработки ПО:
Начальный – процесс разработки носит хаотичный характер, определены немногие процессы и успех проекта зависит от конкретного исполнителя.
Повторяемый – установлены основные процессы управления проектами (отслеживание затрат, сроки исполнения, функциональность).
Определенный – процессы разработки ПО и управление проектами описаны и внедрены в единую систему процесса компании.
Управляемый – собираются детальные количественные данные по функционированию процессов разработки и качеству конечного продукта (анализ и динамика).
Оптимизируемый – пробное внедрение новых идей и технологий.
RUP – унифицированный процесс, описывает общий процесс абстрактный общий процесс, на основе которого организация или проектная команда должна создать конкретный специализированный процесс, ориентированный на ее потребности.
PSP/TSP – одна из последних разработок института программной инженерии. Данный институт определил требования к компетенциям разработчика. Согласно этой модели каждый программист должен уметь:
Учитывать время, затраченное на работу над проектом
Учитывать найденные дефекты
Классифицировать типы дефектов
Оценивать размер задачи
Осуществлять систематический подход к описанию результатов тестирования
Планировать программные задачи
Распределять их по времени и составить график работы
Осуществлять индивидуальную проверку кода
Выполнять регрессивное тестирование
Agile – гибкие модели. Применяемый в разработке ПО процесс должен быть адаптивным (ориентированным на людей).
Каждый новый проект должен определять процесс разработки ПО заново, в зависимости от проекта, продукта и персонала, в соответствии с законом 4П.
Персонал
|
Процесс проекта |
Продукт
|
Профессионализм: Сработанность Стабильность Мотивация Эффективность коммуникаций |
|
Техническая сложность: Новый продукт, новые технологии, инновации Критичность для заказчика: Угроза жизни, значительные денежные потери |
Большой: трудоемкость – более 240, команда – более 20 человек, длительность – более 12 месяцев. Средний: трудоемкость – от 36 до 240, команда – до 5 человек, длительность – от 6 до 12 месяцев. Малый: трудоемкость – от 6 до 36, команда – до 5 человек, длительность – до 6 месяцев. |
Проект |
|