Стандарты ЕСПД и их роль в разработке и адаптации жизненного цикла

Жизненный цикл программного продукта - методологическая основа программой инженерии. Процессы и требования к разрабатываемой системе. Задачи разработки архитектуры программного обеспечения. Роль стандартов ЕСПД в разработке и адаптации жизненного цикла.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 24.08.2013
Размер файла 48,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Стандарты ЕСПД и их роль в разработке и адаптации жизненного цикла

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

Методологическую основу программой инженерии составляет понятие жизненного цикла программного продукта. Впервые о жизненном цикле заговорили в 1968 году в Лондоне, где состоялась встреча 22-х руководителей проектов по разработке программного обеспечения. На встрече анализировались проблемы и перспективы проектирования, разработки, распространения и поддержки программ. Было констатировано, что применяющиеся методы разработки ПО требуют постоянного усовершенствования. Именно на этой встрече была предложена концепция жизненного цикла ПО (SLC - Software Lifetime Cycle) как последовательности шагов-стадий, которые необходимо выполнить в процессе создания и эксплуатации программного средства.

стандарт программный жизненный цикл

1. Жизненный цикл программного обеспечения

Жизненный цикл ПО - это период времени, который начинается с момента принятия решения о необходимости создания программного обеспечения и заканчивается в момент его полного изъятия из эксплуатации (IEEE Std. 610.12 - 19990 Standard Glossary of Software Engineering Terminology).

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

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

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

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

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

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

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

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

Основным нормативным документом, регламентирующим состав процессов ЖЦ ПО, является международный стандарт ISO/IEC 12207: 1995 «International Technology - Software Life Cycle Processes» (ГОСТ ИСО МЭК 12207-99 Информационные технологии. Жизненный цикл программного обеспечения). В данном стандарте программный продукт определяется как набор компьютерных программ, процедур и, возможно связанных с ними документации и данных. Процесс определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные.

Стандарт ISO/IEC 12207 определяет общую структуру жизненного цикла ПО в виде 3 ступенчатой модели, состоящей из процессов, видов деятельности и задач. Каждый процесс разделен на набор действий, каждое действие - на набор задач, каждая задача характеризуется определенным методом решения, исходными данными, в том числе, полученными от других процессов, и результатами. Любой процесс увязан с определенными артефактами и ролями заинтересованных лиц. Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения. Всего в стандарте ISO/IEC 12207 определено 18 процессов, 74 вида деятельности и 224 различные задачи.

В соответствии со стандартом все процессы жизненного цикла ПО разделены на группы (см. рис 4.1.):

Рис. 4.1. Жизненный цикл ПО.

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

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

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

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

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

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

Первой фазой разработки ПО является анализ требований к системе. Фактически на этом этапе дается ответ на вопрос: «Что должна делать будущая система?». Для ответа на этот вопрос, во-первых, необходимо понять, какие именно потребности пользователей призвана обеспечить будущая система, а во-вторых, задокументировать это понимание, т.к. если требования не зафиксированы и не сделаны доступными для участников проекта, то они вроде бы и не существуют. При этом язык, на котором формулируются требования, должен быть достаточно прост и понятен заказчику.

Список требований к разрабатываемой системе должен включать:

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

· описание выполняемых системой функций;

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

Анализ требований к разрабатываемой системе является важнейшим среди всех этапов ЖЦ. Именно здесь лежит ключ к успеху всего проекта. В практике создания больших программных систем известно немало примеров неудачной реализации проекта именно из-за неполноты и нечеткости определения системных требований.

Требования к системе оцениваются, исходя из критериев реализуемости и возможности проверки при тестировании.

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

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

· внешние интерфейсы;

· спецификации надежности и безопасности;

· эргономические требования;

· требования к используемым данным;

· требования к установке и приемке;

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

· требования к эксплуатации и сопровождению.

Требования к ПО оцениваются исходя из критериев соответствия требованиям к системе, реализуемости и возможности проверки при тестировании.

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

