- •«Технологии разработки программного обеспечения»
- •Оглавление
- •Введение
- •Анализ проблемы. Постановка задачи
- •Введение
- •Описание примера
- •Составление списка заинтересованных лиц
- •Анкетирование и проведение интервью
- •Список потребностей заинтересованных лиц
- •Задания
- •Контрольные вопросы
- •Моделирование объекта автоматизации
- •Введение
- •Введение в методологиюAris
- •Описание инструментаAris. Начало работы
- •Построение организационной модели
- •Построение диаграммы цепочек добавленного качества
- •ПостроениеeEpCмодели
- •Описание объектов автоматизации
- •Задания
- •Контрольные вопросы
- •Разработка модели вариантов использования и их спецификаций
- •Введение
- •Разработка модели вариантов использования
- •Модель вариантов использования
- •Построение модели вариантов использования
- •Спецификация вариантов использования
- •Основной поток
- •Альтернативные потоки
- •Специальные требования
- •Пример спецификации варианта использования
- •Алгоритм расчёта рейтингов
- •Задания
- •Пример написания раздела
- •Назначение документа
- •Наименование системы
- •Сведения о заказчике и исполнителе
- •Основания для выполнения работ, сроки и финансирование
- •Основные понятия, определения и сокращения
- •Актуальность разработки системы
- •Назначение и цели создания (развития) системы
- •Требования к содержимому раздела
- •Пример написания раздела
- •Характеристики объекта автоматизации
- •Требования к содержимому раздела
- •Пример написания раздела
- •Организация и планирование научно-исследовательской и инновационной деятельности
- •Исполнители научно-исследовательских работ
- •Учет и отчетность по научно-исследовательским работам
- •Требования к системе
- •Требования к содержимому раздела
- •Пример написания раздела
- •Требования к системе в целом
- •Требования к структуре и функционированию системы
- •Требования к численности и квалификации персонала
- •Требования к функциям (задачам)
- •Описание вариантов использования
- •Состав и содержание работ по созданию системы
- •Требования к содержимому раздела
- •Пример написания раздела
- •Порядок контроля и приемки системы
- •Требования к содержимому раздела
- •Пример написания раздела
- •Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
- •Требования к содержимому раздела
- •Пример написания раздела
- •Создание служб необходимых для функционирования системы
- •Функциональные этапы внедрения системы
- •Требования к документированию
- •Требования к содержимому раздела
- •Пример написания раздела
- •Паспорт системы
- •Общее описание системы
- •Руководство администратора
- •Руководство пользователя
- •Регламент эксплуатации
- •Источники разработки
- •Правила оформления
- •Задание
- •Бизнес-логика
- •Объектно-реляционное отображение
- •Структура бд
- •Создание проекта вBorlandDeveloperStudio
- •Добавление нового модуля в проект
- •Создание классов с помощью диаграммыUml
- •Добавление полей
- •Добавление свойств
- •Добавление процедуры
- •Добавление функции
- •Создание отношений между классами
- •Ассоциация
- •Агрегация
- •Наследование
- •Пример создания классов
- •Создание классов и отношений между ними слоя объектно-реляционного отображения
- •Создание классов слоя бизнес-логики
- •Невизуальные компоненты интерфейса используемые в примере
- •TimageList
- •TActionManager
- •Визуальные компоненты используемые в примере
- •TBitBtn
- •TdbGrid
- •TcomboBox
- •TPageControl
- •Пример разработки интерфейса
- •Главная форма
- •Форма редактирования параметров студента
- •Форма редактирования книг
- •Форма отображения списка книг
- •Подключение классов
- •Сохранение проекта
- •Задание
- •Шаблоны проектирования
- •Шаблон InformationExpert(информационный эксперт)
- •Преимущества
- •Шаблон Creator(создатель)
- •Преимущества
- •Шаблон LowCoupling(слабое связывание)
- •Преимущества
- •Шаблон HighCohesion(высокое зацепление)
- •Преимущества
- •Шаблон Controller(контроллер)
- •Преимущества
- •Применение шаблонаInformationExpert
- •Применение шаблонаCreator
- •Использование шаблонаHighCohesion
- •Применение шаблонаController
- •Задание
- •Технология eco
- •Язык объектных ограничений ocl
- •Mdi-контейнеры
- •Создание простого mda-приложения
- •Основные этапы разработки приложения
- •Обзор возможностей Borland Developer Studio 2006 для разработки mda-приложения
- •Создание моделиUml
- •Создание бд и настройкаEcOкомпонент
- •Создание интерфейса
- •Связывание интерфейса с моделью
- •Создание логики наOcl
- •Задания
- •Контрольные вопросы
- •РазработкаMda-приложения с использованием машин состояний
- •Введение
- •Автоматы
- •Состояния
- •Подавтоматы
- •Диаграммы состояний
- •Создание mda-приложений с использованием машин состояний
- •Модификация модели uml
- •Создание машины состояний
- •Обновление базы данных
- •Модификация пользовательского интерфейса
- •Связывание интерфейса с моделью
- •Применение автоформ
- •Расширение пользовательского интерфейса
- •Задания
- •Контрольные вопросы
- •Расширенные возможности разработкиMda-приложений
- •СозданиеMda-приложения с расширенными возможностями
- •Модификация моделиUml
- •Программное добавление объекта
- •Программное удаление объекта
- •Программное редактирование объекта
- •Работа со справочником
- •Поиск объектов
- •Задания
- •Контрольные вопросы
- •Заключение
- •Библиографический список
Введение
Программная инженерия на сегодняшний день является развивающимся направлением. В этой отрасли темпы развития, а, следовательно, и изменения очень велики. С каждым годом появляются новые методы, новые методики, новые технологи и автоматизированные средства, поддерживающие эти технологии (CASE).
Большинство крупных компаний, разрабатывающих программное обеспечение, создают собственные технологии разработки, опираясь на существующие стандарты, применяют их в своей повседневной деятельности и некоторые из них создают готовые решения для применения в бизнесе. Примерами таких технологий можно назвать RUP(Rationalunifiedprocess) компанииIBMRationalиMSF(MicrosoftSolutionsFramework) компанииMicrosoft.
В данном пособии описываются лабораторные работы, позволяющие понять содержание процесса разработки программных систем через поэтапное выполнения основных задач. Для описания поэтапной разработки за основу был взят классический жизненный цикл.
Технологии разработки программного обеспечения условно можно разделить на три класса:
Технологии программирования. Эти технологии охватывают область языков программирования (специализированные языки, процедурные языки, объектно-ориентированные языки, и т.д.), средств разработки, платформы (MSframeworkdotNET,J2EE, и т.д.), предметно-ориентированные среды программирования (IBMLotus, 1C, и т.д.).
Технологии разработки определённых классов систем. Все разрабатываемые системы могут быть разделены на классы, требующие определённого подхода к разработке. Так, например, можно выделить следующие классы систем: системы, автоматизирующие организационные процессы; системы, автоматизирующие проектную деятельность и технологические процессы (CAE,CAD,CAMи т.д.); системы реального времени; операционные системы; средства разработки программного обеспечения; драйверы и т.д.
Технологии организации и поддержки процесса разработки. Эти технологии направлены на решения одной очень сложной и важной задачи – минимизации всех затрат на разработку программного обеспечения с одновременным обеспечением надлежащего качества программной системы.
В данном практикуме технология организации и поддержки процесса разработки рассматривается на примере разработки программных систем, относящихся к классу систем, автоматизирующих организационные процессы.
Анализ проблемы. Постановка задачи
Цель работы:
получить навыки работы с реальными заказчиками программных систем;
научиться идентифицировать заинтересованных лиц и проводить с ними интервью;
научиться анализировать и перерабатывать полученный материал;
научиться формулировать проблему, актуальность и потребности заинтересованных лиц.
Введение
Цикл лабораторных работ разработан в соответствии с классическим жизненным циклом, корни которого уходят в период 70-х годов. Жизненным циклом ПО называют период от момента появления идеи создания некоторого программного обеспечения до момента завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение. В настоящее время существует большое количество жизненных циклов ПО, их модификаций и технологий разработки ПО, в том числе и стандарты (ГОСТ Р ИСО/МЭК 12207-99).
Для выполнения цикла лабораторных работ за основу был взят упрощённый жизненный цикл, включающие в себя основные содержательные этапы разработки программного обеспечения (см. Рисунок 1 .1).
Рисунок 1.1 – Классический жизненный цикл ПО
Каждый из этапов разработки ПО имеет входные данные, необходимые для выполнения работ на данном этапе и выходные, которые являются результатом выполняемых работ.
На этапе анализа проблемы проводится анализ предметной области, для которой разрабатывается ПО, с целью: 1) определения границиликонтурасистемы; 2) описания объектов автоматизации и/или формализации знаний об этих объектах; 3) выявления или определения потребностей заказчика ПО.
Анализ предметной области можно проводить, например, основываясь на теории системного анализа и использовать предложенные в ней методы.
Исходными данными для этапа системного анализа являются: 1) регламенты и должностные инструкции по работе отделов и сотрудников этих отделов; 2) анкеты опроса заинтересованных лиц; 3) записи интервью с заинтересованными лицами; 4) другие документы, имеющие отношение к исследуемому объекту.
Выходными данными или результатом этапа системного анализа является: 1) перечень заинтересованных лиц; 2) список потребностей заинтересованных лиц в разрабатываемом ПО; 3) описание объектов автоматизации; 4) модель объектов автоматизации или предметной области.