Основные процессы ЖЦ ПО

Очевидно, что для успешного решения задач связанных с созданием ПО наиболее важными являются процессы, относящиеся к основной группе его ЖЦ (приобретение, поставка, разработка, эксплуатация, сопровождение), а центральным - процесс разработки ПО, который включает в себя, как правило:

· анализ,

· проектирование и

· реализацию (программирование).

При этом необходимо понимать, что процесс разработки программного обеспечения не может быть подобен процессу приготовления пищи по поваренной книге. Однако на основании анализа существующих методов этого вида деятельности могут быть даны определенные общие методические рекомендации.

Так, например, программы небольшого и среднего размера (несколько тысяч строк) создаются, как правило, в два этапа. Сначала необходимо точно установить, что надо сделать, продумать соответствующий алгоритм, определить структуры данных, объекты и взаимодействие между ними (это этап системного анализа), а затем выразить этот алгоритм в виде, понятном машине (этап кодирования). Совокупность этих двух этапов можно назвать сокращенным периодом разработки ПО

Если же разрабатывается крупный проект объемом от десятков тысяч до миллионов строк кода, тогда приходится применять специальные методологии проектирования, охватывающие уже полный (классический) период разработки ПО, который предполагает реализацию следующих работ (рис.1 17:

1. Формируются и анализируются требования к проекту. Этот этап самый важный, так как неправильное формулирование требований приводит к выполнению ненужной работы, а недооценка сложности вызывает перерасход средств и времени. Сегодня около 60 % крупных проектов завершаются неудачей именно из-за ошибок на стадии подготовки требований.

На основе требований по различным методикам определяется примерный объем проекта и его трудоемкость, рассчитываются будущие трудозатраты и определяется его стоимость. Так как требования к проекту во время работы над ним могут уточняться и меняться, а выполнение требований надо отслеживать, применяются специальные программы для управления требованиями.

Рис 1.17. Процессы, работы и подходы к жизненному циклу программных средств

Часто заказчик не в состоянии точно выразить, чего он хочет, и задача специалистов по системному анализу — помочь ему выразить свои требования в виде, пригодном для формализации.

После согласования требований подписывается контракт на разработку ПО. В дальнейшем любые отклонения от сформулированных требований к продукту (как со стороны заказчика, так и со стороны исполнителя) рассматриваются как нарушение контракта.

Каждый этап требует от заказчика вложения собственных трудозатрат и привлечения высокопрофессиональных специалистов, поэтому он обязательно должен оплачиваться — бесплатно выполнять сложную работу никто не будет. Однако, хотя первый этап самый важный, заказчик редко понимает эту важность и не готов платить достаточно большие суммы. Примерный объем работ на этом этапе — 5 % от объема всего проекта.

2. Начинается предпроектное обследование объекта автоматизации. С помощью CASE-средств составляется формальная модель его работы, модель базы данных, объектов и потоков информации. На этом этапе привлекаются специалисты заказчика и эксперты, хорошо знакомые с предметной областью, для которой составляется задача.

Примерный объем работ второго этапа — 10 % от общего.

3. На основе формальной модели составляется подробное техническое задание для программистов, спецификации отдельных модулей, таблицы баз данных, другая сопроводительная документация. Готовится подробный календарный план работ, где указываются все сроки, конкретные исполнители и выполняемые объемы работ (понедельно, помесячно). Для составления планов работ имеется немало хороших программ, ориентированных как на небольшие группы программистов, так и на коллективы из сотен сотрудников, выполняющих тысячи различных работ в рамках общего плана.

Примерный объем работ третьего этапа — 10 % от общего.

4. Выбирается технология разработки ПО и начинается разработка (кодирование). Крупные компании имеют собственные технологии, ориентированные на конкретные задачи (как правило, это задачи автоматизации предприятий), однако все технологии имеют общие черты и более-менее серьезно различающихся известно около двух десятков.

Достаточно популярна технология итерационного проектирования, ориентированная на использование CASE-средств и систем автоматической генерации исходных текстов на основе созданной формальной модели. Такой подход хорош тем, что позволяет быстро создать первый работающий прототип программы, когда еще требования к ней окончательно не определены, а в дальнейшем, на следующих итерациях (их обычно требуется от двух до пяти), постепенно детализировать и реализовывать конкретные возможности, пропущенные по каким-то причинам на предыдущей итерации. Эта технология не-много отличается от нисходящего проектирования тем, что применяется, когда окончательные требования неизвестны и могут меняться, а основные работающее функции нужны заказчику как можно быстрее (заказчик чаще хочет получить приложение, законченное на 80 %, сегодня, чем законченное на 100 % завтра). При нисходящем проектировании основная структура задачи должна быть определена заранее.

Одним из самых передовых подходов, несомненно, является методология объектного проектирования. Однако надо иметь в виду, что он, безусловно, подразумевает высокую квалификацию всех исполнителей без исключения и поэтому распространен пока еще не очень широко.

Принятие решения о выборе подходящей технологии — очень ответственный процесс. Человек, принимающий такое решение, должен обладать богатым опытом и знаниями в области создания ПО. Многое зависит от инфраструктуры заказчика, от того — какие у него компьютеры, операционные системы, каковы их ресурсы. В соответствии с этим выбираются и средства разработки. Иногда бывает, что лучше всего подходит, например, итерационная методология, но для операционной системы заказчика нет хорошей CASE-среды, и приходится остановиться на менее эффективной технологии.

В процессе разработки необходимо:

· непрерывно поддерживать обратную связь с заказчиком, чтобы следить за правильностью реализации требований;

· непрерывно контролировать ход работ в соответствии с планом и при отклонениях от него принимать экстренные меры.

Примерный объем этих работ — 10 % от общего объема проекта.

5. Когда программа закончена (готова работоспособная альфа-версия), она поступает к тестерам компании-исполнителя, которые начинают проверять ее на наличие ошибок и сообщать о найденных ошибках программистам. Анализируется, в частности, устойчивость работы программы при вводе недопустимых или критических значений, при отсутствии информации, при неверных действиях, при сбоях аппаратуры, в стрессовых режимах и т. п.

Когда число ошибок, выявляемых за определенный срок (неделя, месяц), снижается ниже экспериментально подобранного уровня (на основе аналогичных проектов), начинается бета-тестирование программы у заказчика. К такому тестированию привлекается максимально возможное число сотрудников, и программа уже начинает частично функционировать в рабочем режиме,

Примерный объем этих работ — 10 % от общего объема проекта.

6. После того как заказчик удовлетворен качеством продукта, начинается его внедрение — подготовка к окончательному запуску в эксплуатацию. Если приложение многопользовательское, нередко требуется сформировать и настроить локальную сеть, установить серверы, инсталлировать вспомогательные программы. Очень много проблем возникает при переходе со старых программ (например, бухгалтерского учета, расчета зарплаты, работы с персоналом), которые создавались разными сотрудниками и покупались в разных фирмах (так называемая лоскутная автоматизация), к новой интегрированной системе. Необходимо выверить, ввести или перенести множество жизненно важной информации: всю бухгалтерскую и финансовую отчетность, данные о хранимом оборудовании и множество других сведений. Этот этап самый трудоемкий и «нудный» и занимает порой до 90 % времени всего проекта. Для систем автоматизации больших предприятий он растягивается на годы.

7. После того как новая система готова к работе, сотрудников организации заказчика нужно обучить работе с этой системой, потому что книг о ней не написано, да и содержится в такой системе, внедренной на конкретном предприятии, множество нюансов, связанных со спецификой работы.

Примерный объем трудозатрат на обучение — 5 % от общего объема проекта.

8. После того как заказчик подписывает акт приемки, проект считается завершенным, но связь с исполнителем не теряется. Особенно в первое время у пользователей системы постоянно будет возникать множество вопросов по работе с ней. Неизбежно и возникновение ошибок, которые требуется устранять.

Кроме того, исполнитель может выпускать новые версии системы, и старая система потребует обновления. Сотрудничество с заказчиком по обслуживанию системы называется сопровождением. Оно бесплатно на определенный гарантийный срок (например, год).

Реально объем непосредственного программирования и отладки (тестирования) в цикле разработки невелик. Он составляет 10-20 % от общего объема работ.

В общем же случае, с точки зрения системного анализа, описанная совокупность операций основной группы его ЖЦ, которая непосредственно касается процесса разработки ПО, независимо от его назначения может быть разложена также и на такие этапы как:

· постановка задачи;

· ее формализация;

· алгоритмизация (разработка алгоритма решения задачи);

· программирование (разработка машинной программы задачи на языке программирования);

· составление описания задачи и

· ее внедрение.

Поэтому независимо от статуса специалиста, в случае необходимости разработки оригинальной прикладной задачи для своей предметной области любой из них должен будет принимать участие в постановке задачи, отвечая на вопрос, какие цели преследует ее решение и что должно быть на выходе. Затем, на этапе формализации, он должен показать, какими методами задача может быть решена и какие функциональные зависимости при этом предполагается использовать, а на этапе алгоритмизации – указать предполагаемую последовательность ее решения и заказать желательный порядок выдачи результатов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: