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

1vendrov_a_m_proektirovanie_programmnogo_obespecheniya_ekonom

.pdf
Скачиваний:
113
Добавлен:
14.05.2016
Размер:
14.05 Mб
Скачать

УДК [004.415.2:331(075.8) ББК 65с51я73

В29

РЕЦЕНЗЕНТЫ:

Кафедра проектирования экономических информационных систем

Московского государственного университета экономики, статистики и информатики (МЭСИ);

Г.Н.Калянов,

доктор технических наук, профессор, ведущий сотрудник ИПУ РАН

Вендров А.М.

В29 Проектирование программного обеспечения экономичес­ ких информационных систем: Учебник. - 2-е изд., перераб. и доп. — М.: Финансы и статистика, 2006. — 544 с: ил.

ISBN 5-279-02937-8

 

Описаны процессы, модели и стадии жизненного цикла программного

 

обеспечения (ПО) экономических информационных систем. Приведены

 

структурный и объектно-ориентированный подходы к проектированию ПО.

 

Отражено применение стандартного языка объектно-ориентированного мо­

 

делирования и ML. Рассмотрены функции и компоненты CASE-средств и их

 

практическое воплощение в наиболее развитых профаммных продуктах. В

 

новом издании (1-е изд. -

2000 г.) улучшена структура учебника, добавлены

 

новые разделы и примеры.

 

 

Для студентов, обучающихся по специальностям «Прикладная информа­

 

тика (по областям)» и «Прикладная математика». Может быть использован

 

студентами и преподавателями других специа^тьностей, а также разработчика­

 

ми и пользователями систем ПО.

^

2404000000-106 , _ ,^^,

УДК [004.415.2:331(075.8)

В

010(01) - 2006

240 — 2006

ББК 65с51я73

 

 

ISBN 5-279-02937-8

© Вендров A.M., 2000

© Вендров A.M.. 2005

 

ОГЛАВЛЕНИЕ

4v4<S4»SS4«*\»-W%«4\« •Зб^лЗЬч-Х^-^ч^Х--'v-J

4i,-.V>«. 4.iirtft!s>!«=^^-.^ ^»йу'^й-^»^'«Й»ь.А*'Й«Йх'^**-*<чад • ! « А ' * ! ; ! * Ш « Ш Й Ш : " Ш б Ш * 3 ^ ^ = й Ш Й Й : | « Ш « й Ш

Предисловие

 

7

Введение

 

9

Глава 1. ЖИЗНЕННЫЙ ЦИКЛ ПРОГРАММНОГО

 

ОБЕСПЕЧЕНИЯ

 

37

1.1. Нормативно-методическое обеспечение создания

37

ПО

 

1.2. Стандарт жизненного цикла ПО

39

1.2.1. Основные процессы ЖЦ ПО

41

1.2.2. Вспомогательные процессы ЖЦ ПО

48

1.2.3. Организационные процессы ЖЦ ПО

53

1.2.4. Взаимосвязь между процессами ЖЦ ПО

55

1.3. Модели жизненного цикла ПО

57

1.3.1. Каскадная модель ЖЦ

60

1.3.2.Итерационная модель жизненного цикла ... 65

1.4.Сертификация и оценка процессов создания ПО 72

1.4.1.Понятие зрелости процессов создания ПО.

Модель оценки зрелости СММ

72

1.4.2. Методика SPMN

85

1.5. Пример процесса «Управление требованиями» ...

92

1.6. Пример процесса «Управление конфигурацией ПО»

99

Глава 2. МЕТОДИЧЕСКИЕ АСПЕКТЫ

 

ПРОЕКТИРОВАНИЯ ПРОГРАММНОГО

 

ОБЕСПЕЧЕНИЯ

104

2.1. Общие принципы проектирования систем

104

2.2. Визуальное моделирование

108

2.3. Структурные методы анализа и проектирования

113

ПО

2.3.1. Метод функционального моделирования

116

SADT(IDEFO)

2.3.2. Метод моделирования процессов IDEF3 ...

132

2.3.3. Моделирование потоков данных

139

2.3.4. Количественный анализ диаграмм IDEFO и

148

DFD

2.3.5. Сравнительный анализ SADT-моделей и ди­

149

аграмм потоков данных

2.3.6. Моделирование данных

152

Оглавление

2.4. Объектно-ориентированные методы анализа и

162

проектирования ПО

2.4.1. Основные принципы построения объектной

163

модели

2.4.2. Основные элементы объектной модели

166

2.5. Унифицированный язык моделирования UML ...

177

2.5.1. Диаграммы вариантов использования

179

2.5.2. Диаграммы взаимодействия

187

2.5.3. Диаграммы классов

190

2.5.4. Диафаммы состояний

193

2.5.5. Диаграммы деятельности

196

2.5.6. Диаграммы компонентов

199

2.5.7. Диаграммы размещения

202

2.5.8. Механизмы расширения UML

203

2.5.9. Количественный анализ диаграмм UML

207

2.6. Образцы

209

2.7. Сопоставление и взаимосвязь структурного и объ­

215

ектно-ориентированного подходов

Глава 3. МОДЕЛИРОВАНИЕ БИЗНЕС-ПРОЦЕССОВ

 

И СПЕЦИФИКАЦИЯ ТРЕБОВАНИЙ

220

3.1. Основные понятия моделирования бизнес-про­

220

цессов

3.2. Структурный (процессный) подход к моделирова­

224

нию бизнес-процессов

3.2.1. Принципы процессного подхода

224

3.2.2. Применение диаграмм потоков данных . . . .

225

3.2.3. Система моделирования ARIS

227

3.2.4. Метод Ericsson-Репкег

232

3.2.5. Пример использования процессного подхода 234

3.3.Объектно-ориентированный подход к моделиро­

ванию бизнес-процессов

246

3.3.1. Методика моделирования Rational

Unified

Process

246

3.3.2. Пример использования объектно-ориенти­

рованного подхода

255

3.4. Спецификация требований к программному обес­

печению

259

3.4.1. Основы спецификации требований к програм­

мному обеспечению

259

3.4.2. Пример спецификации требований к профам-

мному обеспечению

272

Оглавление

 

Глава 4. АНАЛИЗ И ПРОЕКТИРОВАНИЕ

 

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

284

4.1. Структурное проектирование ПО

284

4.2. Пример структурного проектирования програм­

288

много обеспечения

4.3. Объектно-ориентированный анализ

291

4.3.1. Архитектурный анализ

292

4.3.2. Анализ вариантов использования

295

4.4. Объектно-ориентированное проектирование

317

4.4.1. Проектирование архитектуры системы

317

4.4.2. Проектирование элементов системы

333

Глава 5. ТЕХНОЛОГИИ СОЗДАНИЯ ПРОГРАММНОГО

 

ОБЕСПЕЧЕНИЯ

347

5.1. Определение технологии

347

5.2. Общие требования, предъявляемые к ТС ПО . . . . .

350

5.3. Внедрение ТС ПО в организации

351

5.3.1. Общие сведения

351

5.3.2. Определение потребностей в ТС ПО

354

5.3.3. Оценка и выбор ТС ПО

363

5.3.4. Критерии оценки и выбора ТС ПО

367

5.3.5. Выполнение пилотного проекта

377

5.3.6. Практическое внедрение ТС ПО

389

5.4. Примеры ТС ПО

398

5.4.1. Технология RUP (Rational Unified Process) ..

399

5.4.2. Технология Oracle

411

5.4.3. Технология Borland

417

5.4.4. Технология Computer Associates

420

Глава 6. ОЦЕНКА ТРУДОЕМКОСТИ СОЗДАНИЯ

 

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

423

6.1. Методы оценки и их классификация

424

6.2. Методика оценки трудоемкости разработки ПО на

431

основе функциональных точек

6.2.1. Определение функциональных типов

432

6.2.2. Определение количества и сложности функ­

435

циональных типов по данным

6.2.3. Определение количества и сложности тран-

436

закционных функциональных типов

6.2.4. Подсчет количества функциональных точек

439

6.2.5. Оценка трудоемкости разработки

444

 

Оглавление

6.3. Алгоритмическое моделирование трудоемкости

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

448

6.3.1.Теоретические (математические) модели ... 448

6.3.2.Статистические (регрессионные) модели ... 450

6.4.Методика оценки трудоемкости разработки ПО на основе вариантов использования (по материалам

компании Rational Software)

 

459

6.4.1. Определение весовых показателей действую­

459

щих лиц

,

6.4.2. Определение весовых показателей вариантов

460

использования

 

6.4.3. Определение технической сложности проек­

462

та

квалификации разра­

6.4.4. Определение уровня

463

ботчиков

 

6.4.5. Оценка трудоемкости проекта

465

6.5. Методы, основанные на экспертных оценках

466

6.5.1. Метод Дельфи

 

466

6.5.2. Метод декомпозиции работ

467

6.6. Средства оценки трудоемкости

468

6.7. Планирование итерационного процесса создания

469

ПО

 

Глава 7. ОСОБЕННОСТИ СОВРЕМЕННЫХ ПРОЕКТОВ

474

7.1. Категории «безнадежных» проектов

474

7.2. Причины, порождающие «безнадежные» проекты

475

7.3. Причины разногласий между участниками проекта

478

7.4. Переговоры в «безнадежном» проекте

479

7.5. Человеческий фактор в «безнадежных» проектах .

485

7.6. Процессы в «безнадежных» проектах

496

7.7. Динамика процессов

 

499

7.8. Контроль над продвижением проекта

505

7.9. Технология и инструментальные средства «безна­

510

дежных» проектов

 

Дополнительная литература

 

520

Краткий словарь терминов

 

523

Список основных сокращений

 

530

Предметный указатель

 

534

Приложение. Полезные советы Интернета

538

Software Desingn

 

539

ПРЕДИСЛОВИЕ

„ " s J s C ^ O * " '^^Ч-' *

ч 4s••=*•- ••' •• >s^<W^ S.4>A.'^^ -^f <^¥»!!Х?^=-"4ч'^ i - v-^<.^^-^4

Цель учебника — введение в современные методы и средства проектиро­ вания программного обеспечения информационных систем (ПО ИС), осно­ ванные на международных стандартах и использовании CASE-технологии, а также формирование навыков их самостоятельного практического приме­ нения. При отборе материала автор стремился к следующему:

осветить с системных позиций основные направления, существующие в области инженерного проектирования ПО или профаммной инже­ нерии, не углубляясь в их детали, с тем чтобы сформировать у читате­ ля целостное представление о данной области (в противном случае учебник мог бы превратиться в многотомную энциклопедию);

заполнить пробел, имеющийся в отечественной учебной литературе по программной инженерии;

учесть официально утвержденные и признанные де-факто междуна­ родные и отечественные стандарты в области профаммной инжене­ рии и прежде всего стандарт ISO 12207 «Процессы жизненного цикла ПО», на котором базируются почти все современные промышленные технологии создания ПО;

рассмотреть современное состояние развития CASE-средств и про­ мышленных технологий проектирования ПО.

В новом издании на основе опыта, накопленного автором в учебном процессе, а также новых материалов, появившихся с момента выпуска пер­ вого издания учебников 2002 и 2003 п, существенно пересмотрено и допол­ нено описание методов объектно-ориентированного анализа и проектиро­ вания ПО, добавлены новые разделы и примеры, изменена сфуктура.

Учебник подготовлен в соответствии с Государственным образователь­ ным стандартом по специальности 351400 «Прикладная информатика», но может быть использован также студентами и преподавателями других спе­ циальностей, связанными с проектированием информационных систем и профаммного обеспечения, в частности 351500 «Математическое обеспече­ ние и админисфирование информационных систем» и 010200 «Прикладная математика и информатика». Он состоит из введения и семи глав.

Во введении рассмафиваются основные проблемы современных проек­ тов, причины их возникновения и способы разрешения.

В главе 1 описываются процессы и модели жизненного цикла (ЖЦ) ПО, модель оценки зрелости процессов создания ПО СММ и уровни зрелости

8 Предисловие

процессов создания ПО. В качестве примеров процессов рассмотрены уп­ равление требованиями и управление конфигурацией ПО.

Глава 2 посвящена методическим аспектам проектирования ПО. Рас­ сматриваются общие принципы проектирования систем, структурный и объектно-ориентированный подходы к анализу и проектированию ПО, унифицированный язык моделирования UML.

В главе 3 даны описание моделирования бизнес-процессов и специфи­ кации требований к ПО. Представлены различные подходы к моделирова­ нию бизнес-процессов — структурные методы (диафаммы потоков данных, метод ARIS) и объектно-ориентированный подход к моделированию биз­ нес-процессов с использованием языка UML, а в главе 4 — методы анализа и проектирования ПО на основе структурного и объектно-ориентированно­ го подхода.

Основная часть материала третьей и четвертой глав построена на методи­ ческой базе одной из наиболее развитых современных технологий Rational Unified Process, ее применение иллюстрируется на примере учебного проекта.

Глава 5 посвящена технологиям создания ПО. Приводится система по­ нятий, описывающих технологию создания ПО, состав компонентов техно­ логии, требования, предъявляемые к технологии, факторы выбора техноло­ гии и пример технологии Rational Unified Process.

Вглаве 6 рассматриваются различные методы и стандартные метрики, применяемые для оценки трудоемкости создания ПО.

Вглаве 7 обсуждаются особенности управления современными проек­ тами создания ПО в условиях жестких ресурсных ограничений.

Вконце книги даются дополнительная литература, краткий словарь тер­ минов и список основных сокращений.

Подготовка второго издания учебника во многом стала возможной бла­ годаря той положительной реакции, которую я получал от своих многочис­ ленных слущателей — специалистов различных организаций России и ближ­ него зарубежья, а также студентов факультета вычислительной математики и кибернетики МГУ.

Автор выражает также глубокую благодарность рецензентам — профес­ сору Георгию Николаевичу Калянову и доценту Алексею Алексеевичу Соро­ кину, взявщим на себя труд прочитать рукопись и сделавшим ряд конструк­ тивных замечаний. Я благодарен своей семье — жене Марине и дочери Алек­ сандре за поддержку и терпение, которое они проявили в период написания книги.

ВВЕДЕНИЕ

Прочитав введение, вы узнаете:

Что представляет собой системный подход к проектированию программного обеспечения.

В чем заключаются основные особенности и проблемы проек­ тов современных систем программного обеспечения.

Каковы современные тенденции в программной инженерии.

ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ. СИСТЕМНЫЙ ПОДХОД К ПРОЕКТИРОВАНИЮ ПО

Методологическую основу проектирования ПО составляет системный подход. Под словом «система» понимается совокуп­ ность взаимодействующих компонентов и взаимосвязей между ними. Весь мир можно рассматривать как сложную взаимосвя­ занную совокупность естественных и искусственных систем. Это могут быть достаточно сложные системы (например, планеты в составе Солнечной системы), системы средней сложности (кос­ мический корабль) или сверхсложные системы (системы молеку­ лярных взаимодействий в живых организмах). Искусственные системы, к которым относится ПО, по своей сложности, как пра­ вило, занимают среднее положение. Например, всемирная теле­ фонная сеть содержит десятки или даже сотни тысяч переключа­ телей, однако количество взаимодействий этих переключателей не идет ни в какое сравнение с количеством взаимодействий мо­ лекул даже в небольшом стакане воды. С точки зрения общей те­ ории систем такие системы обычно рассматриваются как систе­ мы средней сложности.

Системный подход это методология исследования объектов любой природы как систем, которая ориентирована на:

раскрытие целостности объекта и обеспечивающих его ме­ ханизмов;

выявление многообразных типов связей объекта;

сведение этих связей в единую картину.

10

Введение

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

ПО как система, в свою очередь, является подсистемой неко­ торой информационной системы (ИС). По определению стан­ дарта специальности 351400 «Прикладная информатика», инфор­ мационная система это совокупность:

функциональных и информационных процессов конкрет­ ной предметной области;

средств и методов сбора, хранения, анализа, обработки и пе­ редачи информации, зависящих от специфики области при­ менения;

методов управления процессами решения функциональных задач, а также информационными, материальными и де­ нежными потоками в предметной области.

С другой стороны, ориентируясь на различные международ­ ные стандарты, ИС можно определить как совокупность следую­ щих составных частей:

система баз данных (база данных (БД) вместе с системой уп­ равления базами данных (СУБД));

прикладное программное обеспечение;

персонал;

организационно-методическое (нормативное) обеспечение;

технические средства.

Такая ИС функционирует: на конкретном уровне мирового хозяйства, в муниципальных, государственных, негосударствен­ ных и международных организациях различного назначения; в органах управления, министерствах, ведомствах и подчиненных им организациях; в экономических, банковских, налоговых уч­ реждениях; на предприятиях различной организационно-право­ вой формы; в различных отраслях хозяйства страны или региона.

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

По определению Института управления проектами (Project Management Institute, PMI), проект это временное предприя­ тие, осуществляемое с целью создания уникального продукта или услуги. В любой инженерной дисциплине под проектированием обычно понимается некий унифицированный подход, с по-