- •Оглавление
- •Глава 1. Жизненный цикл программного обеспечения ……………………………………………43
- •Глава 2. Методические аспекты
- •Глава 3. Моделирование бизнес-процессов
- •Глава 4. Анализ и проектирование
- •Глава 5. Технологии создания программного
- •Глава 6. Оценка трудоемкости создания
- •Глава 7. Особенности современных проектов ........527
- •Предисловие
- •Введение
- •Глава 1 жизненный цикл программного обеспечения
- •Нормативно-методическое обеспечение создания по
- •Стандарт жизненного цикла по
- •Основные процессы жц по
- •Вспомогательные процессы жизненного цикла по
- •Организационные процессы жизненного цикла по
- •Взаимосвязь между процессами жц по
- •Модели жизненного цикла по
- •Каскадная модель жц
- •Итерационная модель жизненного цикла
- •Методика spmn
- •Пример процесса «управление требованиями»
- •Пример процесса «управление конфигурацией по»
- •Общие принципы проектирования систем
- •Визуальное моделирование
- •Структурные методы анализа и проектирования по
- •Метод функционального моделирования
- •Описание типов связей
- •Моделирования процессов idef3
- •Типы связей idef3
- •Типы соединений
- •Моделирование потоков данных
- •Количественный анализ диаграмм
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Моделирование данных
- •Объектно-ориентированные методы анализа и проектирования по
- •Основные принципы построения объектной модели
- •Основные элементы объектной модели
- •Значения мощности
- •Унифицированный язык моделирования uml
- •Диаграммы вариантов использования
- •Диаграммы взаимодействия
- •Диаграммы классов
- •Диаграммы состояний
- •Диаграммы деятельности
- •Диаграммы компонентов
- •Диаграммы размещения
- •Механизмы расширения uml
- •Количественный анализ диаграмм uml
- •Основные элементы языка uml
- •Основные типы связей языка uml
- •Диапазоны оценок для диаграмм uml
- •Образцы
- •Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов
- •Структурный (процессный) подход к моделированию бизнес-процессов
- •Принципы процессного подхода
- •Применение диаграмм потоков данных
- •Система моделирования aris
- •Метод ericsson-penker21
- •Пример использвания процессного подхода
- •История болезни пациента
- •Спецификация структур данных
- •Построение диаграмм потоков данных нулевого и последующих уровней
- •Объектно-ориентированный подход к моделированию бизнес-процессов
- •Методика моделирования
- •Пример использования объектно-ориентированного подхода
- •Пример спецификации требований к программному обеспечению
- •Пример структурного проектирования по
- •Построение диаграмм системных процессов и диаграмм последовательностей экранных форм
- •Объектно-ориентированный анализ
- •Архитектурный анализ
- •Анализ вариантов использования
- •Объектно-ориентированное проектирование
- •Проектирование архитектуры системы
- •Проектирование элементов системы
- •Глава 5 технологии создания программного обеспечения
- •Определение технологии
- •Общие требования, предъявляемые
- •Внедрение тс по в организации
- •Общие сведения
- •Определение потребностей в тс по
- •Оценка и выбор тс по
- •Критерии оценки и выбора тс по
- •Выполнение пилотного проекта
- •Практическое внедрение тс по
- •Примеры тс по
- •Технология rup (rational unified process)
- •Технология oracle
- •Технология borland
- •Технология computer associates
- •Глава 6 оценка трудоемкости создания программного обеспечения
- •Методы оценки и их классификация
- •Методика оценки трудоемкости разработки по на основе функциональных точек
- •Определение функциональных типов
- •Определение количества и сложности функциональных типов по данным
- •Сложность ilf и eif
- •Определение количества и сложности транзакционных функциональных типов
- •Подсчет количества функциональных точек
- •Зависимость количества fp от сложности функционального типа
- •Коммуникации данных
- •Распределенная обработка данных
- •Сложность ei
- •Сложность ео
- •Производительность
- •Эксплуатационные ограничения
- •Частота транзакций
- •Ввод данных в режиме «онлайн»
- •Эффективность работы конечных пользователей1
- •Онлайновое обновление
- •Сложная обработка31
- •Повторное использование
- •Простота установки
- •Простота эксплуатации
- •Количество возможных установок на различных платформах
- •Гибкость32
- •Оценка трудоемкости разработки
- •Размер программного обеспечения в fp и loc
- •Распределение временных затрат по стадиям для маленьких и больших проектов
- •Статистические данные
- •Статистические (регрессионные) модели
- •Группа процессов
- •Определение весовых показателей вариантов использования
- •Определение технической сложности проекта
- •Определение уровня квалификации разработчиков
- •Оценка трудоемкости проекта
- •Методы, основанные на экспертных оценках
- •Метод дельфи
- •Метод декомпозиции работ
- •Средства оценки трудоемкости
- •Планирование итерационного процесса создания по
- •Глава 7 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Список основных сокращений
АС — автоматизированная система
БД - база данных
ГНИ — Государственная налоговая инспекция
ЕСПД — Единая система программной документации
ЖЦ - жизненный цикл
ИС - информационная система
МДР - метод декомпозиции работ
НМО — нормативно-методическое обеспечение
ООП — объектно-ориентированный подход
ПК — персональный компьютер
ПО — программное обеспечение
СУБД — система управления базами данных
ТС ПО — технология создания программного обеспечения
AFP (Adjusted Function Points) - итоговая оценка количества функциональных точек
API (Application Programming Interface) — интерфейс прикладного программирования
ARIS (Architecture of Integrated Information System) - архитектура интегрированной информационной системы
ATM (Automated Teller Machine) - банкомат
CASE (Computer Aided Software Engineering) - автоматизированная разработка программного обеспечения
СВР (Critical Best Practices) - критически важные практические навыки
CDM (Custom Development Method) — метод разработки приложений пользователя
СММ (Capability Maturity Model) — модель оценки зрелости технологических процессов в организации ч
CMMI (Capability Maturity Model Integrated) - интеграционная версия модели СММ
СОСОМО (Constructive COst Model) — конструктивная модель стоимости
DET (Data Element Type) — тип элементарных данных
DFD (Data Flow Diagram) — диаграмма потоков данных
еЕРС (extended Event Driven Process Chain) - расширенная модель цепочки процессов, управляемых событиями
EF (Environmental Factor) - уровень квалификации разработчиков
EI (External Input) - входной элемент приложения
EIF (External Interface File) — внешний интерфейсный файл
ЕО (External Output) - выходной элемент приложения
EQ (External Query) — внешний запрос
ERM (Entity-Relationship Model) - модель «сущность-связь»
FP (Function Point) - функциональная точка
FTR (File Type Referenced) - файл типа ссылки
GSC (General System Characteristics) — общие характеристики системы
GUI (Graphical User Interface) — графический интерфейс пользователя
JAD (Joint Application Development) — совместная разработка приложений
JDBC (Java Database Connectivity) - интерфейс Java для реляционных баз данных
ICAM (Integrated Computer Aided Manufacturing) - интегрированная компьютеризация производства
IDEF (Icam DEFinition) — методология моделирования программы ICAM
IEC (International Electrotechnical Commission) - Международная комиссия по электротехнике
IEEE (Institute of Electrical and Electronics Engineers) - Институт инженеров по электротехнике и электронике
IFPUG (International Function Point User Group) - Международная организация по стандартизации методов оценки ПО
ILF (Internal Logical File) - внутренний логический файл
ISO (International Organization for Standardization) - Международная организация по стандартизации
КРА (Key Process Area) — основная группа процессов
LOC (Lines of Code) — количество строк кода
MSF (Microsoft Solutions Framework) — технология компании Microsoft
NATO (North-Atlantic Treaty Organization) - НАТО, Североатлантический союз
OCL (Object Constraint Language) - язык объектных ограничений
OMG (Object Management Group) - Организация по стандартизации в области объектно-ориентированных методов и технологий
ОМТ (Object Modeling Technique) - метод объектного моделирования
OOSE (Object-Oriented Software Engineering) - объектно-ориентированная разработка программного обеспечения
PDSA (Plan-Do-Study-Act) - планирование, реализация, изучение и действие
PERT (Program Evaluation-and-Review Technique) - метод оценки и пересмотра планов
PIN (Personal Identification Number) - личный код в банковской системе
PMI (Project Management Institute) - Институт управления проектами
RAD (Rapid Application Development) - быстрая разработка приложений
RET (Record Element Type) — элементарная запись RPW (Rational Process Workbench) - набор инструментов и шаблонов для настройки и публикации Web-сайтов на основе RUP
RUP (Rational Unified Process) - унифицированный процесс SADT (Structured Analysis and Design Technique) - метод структурного анализа и проектирования
SEI (Software Engineering Institute) - Институт программной инженерии
SEPG (Software Engineering Process Group) - группа по разработке процессов создания ПО
SLOC (Source Lines of Code) - количество строк исходного кода
SoDA (Software Document Automation) — автоматизированное документирование ПО
SPMN (Software Program Managers Network) - сеть Министерства обороны США для менеджеров проектов
SPR (Software Productivity Research) — название компании
SQL (Structured Query Language) - структурированный язык запросов
TCP/IP (Transmission Control Protocol/Internet Protocol) - протокол управления передачей/протокол Интернет
TCF (Technical Complexity Factor) — техническая сложность проекта
UCP (Use Case Points) — количество вариантов использования
UFP (Unadjusted Function Points) — общее количество функциональных точек без учета поправочного коэффициента
UML (Unified Modeling Language) — унифицированный язык моделирования
UOW (Unit of Work) - единица работы
UUCP (Unadjusted Use Case Points) - количество вариантов использования без учета поправочного коэффициента
VAF (Value Adjustment Factor) - поправочный коэффициент
ХР (Extreme Programming) — экстремальное программирование
SOFTWARE DESIGN
Second Edition A. Vendrov
Moscow, «Finansy i statistika» Publishing House, 2004
The textbook examines «state-of-the-art» in software design methods and tools. It bases on the international standards, first of all on ISO 12207 «Software life cycle processes*. Special attention is paid to the structural and object-oriented approaches to the business modeling, software requirements specification, analysis and design. Key features;
Application of a standard modeling language UML.
Practical introduction to object-oriented analysis and design using the Unified Software Development Process and showing how it can be applied in a relatively simple case study.
The structure and emphasis in this book are based on years of experience in training and teaching hundreds of students and software developers.
Intended Audience: students in computer science or software engineering courses, system analysts, software developers and project managers.
About the author:
Alexander Vendrov is a consultant and lecturer in Moscow State University. He is known as an expert in software engineering methods and tools, including CASE, structured and object-oriented analysis and design as well as UML modeling.
He is Ph.D. (technical sciences) the author of monograph «CASE-technology* (1998), textbooks «Software Design* (2000), «A practical work on Software Design* (2002), and coauthor of «Database and knowledge base management systems* (1991).
He is also the interpreter of two books: «UML Distilled* by M. Fowler (1997) and «Death March* by Ed. Yourdon (1997, 2003), editor of some well-known books (Russian versions), including «Mastering UML with Rational Rose* by W Boggs, M. Boggs (1999), «Writing Effective Use Cases* by A. Cockburn (2000), «Software Project Management. A Unified Framework* by W Royce (1998) and «Agile Software Development* by A. Cockburn (2001), and technical editor of «UML: A Beginner's Guide* (J. T. Roff, McGraw-Hill/Osborne, 2003).
1 Брукс Ф. Мифический человеко-месяц, или как создаются программные системы: Пер. с англ. — СПб.: Символ-Плюс, 1999.
2 Йордон Эд. Путь камикадзе.: Пер; с англ. - М.: ЛОРИ, 2001
3 Коберн А. Быстрая разработка программного обеспечения: Пер. с англ. - М.: ЛОРИ, 2002.
4 Бек К. Экстремальное программирование: Пер. с англ. — СПб.: Питер, 2002.
51Более подробно нормативно-методические документы (стандарты) рассматриваются в учебном пособии: Благодатских В.А., Волнин В.А., Поска-калов К.Ф. Стандартизация разработки программных средств. — М.: Финансы и статистика, 2003.
6 IEEE Std 610.12 - 1990. IEEE Standard Glossary of Software Engineering Terminology.
7 Боэм Б. У. Инженерное проектирование программного обеспечения: Пер. с англ. — М.: Радио и связь, 1985
8 Оценка и аттестация зрелости процессов создания и сопровождения программных средств и информационных систем (ISO/IEC TR 15504-СММ) / Пер. с англ. А.С. Агапова и др. — М.: Книга и бизнес, 2001.
9 Соммервилл И. Инженерия программного обеспечения. — 6-е изд.: Пер. с англ. — М.: Вильяме, 2002
101Леффингуэлл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход: Пер. с англ. — М.: Вильяме, 2002.
11 Липаев В. В. Документирование и управление конфигурацией программных средств. Методы и стандарты. — М.: Синтег, 1998.
12Каляное Т.Н. Консалтинг при автоматизации предприятий Синтег. — М., 1997. (Серия «Информатизация России на пороге XXI века»).
13 Марка Д.А., МакГоуэн К. Методология структурного анализа и проектирования. — М.: МетаТехнология, 1993
14 Черемных СВ., Семенов И.О., Ручкин B.C. Структурный анализ систем: IDEF-технологии. — М.: Финансы и статистика, 2001.
15 Калашян А.Н., Каляное Г.Н. Структурные модели бизнеса: DFD-технологии. — М.: Финансы и статистика, 2003
16 Калашян А.Н., Каляное Т.Н. Структурные модели бизнеса: DFD-технологии. — М.: Финансы и статистика, 2003
17 Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. - 2-е изд.: Пер. с англ. - М.: Бином. - СПб.: Невский диалект, 1999.
18 Фаулер М., Скотт К. UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. — М.: Мир, 1999.
19 Коберн А. Современные методы описания функциональных требований к системам.: Пер. с англ. - М.: ЛОРИ, 2002
20 Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес: Пер. с англ. — СПб.: Питер, 2001.
21 Eriksson, Hans-Erik and Penker, Magnus «Business Modeling with UML: Business Patterns at work». Wiley Computer Publishing, 2000.
22 Примеры моделей, связанных с применением технологии Rational lliilliiil Process, здесь и далее приводятся в среде CASE-средства Rational
23 Методической основой данного подраздела является технология Rational Unified Process.
24 Коберн А. Современные методы описания функциональных требований к системам: Пер. с англ. — М.: ЛОРИ, 2002.
25 Методической основой данного и следующего подраздела является технология Rational Unified Process.
26 Ларман К. Применение UML и шаблонов проектирования. - 2-е изд.: Пер. с англ. — М.: Вильяме, 2002.
27Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес: Пер. с англ. -СПб.: Питер, 2001
28 Буч Г. и др. Язык UML. Руководство пользователя.: Пер. с англ. / Г. Буч, Дж. Рамбо, А. Джекобсон. - М.: ДМК, 2000.
29 Палмер СР., Фелсинг Дж.М. Практическое руководство по функционально-ориентированной разработке ПО: Пер. с англ. - М.: Вильяме, 2002;
30 Маклаков СВ. Создание информационных систем с AllFusion Modeling Suite. - М.: Диалог-МИФИ, 2003.
1 Эффективность работы конечных пользователей определяется наличием следующих функциональных возможностей.
1
31 Сложная обработка характеризуется наличием у приложения следующих функциональных возможностей:
32 Гибкость характеризуется наличием у приложения следующих возможностей:
33 Putnam L.H. A General Empirical Solution to the Macro Software Sizing and Estimating Problem // IEEE Transactions on Software Engineering, 1978, July. — P. 345-361.
34 Боэм Б.У. Инженерное проектирование программного обеспечения: Пер. с англ. — М.: Радио и связь, 1985.
35 Более подробное описание модели СОСОМО II (на русском языке) приведено в книгах: Орлов С.А. Технологии разработки программного обеспечения. — СПб.: Питер, 2002; Фатрелл Р., Шафер Д., Шафер Л. Управление программными проектами: достижение оптимального качества при минимуме затрат: Пер. с англ. — М.: Вильяме, 2003.
36 Йордон Эд. Путь камикадзе: Пер. с англ. — М.: ЛОРИ, 2001 (в настоящее время готовится перевод второго издания).
37 Tarek Abdel-Hamid, Stuart E. Madnick. Software Project Dynamics: An Integrated Approach. Englewood Cliffs, NJ: Prentice Hail, 1991.