· Архитектурный или высокоуровневый дизайн (software architectural design, top-level design) - описание высокоуровневой структуры и организации компонентов системы;

· Детализированная архитектура (software detailed design) - описывающая каждый компонент в том объеме, который необходим для конструирования.

В строгом значении архитектура программного обеспечения (software architecture) представляет собой описание подсистем и компонентов программной системы, а также связей между ними. Архитектура пытается определить внутреннюю структуру получаемой системы, задавая способ, которым система организована или конструируется.

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

Проектирование архитектуры ПО включает следующие задачи для каждого компонента ПО:

· трансформацию требований к ПО в архитектуру, определяющую на высоком уровне абстракции структуру программного обеспечения и состав его компонентов;

· разработку и документирование программных интерфейсов ПО;

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

· разработку и документирование предварительных требований к тестам и плана интеграции ПО.

Архитектура компонентов должна соответствовать требованиям, предъявляемым к ним, а также принятым проектным стандартам и методам.

Детальное проектирование ПО (рабочий план разработки ПО) включает следующие задачи:

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

· разработку и документирование детального проекта ПС;

· обновление (при необходимости) пользовательской документации;

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

· обновление плана интеграции ПО.

Кодирование и тестирование ПО подразумевает решение следующих задач:

· разработку (кодирование) и документирование каждого компонента ПО, а также создание совокупности тестовых процедур и данных для тестирования;

· тестирование каждого компонента ПО на соответствие предъявляемым требованиям. При этом результаты тестирования компонентов должны быть задокументированы;

· обновление (при необходимости) пользовательской документации;

· обновление плана интеграции ПО.

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

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

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

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

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

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

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

· анализ проблем и запросов на модификацию ПО;

· модификация программного продукта;

· его проверка и приемка;

· перенос ПО в другую среду;

· снятие ПО с эксплуатации.

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

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

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

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

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

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

3. Вспомогательные процессы жизненного цикла ПО

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

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

Общие принципы и рекомендации по управлению конфигурацией отражены в стандарте ISO/IEC CD 12207 - 2:1995 “Information Technology - Software Life Cycle Processes. Part 2. Configuration Management for Software”. Этот стандарт предлагает установить правила, с помощью которых можно однозначно идентифицировать и различать компоненты ПО и их версии. При этом каждому компоненту и его версиям должен соответствовать однозначно обозначаемый комплект документации. При проведении модификаций ПО должен осуществляться контроль конфигурации, в процессе которого отслеживаются затраты на модификацию, оценивается ее эффективность, а также соответствие измененных компонентов их документации. Кроме того, согласно стандарту должны подготавливаться отчеты обо всех реализованных и отвергнутых модификациях компонентов ПО. Совокупность этих отчетов обеспечивает однозначное отражение текущего состояния системы и ее компонентов, а также ведение истории модификаций. Стандарт также рекомендует проводить оценку конфигурации, в процессе которой оценивается функциональная полнота компонентов ПО, а также соответствие их физического состояния текущему техническому описанию. Итоговое действие по управление конфигурацией - это управление выпуском и поставка, в процессе которых изготавливаются эталонные копии программ и документации для хранения и поставки пользователям в соответствии с порядком, принятом в организации.

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

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

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

Верификация в узком смысле означает формальное доказательство правильности ПО. В процессе верификации проверяются следующие условия:

· непротиворечивость требований к системе и степень учета потребностей пользователя;

· возможности поставщика выполнить заданные требования;

· соответствие выбранных процессов ЖЦ ПО условиям договора;

· адекватность стандартов, процедур и среды разработки процессам ЖЦ ПО;

· соответствие проектных спецификаций заданным требованиям;

· корректность описания в проектных спецификациях входных и выходных данных, последовательности событий, логики и т.д.

· соответствие кода проектным спецификациям и требованиям;

· тестируемость и корректность кода, его соответствие принятым стандартам кодирования;

· корректность интеграции компонентов ПО в систему;

· адекватность, полнота и непротиворечивость документации.

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

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

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

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

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

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

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

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

