Опубликован: 20.07.2007 | Доступ: свободный | Студентов: 765 / 147 | Оценка: 4.30 / 4.06 | Длительность: 09:58:00
Специальности: Программист
Лекция 3:

Визуальное моделирование при анализе и проектировании. Основы Unified Modeling Language (UML)

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Аннотация: В этой лекции основное внимание было уделено рассмотрению языка объектного моделирования UML. Раскрыты некоторые стороны анализа и проектирования ПО. Раскрыт объектно-ориентированный подход при моделировании с помощью UML
Ключевые слова: программная инженерия, Модель процессов, спиральная модель, анализ задачи, модульное программирование, object pascal, OOA, object orientation, OOD, объектно-ориентированное проектирование, динамическая модель, методология программирования, иерархия наследования, ООП, абстрагирование, формальная модель, инкапсуляция, агрегация, полиморфизм, релевантность, структуры хранения, IsEmpty, UML, Паттерн, шаблон проектирования, MFC, визуальное моделирование, unified modeling language, reference manual, unified, OMT, OOS, OMG, object manager, IEC, distributed processing, диаграммы взаимодействия, диаграммы классов, диаграмма компонентов, диаграмма развертывания, диаграммы объектов, структура системы, диаграммы пакетов, поток информации, диаграмма состояний, диаграммы вариантов использования, кооперация, диаграмма последовательности, атрибут класса, интерфейс объекта, кратчайший путь, actor, вариант использования, SRS, требования заказчика, блок-схема, модификаторы доступа, CPP, бинарный файл, OCX, поле класса, кратность

1. Вспоминая предыдущую лекцию

Наша предыдущая лекция целиком была посвящена введению в программную инженерию. При этом мы охватили следующие темы:

Программная инженерия, основные понятия

  • Инженеры и программные инженеры
  • Программная инженерия как инженерная дисциплина
  • Область действия программной инженерии
  • Цели программных инженеров
  • Программные инженеры и научная среда

Процесс создания ПО

  • Понятие процесса. Основные фазы.
  • Модель процесса. Каскадная и эволюционная модель.
  • Итерационный подход. Модель пошаговой разработки и спиральная модель.

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

Внимание! Презентации семинаров к данной лекции находятся здесь.

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


Рис. 3.1.

Или в укрупненном виде:


Рис. 3.2.

3-я часть и элементы 2-ой части этой цепочки изучаются в курсе "Методы программирования".

1-я и 2-я части составляют объект изучения отдельного курса "Анализ и проектирование".

В настоящий момент в анализе и проектировании преобладает объектный подход (изучен в 1-2 семестрах).

Вспомним суть объектного подхода.

2.1. Обзор принципов объектного подхода
2.1.1. Алгоритмическая и объектная декомпозиции. Классы и объекты

Принципиально можно выделить 2 вида разбиения предметной области на составляющие элементы:

  • Алгоритмическая декомпозиция (основные элементы программы - строительные блоки - алгоритмы).
  • Объектная декомпозиция (основные элементы программы - виды абстракций (классы) и представители этих классов (объекты)).

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

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

На сегодняшний день объектный подход и его основы - объектная модель и объектная декомпозиция - поддерживаются современными объектно-ориентированными языками программирования (Object Pascal, C++, Java, C#…).

2.1.2. Составные части объектного подхода

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

Объектный подход:

  • OOA (object oriented analysis) - объектно-ориентированный анализ.
  • OOD (object oriented design) - объектно-ориентированное проектирование.
  • OOP (object oriented programming) - объектно-ориентированное программирование.

Рассмотрим кратко эти ключевые понятия (определения Г. Буча):

Объектно-ориентированный анализ - это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области [3.2].

Объектно-ориентированное проектирование - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы [3.2].

Объектно-ориентированное программирование - это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования [3.2].

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

Курсы из цикла "Методы программирования" и, конкретнее, "Объектно-ориентированное программирование" преимущественно концентрируются на OOP. Данный курс, по крайней мере, его теоретическая часть основное внимание уделяет OOA и OOD.

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >