Особенности управления разработкой программ
Основные понятия и организация работ по разработке программных средств
Современные сложные программные системы имеют ряд важных особенностей:
· наличие совокупности большого числа тесно взаимодействующих компонент различных типов (базовых классов, процедур, функций, ActiveX – элементов, COM/DCOM‑компоненты и др.);
· иерархическую структуру связей компонент, обеспечивающую концептуальное единство и устойчивость функционирования всей системы;
· иерархическую совокупность критериев качества функционирования компонент и системы в целом;
· трудность формализации единого критерия качества и эффективности функционирования системы.
· разработка программных средств (ПС) содержит определенные этапы формализации, а переход от неформального представления о задаче к формальному существенно носит творческий характер, а не сводится к выполнению какой-либо последовательности формальных регламентированных действий (в этом смысле программирование можно отнести к искусству).
Организация работ по проекту. Разработка сложных ПС проводится в рамках проекта, под которым понимается комплекс формально организованных мероприятий по созданию сложной системы с заданными характеристиками качества при ограниченных ресурсах.
Управление проектом – это вид деятельности, включающей в себя постановку задач, подготовку решений, планирование, организацию и стимулирование специалистов, контроль за ходом выполнения работ и использованием ресурсов при создании сложных систем.
Цель управления проектом – рациональное использование ресурсов путем сбалансированного распределения их по частным работам на протяжении всего цикла разработки. Целевое управление проектами возникло из необходимости разрабатывать и реализовывать сложные системы с заданными функциями в максимально короткие сроки. Критическим параметром планирования и управления проектами обычно является время. Далее основное внимание сосредоточено на конкретном планировании сложных проектов, периоды разработки, которых могут составлять несколько лет.
Задача целевого управления – сводить воедино усилия прямых исполнителей, подрядчиков и субподрядчиков, добиваясь, чтобы они выступали как команда. В результате должны обеспечиваться концептуальная целостность системы и высокое качество решения главных задач при сбалансированном использовании ресурсов на все функциональные задачи.
Для управления проектом, прежде всего, должен быть адекватно описан объект проектирования. Для сложных систем формализация описания и характеристик объекта разработки происходит одновременно с процессом его проектирования. Последовательно уточняются архитектура объекта, основные функции и их характеристики, требующиеся показатели качества функционирования и методы решения задач. Все эти данные отражаются в техническом задании (ТЗ), спецификации требований и описании проекта, которые детализируются и конкретизируются по мере развития проекта.
Для реализации проекта назначается руководитель проекта (главный инженер (ГИП) или менеджер проекта), который отвечает за организацию взаимодействия с заказчиком, за оформление договоров и всех финансовых документов, за координацию работ и за проведение технической политики. В виду того, что руководитель проекта непосредственно общается с руководством заказчика, он должен быть человеком коммуникабельным, дипломатичным и корректным, настойчивым, уметь тактично отстаивать интересы разработчиков, уметь оформлять финансовые и технические документы, подписываемые заказчиком. Одновременно руководить проекта должен быть опытным и высокопрофессиональным проектировщиком, способным решать сложные различные технические проблемы, проводить техническую политику, организовывать и координировать работу многих специалистов и подразделений, участвующих в проекте.
Существуют различные формы организации работ по проекту. В больших проектных организациях, например, может использоваться следующая организация. Подразделения специализируются по функциональным подсистемам (например, оперативное управление, логистика, планирование, сбыт, управление персоналом, материально-техническое снабжение, бухгалтерский учёт, управление качеством) и по видам обеспечения (например, информационное, техническое, общесистемное программное обеспечение, организационное). Специализация может быть и более крупная, например, по отраслям объектов автоматизации (промышленные, образование, медицина, транспорт, сельское хозяйство, муниципальные и федеральное органы управления). В этих специализированных подразделениях есть постановщики задач, программисты и другие специалисты. Все руководители проектов объединяются в один отдел, который подчиняется непосредственно главному инженеру или заместителю директора организации по проектированию. Через этот отдел проводится единая техническая политика проектной организации. Такая специализация позволяет более быстро и качественно разрабатывать проект за счет узкой специализации проектировщиков и программистов и использования типовых проектных решения, которые вырабатываются при работе над различными проектами по отдельным подсистемам. К недостаткам такой организации можно отнести децентрализацию разработки по нескольким подразделениям, что требует высокого уровня координации работ между подразделениями в рамках одного проекта и эта координация возложена на руководителя проекта, который должен иметь соответствующие полномочия, позволяющие вмешиваться в работу подразделений в рамках своего проекта.
При разработке ПС могут использовать следующие основные технологии и комплексы средств автоматизации: методы и средства автоматизации системного анализа и проектирования; типизацию проектов систем; CASE-системы с использованием репозитариев данных о состоянии и развитии проектов; языки четвертого поколения; повторное использование готовых программных и информационных компонентов; графический интерфейс; стандарты управления проектированием, конфигурацией и обеспечением качества; сертификацию.
Проектирование ПС – это процесс составления описания еще несуществующей системы на разных языках и с различной степенью детализации. Укрупнено, можно выделить следующие этапы проектирования: описание требований, архитектурное проектирование, обобщение спецификации, проектирование интерфейсов, компонентное проектирование, проектирование структур и алгоритмов. Результаты проектирования являются описание архитектуры системы, интерфейсов, структур данных, подсистем, компонентов, алгоритмов.
Реализация ПС– процесс перевода описания ПС в работоспособную систему. Определяется: структура ПС, данные, интерфейсы взаимодействия системных компонентов и алгоритм.
Перед проектированием и реализацией ПС следует выбрать соответствующие стандарты (обычно жизненного цикла ПС), которые регламентируют эти процессы.
Классы программ
По внутренним свойствам каждую программу можно отнести к одному или к нескольким следующим видам программ:
· комплекс или система программ (КП) – это набор взаимосвязанных программ, реализующий некоторую крупную задачу пользователя;
· программное средство (ПС) – это программа или комплекс программ, предназначенная для автоматизации обработки данных, например, Word, Excel;
· программный продукт или изделие (ПП) – это программа или комплекс программ, предназначенный для продажи (предприятия, разрабатывающие программные продукты, приравниваются по статусу к промышленным предприятиям);
· программное обеспечение (ПО) – это комплекс программ, обеспечивающий функционирование другой, более главной системы, например, автоматизированной информационной системы, автоматизированного рабочего места (АРМ), технической системы (станков с программным управлением);
· пакет прикладных программ или средств (ППП) – это комплекс программ, имеющий средства настройки на конкретные условия применения.
Например, пакет «1С – Бухгалтерия» является одновременно программной системой, программным средством обработки бухгалтерских данных, программным продуктом (продается и покупается), пакетом прикладных программ (имеет средство настройки - конфигуратор).
Классификация программ по областям применения:
Продукция народного потребления, используемая вне прямой производственно-технической и научно-исследовательской деятельности специалистов. Это программы, создаваемые преимущественно для персональных компьютеров, используемых в быту (курсы обучения, справочные сведения, пакеты для несложных научных и инженерных расчетов, игры и др.).
Продукция научно-технического применения для решения инженерно-вычислительных и научно-исследовательских задач. Ряд программ этой категории имеет широкую область применения, может тиражироваться в тысячах экземпляров и поставляться вместе с эксплуатационной документацией.
Продукция производственно-технического назначения, предназначенная для автоматизации труда в организациях и на предприятиях народного хозяйства. Программные средства этой категории можно разделить на три крупных класса:
a) комплексы программ общесистемного назначения, обеспечивающие возможность выполнения компьютером основных функций (операционные системы и пакеты прикладных программ, расширяющие функциональные возможности операционных систем; диалоговые системы, обеспечивающие интерфейс различных видов пользователей с компьютером; системы управления базами данных; типовые проблемно - ориентированные инструментальные системы; программные системы обеспечения телекоммуникаций в типовых локальных и распределенных сетях компьютеров);
b) системы обработки данных (информационно-справочные системы; автоматизированные системы организационного управления отраслями, организациями и предприятиями; системы автоматизированного проектирования промышленных изделий; системы автоматизации технологической подготовки производства; экспертные системы; системы обработки и редактирования текстовых документов; пакеты прикладных программ для решения типовых задач;
c) программы систем управления объектами и процессами в реальном времени; автоматизированные системы управления технологическими процессами; гибкие производственные системы; станки с числовым программным управлением и промышленные роботы; системы управления движущимися и другими объектами; системы управления научными экспериментами и сложными приборами.
Классификация программ по риску:
Критические программы, от которых требуется особенно высокое качество надежного функционирования.
Важные программы, которые также должны обладать особенно высоким качеством, и ущерб от ошибок в них может быть велик, но невозможны катастрофические последствия их проявления.
Ординарные программы, которые являются наиболее массовыми и широко распространенными; их качество и области применения изменяются в широких пределах.