
- •Технология программирования
- •Технология программирования
- •Оглавление
- •§1. Классификация и эволюция программного обеспечения
- •§2. Модульное и объектно-ориентированное программирование
- •Основные понятия ооп
- •Составные части объектного подхода
- •Инкапсуляция. Свойства
- •Наследование. Методы
- •Полиморфизм
- •§3. Визуальная среда программирования Структура проекта Delphi
- •Библиотека компонентов Delphi
- •Класс tButton (кнопки)
- •Класс tShape (фигуры)
- •§4. Основные типы данных в языке Паскаль
- •Класс tLabel (надписи)
- •Класс tEdit
- •Класс tMemo
- •Класс tMainMenu
- •Стандартные диалоги
- •Классы tOpenDialog и tSaveDialog
- •Класс tFontDialog
- •Инструкция case
- •§6. Программирование циклических алгоритмов
- •Цикл с параметром. Инструкция for
- •Цикл с предусловием. Инструкция while
- •Цикл с постусловием. Инструкция repeat … until
- •§7. Простейшие вычислительные методы
- •Метод прямоугольников
- •Метод Монте-Карло
- •Метод деления пополам
- •§8. Процедуры и функции
- •§9. Одномерные массивы
- •Класс tListBox
- •Класс tComboBox
- •§10. Двумерные и многомерные массивы
- •Класс tStringGrid
- •Алгоритмы поиска наименьшего и наибольшего элемента
- •§11. Алгоритмы поиска и сортировки. Понятие вычислительной сложности алгоритма
- •Алгоритм простого перебора
- •Алгоритм бинарного поиска
- •Алгоритм сортировки методом «пузырька»
- •Алгоритм сортировки включением
- •Понятие вычислительной сложности алгоритма
- •§12. Обработка исключительных ситуаций
- •§13. Программирование процессов реального времени
- •Класс tTimer
- •§14. Графическая подсистема Delphi Класс tImage
- •Класс tCanvas
- •§15. Динамическое создание компонентов. Конструкторы и деструкторы
- •§16. Тестирование и отладка программ
- •Методы тестирования программ
- •Средства отладки программ в Delphi
- •Трассировка программы
- •Точки останова программы
- •Наблюдение значений переменных
- •§17. Жизненный цикл программного обеспечения
- •Последовательный (каскадный) тип
- •Эволюционный (спиральный) тип
- •Библиографический список
- •Технология программирования
- •Редактор с.В.Пилюгина
- •620034, Екатеринбург, ул. Колмогорова, 66, УрГупс Редакционно-издательский отдел
§17. Жизненный цикл программного обеспечения
В заключение обсудим некоторые вопросы, связанные с процессом разработки крупных программных комплексов.
Для быстрой и эффективной разработки программных средств с минимальным браком требуется привлечь достаточно квалифицированную рабочую силу, выбрать правильные инструменты и определить верное направление работы. Чтобы справиться с поставленной задачей и в конечном итоге получить прибыль, принимая во внимание затраты на обеспечение процесса разработки и внедрения системы, необходимо, чтобы процесс разработки приложения был тщательно продуман и мог быть адаптирован к изменяющимся потребностям вашего бизнеса и технологии.
По способу производства программное обеспечение подразделяется на заказное и тиражное. Соответственно в значительной степени различаются и технологические процессы его производства. Технология создания заказных продуктов на сегодняшний день более разработана, о ней и пойдет речь.
Вначале ответим на вопросы, связанные с составом команды разработчиков и распределением обязанностей внутри этой команды. Для разработки ПО так или иначе организуется некоторый коллектив. Это может быть подразделение компании или фирмы, работающей в этом сегменте рынка, или группа единомышленников, только начинающая свою деятельность в области разработки, это может быть просто единственный программист. Такую рабочую группу мы будем называть группой проекта. Давайте определим функциональные обязанности участников этой группы. В состав группы обычно входят следующие специалисты:
руководитель проекта координирует все действия, организует внешнее и внутреннее взаимодействия группы проекта, обеспечивает соблюдение сроков разработки и качество разрабатываемого ПО и его соответствие требованиям заказчика, несет полную ответственность за результат работ по проекту;
системный аналитик анализирует требования к системе, разрабатывает концепцию и логику работы системы, составляет технические задания или подобные документы, несет ответственность за соответствие предлагаемых решений требованиям заказчика;
разработчики реализуют принятые технические задания, отвечают за качество и сроки разрабатываемого кода, за его соответствие техническим заданиям;
дизайнер участвует в разработке концепции системы, разрабатывает ее пользовательский интерфейс и принимает участие в его реализации, несет ответственность за соблюдение фирменного стиля и требований к реализации пользовательского интерфейса;
тестер разрабатывает программу тестирования, осуществляет ее и несет ответственность за полноту тестирования готовых модулей и системы в целом;
технический писатель разрабатывает документацию на проект, несет ответственность за полноту и правильность описания.
Оговорим ряд замечаний. Первое: дизайнер, тестер и технический писатель могут в группу постоянно не входить, а работать над несколькими проектами и привлекаться к работе по мере необходимости. Второе: в подразделение по разработке ПО, состоящее из нескольких проектных групп, может входить технолог, который разрабатывает, внедряет и поддерживает технологию производства программных продуктов. Третье: для сложных проектов, связанных с активным применением сетевых решений и Internet технологий в группу проекта может подключаться специалист по использованию сетей. И, наконец, последнее, наш состав группы проекта включает в себя только непосредственную команду разработчиков проекта, но кроме них над проектом могут работать и другие специалисты компании: менеджеры, маркетологи и др. Теперь перейдем непосредственно к самому процессу разработки.
Одним из основополагающих понятий технологии разработки программного обеспечения является понятие жизненного цикла (ЖЦ). Под жизненным циклом ПО понимают совокупность процессов, связанных с последовательным изменением состояния ПО от формирования исходных требований к нему до окончания его эксплуатации. Жизненный цикл состоит из стадий - логически завершенных частей ЖЦ. Стадии характеризуются состоянием ПО, видом предусмотренных работ и их результатом. Выделяют несколько основных типов ЖЦ, различающихся порядком следования стадий и взаимосвязями между ними.
При создании заказного ПО выделяют пять основных стадий ЖЦ:
анализ и формализация требований заказчика;
проектирование;
реализация;
тестирование;
внедрение и эксплуатация.
Для тиражного ПО стадии будут отличаться от перечисленных.
Теперь об обещанных типах ЖЦ. В литературе описано множество типов жизненных циклов. Среди всего этого разнообразия можно выделить два основных.