Файл: Учебное пособие.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.12.2020

Просмотров: 6503

Скачиваний: 15

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

1.Введение в технологии разработки программного обеспечения

1.1.Основные этапы развития технологии разработки

1.1.1.Первый этап – «стихийное» программирование.

1.1.2.Второй этап – структурный подход к программированию (60-70-е годы XX в)

1.1.3.Третий этап – объектный подход к программированию (с середины 80-х годов до нашего времени)

1.1.4.Четвертый этап – компонентный подход и CASE-технологии (с середины 90-х годов до нашего времени)

1.1.5.Пятый этап – разработка, ориентированная на архитектуру и CASE-технологии (с начала XXI в. до нашего времени)

1.2.Эволюция моделей жизненного цикла программного обеспечения

1.2.1.Каскадная модель

1.2.2.Спиральная модель

1.2.3.Макетирование

1.2.4.Быстрая разработка приложений

1.2.5.Компонентно-ориентированная модель

1.2.6.XP-процесс

1.3.Стандарты, регламентирующие процесс разработки программного обеспечения

1.3.1.ГОСТ Р ИСО 9000-2001. Системы менеджмента качества. Основные положения и словарь

1.3.1.1.Предисловие

1.3.1.2.Введение

1.3.1.3.Область применения

1.3.1.4.Основные положения систем менеджмента качества

1.3.2.ГОСТ Р ИСО/МЭК ТО 15504

1.3.2.1.Обзор

1.3.2.2.Область применения

1.3.2.3.Состав ИСО/МЭК ТО 15504

1.3.2.4.Связь с другими международными стандартами

1.3.3.ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств

1.3.3.1.Введение

1.3.3.2.Область применения

1.3.3.3.Прикладное применение настоящего стандарта

2.Анализ проблемы и постановка задачи

2.1.Введение в системный анализ

2.2.Системные ресурсы

2.3.Анализ проблемы и моделирование предметной области с использованием системного подхода

2.3.1.Основные положения

2.3.2.Этап 1. Достижение соглашения об определении проблемы

2.3.3.Этап 2. Выделение основных причин – проблем, стоящих за проблемой

2.3.3.1.Устранение корневых причин

2.3.4.Этап 3. Выявление заинтересованных лиц и пользователей

2.3.5.Этап 4. Определение границ системы-решения

2.3.6.Этап 5. Выявление ограничений, налагаемых на решение

2.4.Методология ARIS

2.4.1.Организационная модель

2.4.2.Диаграмма цепочки добавленного качества

2.4.3.Модели eEPC

2.5.Стандарты IDEF0 - IDEF3

2.5.1.Методология описания бизнес процессов IDEF3

2.5.1.1.Синтаксис и семантика моделей IDEF3

2.5.1.2.Требования IDEF3 к описанию бизнес-процессов

2.5.2.Методология функционального моделирования IDEF0

2.5.2.1.Синтаксис и семантика моделейIDEF0

2.5.2.2.Построение моделей IDEF0

3.Анализ требований и их формализация

3.1.Методы определения требований

3.1.1.Интервьюирование

3.1.1.1.Этапы проведения интервью

3.1.2.Мозговой штурм и отбор идей

3.1.2.1.Генерация идей

3.1.2.2.Отбор идей

3.1.3.Совместная разработка приложений (JAD – Joint application design)

3.1.3.1.Роли в сеансах JAD

3.1.3.2.Сеансы JAD

3.1.3.3.Результаты проведения сеанса JAD

3.1.3.4.Недостатки метода JAD

3.1.4.Раскадровка

3.1.4.1.Типы раскадровок

3.1.5.Обыгрывание ролей

3.1.5.1.Суть метода обыгрывания ролей

3.1.5.2.Сценарный просмотр

3.1.6.CRC-карточки (Class-Responsibility-Collaboration, класс-обязанность-взаимодействие)

3.1.7.Быстрое прототипирование

3.2.Формализация требований

3.2.1.Метод вариантов использования и его применение

3.2.1.1.Построение модели вариантов использования

3.2.1.2.Спецификация вариантов использования

3.2.1.3.Преимущества

3.2.2.Псевдокод

3.2.3.Конечные автоматы

3.2.4.Графические деревья решений

3.2.5.Диаграммы деятельности

3.3.Техническое задание (ГОСТ 34.602-89)

3.3.1. Общие сведения

3.3.2.Назначение и цели создания (развития) системы

3.3.2.1.Назначение системы

3.3.2.2.Цели создания системы

3.3.3.Характеристики объекта автоматизации

3.3.4.Требования к системе

3.3.4.1.Требования к системе в целом

3.3.4.2.Требования к функциям (задачам)

3.3.4.3.Требования к видам обеспечения

3.3.5.Состав и содержание работ по созданию системы

3.3.6.Порядок контроля и приемки системы

3.3.7.Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие

3.3.8.Требования к документированию

3.3.9.Источники разработки

4.Архитектуры программных систем

4.1.Планирование архитектуры

4.1.1.Архитектурно-экономический цикл

4.1.2.Программный процесс и архитектурно-экономический цикл

4.1.2.1.Этапы разработки архитектуры

4.1.3.Суть программной архитектуры

4.1.3.1.Архитектурные образцы, эталонные модели и эталонные варианты архитектуры

4.1.3.2.Архитектурные структуры и представления

4.2.Проектирование архитектуры

4.2.1.Атрибутный метод проектирования

4.2.1.1.Этапы ADD

4.2.2.Создание макета системы

4.3.Документирование программной архитектуры

4.3.1.Варианты применения архитектурной документации

4.3.2.Представления

4.3.2.1.Выбор значимых представлений

4.3.3.Документирование представления

4.3.3.1.Документирование поведения

4.3.3.2.Документирование интерфейсов

4.4.Методы анализа архитектуры

4.4.1.Метод анализа компромиссных архитектурных решений – комплексный подход к оценке архитектуры

4.4.1.1.Этапы АТАМ

4.4.2.Метод анализа стоимости и эффективности — количественный подход к принятию архитектурно-проектных решений

4.4.2.1.Контекст принятия решений

4.4.2.2.Реализация СВАМ

5.Технология MDA.

5.1.Использование архитектуры, управляемой моделью

5.1.1.Концепция архитектуры, управляемой моделью

5.1.2.Модельные точки зрения и модели MDA

5.2.Язык объектных ограничений OCL

5.2.1.Типы данных и операции OCL

5.2.2.Инфиксная форма записи выражений OCL

5.2.3.Последовательности доступа к объектам в языке OCL

5.2.4.Операции над коллекциями

5.2.4.1.Стандартные операции

5.2.4.2.Операция select

5.2.4.3.Операция reject

5.2.4.4.Выделение элементов коллекции

5.2.4.5.Упорядочение набора

5.2.4.6.Логические итераторы

5.2.4.7.Операции для работы со строками

5.2.4.8.Работа с датами

5.3.Возможности технологии ECO

5.3.1.Введение в технологию ЕСО

5.3.2.Модель ЕСО

5.3.3.Пространство имен ЕСО

5.4.Разработка приложений на основе ECO

5.4.1.Этапы создания приложения по технологии ECO

5.4.2.Создание простого MDA-приложения

5.4.2.1.Создание модели UML

5.4.2.2.Создание интерфейса

5.4.2.3.Связывание интерфейса с моделью

5.4.2.4.Создание логики на OCL

6.Документирование программных систем в соответствии с ГОСТ

6.1.Управление документированием программного обеспечения

6.1.1.Предисловие

6.1.2.Область применения

6.1.3.Роль руководителей

6.1.4.Функции программной документации

6.1.4.1.Информация для управления

6.1.4.2.Связь между задачами

6.1.4.3.Обеспечение качества

6.1.4.4.Инструкции и справки

6.1.4.5.Сопровождение программного обеспечения

6.1.4.6.Исторические справки

6.1.5.Установление стратегии документирования

6.1.6.Определение стандартов и руководств по документированию

6.1.6.1.Выбор модели жизненного цикла программного обеспечения

6.1.6.2.Определение типов и содержания документов

6.1.6.3.Определение качества документов

