Лекция 3 - Визуальное моделирование при разработке ПО. Основы UML



Анализ и проектирование ПО

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

 

Рис. 3 - Процессы разработки ПО

 

В настоящий момент в анализе и проектировании ПО преобладает объектный подход.

Основные принципы объектного подхода

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

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

– Алгоритмическая декомпозиция (основные элементы программы – строительные блоки – алгоритмы).

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

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

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

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

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

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

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

- OOA (object oriented analysis) – объектно-ориентированный анализ.

- OOD (object oriented design) – объектно-ориентированное проектирование.

- OOP (object oriented programming) – объектно-ориентированное программирование.

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

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

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

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

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

Принципы объектного подхода

Рассмотрим наиболее важные принципы объектного подхода.

Абстрагирование применяется при решении многих задач. Любая построенная нами модель позволяет абстрагироваться от реального объекта, подменяя его изучение исследованием формальной модели. Абстрагирование в ООП позволяет выделить основные элементы предметной области, обладающие одинаковой структурой и поведением. Такое разбиение на классы позволяет существенно облегчить анализ и проектирование системы.

Инкапсуляция – важнейший элемент объектного подхода. Суть его заключается в скрытии деталей внутренней реализации. Инкапсуляция оказывает положительное влияние на защиту данных и существенно повышает шансы безболезненной замены одной из частей системы ее новой версией при условии сохранения интерфейса.

Иерархия помогает разбить задачу на уровни и постепенно ее решать, постепенно увеличивая детализацию рассмотрения. Иерархия упорядочивает абстракции. К счастью, разные иерархии можно обнаружить практически в любой системе. Агрегация инаследование – примеры таких иерархий. Они подчеркивают тот факт, что новые абстракции могут быть созданы на основе уже имеющихся.

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


Дата добавления: 2019-02-22; просмотров: 243; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!