Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ТРПО-лекции

.pdf
Скачиваний:
581
Добавлен:
09.02.2015
Размер:
2.02 Mб
Скачать

Петербургский Государственный Университет Путей Сообщения

Кафедра «Информационные и вычислительные системы»

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Конспект лекций

для студентов четвёртого курса специальности 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

Скачано с сайта http://ivc.clan.su

Технология разработки программного обеспечения

7

 

доставляет возможность создавать и разбираться в правильно построенных моделях, но не говорит какие модели и когда нужно создавать.

Разработка UML началась в компании Rational Software в 1995 году с объединения метода Booch’93 Гради Буча, техники объектного моделирования OMT (Object Modeling Technique) Айвара Якобсона и методологии объектно-ориентированной разработки программного обеспечения Objectory, или OOSE (Object-Oriented Software Engineering) Джима Рамбо.

В 1997 году язык UML утверждѐн консорциумом по технологии манипулирования объектами OMG в качестве открытого стандарта UML 1.1 (http://www.omg.org/uml) для представления объектно-ориентированных моделей. В 2004 году одобрен второй выпуск UML 2.0.

UML – язык для визуализации, специфицирования, конструирования и документирования компонентов программных средств.

UML – язык визуализации (зрительного восприятия). Для многих программистов время между обдумыванием и написанием кода равно нулю. Код получается прекрасный, но программист при этом моделирует в уме. В связи с этим возникает несколько проблем, которые можно решить, используя UML:

1.Проблема чтения кода. Существуют некоторые вещи в ПС, которые невозможно понять по тексту кода (даже хорошо прокомментированного). UML – графический язык и, следовательно, решает проблему.

2.Проблема потери информации. Если разработчик уничтожил часть кода и никогда не записывал в каком-либо виде модель, тогда этот код будет утрачен навсегда. UML обеспечивает восстановление кода по модели.

3.Проблема интерпретации модели. Как правило, в проектной группе вырабатывается некоторый внутренний язык (совершенно непонятный извне). UML обладает корректно-определѐнной семантикой и, поэтому, разные разработчики будут одинаково трактовать модель.

UML – язык специфицирования. Он позволяет определить все важные решения по анализу, проектированию и реализации, которые принимаются в процессе создания и внедрения ПС.

UML – язык конструирования. Созданные с его помощью модели могут быть переведены на различные языки программирования. Модель можно отобразить на такие языки, как C++, Java, Visual Basic и даже на таблицы реляционной базы данных.

Возможно как прямое (forward engineering), так и обратное (reverse engineering)

отображение.

UML – язык документирования. При создании ПС создаѐтся много вторичных по отношению к исполняемому коду продуктов: требования к системе, архитектура системы, проект, исходный код, проектные планы, тесты, прототипы, версии. UML предоставляет возможности документирования принятых решений.

Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011

Скачано с сайта http://ivc.clan.su

Технология разработки программного обеспечения

8

 

Язык UML предназначен, прежде всего, для разработки программных средств. Его использование наиболее эффективно в следующих областях:

информационные системы масштабов предприятия;

транспорт, в том числе железнодорожный;

банковские и финансовые услуги;

распределѐнные Web-системы;

оборонная промышленность, авиация и космонавтика;

розничная торговля;

медицинская электроника;

телекоммуникации;

наука.

Структура UML включает следующее:

1.Строительные блоки – основные элементы, отношения и диаграммы.

2.Общие механизмы – пути для достижения определѐнных целей.

3.Архитектура – представление системной архитектуры.

1.1. Строительные блоки UML

В UML задействованы три вида блоков:

1.Сущности (things).

2.Отношения (relationships).

3.Диаграммы (diagrams).

1.1.1. Сущности

Сущность – это абстракция, являющаяся основным элементом UML-модели.

На рис. 1-1 показаны графические обозначения некоторых сущностей.

Рис. 1-1. Графические

обозначения сущностей в UML

Все сущности можно разделить на следующие группы:

Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011

Скачано с сайта http://ivc.clan.su

Технология разработки программного обеспечения

9

 

Структурные сущности. Представляют статические части модели. Структурными сущностями являются: класс (class), интерфейс (interface), актѐр

(actor), прецедент (use case), компонент (component), узел (node).

Поведенческие сущности. Представляют динамические части UML-модели. К поведенческим сущностям относятся: взаимодействия (interaction), дея-

тельности (activity), автоматы (state machine).

Группирующая сущность – пакет (package). Объединяет семантически связанные элементы UML-модели в единое целое.

Аннотационная сущность – примечание (note). Добавляется к UML-модели для записи специальных уточняющих сведений.

Класс – class

Класс – это описание набора объектов с общими атрибутами, операциями и семантикой.

Графически класс изображается в виде разделѐнного на три части прямоугольника (рис.1-2), где записаны его имя, атрибуты и операции.

Рис. 1-2. Графическое изображение класса

Объединение объектов в классы вводит в процесс разработки ПС абстракцию. Цель абстракции – ограничить универсальность, всеобщность понятия (вещи).

Абстракция – это наиболее существенные характеристики объекта, которые отличают его от всех других видов объектов и чѐтко определяют особенности данного объекта с точки зрения дальнейшего анализа.

Абстракция концентрирует внимание на внешних свойствах объекта и позволяет отделить существенные особенности поведения от деталей их реализации. Такое разделение поведения от реализации называется барьером абстракции, который основывается на двух принципах:

1.Принцип наименьшей выразительности, по которому абстракция должна охватывать лишь самую суть объекта, не больше (но и не меньше).

2.Принцип минимизации связей, когда интерфейс объекта содержит только существенные аспекты поведения.

Следует заметить, что на разных этапах создания ПС разработчики имеют дело с разными классами:

Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011

Скачано с сайта http://ivc.clan.su

Технология разработки программного обеспечения

10

 

на этапе анализа ПС классы – это концептуальные абстракции, являющиеся частью предметной области;

на этапе проектирования – логические (программные) абстракции;

на этапе реализации – это классы выбранного для реализации логических абстракций языка программирования.

Одна из целей разработки ПС заключается в том, что необходимо описать классы/объекты, составляющие в совокупности проектируемую систему.

Основными характеристиками класса/объекта являются:

1.Уникальное имя. Позволяет отличить объекты друг от друга.

2.Атрибут – именованное свойство объектов класса. Каждый атрибут имеет своѐ значение для каждого объекта. Среди атрибутов различают:

статические (условно постоянные свойства);

динамические (условно переменные свойства);

производные (вычисляемые свойства), значения которых определяются при помощи значений статических и динамических атрибутов объекта.

3.Состояние объекта – ситуация в ходе жизни объекта, в течение которой он удовлетворяет некоторому условию, выполняет некоторую деятельность или ожидает некоторого события. Выражается состояние всеми текущими значениями объекта. При изменении значений атрибутов меняется состояние.

4.Поведение – это то, как объект действует и реагирует (то есть, как он меняет своѐ состояние). Поведение выражается в терминах состояния объекта и передачи сообщений. Поведение может изменять состояние. Понятие сообщение совпадает с понятием операция.

5.Операция – действие, которое должен выполнить объект для реализации своего поведения, или сервис, который может быть востребован одним объектом у другого. У каждой операции есть свой объект-получатель, то есть объект, для которого операция применяется. Операция может иметь дополнительные аргументы, которые еѐ параметризуют. Некоторые операции могут приобретать разные формы в различных классах, такие операции называют полиморфными. К стереотипным операциям для всех классов относятся следующие операции:

создать и инициировать (create and initialize) объект.

удалить (delete) объект.

получить (get…) значение атрибута.

установить (set…) значение атрибута.

добавить объект (add…) – добавить связь с другим объектом.

исключить объект (remove…) – исключить связь с другим объектом.

Кнаиболее распространѐнным операциям относятся:

модификатор – операция, которая меняет состояние объекта.

запрос (селектор) – операция, которая считывает состояние объекта, но не меняет состояние.

Довбуш Г.Ф., ПГУПС, кафедра ИВС, 2010/2011

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]