Главное, чтобы при определении области управления менеджер был уверен в том, что располагает достаточным количеством ресурсов (персоналом, оборудованием и пр.), необходимых для решения поставленной управленческой задачи.

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

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

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

Важно понимать, что стандарт ISO/IEC 12207 не определяет последовательность выполнения процессов и их разбиение во времени, адресуя этот вопрос работам по адаптации стандарта к условиям и окружению конкретного программного проекта.

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

5. Стандарты ЕСПД и их роль в разработке и адаптации жизненного цикла

Основу отечественной нормативной базы в области документирования ПС составляет комплекс стандартов Единой системы программной документации (ЕСПД). Основная и большая часть комплекса ЕСПД была разработана в 70-е и 80-е годы. Сейчас этот комплекс представляет собой систему межгосударственных стандартов стран СНГ (ГОСТ), действующих на территории Российской Федерации на основе межгосударственного соглашения по стандартизации.

Стандарты ЕСПД в основном охватывают ту часть документации, которая создается в процессе разработки ПС, и связаны, по большей части, с документированием функциональных характеристик ПС. Следует отметить, что стандарты ЕСПД (ГОСТ 19) носят рекомендательный характер. Впрочем, это относится и ко всем другим стандартам в области ПС (ГОСТ 34, Международному стандарту ISO/IEC, и др.). Дело в том, что в соответствии с Законом РФ «О стандартизации» эти стандарты становятся обязательными на контрактной основе - то есть при ссылке на них в договоре на разработку (поставку) ПС.

Говоря о состоянии ЕСПД в целом, можно констатировать, что большая часть стандартов ЕСПД морально устарела. К числу основных недостатков ЕСПД можно отнести:

· ориентацию на единственную, «каскадную» модель жизненного цикла ПО;

· отсутствие четких рекомендаций по документированию характеристик качества программного средства;

· отсутствие системной увязки с другими действующими отечественными системами стандартов по ЖЦ и документированию продукции в целом, например, ЕСКД;

· нечетко выраженный подход к документированию ПС как товарной продукции;

· отсутствие рекомендаций по самодокументированию ПС, например, в виде экранных меню и средств оперативной помощи пользователю («хелпов»);

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

Тем не менее, до пересмотра всего комплекса, многие стандарты ЕСПД могут с пользой применяться в практике документирования ПС. Эта позиция основана на следующем:

· стандарты ЕСПД вносят элемент упорядочения в процесс документирования ПС;

· предусмотренный стандартами ЕСПД состав программных документов вовсе не такой «жесткий», как некоторым кажется: стандарты позволяют вносить в комплект документации на ПС дополнительные виды документов;

· стандарты ЕСПД позволяют вдобавок мобильно изменять структуры и содержание установленных видов программных документов исходя из требований заказчика и пользователя.

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

Стандарты ЕСПД (как и другие ГОСТы) подразделяют на группы, приведенные в таблице 4.1.

Табл. 4.1. Группы стандартов ЕСПД.

Kод группы

Наименование группы

0

Общие положения

1

Основополагающие стандарты

2

Правила выполнения документации разработки

3

Правила выполнения документации изготовления

4

Правила выполнения документации сопровождения

5

Правила выполнения эксплуатационной документации

6

Правила обращения программной документации

7

Резервные группы

8

9

Прочие стандарты

Обозначение стандарта ЕСПД строят по классификационному признаку. Обозначение стандарта ЕСПД должно состоять из:

· числа 19 (присвоенных классу стандартов ЕСПД);

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

· двузначного числа (после тире), указывающего год регистрации стандарта.

Перечень документов ЕСПД

1. ГОСТ 19.001-77 ЕСПД. Общие положения.

2. ГОСТ 19.101-77 ЕСПД. Виды программ и программных документов.

3. ГОСТ 19.102-77 ЕСПД. Стадии разработки.

4. ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов.

5. ГОСТ 19.104-78 ЕСПД. Основные надписи.

6. ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам.

7. ГОСТ 19.106-78 ЕСПД. Требования к программным документам, выполненным печатным способом.

