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