- •Этапы жизненного цикла программного обеспечения
- •Модели жизненного цикла программных средств
- •Структурный анализ как средство анализа требований к программному обеспечению
- •Бизнес-модель
- •Цели построения бизнес моделей.
- •Этапы построения бизнес - модели
- •Нотация idef0 как средство функционального моделирования
- •Принцип декомпозиции
- •Нотация dfd как средство моделирования потоков данных
- •Внешние сущности
- •Системы/подсистемы
- •Процесс
- •Управляющий процесс
- •Накопители данных
- •Информационный канал
- •Информационный поток
- •Поток данных
- •Правила соединения узлов на диаграммах
- •Правила детализации подсистем и процессов при помощи диаграмм
- •Общие рекомендации по построению диаграмм
- •Минимизация множественных потоков
- •Дублирование узлов
- •Рекомендации по построению контекстных диаграмм
- •Нотация idef3 как средство моделирования потоков работ
- •Два типа диаграмм в idef3
- •Диаграммы Описания Последовательности Этапов Процесса
- •Основные элементы диаграмм описания последовательности процессов
- •Перекрестки.
- •Типы перекрестков
- •Примеры действительных перекрестков
- •Правила создания перекрестков. Примеры неправильных перекрестков
- •Нотация idef1x как средство построения модели данных
- •Сущность
- •Атрибут
1. Определение жизненного цикла программного обеспечения. Этапы ЖЦПО. Модели ЖЦПО.
Информационная система
Информационная система (ИС) - это совокупность взаимодействующих и взаимодополняющих подсистем, обеспечивающих сбор, хранение и обработку информации
К подсистемам ИС относятся:
Технические средства;
Средства связи;
Программное обеспечение.
Технические средства - средства , на физическом уровне обеспечивающие ввод, хранение, обработку и вывод информации. Состав: модемы, Hub`ы, сетевые карты, винчестеры, CD, DVD, сканеры, принтеры, плоттеры, клавиатуры и т.д. Особенности: в большинстве своем технические средства унифицированы и не подлежат настройке под конкретную ИС
Средства связи - локальные, глобальные соединения технических средств с целью передачи информации. Состав(по способу передачи информации): проводные, оптоволоконные, спутниковые, инфракрасные, радиопередающие и т.д. Особенности: в большинстве своем средства связи унифицированы и не подлежат настройке под конкретную ИС. Однопользовательские ИС не требуют средств связи.
Программное обеспечение (ПО) - совокупность компьютерных программ, необходимых и достаточных для осуществления взаимодействия технических средств и средств связи с целью ввода, хранения и обработки информации. ПО подразделяется на следующие группы:
Системное ПО (операционная система, драйверы технических средств и средств связи)
Системы управления базами данных СУБД (Microsoft SQL Server, InterBase, Firebird и другие);
База данных-БД;
Клиентское ПО (программа или совокупность программ, обеспечивающих ввод, извлечение, обработку информации из БД, а также ее представление в необходимом виде).
Особенности: Системное ПО и СУБД унифицированы и не подлежат внутреннему перепроектированию под конкретную ИС. Клиентское ПО и БД проектируются и настраиваются на решение специфических задач отдельных ИС.
Жизненный цикл программного обеспечения
При возникновении потребностей в заказе, приобретении, разработке, эксплуатации и сопровождении программ перед всеми сторонами, вовлеченными в жизненный цикл программного обеспечения (ПО), возникает целый ряд вопросов, связанных с определением и детальным структурированием жизненного цикла (ЖЦ) ПО, с организационными и техническими правами и обязанностями сторон, с управлением ЖЦ и контролем за его реализацией. Одним из действенных инструментов для решения данных вопросов является использование унифицированных подходов, закрепленных в современных международных и российских стандартах.
Слова "жизненный цикл системы" или "жизненный цикл программного обеспечения" часто появляются в статьях и звучат в разговорах разработчиков, по крайней мере руководителей проектов и подразделений. Всем понятно, что относятся они к тому, что и в какой последовательности должно делаться при создании и эксплуатации систем. Но прежде чем две организации или два специалиста договорятся о том, что конкретно входит или не входит в ЖЦ, проходит значительное время. А позже вполне может обнаружиться, что эти двое все-таки по-разному понимают, какие работы будут входить в ЖЦ, а какие - нет, какие проверки будут планироваться, когда и т. д. Естественно, общие принципы организации работ описаны давно, но что делать сторонам в конкретном проекте - это каждый раз приходится решать заново.
В стандартах, регламентирующих жизненный цикл программного обеспечения, обобщаются опыт и результаты исследований множества специалистов и рекомендуются наиболее эффективные современные методы и процессы создания и развития комплексов программ. В результате таких обобщений оттачиваются технологические процессы и приемы разработки, а также методическая база для их автоматизации.
ЖЦ ПО представляет собой набор этапов, частных работ и операций в последовательности их выполнения и взаимосвязи, регламентирующих ведение работ от подготовки технического задания до завершения испытаний ряда версий и окончания эксплуатации ПО или информационной системы (ИС). Стандарты включают правила описания исходной информации, способов и методов выполнения операций, устанавливают правила контроля технологических процессов, требования к оформлению их результатов, а также регламентируют содержание технологических и эксплуатационных документов на комплексы программ. Они определяют организационную структуру коллектива, обеспечивают распределение и планирование заданий, а также контроль за ходом создания ПО.
Кроме вопросов выбора типа общего устройства ЖЦ есть проблемы с решением частных вопросов о включении или не включении в ЖЦ отдельных работ, очень важных для качества ПО и системы: что документировать при создании системы и ПО, какие работы должны будут гарантировать качество продукта, с какой степенью организационной независимости должны выполняться проверочные процедуры разных типов, чем будет обеспечиваться соответствие разрабатываемого ПО требованиям ко всей системе и соответствие ПО потребностям в системе.
Для того чтобы привнести порядок и понимание, общие для любых сторон, участвующих в ЖЦ систем и ПО, давно разрабатывались стандарты различных уровней утверждения - национальные и международные.
Основные современные зарубежные стандарты ориентированы на описание ЖЦ сложного ПО обработки информации и управления в реальном времени. К такому ПО предъявляются наиболее высокие требования по качеству функционирования, оно создается большими коллективами специалистов в течение длительного времени.
В России первые основы построения и использования профилей стандартов ЖЦ ПО заложены принятием в качестве базового стандарта ГОСТ РФ ИСО/МЭК12207. В стандарте ГОСТ Р ИСО/МЭК 12207 впервые реализован принцип структурной стандартизации ЖЦ ПО на основе регламентации требований к процессам, работам и задачам, входящим в полную типовую структуру ЖЦ ПО. Данный документ введен в действие с 1 июля 2000 г., тесно взаимоcвязан с рядом стандартов, принятых ранее, и с некоторыми стандартами, разрабатываемыми в данное время на основе прямого применения стандартов ISO.
Актуальность стандарта ГОСТ Р ИСО/МЭК 12207 для современных условий настолько высока, что принятие в ISO его исходного, международного варианта вскоре вызвало самую положительную оценку российских экспертов. Был дан ряд рекомендаций по его использованию в реальных условиях. В данном стандарте определяются:
программное обеспечение ПО (или программный продукт) - как набор компьютерных программ, процедур и, возможно, связанной с ними документации и данных.
процесс - как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.
Следует отметить, что в России создание ПО первоначально, в 70-е годы 20 века, регламентировалось стандартами ГОСТ ЕСПД (Единой системы программной документации - серия ГОСТ 19.ХХХ), которые были ориентированы на класс относительно простых программ небольшого объема, создаваемых отдельными программистами. В настоящее время эти стандарты устарели концептуально и по форме, сроки их действия закончились и использование нецелесообразно.
Процессы ЖЦ ПО выделены по принципу ответственности заказчика, поставщика, разработчика и т. д., реализующего конкретный процесс. В свою очередь, каждый из процессов состоит из ряда работ и решаемых при выполнении соответствующей работы задач. С точки зрения соподчиненности и важности данных процессов они разбиты на три группы: основные, вспомогательные, организационные (Рисунок 1. Схема процессов жизненного цикла).
Группа основных процессов включает в себя приобретение, поставка, разработка, эксплуатация, сопровождение.
Группа вспомогательных процессов включает в себя процессы, обеспечивающие выполнение основных процедур: документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, решение проблем.
Группа организационных процессов включает в себя управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение.
Очень важное отличие ISO: каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем нет заранее определенных последовательностей.
Рисунок 1. Схема процессов жизненного цикла
Этапы жизненного цикла программного обеспечения
В основе деятельности по созданию и использованию ПО лежит понятие его жизненного цикла (ЖЦ). ЖЦ является моделью создания и использования ПО, отражающей его различные состояния, начиная с момента возникновения необходимости в данном программном изделии и заканчивая моментом его полного выхода из употребления у всех пользователей. Традиционно выделяют следующие основные этапы ЖЦ ПО:
Анализ требований;
Проектирование;
Кодирование (программирование);
Тестирование и отладка;
Эксплуатация и сопровождение.
ЖЦ образуется в соответствии с принципом нисходящего проектирования и, как правило, носит итерационный характер: реализованные этапы, начиная с самых ранних, циклически повторяются в соответствии с изменениями требований и внешних условий, введением ограничений и т.п. На каждом этапе ЖЦ порождается определенный набор документов и технических решений, при этом для каждого этапа исходными являются документы и решения, полученные на предыдущем этапе. Каждый этап завершается верификацией порожденных документов и решений с целью проверки их соответствия исходным. Главная особенность индустрии ПО состоит в концентрации сложности на начальных этапах ЖЦ (анализ, проектирование) при относительно невысокой сложности и трудоемкости последующих этапов. Более того, нерешенные вопросы и ошибки, допущенные на этапах анализа и проектирования, порождают на последующих этапах трудные, часто неразрешимые проблемы и, в конечном счете, приводят к неуспеху всего проекта. Рассмотрим эти этапы более подробно. АНАЛИЗ ТРЕБОВАНИЙ является первой фазой разработки ПО, на которой требования заказчика уточняются, формализуются и документируются. Фактически на этом этапе дается ответ на вопрос: "Что должна делать будущая система?". Список требований к разрабатываемой системе должен включать:
Совокупность условий, при которых предполагается эксплуатировать будущую систему (аппаратные и программные ресурсы, предоставляемые системе; внешние условия ее функционирования; состав людей и работ, имеющих к ней отношение);
Описание выполняемых системой функций;
Ограничения в процессе разработки (директивные сроки завершения отдельных этапов, имеющиеся ресурсы, организационные процедуры и мероприятия, обеспечивающие защиту информации).
Целью анализа является преобразование общих, неясных знаний о требованиях к будущей системе в точные (по возможности) определения. На этом этапе определяются:
Архитектура системы, ее функции, внешние условия, распределение функций между аппаратурой и ПО;
Интерфейсы и распределение функций между человеком и системой;
Требования к программным и информационным компонентам ПО, необходимые аппаратные ресурсы, требования к БД, физические характеристики
ЭТАП ПРОЕКТИРОВАНИЯ дает ответ на вопрос "Как (каким образом) система будет удовлетворять предъявленным к ней требованиям?". Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем здесь не рассматриваются вопросы, связанные с реализацией на конкретной платформе. Проектирование определяется как итерационный процесс получения логической модели системы вместе со строго сформулированными целями, поставленными перед нею, а также написания спецификаций физической системы, удовлетворяющей этим требованиям". Обычно этот этап разделяют на два подэтапа:
Проектирование архитектуры ПО, включающее разработку структуры и интерфейсов компонент, согласование функций и технических требований к компонентам, методам и стандартам проектирования, производство отчетных документов;
Детальное проектирование, включающее разработку спецификаций каждой компоненты, интерфейсов между компонентами, разработку требований к тестам и плана интеграции компонент.
В результате деятельности на этапах анализа и проектирования должен быть получен проект системы (ПС), содержащий достаточно информации для реализации системы на его основе в рамках бюджета выделенных ресурсов и времени. (ПС - совокупность документов, содержащий необходимую и достаточную информацию для реализации системы. Одним из основных документов которого является техническое задание) ЭТАП КОДИРОВАНИЯ (ПРОЕКТИРОВАНИЯ) - этап программной реализации требований заказчика. Осуществляется на основе технического задания полученного на предыдущем этапе. В виду того, что техническое задание содержит необходимую и достаточную информацию по реализации проекта, техникам - программистам остается немного места для творчества. Однако необходимо отметить, что выбор средств реализации ПО может зависеть от пожеланий заказчика, указаний руководителей проекта, либо от самого программиста. ТЕСТИРОВАНИЕ И ОТЛАДКА - этап итоговых проверок ПО на предмет содержания несоответствий:
Требований заказчика и итоговой реализации ПО;
Итоговой реализации ПО и технического задания;
Действительной работоспособности алгоритмов в итоговой реализации ПО.