n1
.pdfУДК [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), проект — это временное предприя тие, осуществляемое с целью создания уникального продукта или услуги. В любой инженерной дисциплине под проектированием обычно понимается некий унифицированный подход, с по-