8. ГОСТ 19.201-78 ЕСПД. Техническое задание. Требования к содержанию и оформлению.

9. ГОСТ 19.202-78 ЕСПД. Спецификация. Требования к содержанию и оформлению.

10. ГОСТ 19.301-79 ЕСПД. Порядок и методика испытаний.

11. ГОСТ 19.401-78 ЕСПД. Текст программы. Требования к содержанию и оформлению.

12. ГОСТ 19.402-78 ЕСПД. Описание программы.

13. ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.

14. ГОСТ 19.501-78 ЕСПД. Формуляр. Требования к содержанию и оформлению.

15. ГОСТ 19.502-78 ЕСПД. Описание применения. Требования к содержанию и оформлению.

16. ГОСТ 19.503-79 ЕСПД. Руководство системного программиста. Требования к содержанию и оформлению.

17. ГОСТ 19.504-79 ЕСПД. Руководство программиста.

18. ГОСТ 19.505-79 ЕСПД. Руководство оператора.

19. ГОСТ 19.506-79 ЕСПД. Описание языка.

20. ГОСТ 19.508-79 ЕСПД. Руководство по техническому обслуживанию. Требования к содержанию и оформлению.

21. ГОСТ 19.604-78 ЕСПД. Правила внесения изменений в программные документы, выполняемые печатным способом.

22. ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

23. ГОСТ 19.781-90. Обеспечение систем обработки информации.

Из всех стандартов ЕСПД остановимся только на тех, которые могут чаще использоваться на практике.

ГОСТ (СТ СЭВ) 19.201-78 (1626-79). ЕСПД. Техническое задание. Требование к содержанию и оформлению. (Переиздан в ноябре 1987г с изм.1).

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

Техническое задание должно содержать следующие разделы:

· введение;

· основания для разработки;

· назначение разработки;

· требования к программе или программному изделию;

· требования к программной документации;

· технико-экономические показатели;

· стадии и этапы разработки;

· порядок контроля и приемки;

· в техническое задание допускается включать приложения.

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

ГОСТ (СТ СЭВ) 19.101-77 (1626-79). ЕСПД. Виды программ и программных документов (Переиздан в ноябре 1987г с изм.1).

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

Виды программ приведены в таблице 4.2, виды программных документов - в таблице 4.3, а виды эксплуатационных документов в таблице 4.4.

Табл. 4.2. Виды программ

Вид программы

Определение

Компонент

Программа, рассматриваемая как единое целое, выполняющая законченную функцию и применяемая самостоятельно или в составе комплекса

Комплекс

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

Табл. 4.3. Виды программных документов

Вид программного документа

Содержание программного документа

Спецификация

Состав программы и документации на нее

Ведомость держателей подлинников

Перечень предприятий, на которых хранят подлинники программных документов

Текст программы

Запись программы с необходимыми комментариями

Описание программы

Сведения о логической структуре и функционировании программы

Программа и методика испытаний

Требования, подлежащие проверке при испытании программы, а также порядок и методы их контроля

Техническое задание

Назначение и область применения программы, технические, технико-экономические и специальные требования, предъявляемые к программе, необходимые стадии и сроки разработки, виды испытаний

Пояснительная записка

Схема алгоритма, общее описание алгоритма и (или) функционирования программы, а также обоснование принятых технических и технико-экономических решений

Эксплуатационные документы

Сведения для обеспечения функционирования и эксплуатации программы

Табл. 4.4. Виды эксплуатационных документов

Вид эксплуатационного документа

Содержание эксплуатационного документа

Ведомость эксплуатационных документов

Перечень эксплуатационных документов на программу

Формуляр

Основные характеристики программы, комплектность и сведения об эксплуатации программы

Описание применения

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

Руководство системного программиста

Сведения для проверки, обеспечения функционирования и настройки программы на условия конкретного применения

Руководство программиста

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

Руководство оператора

Сведения для обеспечения процедуры общения оператора с вычислительной системой в процессе выполнения программы

