Материал: Основы разработки программных средств в среде Delphi. Романов А.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Отметим, что разработка информационных систем предполагает изучение работы с СУБД, что является достаточно обширной и сложной темой, достойной самостоятельного изложения в рамках соответствующего учебного курса [6].

1.2.3. Основные фазы проектирования

Каждый проект, независимо от сложности и объема работ, проходит в своем развитии определенные фазы, стадии, этапы – от возникновения идеи до полного завершения проекта [8]. Выделим в общем виде следующие фазы развития прикладного расчетного и информационного ПО:

  • формирование концепции;

  • разработка технического задания;

  • проектирование;

  • разработка или изготовление;

  • ввод программных средств в эксплуатацию.

Начальные фазы проекта, как правило, имеют существенное влияние на достигаемый результат. В них принимаются основные проектные решения. По экспертным оценкам специалистов, обычно 30 % вклада в конечный результат проекта вносят фазы концепции и технического задания; по 20 % – фазы проектирования и разработки, 30 % – фаза завершения проекта. Вторую и частично третью фазы принято называть фазами системного проектирования, а последние две (иногда совместно с фазой проектирования) – фазами реализации.

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

  • формирование идеи, постановку целей;

  • формирование ключевой команды проекта;

  • изучение мотивации и требований заказчика и других участников;

  • сбор исходных данных и анализ существующего состояния;

  • определение основных требований и ограничений, требуемых материальных, финансовых и трудовых ресурсов;

  • сравнительную оценку альтернативных вариантов решения задачи;

  • представление предложений, их экспертизу и утверждение.

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

  • разработка основного содержания и базовой структуры проекта;

  • разработка и утверждение технического задания;

  • планирование и декомпозиция базовой структурной модели проекта;

  • составление сметы и бюджета проекта, определение потребности в ресурсах;

  • разработка календарных планов и укрупненных графиков выполнения работ;

  • подписание контракта с заказчиком;

  • ввод в действие средств коммуникации участников проекта и контроля за ходом работ.

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

На фазе проектирования формируются основные информационные структуры, определяются подсистемы и их взаимосвязи, выбираются наиболее эффективные способы выполнения проекта и использования ресурсов. Характерные работы на этой фазе:

  • выполнение базовых проектных работ;

  • разработка частных технических заданий;

  • выполнение концептуального проектирования;

  • составление технических спецификаций и инструкций;

  • представление проектной разработки, экспертиза и утверждение;

Фаза разработки, пожалуй, наиболее трудоемкая стадия проектирования. Здесь осуществляется разработка запланированных подсистем, их объединение и тестирование, а также координация и оперативный контроль выполнения проектных работ. Основное содержание:

1.2. Основные фазы проектирования программных продуктов

1.2.1. Определение проекта и анализ процесса проектирования с позиций теории управления

Любой программный продукт всегда разрабатывается как некоторый проект. Многие особенности управления проектами и фазы разработки проекта (фазы жизненного цикла) являются общими, не зависящими не только от предметной области, но и от характера проекта. Для сложного понятия (в частности, для проекта) трудно дать однозначное и исчерпывающее определение. Согласно [8], будем руководствоваться следующей формулировкой.

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

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

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

Выделим основные отличительные признаки проекта как объекта управления:

  • изменчивость – целенаправленный перевод системы из существующего в некоторое желаемое состояние, выраженное в целях проекта;

  • ограниченность конечной цели и ограниченность продолжительности проекта во времени;

  • ограниченность бюджета и ресурсов;

  • комплексность – наличие большого числа факторов, прямо или косвенно влияющих на прогресс и результаты выполнения проекта;

  • новизна для структуры, заказавшей проект.

1.2.2. Классификация проектов

Проекты можно классифицировать по самым различным признакам. Отметим основные из них.

По составу и структуре проекта:

  • монопроект (отдельный проект любого типа, вида и масштаба);

  • мультипроект (комплексный проект, состоящий из ряда монопроектов и требующий использования многопроектного управления процессом разработки).

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

  • главная цель проекта четко определена, но отдельные цели должны уточняться по мере достижения частных результатов;

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

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

  • выполнение работ по разработке программного обеспечения;

  • выполнение подготовки к внедрению системы;

  • контроль и регулирование основных качественных показателей проекта.

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

  • комплексные испытания;

  • подготовка кадров для эксплуатации разработанной системы;

  • подготовка рабочей документации, сдача системы заказчику и ввод ее в эксплуатацию;

  • сопровождение, поддержка, сервисное обслуживание;

  • оценка результатов проекта и подготовка итоговых документов;

  • разрешение конфликтных ситуаций и закрытие работ по проекту;

  • накопление опытных данных для последующих проектов, анализ опыта и определение направлений развития.

Кроме того, необходимо отметить, что на обнаружение ошибок, допущенных на стадии системного проектирования, расходуется примерно в два раза больше времени, чем на последующих фазах, а их исправление обходится в пять раз дороже. Поэтому на начальных стадиях проекта разработку следует выполнять особенно тщательно. Наиболее часто на начальных фазах допускаются следующие ошибки [8]:

  • неправильная интерпретация исходной постановки задачи;

  • ошибки в определении интересов заказчика;

  • концентрация на маловажных, сторонних интересах;

  • неправильное или недостаточное понимание деталей;

  • неполнота функциональных спецификаций (системных требований);

  • ошибки в определении требуемых ресурсов и сроков;

  • редкая проверка на согласованность этапов и отсутствие контроля со стороны заказчика (нет привлечения заказчика).

2. Жизненный цикл программных продуктов, методология и технология разработки

2.1. Процессы жизненного цикла

2.1.1. Структура жизненного цикла по стандарту iso/iec 12207

Понятие жизненного цикла является одним из базовых понятий методологии проектирования. Жизненный цикл для программных продуктов является непрерывным процессом. Он начинается с момента принятия решения о создании ПО и заканчивается в момент полного изъятия программы из эксплуатации. Для информационных систем существует международный стандарт, регламентирующий их жизненный цикл – ISO/IEC 12207 (ISO – International Organization of Standardization – международная организация по стандартизации; IEC – International Electrotechnical Commission – международная комиссия по электротехнике).

Согласно данному стандарту структура жизненного цикла основывается на трех группах процессов:

  • основные процессы жизненного цикла (приобретение, поставка, разработка, эксплуатация, сопровождение);

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

  • организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого жизненного цикла, обучение).

2.1.2. Основные процессы

Среди основных процессов жизненного цикла наибольшую важность имеют три: разработка, эксплуатация и сопровождение.

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

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

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

Источник: https://studfile.net/preview/16568022/