
- •Вопросы к экзамену по ит (III курс ивт, повтас)
- •Декомпозиция данных и соответствующие расширения диаграмм потоков данных
- •Содержимое словаря данных
- •Визуальные языки проектирования спецификаций — flow-формы их четыре вида их символов: последовательная обработка, условный выбор, case-выбор, циклы. Особенности диаграмм Насси-Шнейдермана.
- •Сущности, отношения и связи в нотации Чена
- •Сущности, отношения и связи в нотации Чена
- •Категоризация сущностей. Общая сущность, сущность-категория. Декомпозиция сущности на категории. Узел-дискриминатор и диаграммы категоризации.
- •Разрешение неспецифических отношений (т.Е. Типа n*m).
- •Нотация модели erd – метод idef1. Независимы и зависимые сущности. Идентифицирующая и неидентифицирующая связь. Мощность связей. Создание и уровни логической модели данных в erWin.
- •Концепции и методы нормализации; первая, вторая и третья нормальные формы нормализованных схем по Кодду (Codd); алгоритм приведения в 3нф. Разрешение неспецифического отношения.
- •Техника Константайна (Constantine) и техника Джексона (Jackson) — две базовые техники структурного проектирования. Основные символы соответствующих диаграмм, их достоинства и недостатки.
- •Структурные карты Джексона. Блоки: структурный, библиотечный, процедурный.
- •Сущность и принципы объектно-ориентированного подхода (ооп). Отличие от структурного подхода. Концептуальная основа ооп. Основные понятия. Конечный результат.
- •Унифицированный язык моделирования uml. Цели разработки языка. Содержание стандарта uml версии l.1, принятый в 1997 г
- •Диаграммы вариантов использования. Назначение, компоненты. Типы действующих лиц. Типы связей.
- •Состав диаграммы Use Case
- •Типы связей
- •Диаграммы классов. Аспекты использования. Компоненты. Стереотипы классов. Типы отношений.
- •Диаграммы состояний. Их назначение, использование и компоненты.
- •Диаграммы взаимодействия объектов. Их назначение, использование и компоненты.
- •Диаграммы деятельностей. Их назначение, использование и компоненты.
- •Диаграммы компонентов и размещения. Их назначение, использование и элементы.
- •Принципиальное различие, сравнение и взаимосвязь структурного и объектно-ориентированного подходов.
- •Пример реализации — пакет erWin. Основные функции пакета и особенности используемых средств структурного системного анализа.
- •Пример реализации — пакет AllFusion Process Modeler (bpWin). Основные функции пакета и особенности используемых средств cca.
- •Основные возможности системы:
Диаграммы компонентов и размещения. Их назначение, использование и элементы.
Диаграммы компонентов моделируют физический уровень системы. На них изображаются компоненты ПО и связи между ними. На такой диаграмме обычно выделяют два типа компонентов: исполняемые компоненты и библиотеки кода.
Каждый класс модели (или подсистема) преобразуется в компонент исходного кода. Между отдельными компонентами изображают зависимости, соответствующие зависимостям на этапе компиляции или выполнения программы.
Диаграммы компонентов применяются теми участниками проекта, кто отвечает за компиляцию и сборку системы. Они нужны там, где начинается генерация кода.
Диаграмма размещения отражает физические взаимосвязи между программными и аппаратными компонентами системы. Она является хорошим средством для того, чтобы показать размещение объектов и компонентов в распределенной системе.
Диаграмма размещения показывает физическое расположение сети и местонахождение в ней различных компонентов. Ее основными элементами являются узел (вычислительный ресурс) и соединение - канал взаимодействия узлов (сеть).
Диаграмма размещения используется менеджером проекта, пользователями, архитектором системы и эксплуатационным персоналом, чтобы понять физическое размещение системы и расположение ее отдельных подсистем.
Принципиальное различие, сравнение и взаимосвязь структурного и объектно-ориентированного подходов.
Концептуальные основы CASE (Computer-Aided Software/System Engineering)-технологий. Эволюция CASE как самостоятельной дисциплины в программотехнике. Шесть периодов в методологии и инструментарии для разработки программного обеспечения: 1) ассемблеры, дампы памяти, анализаторы; 2) компиляторы, интерпретаторы, трассировщики; 3) символические отладчики, пакеты программ; 4) системы анализа и управления исходными текстами; 5) CASE-средства для анализа требований, проектирования спецификаций и структуры, редактирования интерфейсов (первое поколение — CASE-I); 6) CASE-средства для генерации исходных текстов и реализации интегрированного окружения поддержки полного жизненного цикла разработки программного обеспечения (второе поколение — CASE-II). Различия между CASE-I и CASE-II.
С самого начала CASE-технологии развивались за счет автоматизации и интеграции поддерживающих средств. Таким образом CASE-технологии не могут считаться самостоятельными методологиями, они только делают более эффективными пути их применения. CASE — не революция в программо технике: современные CASE-средства являются естественным продолжением эволюции всей отрасли средств разработки ПО. Традиционно выделяют шесть периодов, качественно отличающихся применяемой техникой и методами разработки ПО, которые характеризуются использованием в качестве инструментальных следующих средств:
1) ассемблеров, дампов памяти, анализаторов;
2) компиляторов, интерпретаторов, трассировщиков;
3) символических отладчиков, пакетов программ;
4) систем анализа и управления исходными текстами;
5) CASE-средств анализа требований, проектирования спецификаций и структуры, редактирования интерфейсов (первая генерация CASE-I);
6) CASE-средств генерации исходных текстов и реализации интегрированного окружения поддержки полного жизненного цикла (ЖЦ) разработки ПО (вторая генерация CASE-II).
CASE-I является первой технологией, адресованной непосредственно системным аналитикам и проектировщикам, и включающей средства для поддержки графических моделей, проектирования спецификаций, экранных редакторов и словарей данных. Она не предназначена для поддержки полного ЖЦ и концентрирует внимание на функциональных спецификациях и начальных шагах проекта — системном анализе, определении требований, системном проектировании, логическом проектировании
БД.
CASE-II отличается значительно более развитыми возможностями, улучшенными характеристиками и исчерпывающим подходом к полному ЖЦ. В ней в первую очередь используются средства поддержки автоматической кодогенерации, а также обеспечивается полная функциональная поддержка порождения графических системных требований и спецификаций проектирования; контроля, анализа и связывания системной информации, а также информации по управлению проектированием; построения прототипов и моделей системы; тестирования, верификации и анализа сгенерированных программ; генерации документов по проекту; контроля на соответствие стандартам по всем этапам ЖЦ. CASE-11 может включать свыше 100 функциональных компонентов, поддерживающих все этапы ЖЦ, при этом пользователям предоставляется возможность выбора необходимых средств и их интеграции в нужном составе.
Шесть этапов CASE-модели жизненного цикла программного продукта (прототипирование — проектирование спецификаций — контроль проекта — кодогенерация — системное тестирование — сопровождение) и ее отличия от пяти этапов традиционной модели (анализ — проектирование — кодирование — тестирование — сопровождение). Сравнение традиционной разработки программных проектов и разработки с применением CASE-технологий.
CASE-технологии предлагают новый, основанный на автоматизации подход к концепции ЖЦ ПО. При использовании CASE изменяются все фазы ЖЦ, при этом наибольшие изменения касаются фаз анализа и проектирования. На рис.14.1 приводится простейшая модель ЖЦ (рис.14.1а) и соответствующая CASE-модель (рис.14.1б), в которой фаза прототипирования заменяет традиционную фазу системного анализа. Необходимо отметить, что наиболее автоматизируемыми фазами являются фазы контроля проекта и кодогенерации (хотя все остальные фазы также поддерживаются CASE-средствами).
В таблице 14.1 приведены оценки трудозатрат по фазам ЖЦ. Первая строка таблицы соответствует традиционной разработке, вторая - разработке с использованием структурных методологий проектирования, третья - разработке с использованием CASE-технологий. В таблицу 14.2 сведены основные изменения в ЖЦ при использованииCASE-технологий по сравнению с традиционной разработкой.
На рис. 14.2 представлены результаты сравнения традиционной разработки программных проектов и разработки с применением CASE-технологий.
А) B)
Рис. 14.1. Модели жизненного цикла ПО
Таблица 14.1
Способ разработки |
Анализ |
Проектирование |
Кодирование |
Тестирование |
Традиционная разработка |
20% |
15% |
20% |
45% |
Использование структурных методологий проектирования |
30% |
30% |
15% |
25% |
Использование CASE-технологий |
40% |
40% |
5% |
15% |
Традиционная разработка
Основные усилия – на кодирование и тестирование
“Бумажные” спецификации
Ручное кодирование
Ручное документирование
Тестирование кодов
Сопровождение кодов
CASE
Основные усилия - на анализ и проектирование
Быстрое итеративное прототипирование
Автоматическая кодогенерация
Автоматическая генерация документации
Автоматический контроль проекта
Сопровождение спецификаций проектирования
CASE-средства автоматизации методологий системного анализа и проектирования. Состав, структура и функциональные особенности современных CASE-средств. Архитектура CASE—пакета: 1) средства централизованного хранения всей информации о проектируемом программном обеспечении в течение всего жизненного цикла (репозитарий); 2) редактор диаграмм; 3) верификатор диаграмм; 4) администратор проекта; 5) документатор проекта.
CASE-средства служат инструментарием для поддержки и усиления методов структурного анализа и проектирования. Эти инструменты поддерживают работу пользователей при создании и редактировании графического проекта в интерактивном режиме, они способствуют организации проекта в виде иерархии уровней абстракции, выполняют проверки соответствия компонентов. Фактически CASE-средства представляют собой новый тип графически-ориентированных инструментов, восходящих к системе поддержки ЖЦ ПО. Обычно к ним относят любое программное средство, обеспечивающее автоматическую помощь при разработке ПО, его сопровождении или деятельности по управлению проектом, и проявляющее следующие дополнительные черты:
мощная графика для описания и документирования систем ПО, а также для улучшения интерфейса с пользователем, развивающая творческие возможности специалистов и не отвлекающая их от процесса проектирования на решение второстепенных вопросов;
интеграция, обеспечивающая легкость передачи данных между средствами и позволяющая управлять всем процессом проектирования и разработки ПО непосредственно через процесс планирования проекта;
использование компьютерного хранилища (репозитория)для всей информации о проекте, которая может разделяться между разработчиками и исполнителями как основа для автоматического продуцирования ПО и повторного его использования в будущих системах.
Помимо перечисленных основополагающих принципов графической ориентации, интеграции и локализации всей проектной информации в репозитории в основе концептуального построения CASE-средств лежат следующие положения:
Человеческий фактор, определяющий разработку ПО как легкий, удобный и экономичный процесс.
Широкое использование базовых программных средств, получивших массовое распространение в других приложениях (БД и СУБД, компиляторы с различных языков программирования, отладчики, документаторы, издательские системы, оболочки экспертных систем и базы знаний, языки четвертого поколения и др).
Автоматизированная или автоматическая кодогенерация, выполняющая несколько видов генерации кодов: преобразования для получения документации, формирования БД, ввода/модификации данных, получения выполняемых машинных кодов из спецификаций ПО, автоматической сборки модулей из словарей и моделей данных и повторно используемых программ, автоматической конверсии ранее используемых файлов в форматы новых требований.
Ограничение сложности, позволяющее получать компоненты, поддающиеся управлению, обозримые и доступные для понимания, а также обладающие простой и ясной структурой.
Доступность для разных категорий пользователей.
Рентабельность.
Сопровождаемость, обеспечивающая способность адаптации при изменении требований и целей проекта.
Интегрированный CASE-пакет содержит четыре основные компонента:
Средства централизованного хранения всей информации о проектируемом ПО в течении всего
ЖЦ (репозитарий) являются основой CASE-пакета. Соответствущая БД должна иметь возможность поддерживать большую систему описаний и характеристик и предусматривать надежные меры по защите от ошибок и потерь информации. Репозитарий должен обеспечивать:
инкрементный режим при вводе описаний объектов;
распространение действия нового или скорректированного описания на информационное пространство всего проекта;
синхронизацию поступления информации от различных пользователей;
хранение версий проекта и его отдельных компонентов;
сборку любой запрошенной версии;
контроль информации на корректность, полноту и состоятельность.
Средства ввода предназначены для ввода данных в репозитарий, а также для организации взаимодействия с CASE-пакетом. Эти средства должны поддерживать различные методологии и использоваться на всем ЖЦ разными категориями разработчиков: аналитиками, проектировщиками, инженерами, администраторами и т.д.
Средства анализа, проектирования и разработки предназначены для того, чтобы обеспечить планирование и анализ различных описаний, а также их преобразования в процессе разработки.
Средства вывода служат для документирования, управления проектом и кодовой генерации.
Все перечисленные компоненты в совокупности должны:
поддерживать графические модели;
контролировать ошибки;
организовывать и поддерживать репозитарий;
поддерживать процесс проектирования и разработки.
Схема постановки и решения задачи: 1)формулирование задачи (1оформулирование цели, 2оописание исходных данных, 3оформулирование модели, 4оформулирование результата, 5оформулирование критерия оценки результата); 2)формализация задачи (1оформализация цели, 2оопределение объектов и свойств, 3оопределение способов вычисления свойств, 4оформирование таблицы «объекты-свойства», 5оформализация критерия оценки результата); 3)выбор способа решения задачи (1оопределение возможности использования ЭВМ, 2овыбор математического аппарата для решения задачи, 3оопределение алгоритмов решения, 4оформирование схемы обработки данных); 4)решение задачи (1осоставление технологической схемы обработки, 2опрохождение технологической схемы на ЭВМ, 3оанализ результата с помощью критерия оценки); 5)интерпретация результата (1осогласование результата с моделью, 2одальнейшее использование результата).
Классификация CASE-средств по 1) по поддерживаемым методологиям проектирования; 2) по поддерживаемым графическим нотациям построения диаграмм; 3) по степени интегрированности; 4) по типу и архитектуре вычислительной техники; 5) по режиму коллективной разработки проекта; 6) по типу операционной системы (ОС).
Классификация CASE-средств по типам (анализ и проектирование; проектирование баз данных и файлов; программирование; сопровождение и реинжениринг; окружение; управление проектом), по категориям (tools — вспомогательная программа; toolkit — пакет разработчика; workbench — инструментальное средство) и по уровням (Upper CASE; Middle CASE; Lower CASE)
Все современные CASE-средства могут быть классифицированы в основном по типам и категориям. Классификация по типам отражает функциональную ориентацию CASE-средств на те или иные процессы ЖЦ. Классификация по категориям определяет степень интегрированности по выполняемым функциям и включает отдельные локальные средства, решающие небольшие автономные задачи (tools), набор частично интегрированных средств, охватывающих большинство этапов жизненного цикла ИС (toolkit) и полностью интегрированные средства, поддерживающие весь ЖЦ ИС и связанные общим репозиторием. Помимо этого, CASE-средства можно классифицировать по следующим признакам:
применяемым методологиям и моделям систем и БД;
степени интегрированности с СУБД;
доступным платформам.
Классификация по типам в основном совпадает с компонентным составом CASE-средств и включает следующие основные типы:
средства анализа (Upper CASE), предназначенные для построения и анализа моделей предметной области (Design/IDEF (Meta Software), BPwin (Logic Works));
средства анализа и проектирования (Middle CASE), поддерживающие наиболее распространенные методологии проектирования и использующиеся для создания проектных спецификаций (Vantage Team Builder (Cayenne), Designer/2000 (ORACLE), Silverrun (CSA), PRO-IV (McDonnell Douglas), CASE.Аналитик (МакроПроджект)). Выходом таких средств являются спецификации компонентов и интерфейсов системы, архитектуры системы, алгоритмов и структур данных;
средства проектирования баз данных, обеспечивающие моделирование данных и генерацию схем баз данных (как правило, на языке SQL) для наиболее распространенных СУБД. К ним относятся ERwin (Logic Works), S-Designor (SDP) и DataBase Designer (ORACLE). Средства проектирования баз данных имеются также в составе CASE-средств Vantage Team Builder, Designer/2000, Silverrun и PRO-IV;
средства разработки приложений. К ним относятся средства 4GL (Uniface (Compuware), JAM (JYACC), PowerBuilder (Sybase), Developer/2000 (ORACLE), New Era (Informix), SQL Windows (Gupta), Delphi (Borland) и др.) и генераторы кодов, входящие в состав Vantage Team Builder, PRO-IV и частично - в Silverrun;
средства реинжиниринга, обеспечивающие анализ программных кодов и схем баз данных и формирование на их основе различных моделей и проектных спецификаций. Средства анализа схем БД и формирования ERD входят в состав Vantage Team Builder, PRO-IV, Silverrun, Designer/2000, ERwin и S-Designor. В области анализа программных кодов наибольшее распространение получают объектно-ориентированные CASE-средства, обеспечивающие реинжиниринг программ на языке С++ (Rational Rose (Rational Software), Object Team (Cayenne)).
Вспомогательные типы включают:
средства планирования и управления проектом (SE Companion, Microsoft Project и др.);
средства конфигурационного управления (PVCS (Intersolv));
средства тестирования (Quality Works (Segue Software));
средства документирования (SoDA (Rational Software)).