Жизненные циклы информационных систем

 

ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ

Государственное образовательное учреждение

Высшего профессионального образования

      МОСКОВСКИЙ  СОЦИАЛЬНО-ЭКОНОМИЧЕСКИЙ  ИНСТИТУТ 
 
 
 
 
 
 
 
 

Курсовой  проект по дисциплине: 

Информационные  технологии 

Тема: Жизненный цикл операционных систем 
 
 
 
 
 
 

Выполнила студент:

Лейкина Т.А. гр 710

                                                                                                 Проверил:     

__________________ 
 

МОСКВА 2010

СОДЕРЖАНИЕ

    Содержание

Введение                                                                                                                 2

    1. Основы жизненного цикла программных средств                                     4

    1.1 Особенности и свойства жизненного цикла программ                                  5

    1.2 Фундаментальные  модели жизненного цикла операционных систем        7

    1.3 Методы и процессы стандартизации жизненного цикла ПС                        9

    2. Стандарты как основа законодательной базы для разработки операционных систем  

     2.1 Модель и методология жизненного цикла ОП                                            11

2.2 Организация стандарта и архитектура жизненного цикла                      12

     2.3  Основные процессы жизненного цикла                                                      14

     2.4 Адаптация стандарта                                                                                       16

     2.5 Роль системотехники в программной  инженерии                                       17

3. Цикл жизни процесса                                                                                     19

3.1 Иерархическая  структура связей между процессами                                  20

 

Заключение……………………………………………………………………    21

Используемая  литература………………………………………………………22

 
 
 
 
 

Введение

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

     жизненный цикл проекта  предлагается следующее определение жизненного цикла проекта

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

     Жизненный цикл проекта включает все фазы от момента  инициации до момента  завершения.

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

     Существует  общее соглашение о выделении  четырех обобщенных фаз жизненного цикла (в скобках приведены используемые в различных источниках альтернативные термины):

- концепция  (инициация, идентификация, отбор)

- определение  (анализ)

- выполнение (практическая реализация или  внедрение, производство и развертывание,

проектирование  или конструирование, сдача в эксплуатацию, инсталляция, тестирование и т.п.)

- закрытие (завершение, включая оценивание  после завершения)

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

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

 
 
 
 
 

1. Основы жизненного  цикла программных средств

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

     ЖИЗНЕННЫЙ ЦИКЛ ПРОЦЕССА: в начальный момент процесс начинает жить ( загрузка в ОЗУ МП). Выполнив набор действий, процесс может умереть ( освобождение памяти и удаление из списка активных процессов ).

 

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

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

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

1.1 Особенности и свойства жизненного цикла программ

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

Первый  класс составляют относительно небольшие программы, создаваемые одиночками или небольшими коллективами (3 –5) специалистов, которые:

  • создаются преимущественно для получения конкретных результатов автоматизации научных исследований или для анализа относительно простых процессов самими разработчиками программ;
  • не предназначены для массового тиражирования и распространения как программного продукта на рынке, их оценивают качественно и интуитивно преимущественно как “художественные произведения”;
  • не имеют конкретного независимого заказчика-потребителя, определяющего требования к программам и их финансирование;
  • не ограничиваются заказчиком допустимой стоимостью, трудоемкостью и сроками их создания, требованиями заданного качества и документирования;
  • не подлежат независимому тестированию, гарантированию качества и/или сертификации.

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

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

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

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

        1.3 Фундаментальные   модели жизненного  цикла операционных  систем

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

  • каскадная;
  • инкрементная;
  • эволюционная.

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

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

 
каскадная модель

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

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

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

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

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

1.3 Методы и процессы  стандартизации жизненного  цикла ПС

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

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

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

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

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

2. Стандарты как  основа законодательной  базы для разработки  операционных систем

Стандарт 12207: Процессы жизненного цикла программного обеспечения

В 1997 году Международная Организация по Стандартизации - ИСО (International Organization for Standardization - ISO) и Международная Электротехническая Комиссия - МЭК (International Electrotechnical Commission - IEC) создали Совместный Технический Комитет по Информационным

Технологиям - Joint Technical Committee (JTC1) on Information Technology. Содержание работ JTC1 определено как “стандартизация в области систем и оборудования информационных технологий (включая микропроцессорные системы)”. В 1989 году этот комитет инициировал разработку стандарта ISO/IEC 12207, создав для этого подкомитет SC7 (SuСommittee 7) по программной инженерии. Соответствующий стандарт впервые был опубликован 1-го августа 1995 года под заголовком “Software Life Cycle Processes” – “Процессы жизненного цикла программного обеспечения”. Национальный стандарт [ГОСТ 12207, 1999] получил название “Процессы

жизненного  цикла программных средств”.

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

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

Данный  стандарт определяет жизненный цикл как структуру декомпозиции работ. Детализация, техники и метрики проведения работ – вопрос программной инженерии. Организация последовательности работ – модель жизненного цикла. Совокупность моделей, процессов, техник и организации проектной группы задаются методологией. В частности, выбор и применение метрик оценки качества программной системы и процессов находятся за рамками стандарта 12207, а концепция совершенствования процессов рассматривается в стандарте ISO/IEC 15504 “Information

Technology - Software Process Assessment” (“Оценка процессов  <в области> программного обеспечения”).

     Необходимо  отметить заложенные в стандарте  ключевые концепции рассмотрения жизненного

цикла программных систем.

 

2.1 Модель и методология жизненного цикла ОП

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

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

     В индустрии программного обеспечения  можно (так как это уже конкретная область приложения

концепций и практик проектного управления) и необходимо (для обеспечения  возможности управления) более четкое разграничение фаз проекта (что не подразумевает их линейного и последовательного выполнения). Ниже приведены определения <модели> жизненного цикла программной системы, даваемые, например, в различных вариантах стандартов ГОСТ:

• Модель жизненного цикла - структура, состоящая  из процессов, работ и задач, включающих в себя разработку, эксплуатацию и сопровождение программного продукта, охватывающая жизнь системы от установления требований к ней до прекращения ее использования [ГОСТ 12207, 1999].

• Жизненный  цикл автоматизированной системы (АС) - совокупность взаимосвязанных процессов создания и последовательного изменения состояния АС, от формирования исходных требований к ней до окончания эксплуатации и утилизации комплекса средств автоматизации АС [ГОСТ 34, 1990].

Один  из них - ГОСТ Р ИСО/МЭК 12207 является переводом международного стандарта ISO/IEC 12207, на основе которого, в свою очередь, создан соответствующий стандарт IEEE 12207. Второй

– в  рамках семейства ГОСТ 34 – разрабатывался в СССР самостоятельно, как стандарт на содержание и оформление документов на программные системы в рамках Единой системы программной документации (ЕСПД) и Единой системы конструкторской документации (ЕСКД). В последние годы, акцент делается на стандарты ГОСТ, соответствующие международным стандартам. В то же время, 34-я серия является важным дополнительным источником

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

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

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

• Жизненный  цикл разработки программного обеспечения  – проектная деятельность по разработке и развертыванию программных систем

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

• Жизненный  цикл информационных технологий (ИТ) –  включает всю деятельность ИТ-департамента

• Жизненный  цикл организации/бизнеса – охватывает всю деятельность организации в целом

Жизненные циклы информационных систем