ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.04.2024
Просмотров: 316
Скачиваний: 3
Петербургский Государственный Университет Путей Сообщения
Кафедра «Информационные и вычислительные системы»
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Конспект лекций
для студентов четвёртого курса специальности 230105.65 – Программное обеспечение вычислительной техники
и автоматизированных систем
составила доцент Г. Ф. Довбуш
Скачано с сайта http://ivc.clan.su
Санкт-Петербург
2010
Скачано с сайта http://ivc.clan.su |
|
Технология разработки программного обеспечения |
|
|
2 |
СОДЕРЖАНИЕ |
|
1. ВВЕДЕНИЕ В УНИФИЦИРОВАННЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ.......................................................... |
6 |
1.1. Строительные блоки UML ........................................................................................................ |
8 |
1.1.1. Сущности........................................................................................................................... |
8 |
1.1.2. Отношения ...................................................................................................................... |
15 |
1.1.3. Диаграммы ...................................................................................................................... |
25 |
1.2. Общие механизмы UML .......................................................................................................... |
34 |
1.2.1. Спецификации................................................................................................................. |
34 |
1.2.2. Способы представления .................................................................................................. |
34 |
1.2.3. Дополнения ..................................................................................................................... |
35 |
1.2.4. Расширения ..................................................................................................................... |
36 |
1.3. Архитектура........................................................................................................................... |
37 |
2. ПРОЕКТИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ............................................................. |
40 |
2.1. Эволюция интерфейса человек-компьютер ........................................................................... |
41 |
2.2. Основные задачи проектирования интерфейса пользователя ............................................... |
42 |
2.3. Модели пользовательского интерфейса................................................................................. |
42 |
2.4. Требования к пользовательскому интерфейсу ....................................................................... |
44 |
2.5. Принципы проектирования пользовательского интерфейса .................................................. |
45 |
2.5.1. Контроль на стороне пользователя ................................................................................. |
45 |
2.5.2. Обратная связь................................................................................................................ |
45 |
2.5.3. Эстетичность и удобство ................................................................................................. |
45 |
2.5.4. Согласованность.............................................................................................................. |
45 |
2.5.5. Настройка........................................................................................................................ |
46 |
2.5.6. Терпимость к ошибкам .................................................................................................... |
46 |
2.6. Правила разработки пользовательского интерфейса ............................................................. |
46 |
2.7. Критерии качества пользовательского интерфейса ............................................................... |
47 |
2.7.1. Простой – Simple ............................................................................................................. |
47 |
2.7.2. Эстетичный – Aesthetic .................................................................................................... |
47 |
2.7.3. Продуктивный – Productive .............................................................................................. |
47 |
2.7.5. Другой – Other................................................................................................................. |
47 |
3. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ......... |
47 |
3.1. Трѐхуровневая модель приложения....................................................................................... |
48 |
3.1.1. Уровень представления ................................................................................................... |
48 |
3.1.2. Бизнес-правила ............................................................................................................... |
49 |
3.1.3. Уровень управления данными ......................................................................................... |
49 |
3.2. Распределѐнная вычислительная архитектура....................................................................... |
49 |
3.3. Пакеты классической модели................................................................................................. |
50 |
4. МЕТОДОЛОГИИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА ...................................................... |
51 |
4.1. Объектно-ориентированный анализ....................................................................................... |
52 |
4.1.1. Определение назначения системы .................................................................................. |
52 |
4.1.2. Определение основных функций ..................................................................................... |
53 |
4.1.3. Пример ............................................................................................................................ |
54 |
4.1.4. Подготовка словаря системы ........................................................................................... |
55 |
4.1.5. Пример (продолжение).................................................................................................... |
56 |
4.1.6. Создание структуры......................................................................................................... |
57 |
4.1.7. Пример (продолжение).................................................................................................... |
58 |
4.1.8. Рекомендации по созданию модели анализа ................................................................... |
59 |
4.2. Объектно-ориентированное проектирование......................................................................... |
59 |
4.2.1. Определение программных классов................................................................................. |
60 |
4.2.2. Пример (продолжение).................................................................................................... |
61 |
4.2.3. Определение атрибутов .................................................................................................. |
61 |
4.2.4. Пример (продолжение).................................................................................................... |
62 |
4.2.5. Упрощение классов путѐм обобщения ............................................................................. |
63 |
Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011
Скачано с сайта http://ivc.clan.su |
|
Технология разработки программного обеспечения |
|
|
3 |
4.2.6. Пример (продолжение).................................................................................................... |
63 |
4.2.7. Определение операций ................................................................................................... |
63 |
4.2.8. Пример (продолжение).................................................................................................... |
64 |
4.2.10. Рабочий поток проектирования в RUP ........................................................................... |
66 |
4.3. Концепции объектной методологии ....................................................................................... |
67 |
4.3.1. Концептуальная целостность – Conceptual Integrity ......................................................... |
67 |
4.3.2. Гарантированный результат – Contract............................................................................ |
68 |
4.3.3. Самодостаточность – Selfishness...................................................................................... |
68 |
4.3.4. Иерархия – Hierarchy ....................................................................................................... |
69 |
4.3.5. Согласованность – Seamlessness...................................................................................... |
69 |
4.4. Модели системы .................................................................................................................... |
69 |
4.4.1. Статическая модель системы ........................................................................................... |
70 |
4.4.2. Динамическая модель системы........................................................................................ |
70 |
4.4.3. Функциональная модель системы .................................................................................... |
71 |
4.4.4. Физическая модель системы ............................................................................................ |
71 |
4.4.5. Статическая и динамическая модели............................................................................... |
71 |
4.4.6. Статическая и функциональная модели........................................................................... |
72 |
4.4.7. Динамическая и функциональная модели ....................................................................... |
72 |
4.5. Методы проектирования ........................................................................................................ |
73 |
4.5.1. Проектирование по обязательствам – CRC-cards ............................................................. |
73 |
4.5.2. Метод Коада/Йордона – OOA/D ....................................................................................... |
74 |
4.6. Объектная методология – Object Methodology ....................................................................... |
75 |
4.6.1. Объектная модель ........................................................................................................... |
76 |
4.6.2. Процедура моделирования .............................................................................................. |
79 |
5. ЖИЗНЕННЫЙ ЦИКЛ...................................................................................................................... |
79 |
5.1. Основные процессы жизненного цикла.................................................................................. |
80 |
5.2. Вспомогательные процессы жизненного цикла ...................................................................... |
81 |
5.3. Организационные процессы жизненного цикла ..................................................................... |
81 |
5.4. Модели жизненного цикла ..................................................................................................... |
82 |
5.4.1. Водопадная модель жизненного цикла ............................................................................ |
82 |
5.4.2. Спиральная модель жизненного цикла ............................................................................ |
83 |
5.5. Основные сведения об этапах разработки ............................................................................. |
85 |
5.5.1. Спецификация требований .............................................................................................. |
85 |
5.5.2. Анализ ............................................................................................................................. |
90 |
5.5.3. Проектирование .............................................................................................................. |
91 |
5.5.4. Реализация (кодирование) и эволюция ........................................................................... |
94 |
5.5.5. Сопровождение ............................................................................................................... |
95 |
5.5.6. Тестирование .................................................................................................................. |
95 |
6. ДОКУМЕНТАЦИЯ ПРОЦЕССА РАЗРАБОТКИ.................................................................................. |
100 |
6.1. Документы управления разработкой.................................................................................... |
102 |
6.2. Пользовательская документация ......................................................................................... |
102 |
6.3. Документация по сопровождению ....................................................................................... |
103 |
6.4. Стандарты документации..................................................................................................... |
103 |
7. УНИФИЦИРОВАННЫЙ ПРОЦЕСС РАЗРАБОТКИ ............................................................................ |
104 |
7.1. Базовые понятия RUP .......................................................................................................... |
105 |
7.2. Модели унифицированного процесса................................................................................... |
106 |
7.3. Принципы методологии RUP ................................................................................................ |
107 |
7.3.1. Управляемая прецедентами разработка ........................................................................ |
107 |
7.3.2. Ориентированная на архитектуру разработка ............................................................... |
108 |
7.3.3. Итеративная и инкрементная разработка ...................................................................... |
109 |
7.3.4. Другие важные принципы разработки ........................................................................... |
110 |
7.4. Жизненный цикл RUP .......................................................................................................... |
111 |
7.4.1. Итерация ....................................................................................................................... |
111 |
Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011
Скачано с сайта http://ivc.clan.su |
|
Технология разработки программного обеспечения |
|
|
4 |
7.4.2. Фазы итерации RUP ....................................................................................................... |
111 |
7.5. Основные технологические процессы RUP ........................................................................... |
114 |
7.5.1. Технологический процесс бизнес-моделирования ......................................................... |
114 |
7.5.2. Технологический процесс управления требованиями .................................................... |
115 |
7.5.3. Технологический процесс анализа и проектирования ................................................... |
116 |
7.5.4. Технологический процесс реализации ........................................................................... |
116 |
7.5.5. Технологический процесс тестирования ........................................................................ |
117 |
7.5.6. Технологический процесс развѐртывания...................................................................... |
117 |
7.6. Вспомогательные процессы RUP .......................................................................................... |
118 |
7.6.1. Технологический процесс управления конфигурацией и изменениями.......................... |
118 |
7.6.2. Технологический процесс управления проектом ........................................................... |
119 |
7.6.3. Технологический процесс управления средой ............................................................... |
119 |
7.7. Задачи ролей в технологических процессах жизненного цикла RUP .................................... |
120 |
8. ОРГАНИЗАЦИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.................................................... |
123 |
8.1. Группа проекта и роли участников группы .......................................................................... |
123 |
8.1.1. Руководитель проекта – Program manager ..................................................................... |
123 |
8.1.2. Менеджер по маркетингу – Product manager ................................................................. |
123 |
8.1.3. Разработчик – Developer................................................................................................ |
124 |
8.1.4. Тестер – Tester .............................................................................................................. |
125 |
8.1.5. Технический писатель – Writer ...................................................................................... |
125 |
8.1.6. Представитель группы технической поддержки – Logistic.............................................. |
125 |
8.1.7. Другие специалисты ...................................................................................................... |
126 |
8.2. Модель проектной группы ................................................................................................... |
126 |
9. АВТОМАТИЗАЦИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ............................................... |
128 |
9.1. Визуальное моделирование ................................................................................................. |
128 |
9.2. CASE-средства ..................................................................................................................... |
129 |
9.3. Среда JUDE Community ........................................................................................................ |
130 |
Рекомендуемая литература............................................................................................................ |
131 |
Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011
Скачано с сайта http://ivc.clan.su
Технология разработки программного обеспечения |
5 |
|
"Математика делает то, что можно, так, как нужно, тогда как информатика делает то, что нужно, так, как можно".
Программистский фольклор.
Понятие технологии в русском языке имеет ясное определение:
Технология – совокупность производственных методов и процессов в определѐнной отрасли производства, а также научное описание способов производства (С.И. Ожегов).
Продуктом технологии разработки программного обеспечения (ТРПО) является программа, эффективно и надѐжно выполняющая требуемые функции на реальных компьютерах. Разрабатываемая программа должна удовлетворять заданным потребностям пользователей и обладать определѐнным качеством.
Целью программирования является описание процессов обработки данных.
Программа (program) – формализованное описание процессов обработки данных, представленное как упорядоченная последовательность инструкций для решения задач пользователей компьютером.
Данные – это представление характеризующих объекты отдельных фактов, явления и процессы в предметной области, а также их свойства.
Обработка данных – выполнение систематической последовательности действий с данными.
Данные представляются и хранятся на носителях данных. Совокупность носителей данных, используемых при какой-либо обработке данных, называют информаци-
онной средой.
Набор данных, содержащихся в какой-либо момент в информационной среде, называют состоянием этой информационной среды.
Процесс обработки данных можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.
Процесс обработки данных (или программа) – это формализованное определение последовательности смены состояний в заданной информационной среде.
Программное обеспечение, или программное средство (software) – совокупность программ обработки данных и необходимой для их эксплуатации документации.
Программы позволяют осуществлять автоматическую обработку данных на компьютере.
Документация помогает управлять разработкой, использовать и сопровождать программное обеспечение.
Программный продукт (software product) – программное средство, предназначенное для продажи или передачи в эксплуатацию другим лицам.
Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011
Скачано с сайта http://ivc.clan.su
Технология разработки программного обеспечения |
6 |
|
Программный продукт должен быть изготовлен с помощью законно приобретѐнных программных средств, иметь патент и сопровождаться организациейразработчиком.
Программное изделие (software) – это экземпляр или снятая копия программного продукта.
Вычислительная система (computer system) – это объединение персонала, аппаратных средств и программного обеспечения для обработки данных с целью выполнения установленных требований или задач.
Технология разработки программного обеспечения – это совокупность про-
изводственных процессов, приводящая к созданию требуемого надѐжного программного средства, а также описание этой совокупности процессов.
Различают методы, средства и процедуры ТРПО. Методы обеспечивают решение следующих задач:
1.Планирование и оценка проекта.
2.Анализ системных и программных требований.
3.Проектирование программных структур и структур данных.
4.Кодирование.
5.Тестирование.
Средства обеспечивают автоматизированную поддержку методов. В настоящее время широко используются CASE-средства (Computer Aided Software Engineering),
которые поддерживают автоматизацию этапов анализа, проектирования, реализации и тестирования систем.
Процедуры соединяют методы и средства так, что обеспечивают непрерывную технологическую цепочку разработки и определяют:
1.Порядок применения методов и средств.
2.Контроль продвижения работ по проекту.
3.Контроль изменений.
4.Оценку рисков.
Разработка программного средства (ПС) состоит из основных, вспомогательных и организационных процессов. Каждый процесс базируется на использовании какихлибо методов и средств. Совокупность методов и средств, используемых для создания ПС, часто называют парадигмами технологии программирования.
1. ВВЕДЕНИЕ В УНИФИЦИРОВАННЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ
Унифицированный язык моделирования (Unified Modeling Language – UML) – это универсальный язык визуального моделирования систем, представляющий собой основанную на диаграммах стандартную систему обозначений.
Язык не привязан к какой-либо конкретной методологии или жизненному циклу, но лучше всего адаптирован к методологии унифицированного процесса. UML пре-
Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011