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

Автор: Пользователь скрыл имя, 03 Июня 2015 в 12:56, лекция

Краткое описание

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

Файлы: 1 файл

5fan_ru_Технология разработки программных средств.doc

— 229.00 Кб (Скачать)
  • интегрированность по пользовательскому интерфейсу,
  • интегрированность по данным,
  • интегрированность по действиям (функциям),

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

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

 

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

В настоящее время выделяют [ 1] три основных класса инструментальных сред разработки и сопровождения ПС (рис.  1):

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


 

 

 

 

 

 

Рис.  1. Основные классы инструментальных сред разработки и сопровождения ПС.

 

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

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

Рабочее место компьютерной технологии ориентировано на поддержку ранних этапов разработки ПС (системного анализа и спецификаций) и автоматической генерации программ по спецификациям [ 1,4].

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

Более поздние рабочие места компьютерной технологии обладают также свойством комплексности ([ 4]). Что же касается языковой ориентированности, то вместо языков программирования они ориентированы на те или иные формальные языки спецификаций. Свойством ориентированности на коллективную разработку указанные рабочие места в настоящее время, как правило, не обладают.

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

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

 

3 Компьютерная технология (CASE-технология) разработки программных средств и ее рабочие места

 

3.1 Общие положения CASE-технологий

 

За последние десятилетия сформировалось новое направление в программотехнике — CASE (Computer-Aided Software/System Engineering), в дословном переводе — разработка ПО И С при поддержке (с помощью) компьютера. В настоящее время не существует общепринятого определения CASE, этот термин используется в весьма широком смысле.

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

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

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

CASE-технологии успешно применяются для построения практически всех типов систем ПО, однако устойчивое положение они занимают в следующих областях:

  • обеспечение разработки делового и коммерческого ПО — 
    широкое применение CAS Е-технологий обусловлено массовостью 
    этой прикладной области, в которой CASE применяется не толь 
    ко для разработки ПО, но и для создания моделей систем, помогающих решать задачи стратегического планирования, управления 
    финансами, определения политики фирм, обучения персонала и 
    др. (это направление получило свое собственное название — бизнес-анализ);
  • разработка системного и управляющего ПО — активное при 
    менение CASE-технологий связано с большой сложностью дан 
    ной проблематики и со стремлением повысить эффективность 
    работ.

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

С самого начала CASE-технологии развивались с целью преодоления ограничений при использовании структурных методологий проектирования 60 —70-х гг. прошлого века (сложности понимания, большой 
трудоемкости и стоимости использования.

 

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

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

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

• поддерживают технологии повторного использования компонентов разработки.

Появлению CASE-технологии и CASE-средств предшествовали исследования в области методологии программирования. Программирование обрело черты системного подхода с разработкой и внедрением языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описаний системных требований и спецификаций и т.д. В 70— 80-х гг. прошлого века стала на практике применяться структурная методология, предоставляющая в распоряжение разработчиков строгие формализованные методы описания АИС и принимаемых технических решений. Она основана на наглядной графической технике: для описания различного рода моделей АИС используются схемы и диаграммы. Наглядность и строгость средств структурного анализа позволяли разработчикам и будущим пользователям системы с самого начала неформально участвовать в ее создании, обсуждать и закреплять понимание основных технических решений. Однако широкое применение этой методологии и следование ее рекомендациям при разработке конкретных АИС встречалось достаточно редко, поскольку при неавтоматизированной (ручной) разработке это практически невозможно. Это и способствовало появлению программно-технологических средств особого класса — CASE-средств, реализующих CASE-технологию создания и сопровождения АИС.

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

 

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

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

  • среды общего назначения,
  • языково-ориентированные среды.

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


 

 

 

 

 

 

 

 

 

 

 

рис. 2. Классификация инструментальных сред программирования.

 

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

  • интерпретирующие среды,
  • синтаксически-управляемые среды.

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

 

4.Общая архитектура инструментальных  систем технологии программирования

 

Имеются некоторые трудности в выработке строгого определения CASE-технологии (компьютерной технологии разработки ПС). CASE - это абревиатура от английского Computer-Aided Software Engineering (Компьютерно-Помогаемая Инженерия Программирования). Но без помощи (поддержки) компьютера ПС уже давно не разрабатываются (используется хотя бы компилятор).

В действительности, в это понятие вкладывается более узкий (специальный) смысл, который постепенно размывается (как это всегда бывает, когда какое-либо понятие не имеет строгого определения). Первоначально под CASE понималась [ 4] инженерия ранних этапов разработки ПС (определение требований, разработка внешнего описания и архитектуры ПС) с использованием программной поддержки (программных инструментов).

Теперь под CASE может пониматься [ 4] и инженерия всего жизненного цикла ПС (включая и его сопровождение), но только в том случае, когда программы частично или полностью генерируются по документам, полученным на указанных ранних этапах разработки. В этом случае CASE-технология стала принципиально отличаться от ручной (традиционной) технологии разработки ПС: изменилось не только содержание технологических процессов, но и сама их совокупность.

Информация о работе Технология разработки программных средств