ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2020
Просмотров: 6765
Скачиваний: 15
СОДЕРЖАНИЕ
1.Введение в технологии разработки программного обеспечения
1.1.Основные этапы развития технологии разработки
1.1.1.Первый этап – «стихийное» программирование.
1.1.2.Второй этап – структурный подход к программированию (60-70-е годы XX в)
1.1.3.Третий этап – объектный подход к программированию (с середины 80-х годов до нашего времени)
1.2.Эволюция моделей жизненного цикла программного обеспечения
1.2.4.Быстрая разработка приложений
1.2.5.Компонентно-ориентированная модель
1.3.Стандарты, регламентирующие процесс разработки программного обеспечения
1.3.1.ГОСТ Р ИСО 9000-2001. Системы менеджмента качества. Основные положения и словарь
1.3.1.4.Основные положения систем менеджмента качества
1.3.2.3.Состав ИСО/МЭК ТО 15504
1.3.2.4.Связь с другими международными стандартами
1.3.3.3.Прикладное применение настоящего стандарта
2.Анализ проблемы и постановка задачи
2.1.Введение в системный анализ
2.3.Анализ проблемы и моделирование предметной области с использованием системного подхода
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.2.Диаграмма цепочки добавленного качества
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.1.Этапы проведения интервью
3.1.2.Мозговой штурм и отбор идей
3.1.3.Совместная разработка приложений (JAD – Joint application design)
3.1.3.3.Результаты проведения сеанса JAD
3.1.5.1.Суть метода обыгрывания ролей
3.1.6.CRC-карточки (Class-Responsibility-Collaboration, класс-обязанность-взаимодействие)
3.1.7.Быстрое прототипирование
3.2.1.Метод вариантов использования и его применение
3.2.1.1.Построение модели вариантов использования
3.2.1.2.Спецификация вариантов использования
3.2.4.Графические деревья решений
3.3.Техническое задание (ГОСТ 34.602-89)
3.3.2.Назначение и цели создания (развития) системы
3.3.3.Характеристики объекта автоматизации
3.3.4.1.Требования к системе в целом
3.3.4.2.Требования к функциям (задачам)
3.3.4.3.Требования к видам обеспечения
3.3.5.Состав и содержание работ по созданию системы
3.3.6.Порядок контроля и приемки системы
3.3.8.Требования к документированию
4.Архитектуры программных систем
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.3.Документирование программной архитектуры
4.3.1.Варианты применения архитектурной документации
4.3.2.1.Выбор значимых представлений
4.3.3.Документирование представления
4.3.3.1.Документирование поведения
4.3.3.2.Документирование интерфейсов
4.4.Методы анализа архитектуры
4.4.1.Метод анализа компромиссных архитектурных решений – комплексный подход к оценке архитектуры
4.4.2.1.Контекст принятия решений
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.4.Выделение элементов коллекции
5.2.4.7.Операции для работы со строками
5.3.Возможности технологии ECO
5.3.1.Введение в технологию ЕСО
5.4.Разработка приложений на основе ECO
5.4.1.Этапы создания приложения по технологии ECO
5.4.2.Создание простого MDA-приложения
5.4.2.3.Связывание интерфейса с моделью
5.4.2.4.Создание логики на OCL
6.Документирование программных систем в соответствии с ГОСТ
6.1.Управление документированием программного обеспечения
6.1.4.Функции программной документации
6.1.4.1.Информация для управления
6.1.4.5.Сопровождение программного обеспечения
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.9.Планирование документирования
6.2.Требования к содержанию документов на автоматизированные системы
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.9.Проектная оценка надежности системы
6.2.2.10.Общее описание системы
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.3.Принципы разработки руководства программиста
6.4.Разработка руководства пользователя
6.4.2.Содержание разделов руководства
-
Функция 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
Технология создания приложения ЕСО состоит из следующих этапов.
-
Формируется модель UML будущего приложения. Создаются классы, описываются их атрибуты и методы, настраиваются взаимосвязи между ними.
-
В проект добавляются и настраиваются невизуальные компоненты, связывающие созданную модель UML с прикладной частью проекта.
-
Проектируется пользовательский интерфейс. Задействуются компоненты, обеспечивающие связь интерфейса с моделью UML.
-
Создается переносимая логика приложения на языке OCL. Элементы управления связываются с выражениями ОСL для выполнения типичных стандартных действий (добавление, редактирование и удаление объектов: ЕСО).
-
Пространство ЕСО связывается с базой данных. В ней будет долговременно храниться его копия: все объекты ЕСО и взаимосвязи между ними. Эта последовательность в ходе расширения функциональных возможностей приложения многократно повторяется. Но все вносимые в проект изменения, что принципиально важно, выполняются, начиная с модели, а не с исходного кода или пользовательского интерфейса.
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, которые мы будем создавать.