Описание языка

Описание синтаксиса и семантики языка

Руководство по техническому обслуживанию

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

В зависимости от способа выполнения и характера применения программные документы подразделяются на подлинник, дубликат и копию (ГОСТ 2.102-68), предназначенные для разработки, сопровождения и эксплуатации программы.

Табл. 4.5. Виды программных документов, разрабатываемых на разных стадиях, и их коды

Код вида документа

Вид документа

Стадии разработки

Эскизный проект

Технический проект

Рабочий проект

компонент

комплекс

-

Спецификация

-

-

!

+

05

Ведомость держателей подлинников

-

-

-

?

12

Текст программы

-

-

+

?

13

Описание программы

-

-

?

?

20

Ведомость эксплуатационных документов

-

-

?

?

30

Формуляр

-

-

?

?

31

Описание применения

-

-

?

?

32

Руководство системного программиста

-

-

?

?

33

Руководство программиста

-

-

?

?

34

Руководство оператора

-

-

?

?

35

Описание языка

-

-

?

?

46

Руководство по техническому обслуживанию

-

-

?

?

51

Программа и методика испытаний

-

-

?

?

81

Пояснительная записка

?

?

-

-

90-99

Прочие документы

?

?

?

?

Условные обозначения:

+

- документ обязательный;

!

- документ обязательный для компонентов, имеющих самостоятельное применение;

?

- необходимость составления документа определяется на этапе разработки и утверждения технического задания;

-

- документ не составляют.

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

ГОСТ 19.102-77. ЕСПД. Стадии разработки

Устанавливает стадии разработки программ и программной документации для вычислительных машин, комплексов и систем независимо от их назначения и области применения (см. табл. 4.6).

Табл. 4.6. Стадии разработки, этапы и содержание работ

Стадии разработки

Этапы работ

Содержание работ

Техническое задание

Обоснование необходимости разработки программы

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

Научно-исследовательские работы

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

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

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

Эскизный проект

Разработка эскизного проекта

Предварительная разработка структуры входных и выходных данных.Уточнение методов решения задачи.Разработка общего описания алгоритма решения задачи.Разработка технико-экономического обоснования.

Утверждение эскизного проекта

Разработка пояснительной записки.Согласование и утверждение эскизного проекта

Технический проект

Разработка технического проекта

Уточнение структуры входных и выходных данных.Разработка алгоритма решения задачи.Определение формы представления входных и выходных данных.Определение семантики и синтаксиса языка.Разработка структуры программы.Окончательное определение конфигурации технических средств.

Утверждение технического проекта

Разработка плана мероприятий по разработке и внедрению программ.Разработка пояснительной записки.Согласование и утверждение технического проекта.

Рабочий проект

Разработка программы

Программирование и отладка программы

Разработка программной документации

Разработка программных документов в соответствии с требованиями ГОСТ 19.101-77.

Испытания программы

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

Внедрение

Подготовка и передача программы

Подготовка и передача программы и программной документации для сопровождения и (или) изготовления.Оформление и утверждение акта о передаче программы на сопровождение и (или) изготовление.Передача программы в фонд алгоритмов и программ.

Примечания:

1. Допускается исключать вторую стадию разработки, а в технически обоснованных случаях - вторую и третью стадии. Необходимость проведения этих стадий указывается в техническом задании.

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

ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов

Код страны-разработчика и код организации-разработчика присваивают в установленном порядке.

· Регистрационный номер присваивается в порядке возрастания, начиная с 00001 до 99999, для каждой организации-разработчика.

· Номер издания программы или номер редакции. номер документа данного вида, номер части документа присваиваются в порядке возрастания с 01 до 99. (Если документ состоит из одной части, то дефис и порядковый номер части не указывают).

· Номер редакции спецификации и ведомости эксплуатационных документов на программу должны совпадать с номером издания этой же программы.

ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам

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

Программный документ может быть представлен на различных типах носителей данных и состоит из следующих условных частей:

· титульной;

· информационной;

· основной.

Правила оформления документа и его частей на каждом носителе данных устанавливаются стандартами ЕСПД на правила оформления документов на соответствующих носителях данных.

ГОСТ 19.106-78 ЕСПД. Требования к программным документам, выполненным печатным способом

Программные документы оформляют:

· на листах формата А4 (ГОСТ 2.301-68) при изготовлении документа машинописным или рукописным способом;

· допускается оформление на листах формата А3;

· при машинном способе выполнения документа допускаются отклонения размеров листов, соответствующих форматам А4 и А3, определяемые возможностями применяемых технических средств; на листах форматов А4 и А3, предусматриваемых выходными характеристиками устройств вывода данных, при изготовлении документа машинным способом;

· на листах типографических форматов при изготовлении документа типографским способом.

Расположение материалов программного документа осуществляется в следующей последовательности:

титульная часть:

· лист утверждения (не входит в общее количество листов документа);

· титульный лист (первый лист документа);

информационная часть:

· аннотация;

· лист содержания;

основная часть:

· текст документа (с рисунками, таблицами и т.п.)

· перечень терминов и их определений;

· перечень сокращений;

· приложения;

· предметный указатель;

· перечень ссылочных документов;

часть регистрации изменений:

· лист регистрации изменений.

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

ГОСТ 19.402-78 ЕСПД. Описание программы

Состав документа «Описание программы» в своей содержательной части может дополняться разделами и пунктами, почерпнутыми из стандартов для других описательных документов и руководств: ГОСТ 19.404-79 ЕСПД. Пояснительная записка, ГОСТ 19.502-78 ЕСПД. Описание применения, ГОСТ 19.503-79 ЕСПД. Руководство системного программиста, ГОСТ 19.504-79 ЕСПД. Руководство программиста, ГОСТ 19.505-79 ЕСПД. Руководство оператора.

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

Надо также выделить ГОСТ 19.301-79 ЕСПД. Программа и методика испытаний, который (в адаптированном виде) может использоваться для разработки документов планирования и проведения испытательных работ по оценке готовности и качества ПС.

Наконец, последний по году принятия стандарт ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные графические и правила выполнения. Он устанавливает правила выполнения схем, используемых для отображения различных видов задач обработки данных и средств их решения и полностью соответствует стандарту ИСО 5807:1985.

Наряду с ЕСПД на межгосударственном уровне действуют еще два стандарта, также относящихся к документированию ПС и принятых не так давно, как большая часть ГОСТ ЕСПД.

ГОСТ 19781-90 Обеспечение систем обработки информации программное. Термины и определения. Разработан взамен ГОСТ 19.781-83 и ГОСТ 19.004-80 и устанавливает термины и определения понятий в области программного обеспечения (ПО) систем обработки данных (СОД), применяемые во всех видах документации и литературы, входящих в сферу работ по стандартизации или использующих результаты этих работ.

ГОСТ 28388-89 Системы обработки информации. Документы на магнитных носителях данных. Порядок выполнения и обращения. Распространяется не только на программные, но и на конструкторские, технологические и другие проектные документы, выполняемые на магнитных носителях.

Стандарты комплекса ГОСТ 34

ГОСТ 34 задумывался в конце 80-х годов как всеобъемлющий комплекс взаимоувязанных межотраслевых документов. Мотивы и получившиеся результаты описаны ниже в «Особенностях» ГОСТ 34. Объектами стандартизации являются автоматизированные системы (АС) различных (любых!) видов и все виды их компонентов, а не только ПО и БД.

Комплекс рассчитан на взаимодействие заказчика и разработчика. Аналогично ISO12207 предусмотрено, что заказчик может разрабатывать АС для себя сам (если создаст для этого специализированное подразделение). Однако формулировки ГОСТ 34 не ориентированы на столь явное и, в известном смысле, симметричное отражение действий обеих сторон, как ISO12207. Поскольку ГОСТ 34 в основном уделяет внимание содержанию проектных документов, распределение действий между сторонами обычно делается, отталкиваясь от этого содержания.

