Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
• Управление конфигурацией это управление изменениями в программной системе. Основная роль команды по управлению конфигурацией заключается в правильном внесении изменений в систему.
• В больших проектах для отслеживания различных версий всех проектных документов разрабатывается и используется формальная схема именования документов.
• Для управления конфигурацией необходима база данных конфигураций, где хранится вся информация о проведенных в системе изменениях и запросы на изменения.
• Для управления конфигурацией необходима схема идентификации версий. Версии можно идентифицировать по номерам, на основе значений атрибутов и на основе изменений, внесенных в систему.
• Выходная версия системы включает исполняемый код, файлы данных, конфигурационные файлы и документацию. Управление выходными версиями предусматривает определение даты выпуска системы, подготовку всей информации для распространения системы и документирование каждой выходной версии.
• Сборка системы это процесс компоновки системных компонентов в виде исполняемой программы.
• Для поддержки процесса управления конфигурацией применяются CASE-средства. Они включают средства для управления версиями и изменениями и средства для сборки системы.
Упражнения
29.1. Объясните, почему в системе управления конфигурацией для идентификации документов не используются названия документов. Предложите схему идентификации документов, которую можно было бы использовать во всех проектах вашей организации.
29.2. Используя модель "сущность-связь" или объектно-ориентированный подход (см. главу 7), разработайте модель базы данных конфигураций, которая должна содержать информацию о системных компонентах, их версиях, выходных версиях системы и об изменениях, реализованных в системе. База данных должна обладать следующими функциями:
• извлечение всех версий или отдельной указанной версии компонента;
• извлечение последней по времени изменения версии компонента;
• поиск запросов на изменения, которые были реализованы в указанной версии системы;
• определение версий компонентов, включенных в указанную версию системы;
• извлечение выходной версии системы, определяемой по дате выпуска или по имени заказчика, которому она поставлена.
29.3. С помощью диаграммы потока данных представьте модель управления изменениями, которую можно было бы применить в большой организации, занимающейся разработкой ПО для внешних заказчиков. Запросы на изменения могут поступать как от внешних, так и от внутренних источников.
29.4. Опишите трудности, которые могут встретиться при сборке системы. В частности, рассмотрите проблемы сборки системы на хост-компьютере.
29.5. Со ссылкой на систему сборки объясните, почему иногда необходимо сохранять устаревшие компьютеры, на которых разрабатывались большие программные системы.
29.6. При сборке систем часто возникает сложная проблема, состоящая в том, что имена физических файлов встроены в системный код и используемая файловая структура отличается от файловой структуры на конечной машине, где будет установлена система. Составьте руководство для программистов, которое поможет избежать этой и подобных проблем при сборке систем.
29.7. Приведите пять факторов, которые необходимо учитывать при сборке выходных версий больших программных систем.
29.8. Опишите два способа оптимизации процесса сборки системы из ее компонентов с помощью соответствующих CASE-средств компоновки систем.
* В этот список включены в основном изданные в последние годы книги. Список журнальных публикаций по данной теме слишком обширный, чтобы включить его в качестве дополнения к библиографии автора. Отметим, что не на все приведенные в списке книги редактором сделаны ссылки в тексте, поскольку многие из них дополняют и расширяют материал автора. - Прим. ред.
1*. Андон А.И., Яшунин А.Е., Резниченко А.А. Логические модели интеллектуальных информационных систем. К.: Наук, думка, 1999.
2*. Андон Ф.И., Лаврищева Е.М. Методы инженерии распределенных компьютерных систем. К.: Наук, думка, 1997.
3*. Бабенко Л.П., Лаврiщева К.М. Основи программної шженерiї. Навч. Пociб. К.: Т-во "Знания", 2001.
4*. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2000.
5*. Боггс Ч., Боггс М. UML Rational. - М.: ЛОРИ, 2000.
6*. Вендров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика, 1998.
7*. Вендров A.M. Проектирование программного обеспечения экономических информационных систем. М.: Финансы и статистика, 2000.
8*. Гласе Г. Руководство по надежному программированию. М.: Финансы и статистика, 1982.
9*. Калянов Г.Н. CASE-технодогии. Консалтинг при автоматизации бизнес-процессов, 2-е изд. М.: Горячая линия Телеком, 2000.
10*. Калянов Г.Н. Методы и средства системного структурного анализа и проектирования. М.: НИВЦ МГУ, 1995.
11*. Кантор М. Управление программными проектами. М.: Издат. дом "Вильямс", 2002.
12*. Коллинз Г., Блей Д. Структурные методы разработки систем: от стратегического планирования до тестирования. М.: Финансы и статистика, 1986.
13*. Коуд П., Норт Д., Мейфидд М. Объектные модели. Стратегии, шаблоны и приложения. М.: ЛОРИ, 1999.
14*. Кратчен Ф. Введение в Rational Unified Process, 2-е изд. М.: Издат. дом "Вильямс", 2002.
15*. Кулаков А.Ф. Оценка качества программ ЭВМ. К.: Технiка, 1984.
16*. Лаврищева Е.М., Грищенко В.Н. Сборочное программирование. К.: Наук, думка, 1991.
17*. Ларман К. Применение UML и шаблонов проектирования, 2-е изд. М.: Издат. дом "Вильямc", 2001.
18*. Лефингвел Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. - М.: Издат. дом "Вильямc", 2002.
19*. Липаев В.В. Документирование и управление конфигурацией программных средств. Методы и стандарты. М.: СИНТЕГ, 1998.
20*. Липаев В.В. Надежность программных средств. - М.: СИНТЕГ, 1998.
21*. Липаев В.В. Отладка сложных программ. М.: Энергоатомиздат, 1993.
22*. Липаев В.В. Тестирование программ. М.: Радио и связь, 1986.
23*. Липаев В.В. Управление разработкой программных комплексов. М.: Финансы и статистика, 1993.
24*. Марка Д.А., Мак-Гоуэн К. Методология структурного анализа и проектирования. - М.: Мета Технология, 1993.
25*. Мацяшек Л. А. Анализ требований и разработка информационных систем с использованием UML. - М.: Издат. дом "Вильяме", 2002.
26*. Мороз Г.Б., Лаврищева Е.М. Модели роста надежности программного обеспечения. - К., 1992. - (Препринт / АНУ; Ин-т кибернетики ; 92-38).
27*. Слама Д., Гарбис Дж., Перри Р. Корпоративные системы на основе CORBA. - М.: Издат. дом "Вильямc", 1999.
28*. Спирли Э. Кооперативные хранилища данных. Планирование, разработка, реализация. Т. 1. М.: Издат. дом "Вильямc", 2001.
29*. Тейер Т., Липов М., Нельсон Э. Надежность программного обеспечения. М.: Мир, 1981.
30*. Фаулер М., Скотт К. UML в кратком изложении. Применение стандартного языка объектного моделирования. М.: Мир, 1999.
31*. Фокс Д. Программное обеспечение и его разработка. М.: Мир, 1985.
32*. Шаллоуей А., Тротт Дж. Р. Шаблоны проектирования. Новый подход к объектно-ориентированной разработке. М.: Издат. дом "Вильямc", 2002.
33*. Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. К.: Диалектика, 1993.
34*. Элиенс А. Принципы объектно-ориентированной разработки программ, 2-е изд. М.: Издат. дом "Вильямc", 2002.
35*. Юдицкий С.А., Барон Ю.Л., Жукова Г.Н. Построение и анализ логического портрета сложных систем. М.: ИПУ, 1997.
Содержание
[1] [1.1] Sixth Edition [1.1.1] Ian Sommerville [2] Инженерия программного обеспечения [2.0.0.1] Иан Соммервилл [2.1] Предисловие [2.1.1] Отличия от пятого издания [2.1.2] Круг читателей книги [2.1.3] Использование книги как учебного пособия [2.1.4] Web-страница [2.1.5] Благодарности [3] Часть I. Инженерия программного обеспечения: обзор [3.1] 1. Введение [3.1.1] 1.1. Вопросы и ответы об инженерии программного обеспечения [3.1.2] 1.2. Профессиональные и этические требования к специалистам по программному обеспечению [3.2] 2. Системотехника вычислительных систем [3.2.1] 2.1. Интеграционные свойства систем [3.2.2] 2.2. Система и ее окружение [3.2.3] 2.3. Моделирование систем [3.2.4] 2.4. Процесс создания систем [3.2.5] 2.5. Приобретение систем [3.3] 3. Процесс создания программного обеспечения [3.3.1] 3.1. Модели процесса создания ПО [3.3.2] 3.2. Итерационные модели разработки ПО [3.3.3] 3.3. Спецификация программного обеспечения [3.3.4] 3.4. Проектирование и реализация ПО [3.3.5] 3.5. Аттестация программных систем [3.3.6] 3.6. Эволюция программных систем [3.3.7] 3.7. Автоматизированные средства разработки ПО [3.4] 4. Управление проектами [3.4.1] 4.1. Процессы управления [3.4.2] 4.2. Планирование проекта [3.4.3] 4.3. График работ [3.4.4] 4.4. Управление рисками [4] Часть II. Требования [4.1] 5. Требования к программному обеспечению [4.1.1] 5.1. Функциональные и нефункциональные требования [4.1.2] 5.2. Пользовательские требования [4.1.3] 5.3. Системные требования [4.1.4] 5.4. Документирование системных требований [4.2] 6. Разработка требований [4.2.1] 6.1. Анализ осуществимости [4.2.2] 6.2. Формирование и анализ требований [4.2.3] 6.3. Аттестация требований [4.2.4] 6.4. Управление требованиями [4.3] 7. Модели систем [4.3.1] 7.1. Модели системного окружения [4.3.2] 7.2. Поведенческие модели [4.3.3] 7.3. Модели данных [4.3.4] 7.4. Объектные модели [4.3.5] 7.5. Инструментальные CASE-средства [4.4] 8. Прототипирование программных систем [4.4.1] 8.1. Прототипирование в процессе разработки ПО [4.4.2] 8.2. Технологии быстрого прототипирования [4.4.3] 8.3. Прототипирование пользовательских интерфейсов [4.5] 9. Формальные спецификации ПО [4.5.1] 9.1. Формальные спецификации в процессе разработки ПО [4.5.2] 9.2. Специфицирование интерфейсов [4.5.3] 9.3. Спецификация поведения систем [5] Часть III. Проектирование [5.1] 10. Архитектурное проектирование [5.1.1] 10.1. Структурирование системы [5.1.2] 10.2. Модели управления [5.1.3] 10.3. Модульная декомпозиция [5.1.4] 10.4. Проблемно-зависимые архитектуры [5.2] 11. Архитектура распределенных систем [5.2.1] 11.1. Многопроцессорная архитектура [5.2.2] 11.2. Архитектура клиент/сервер [5.2.3] 11.3. Архитектура распределенных объектов [5.2.4] 11.4. CORBA [5.3] 12. Объектно-ориентированное проектирование [5.3.1] 12.1. Объекты и классы объектов [5.3.2] 12.2. Процесс объектно-ориентированного проектирования [5.3.3] 12.3. Модификация системной архитектуры [5.4] 13. Проектирование систем реального времени [5.4.1] 13.1. Проектирование систем [5.4.2] 13.2. Управляющие программы [5.4.3] 13.3. Системы наблюдения и управления [5.4.4] 13.4. Системы сбора данных [5.5] 14. Проектирование с повторным использованием компонентов [5.5.1] 14.1. Покомпонентная разработка [5.5.2] 14.2. Семейства приложений [5.5.3] 14.3. Проектные паттерны [5.6] 15. Проектирование интерфейса пользователя [5.6.1] 15.1. Принципы проектирования интерфейсов пользователя [5.6.2] 15.2. Взаимодействие с пользователем [5.6.3] 15.3. Представление информации [5.6.4] 15.4. Средства поддержки пользователя [5.6.5] 15.5. Оценивание интерфейса [6] Часть IV. Критические системы [6.1] 16. Надежность систем [6.1.1] 16.1. Критические системы [6.1.2] 16.2. Работоспособность и безотказность [6.1.3] 16.3. Безопасность [6.1.4] 16.4. Защищенность [6.2] 17. Спецификация критических систем [6.2.1] 17.1. Требования безотказности [6.2.2] 17.2. Специфицирование требований безопасности [6.2.3] 17.3. Специфицирование требований защищенности [6.3] 18. Разработка критических систем [6.3.1] 18.1. Минимизация ошибок и сбоев [6.3.2] 18.2. Устойчивость к сбоям [6.3.3] 18.3. Отказоустойчивые архитектуры [6.4] 18.4. Проектирование безопасных систем [7] Часть V. Верификация и аттестация [7.1] 19. Верификация и аттестация ПО [7.1.1] 19.1. Планирование верификации и аттестации [7.1.2] 19.2. Инспектирование программных систем [7.1.3] 19.3. Автоматический статический анализ программ [7.1.4] 19.4. Метод "чистая комната" [7.2] 20. Тестирование программного обеспечения [7.2.1] 20.1. Тестирование дефектов [7.2.2] 20.2. Тестирование сборки [7.2.3] 20.3. Тестирование объектно-ориентированных систем [7.2.4] 20.4. Инструментальные средства тестирования [7.3] 21. Аттестация критических систем [7.3.1] 21.1. Формальные методы и критические системы [7.3.2] 21.2. Аттестация безотказности [7.3.3] 21.3. Гарантии безопасности [7.3.4] 21.4. Оценивание защищенности ПО [7.3.5] КЛЮЧЕВЫЕ ПОНЯТИЯ [8] Часть VI. Управление [8.1] 22. Управление персоналом [8.1.1] 22.1. Пределы мышления [8.1.2] 22.2. Групповая работа [8.1.3] 22.3. Подбор и сохранение персонала [8.1.4] 22.4. Модель оценки уровня развития персонала [8.2] 23. Оценка стоимости программного продукта [8.2.1] 23.1. Производительность [8.2.2] 23.2. Методы оценивания [8.2.3] 23.3. Алгоритмическое моделирование стоимости [8.2.4] 23.4. Продолжительность проекта и наем персонала [8.3] 24. Управление качеством [8.3.1] 24.1. Обеспечение качества и стандарты [8.3.2] 24.2. Планирование качества [8.3.3] 24.3. Контроль качества [8.3.4] 24.4. Измерение показателей ПО [8.4] 25. Совершенствование производства ПО [8.4.1] 25.1. Качество продукта и производства [8.4.2] 25.2. Анализ и моделирование производства [8.4.3] 25.3. Измерение производственного процесса [8.4.4] 25.4. Модель оценки уровня развития [8.4.5] 25.5. Классификация процессов совершенствования [9] Часть VII. Эволюция программного обеспечения [9.1] 26. Наследуемые системы [9.1.1] 26.1. Структуры наследуемых систем [9.1.2] 26.2. Проектирование наследуемых систем [9.1.3] 26.3. Оценивание наследуемых систем [9.2] 27. Модернизация программного обеспечения [9.2.1] 27.1. Динамика развития программ [9.2.2] 27.2. Сопровождение программного обеспечения [9.2.3] 27.3. Эволюция системной архитектуры [9.3] 28. Реинжениринг программного обеспечения [9.3.1] 28.1. Преобразование исходного кода программ [9.3.2] 28.2. Анализ систем [9.3.3] 28.3. Совершенствование структуры программ [9.3.4] 28.4. Создание программных модулей [9.3.5] 28.5. Изменение данных [9.4] 29. Управление конфигурациями [9.4.1] 29.1. Планирование управления конфигурацией [9.4.2] 29.2. Управление изменениями [9.4.3] 29.3. Управление версиями и выпусками [9.4.4] 29.4. Сборка системы [9.4.5] 29.5. CASE-средства для управления конфигурацией [10] КЛЮЧЕВЫЕ ПОНЯТИЯ [10.1] Литература [10.1.1] Литература, добавленная при переводе* |
Научно-популярное издание
Иан Соммервилл
Инженерия программного обеспечения,
6-е издание
Литературный редактор Т.П. Кайгородова
Верстка О. В. Мишутина
Художественный редактор Е.П. Дынник
Корректоры Л.А. Гордиенко, Т.А. Корзун
Издательский дом "Вильямc".
101509, Москва, ул. Лесная, д. 43, стр. 624.
Изд. лиц. ЛР № 090230 от 23.06.99
Госкомитета РФ по печати.
Подписано в печать 21.08.02. Формат 70x100/16.
Гарнитура Times. Печать офсетная.
Усл. печ. л. 56,76. Уч.-изд. л. 44,00.
Тираж 3500 экз. Заказ № 1117.
Отпечатано с диапозитивов в ФГУП "Печатный двор"
Министерства РФ по делам печати,
телерадиовещания и средств массовых коммуникаций.
197110, Санкт-Петербург, Чкаловский пр., 15.
PAGE 59