6.1.6.4.Определение форматов документов

6.1.6.5.Определение системы обозначения документов

6.1.7.Установление процедуры документирования

6.1.8.Распределение ресурсов для документирования

6.1.8.1.Персонал

6.1.8.2.Средства

6.1.8.3.Финансирование

6.1.9.Планирование документирования

6.2.Требования к содержанию документов на автоматизированные системы

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

6.2.2.Требования к содержанию документов по общесистемным решениям

6.2.2.1.Ведомость эскизного (технического) проекта

6.2.2.2.Пояснительные записки к эскизному, техническому проектам

6.2.2.3.Схема функциональной структуры

6.2.2.4.Описание автоматизируемых функций

6.2.2.5.Описание постановки задачи (комплекса задач)

6.2.2.6.Локальная смета и локальный сметный расчет

6.2.2.7.Паспорт

6.2.2.8.Формуляр

6.2.2.9.Проектная оценка надежности системы

6.2.2.10.Общее описание системы

6.2.2.11.Программа и методика испытаний (компонентов, комплексов средств автоматизации, подсистем, систем)

6.2.3.Требования к содержанию документов с решениями по организационному обеспечению

6.2.3.1.Описание организационной структуры

6.2.3.2.Методика (технология) автоматизированного проектирования

6.2.3.3.Технологическая инструкция

6.2.3.4.Руководство пользователя

6.2.3.5.Описание технологического процесса обработки данных

6.2.4.Требования к содержанию документов с решениями по программному обеспечению

6.2.4.1.Описание программного обеспечения

6.2.5.Другие разделы

6.3.Принципы разработки руководства программиста

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

6.3.2.Содержание разделов

6.4.Разработка руководства пользователя

6.4.1.Общие замечания

6.4.2.Содержание разделов руководства

6.4.2.1.Общие сведения

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

6.4.2.3.Требования к процедурам функционирования системы

Заключение

Библиографический список

  • Функция size возвращает число элементов коллекции

  • Функции MinValue, MaxValue возвращают, соответственно, минимальное или максимальное значение из набора.

  • Функция Sum подсчитывает сумму всех элементов набора.

  • Функция count определяет число элементов коллекции, удовлетворяющих условию, заданному в качестве параметра. Например, выражение Count (Name=' Сергей') вычислит число элементов коллекции, у которых в поле Name содержится строка 'Сергей'.

  • Функции isEmpty, NotEmpty возвращают значение True, если, соответственно, в анализируемом наборе нет ни одного элемента или есть хотя бы один элемент.

Функция, применяемая к коллекции, может возвращать скалярный результат (единственное значение) или вектор (набор значений). Результаты работы функций MinValue, MaxValue, Count И некоторых других ОТНОСЯТСЯ К последнему типу. Результатом может быть коллекция из нескольких одинаковых значений, каждое из которых соответствует объекту исходной коллекции, отвечающему заданному условию. Если, например, в исходном наборе несколько минимальных величин с одинаковыми значениями, все они попадут в результирующую коллекцию. Чтобы гарантированно получить скалярный результат, надо применить к итоговому набору операцию first (см. далее).

5.2.4.2.Операция select

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

Пусть, например, в классе Computer (компьютер) имеется свойство Memory (объем оперативной памяти). Отбор всех объектов класса Computer, у которых объем оперативной памяти больше или равен 512 мегабайт (512 единицам, принятым в модели по умолчанию), выполняет следующее выражение OCL:

Computer.allInstances->select(Memory >= 512)

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

Computer.allInstances->select(Memory >= 512).Mouse

Это выражение отбирает объекты, представляющие компьютерные мыши (свойство Mouse), которыми оснащены компьютеры с оперативной памятью не менее 512 мегабайт.

5.2.4.3.Операция reject

Операция reject отбирает в выходную коллекцию только те объекты, которые не удовлетворяют заданному условию. По смыслу она противоположна операции select. В примере:

Computer.allInstances->reject(Memory < 512)

будет получен тот же результат, что и при использовании выражения:

Computer.allInstances->select (Memory >= 512)

5.2.4.4.Выделение элементов коллекции