Из всех существующих и не реализованных групп документов приведем только примеры стандартов из Группы 0 «Общие положения» и Группы 6 «Создание, функционирование и развитие АС» . Наиболее популярными можно считать стандарты ГОСТ 34.601-90 (Стадии создания АС), ГОСТ 34.602-89 (ТЗ на создание АС) и методические указания РД 50-34.698-90 (Требования к содержанию документов) . Стандарты предусматривают стадии и этапы выполнения работ по созданию АС, но не предусматривают сквозных процессов в явном виде.

Для общего случая разработки АС стадии и этапы ГОСТ 34 приведены в таблице 4.7.

Табл. 4.7. Стадии и этапы ГОСТ 34.

1. ФТ - Формирование требований к АС.

1.1. Обследование объекта и обоснование необходимости создания АС;1.2. Формирование требований пользователя к АС;1.3. Оформление отчета о выполненной работе и заявки на разработку АС (тактико-технического задания);

2. РК - Разработка концепции АС.

2.1. Изучение объекта;2.2. Проведение необходимых научно-исследовательских работ;2.3. Разработка вариантов концепции АС, удовлетворяющей требованиям пользователя2.4. Оформление отчета о выполненной работе

3. ТЗ - Техническое создание АС.

3.1. Разработка и утверждение технического задания на задание.

4. ЭП - Эскизный проект.

4.1. Разработка предварительных проектных решений по системе и ее частям;4.2. Разработка документации на АС и ее части.


Подобные документы

  • Требования к технологии проектирования программного обеспечения (ПО). Состав и описание стадий полного жизненного цикла ПО. Классификация моделей жизненного цикла ПО, их особенности. Методологии разработки ПО, приёмы экстремальный программирование.

    презентация [874,4 K], добавлен 19.09.2016

  • Процессы Oracle CDM. Стадии и этапы выполнения работ по созданию автоматизированной системы (АС). Основные модели жизненного цикла ПО. Требования к содержанию документов. Основная проблема спирального цикла. Работы, выполняемые при разработке проекта.

    презентация [194,1 K], добавлен 14.10.2013

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

    презентация [159,1 K], добавлен 27.12.2013

  • Жизненный цикл информационных систем. Процессы документирования и управления конфигурацией. Использование каскадного и спирального подходов к построению ИС. Их преимущества и недостатки. Процесс разработки программного обеспечения по каскадной схеме.

    презентация [350,6 K], добавлен 09.11.2015

  • Понятие технологии разработки программы. Основа проектирования программного обеспечения. Модели жизненного цикла, возникшие исторически в ходе развития теории проектирования программного обеспечения. Спиральная (spiral), каскадная и итерационная модели.

    презентация [1,0 M], добавлен 11.05.2015

  • Особенности основных, вспомогательных и организационных процессов жизненного цикла автоматизированных информационных систем. Основные методологии проектирования АИС на основе CASE-технологий. Определение модели жизненного цикла программного продукта.

    курсовая работа [1,8 M], добавлен 20.11.2010

  • Стадии жизненного цикла ИС и его стандарты. Методологии, поддерживающие спиральную модель. Каскадная и инкрементная модели, их достоинства и недостатки. Основные, вспомогательные и организационные процессы жизненного цикла. Сравнительный анализ моделей.

    курсовая работа [186,4 K], добавлен 21.05.2015

  • Жизненный цикл программного обеспечения - непрерывный процесс, который начинается с принятия решения о необходимости создания ПО и заканчивается при полном изъятия его из эксплуатации. Подход к определению жизненного цикла ПО Райли, по Леману и по Боэму.

    реферат [39,1 K], добавлен 11.01.2009

  • Характеристика программных средств, использованных при разработке сайта. Параметры аппаратных средств для демонстрации ПП. Особенности архитектуры программного обеспечения. Анализ модели жизненного цикла программного продукта. Построение Gant-диаграммы.

    курсовая работа [886,9 K], добавлен 30.05.2015

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

    курсовая работа [262,5 K], добавлен 10.07.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.