- •Введение
- •Практическая работа №1. Тема: технология программирования. Основные понятия и подходы.
- •1.1. Назначение технологии программирования
- •1.2. История развития технологии программирования
- •1.2.1. Дореволюционный период
- •1.2.2. «Революция в программировании»
- •1.2.3. Послереволюционный период
- •1.3. Типы программных проектов
- •1.4. Составные части технологии программирования
- •1.5. Проект, продукт, процесс и персонал
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме.
- •Практическая работа №2. Тема: приемы обеспечения технологичности программных продуктов.
- •2.1. Циклический характер разработки
- •2.2. Основные понятия технологии программирования
- •2.2.1. Процессы и модели
- •2.2.2. Фазы и витки
- •2.2.3. Вехи и артефакты
- •2.2.4. Заинтересованные лица и работники
- •2.3. Выявление и анализ требований
- •2.3.1. Требования к программному обеспечению
- •2.3.2. Схема разработки требований
- •2.3.3. Управление требованиями
- •2.4. Архитектурное и детальное проектирование
- •2.4.1. Архитектурное проектирование
- •2.4.2. Детальное проектирование
- •2.5. Реализация и кодирование
- •2.6. Тестирование и верификация
- •2.6.1. Процесс контроля качества
- •2.6.2. Методы «белого ящика» и «черного ящика»
- •2.6.3. Инспектирование и обзоры
- •2.6.4. Цели тестирования
- •2.6.5. Верификация, валидация и системное тестирование
- •2.7. Сопровождение и продолжающаяся разработка
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме.
- •Практическая работа №3. Тема: определение требований к программному обеспечению и исходных данных для его проектирования. Модели процесса разработки.
- •3.1. Водопадные и конвейерные модели
- •3.2. Спиральные и инкрементные модели
- •3.4. Конструирование модели процесса
- •3.4.1. Выявление требований к процессу
- •3.4.2. Используемые фазы, вехи и артефакты
- •3.4.2.1. Фаза «Анализ»
- •3.4.2.2. Фаза «Проектирование»
- •3.4.2.3. Фаза «Реализация»
- •3.4.2.4. Фаза «Стабилизация»
- •3.4.2.5. Фаза «Внедрение»
- •3.4.3. Выбор архитектуры процесса.
- •3.4.3.1. Типы проектов
- •3.4.3.2. Модель процесса сверх легкого проекта
- •3.4.3.3. Модель процесса легкого проекта
- •3.4.3.4. Модель процесса тяжелого проекта
- •3.4.3.5. Модель процесса сверх тяжелого проекта
- •3.4.3.6. Занятость исполнителей
- •3.4.4. Порядок проведения типового проекта
- •3.4.4.1. Этап 1. Подготовка к проекту
- •3.4.4.2. Сбор и анализ предварительной информации
- •3.4.4.3. Формирование бригады проекта
- •3.4.4.4. Подготовка исходных документов
- •3.4.4.5. Этап 2. Работа над проектом
- •3.4.4.6. Процедура выполнения фазы проекта
- •3.4.4.7. Подготовка результирующих материалов вех
- •3.4.4.8. Этап 3. Завершение проекта
- •3.4.4.9. Архивирование результатов работы
- •3.4.4.10. Подведение итогов проекта
- •3.4.5. Документированные процедуры
- •3.4.5.3. Проверка качества материалов
- •3.4.6. Выводы
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме
- •Практическая работа №4. Тема: анализ требований и определение спецификаций программного обеспечения при структурном подходе.
- •4.1. Спецификации программного обеспечения при структурном подходе
- •4.2. Определение понятий и видов требований
- •Виды требований
- •4.1.2. Анализ и сбор требований
- •4.1.3. Инженерия требований по
- •4.2. Трассирование требований
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме
Вопросы для рассмотрения.
1. Что такое «жизненный цикл программы»?
2. Что такое «выпуск»?
3. Имеет ли жизненный цикл программы начало и конец?
4. Каковы характеристики типичной отечественной программирующей организации?
5. Каковы основные действующие лица в жизненном цикле программы?
6. Что является предметом технологии программирования?
7. Как вы понимаете понятие «процесс»?
8. Что такое «модель»?
9. Какие средства используются для описания процесса программирования, и каковы основные структурные составляющие такого описания?
10. Что такое «фаза», чем она характеризуется?
11. Является фаза состоянием процесса или действием?
12. Какие фазы могут быть включены в модель процесса разработки?
13. Что такое «виток»? Имеет ли он что-либо общее с итерацией?
14. Что такое «веха» и «артефакт»? Приведите примеры.
15. Что такое «инструментальная программа»?
16. Что общего и в чем состоит различие в употреблении терминов «работник» и «роль?»
17. Чем характеризуется работник в рамках конкретного проекта?
18. Какова первая фаза жизненного цикла разработки программного обеспечения?
19. Как можно определить понятие «требование»?
20. Является ли утверждение «у обычного человека десять пальцев на руках, поэтому клавиатура мобильного телефона содержит не менее десяти кнопок» требованием?
21. Является ли утверждение «для записи номера телефона используется десять арабских цифр, поэтому клавиатура мобильного телефона содержит не менее десяти кнопок» требованием?
22. Какие решения могут применяться при формулировке требований?
23. Перечислите основные работы, которые выполняются при разработке требований.
24. Возможна ли разработка программного обеспечения без разработки требований? Обоснуйте ответ.
25. Могут ли измениться требования к разрабатываемой программной системе?
26. Что можно отнести к действиям по управлению требованиями?
27. Какими атрибутами можно однозначно идентифицировать требование?
28. Какие состояния требования вы можете назвать?
29. На какие части можно разделить фазу проектирования?
30. Какие типы программных архитектур вы знаете?
31. Чем можно характеризовать фазу детального проектирования?
32. Что такое «реализация» и что такое «кодирование»?
33. Что такое «инженерный анализ программы»?
34. Для чего нужны стандарты кодирования?
35. Что такое тестирование и контроль качества, какие методы и средства контроля вы знаете?
36. Что является целью тестирования?
37. Что такое «верификация», «валидация» и «системное тестирование»?
38. Какие виды системного тестирования вы знаете?
39. Что общего и в чем различие между сопровождением программы и продолжающейся разработкой?
Рекомендуемая литература по теме.
1. Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем. – Спб.: Питер, 2004.
2. Брауде Э. Технология разработки программного обеспечения. – СПб. : Питер, 2004.
3. Брукс-мл. Ф. П. Как проектируются и создаются программные комплексы. М.: Наука, 1975; новое издание перевода: Мифический человеко-месяц. СПб.: СИМВОЛ+, 1999.
4. Орлов С. Технологии разработки программного обеспечения. – СПб.: Питер, 2002.
5. Терехов А.Н. Технология программирования. М.: БИНОМ, 2006.
6. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. СПб : Питер, 2002.