Для получения первого элемента в коллекции применяется операция First. Для получения последнего элемента в коллекции применяется операция Last. Выделение объекта по его номеру в коллекции выполняет операция At — номер нужного объекта задается в качестве параметра (нумерация начинается с единицы).

Например, следующее выражение получает последний элемент из коллекции компьютеров:


Computer.allInstances->last

Получить название (свойство Name) процессора (свойство Processor) первого элемента текущей коллекции компьютеров можно следующим образом:

Computer.allInstances->first.Processor.Name

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

Computer.allInstances->At(5).Mouse

5.2.4.5.Упорядочение набора

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

Например, отсортируем набор объектов-компьютеров по именам:

Computer.allInstances->OrderBy(Name)

5.2.4.6.Логические итераторы

Проверка выполнения логического условия для всех элементов коллекции осуществляется с помощью итератора ForAll. Пусть, например, в классе Computer имеется свойство Mouse (отдельный класс), а у него, в свою очередь, имеется логическое свойство isMiddleButton (наличие средней кнопки мыши). Тогда выражение:

Computer.allInstances->ForAll(Mouse.IsMiddleButton) вернет значение True, если все без исключения компьютеры коллекции оснащены трехкнопочными мышами.

Итератор Exists, схожий по смыслу с итератором ForAll, возвращает значение True, если хотя бы один из элементов коллекции соответствует заданному условию:

Computer.allInstances->Exists(Mouse.IsMiddleButton)

5.2.4.7.Операции для работы со строками

Для работы со строками в языке OCL применяются следующие операции.

  • Соединение двух строк в одну (символ +) может также задаваться ключевым словом concat. Строка-параметр присоединяется к исходному операнду справа. Например, следующее выражение к имени первого компьютера в коллекции прибавляет строку ': ноутбук':

Computer.allInstances->first.Name.Concat(': ноутбук')

  • Результатом выделения подстроки (ключевое слово Substring) являет ся строка, выделенная из исходного операнда. Дополнительные параметры задают номера первого и последнего символов, включаемых в подстроку (нумерация начинается с единицы). Например, выражение:

'компьютер'.Substring(2,4)

  • вернет подстроку «омп».

  • Функции ToLower, ToUpper преобразуют все символы строки-операнда, соответственно, к нижнему или верхнему регистру.

  • Функция strToint преобразует исходную строку в целочисленное значение.

5.2.4.8.Работа с датами

Даты представляются в языке OCL в формате #гггг-мм-дд, где гггг — четырехзначная запись года, мм — номер месяца, а дд — число в месяце. Схожим образом записываются и временные константы — в формате #чч:мм:сc. Здесь чч означает часы, мм — минуты, се — секунды. Константы, записанные в таком виде, можно использовать в операциях сравнения. Например:

Computer.alllnstances->select(MyDate > #2006.01.01)

Users.alllnstances->select(ConnectTime = #23:59:00)


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

5.3.Возможности технологии ECO

5.3.1.Введение в технологию ЕСО

Технология ЕСО — это реализация концепции архитектуры, управляемой моделью. Она позволяет полностью создать приложение с помощью языка UML.

Технология ЕСО включает в себя набор объектов моделирования .NET и работает только на платформе .NET. В ней используются диаграммы UML как на фазах начального проектирования приложения, так и на этапе эксплуатации программы. Это достигается за счет встраивания модели в приложение.

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

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

Объектное (или модельное) пространство ЕСО — это область памяти, в ' которой существуют и взаимодействуют объекты ЕСО текущего проекта. В системе Delphi 2006 поддерживается третья версия технологии ЕСО III. Она состыкована со средой моделирования Borland Together, выпускаемой как самостоятельный продукт. Технология ЕСО III позволяет проектировать не только статическую структуру приложения, иерархию классов, но и его поведение, программную логику. Для этого задействуются так называемые машины состояний (описывающие их диаграммы состояний появились в версии языка UML 2.0). В итоге почти вся разработка сложного приложения выполняется в дизайнере диаграмм UML, встроенном в систему Delphi. На базе созданных таким образом моделей автоматически генерируется полнофункциональный исходный код приложения. В случае ручной модификации исходных текстов структура модели также автоматически подстраивается под внесенные изменения. Такая двунаправленная технология синхронизации модели и кода получила в среде Delphi название LiveSource.

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


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

5.3.2.Модель ЕСО

Модель может объединять несколько взглядов на объект, каждый из которых уточняет ту или иную особенность его существования. Модель компьютерной программы (в частности, модель ЕСО) отличается- от физических и математических моделей тем, что на ее основе должен быть автоматически сгенерирован безошибочный и работоспособный исходный текст на заданном языке программирования. Это предъявляет повышенные требования к полноте модели ЕСО, ее точности и непротиворечивости.

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

5.3.3.Пространство имен ЕСО

Познакомимся с организацией пространства имен ЕСО. В рамках иерархии классов Delphi все классы ЕСО входят в единое пространство имен Borland.Eco. Оно, в свою очередь, делится на шесть больших категорий.

  • Категория Borland.Eco.ObjectRepresentation содержит средства стандартного представления объекта ЕСО во внешних программах. Каждый из прикладных объектов ЕСО состоит из элементов (внутренние поля, методы). К каждому из этих элементов можно обращаться через стандартный интерфейс Element. Любой элемент объекта, доступный через этот интерфейс, может быть представлен в виде стандартного объекта .NET. Для этого задействуется его свойство AsObject.

  • Категория Borland.Eco.Handles содержит компоненты поддержки модельно го пространства на этапе проектирования. Они связывают объекты ЕСО, доступные через интерфейсы пространства имен ObjectRepresentation, с элементами пользовательского интерфейса.

  • Категория Borland.Eco.UmIRt содержит средства доступа к модели UML в процессе работы программы. Компоненты ЕСО базируются на классах .NET, поэтому к ним можно обращаться универсальным способом, принятым в .NET. В частности, для этого задействуется метод AslObject, предоставляющий для доступа к объекту интерфейс IObject платформы .NET.

  • Категория Borland.Eco.Subscription содержит средства уведомления об изменении значений объектов ЕСО по технологии «издатель — подписчики».

  • Категория Borland.Eco.Persistence содержит средства автоматического сохранения содержимого объектного пространства ЕСО в файлах и базах данных.


Категория Borland.Eco.Services — это среда поддержки внутренних механизмов технологии ЕСО. Она занимается вычислением значений выражений OCL, вносит модификации в модель, контролирует ее целостность.

5.4.Разработка приложений на основе ECO

5.4.1.Этапы создания приложения по технологии ECO

Технология создания приложения ЕСО состоит из следующих этапов.

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

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

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

  4. Создается переносимая логика приложения на языке OCL. Элементы управления связываются с выражениями ОСL для выполнения типичных стандартных действий (добавление, редактирование и удаление объектов: ЕСО).

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

5.4.2.Создание простого MDA-приложения

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

Создаётся пустая заготовка приложения ЕСО командой File>New>Other. Выберем значок ECO WinForms Application во вкладке Delphi for .NET Projects (Рис. 5 .57).

Рис. 5.57. Создание заготовки проекта ECO

В диалоговом окне введем имя проекта (например, projDeanOffice) и его местоположение (каталог). Нажмем кнопку ОК.

Среда Delphi сформирует пустую заготовку приложения ECO и откроет окно Проектировщика. В нем расположена начальная пустая форма приложения. Структура автоматически созданной модели (пустой заготовки) доступна в окне просмотра модели, открываемом командой View>Model View либо выбором вкладки Model View в правом верхнем окне (Рис. 5 .58). В этом окне в дополнение к самому проекту (projDeanOffice) и главной форме (WinForm) можно увидеть еще несколько автоматически добавленных элементов. Среди них имеются следующие:

  • элемент projDeanOfficeEcoSpace представляет объектное пространство ЕСО. Это основное хранилище, в котором располагаются экземпляры классов создаваемой модели во время работы программы. Это пространство также ответственно за хранение объектов ЕСО, например в базе данных или файле XML;

  • элемент Package_1 представляет пакет классов UML, которые мы будем создавать.