ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 20
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Проектирование ПО
Игнатьев Евгений Борисович,
доцент каф. ПОКС, Б221, тел. 269-840 ignatiev@igt.ispu.ru
План дисциплины
Семестр | 5 |
Лекций | 14 |
Практических занятий | 7 |
Лабораторных работ | 15 |
СРС, час | 72 |
Контроль | экзамен |
Темы
- Место проектирования в процессе разработки ПО.
- Особенности процесса проектирования.
- Методы проектирования. UML. CASE. Шаблоны.
- Архитектура приложений.
- Структурный проект.
- Проектирование базы данных.
- Проектирование классов и взаимодействия.
- Структурный рефакторинг.
- Проектирование пользовательского интерфейса.
- Проектирование пользовательского интерфейса на основе веб-технологии.
- Безопасность и целостность.
- Транзакции и параллелизм.
- Бизнес-компоненты.
- Метрики объектно-ориентированных программных систем.
Практические занятия
Итерация 1. Техническое задание. Требования и объектная модель. Диаграмма вариантов использования. Спецификация вариантов использования. Концептуальная модель предметной области. Макеты пользовательского интерфейса. Дополнительная спецификация.
ТК1
Эскизный проект. Диаграмма развёртывания. Диаграмма компонентов. Диаграмма пакетов. Логическая модель БД. Физическая модель БД. Диаграммы последовательности. Диаграммы классов. Перечень использованных шаблонов.
ПК1
Реализация итерации 1. Итерация 2. Требования и объектная модель. Диаграмма вариантов использования. Спецификация вариантов использования. Концептуальная модель предметной области. Макеты пользовательского интерфейса. Дополнительная спецификация. Рефакторинг.
ТК2
Технический проект. Диаграмма развёртывания. Диаграмма компонентов. Диаграмма пакетов. Логическая модель БД. Физическая модель БД. Диаграммы последовательности. Диаграммы классов. Перечень использованных шаблонов.
ПК2
Реализация итерации 2. Подготовка презентаций. Защита технических проектов.
Экзамен
Литература
- Орлов С.А. Технологии разработки программного обеспечения. Разработка сложных программных систем: [учебник для вузов] / С. А. Орлов.—3-е изд.—СПб.: Питер, 2004.—527 с
- Практическая программная инженерия на основе учебного примера / Л.А. Мацяшек, Б.Л. Лионг. – М.: БИНОМ. Лаборатория знаний, 2009. – 956 с.
- Ларман К. Применение UML и шаблонов проектирования. 2-е издание. – М.: Издат. дом «Вильямс», 2002.- 624 с.
- Microsoft Corporation. Принципы проектирования и разработки программного обеспечения. Учебный курс MCSD. Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2000 – 608 с.
- Рамбо Дж., Якобсон А., Буч Г. UML: специальный справочник. – СПб.: Питер, 2002.
- Гамма Э., Хелм Р., Джонсон Р., Велисидес Дж. Приёмы объектно-ориентированного проектирования. Паттерны проектирования: Пер. с англ. – СПб., Питер, 2001.
- Левенец И.А. Технология разработки программного обеспечения. Анализ и проектирование: учебно-методическое пособие / И. А. Левенец ; Федеральное агентство по образованию, ГОУВПО "Ивановский государственный энергетический университет им. В. И. Ленина".—Иваново: Б.и., 2009.—88 с.
Проектирование ПО
Тема 1. Место проектирования в процессе разработки ПО
Унифицированный процесс
(Unified Process)
Начальное
планирование
Планирование
Формулировка
требований
Анализ
Проектирование
(Software Design Process)
Реализация
Развёртывание
Тестирование
Оценивание
результатов
Организация
работ
Характер процеса:
• итерационный (циклическое выполнение видов работ);
• эволюционный (доопределение требований);
• инкрементный (приращение реализации требований).
Фазы унифицированного процесса
Inception
Elaboration
Construction
Transition
Дисциплины унифицированного процесса
Проектирование (Design)
Реализация (Implementation)
Тестирование (Testing)
Требования (Requirements)
Анализ (Analysis)
Состав итерации
Начало
Объектно-ориентированное проектирование
Отображение проектного решения в код
Объектно-ориентированный анализ
Итерация 1 фазы развития
Итерация 2 фазы развития
Итерация 3 фазы развития
Специальные вопросы
Этапы разработки
Этап проектирования
Этап кодирования
Этап тестирования
Модель анализа:
• Информационная
• Функциональная
• Поведенческая
Модель данных
Архитектура
ПО
Процедурная проработка
Программные модули
Проверенная и объединённая программная система
Анализ и Проектирование
Анализ - моделирование, не ограниченное никакой реализацией (аппаратного и программного обеспечения)
Проектирование - моделирование, которое учитывает платформу, на которой должна быть реализована система
Первая попытка перехода
Реальные программные сущности
Абстракции предметной области
Цели проектирования
Создание системы, которая:
- удовлетворяет заданным (возможно, неформальным) функциональным спецификациям;
- согласована с ограничениями, накладываемыми оборудованием;
- удовлетворяет явным и неявным требованиям по эксплуатационным качествам и ресурсопотреблению;
- удовлетворяет явным и неявным критериям дизайна продукта;
- удовлетворяет требованиям к самому процессу разработки, таким, например, как продолжительность и стоимость, а также привлечение дополнительных инструментальных средств.
Цель проектирования – архитектура ПО
Бьёрн Страуструп
(Bjarne Stroustrup)
«Цель проектирования - выявление ясной и относительно простой внутренней структуры, иногда называемой архитектурой... Проект есть окончательный продукт процесса проектирования».
ГОСТ 19.102-77
Стадии разработки:
1. Техническое задание (ТЗ)
2. Эскизный проект (ЭП)
3. Технический проект (ТП)
4. Рабочий проект (РП)
5. Внедрение
Стандарт Единой системы программной документации (ЕСПД) ГОСТ 19.102-77. Стадии разработки программ и программной документации
2-ую и 3-ю стадии разрешалось исключать.
ГОСТ 34.601-90
Стадии жизненного цикла:
1. Формирование требований к АС
2. Разработка концепции АС
3. Техническое задание
4. Эскизный проект
5. Технический проект
6. Рабочая документация
7. Ввод в действие
8. Сопровождение АС
4-ю стадии разрешается исключать
5-ую и 6-ую стадии разрешается объединять в стадию «Технорабочий проект».
ГОСТ 34.601-90. Автоматизированные системы. Стадии создания АС
ГОСТ Р ИСО/МЭК 12207
ГОСТ Р ИСО/МЭК 12207. Информационная технология. Системная и програм-мная инженерия. Процессы жизненного цикла программных средств
Основные процессы (Primary Processes) жизненного цикла:
1. Заказ – Acqusition
2. Поставка – Supply
3. Разработка – Development
4. Эксплуатация – Operation
5. Сопровождение – Maintenance
ГОСТ Р ИСО/МЭК 12207
Работы процесса Разработка:
3.1 Process implementation – определение процесса (подготовка процесса);
3.2 System requirements analysis – анализ системных требований (анализ требований к системе);
3.3 System design – проектирование системы (проектирование системной архитектуры);
3.4 Software requirements analysis – анализ программных требований (анализ требований к программным средствам);
3.5 Software architectural design – проектирование программной архитектуры;
3.6 Software detailed design – детальное проектирование программной системы (техническое проектирование программных средств);
3.7 Software coding and testing – кодирование и тестирование (программирование и тестирование программных средств);
3.8 Software integration – интеграция программной системы (сборка программных средств);
3.9 Software qualification testing – квалификационные испытания программных средств
;
3.10 System integration – интеграция системы в целом (сборка системы);
3.11 System qualification testing – квалификационные испытания системы;
3.12 Software installation – установка (ввод в действие);
3.13 Software acceptance support – обеспечение приемки программных средств.
Процесс проектирования
Проектирование
системной
архитектуры
(System design)
Проектирование
программной
архитектуры
(Software archi-
tectural design)
Детальное
проектирование
(Software
detailed design)
Интерфейсное
Проектирование
(UI design)
Требования
Архитектура системы
Структуры данных и алгоритмы программ
Архитектура программ и данных
Формы,
человеко-машинного взаимодействия
Эскизный проект
Разработка концепции
Формирование требований
Технический проект
Рабочая документация
ТЗ
ГОСТ Р ИСО/МЭК 12207 «Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств»
Задачи проектирования
- Создать хорошую архитектуру системы, которая при реализации будет заполнена кодом.
- Уточнить моменты, связанные с нефункциональными требованиями и ограничениями, языками программирования, операционными системами, технологиями распределенной и параллельной обработки, технологиями баз данных, управления транзакциями и т. д.
- Разбить работу по реализации на множество управляемых частей для того, чтобы раздать задания различным командам разработчиков, возможно, действующим параллельно.
- Определить основные интерфейсы между подсистемами.
- Визуализировать и объяснить проект, используя типовую нотацию.