ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 129
Скачиваний: 1
Практическое занятие 2. Основные понятия методологии ООАП
План
-
Основные понятия моделирования систем и программных приложений
-
Разработка модели. Формы представления модели -
Основные понятия методологии ООАП
-
модель с позиции пользователя (главное — это набор предоставляемых услуг и удобство использования) -
модель с позиции программиста проектировщика (Прозрачность кода и легкость расширения наращивания возможностей. -
модель с позиции бизнес-аналитика и т. д. (оценка используемых ресурсов при разработке и реализации).
, что позволяет все более адекватно отражать различные аспекты системы.
В практике разработки программных систем наибольшее распространение получили визуальные модели, которые используют для представления своих элементов специальную графическую нотацию.
Нотация (notation) – система условных обозначений, специально разработанная для представления элементов модели в графической форме.
Основное требование модели программных систем (ПС) – модель должна быть понятна заказчику и всем специалистам проектной группы, включая бизнес-аналитиков и программистов.
Это одно из требований, которое привело к разработке унифицированного языка моделирования (UML).
UML (Unified Modeling Language) Унифицированный язык моделирования.
UML – язык визуального моделирования, предназначенный для спецификации, визуализации и документирования объектно-ориентированных систем и бизнес процессов во время их проектирования.
Методология (methodology) – совокупность принципов и методик разработки ПС, определяющих процесс построения модели системы.
Современные методологии разработки ПС тесно связаны с концепцией автоматизированной разработки программного обеспечения (Computer Aided Software Engineering, CASE) и соответствующими программными средствами, реализующими эту концепцию.
Основные понятия методологии ООАП
Фундаментальными понятиями ООАП являются понятия класса и объекта, а также ее основные принципы: абстракция, инкапсуляция, полиморфизм, наследование.
Класс (class) представляет собой абстракцию совокупности реальных объектов, которые имеют общий набор свойств и обладают одинаковым поведением.
Объект (object) в контексте ООАП рассматривается как экземплярсоответствующегокласса.
Определение классов и объектов – одна из самых сложных задач объектно ориентированного анализа и проектирования. Понятия класса и объекта настолько тесно связаны, что невозможно говорить об объекте безотносительно к его классу. Однако существует важное различие этих двух понятий. В то время как объект обозначает конкретную сущность, определенную во времени и
пространстве, класс определяет лишь абстракцию существенноговобъекте.Итак, объект обладает состоянием, поведением и идентичностью. Структура и поведение схожих объектов определяет общийдля них класс. Термины «экземпляр класса» и «объект» взаимозаменяемы. Объекты, которые не имеют идентичных свойств илине обладают одинаковым поведением, по определению, не могутбытьотнесеныкодномуклассу.Абстракция (abstraction) – характеристика сущности, которая отличает ее от других сущностей. Другими словами, она означает сосредоточение на важнейших аспектах приложения и игнорированиевсехостальных.Сначалапринимаетсярешениеотом, что представляет собой объект и что он делает, а уже затемподбираетсяспособегореализации.Инкапсуляция (encapsulation) – сокрытие отдельных деталейвнутреннего устройства классов от внешних по отношению к нимобъектов или пользователей. Иначе говоря, сокрытие информации состоит в отделении внешних аспектов объекта, доступныхдругим объектам, от деталей внутренней реализации, которые отних скрываются. Таким образом, инкапсуляция исключает возникновениевзаимосвязейучастковпрограммы,из-закоторыхнебольшие изменения приводят к значительным непредвиденнымпоследствиям. Инкапсуляция позволяет модифицировать реализацию объекта безо всяких последствий для использующих егоприложений.Полиморфизм(polymorphism)–свойствоодноименныхметодов или операций выполнять разные действия или обладать различным поведением в зависимости от того, к какому классу ониотносятся. Это значит, что одна и та же операция подразумеваетразноеповедениевразныхклассах.Привызовеоперацииненужнобеспокоиться о том, сколько ее реализаций существует в системе.Полиморфизм перекладывает ответственность за выбор подходящей реализации с вызывающего кода на иерархию классов. Каждый объект
выбирает подходящую процедуру согласно своему классу. Это облегчает поддержку программ, потому что добавление нового класса не требует изменения вызывающего кода.
Наследование (inheritance) – принцип, в соответствии с которым знание о более общей категории разрешается применять для частной. Если родительский класс обладает фиксированным набором свойств и поведения, то любой наследуемый от него класс (потомок) должен содержать тот же набор свойств и поведения, а также иметь дополнительные, которые будут характеризовать его уникальность. Наследование структур данных вместе с поведением дает возможность подклассам совместно использовать общий код.
На использовании вышеперечисленных принципов основывается методология построения объектно-ориентированных моделей.
Модель(model) – абстракция произвольной системы или объекта, рассматриваемая с определенной точки зрения и представленная на некотором языке или в графической форме. Попросту говоря, она является упрощенным представлением реальности. Хорошая модель должна описывать важнейшие аспекты проблемы и опускать все прочие.
Общим свойством всех моделей является их подобие оригинальной системе, или системе-оригиналу. Необходимость построения моделей заключается в возможности их использования для получения информации о свойствах или поведении системы оригинала. Модель состоит из множества элементов, которые совместно описывают моделируемую систему. Основное требование к модели – она должна быть понятна всем специалистам проектной группы и удобна для документирования.
Процесс построения и последующего применения моделей называется моделированием.
Сложную систему можно представить в виде совокупности моделей трех типов: модели классов, модели состояний и модели
взаимодействий. Каждая из этих моделей описывает определенный уровень функционирования рассматриваемой системы. Другими словами, каждая модель соответствует некоторой определеннойточке зрениянапроектируемуюсистему.Модель классов описывает объекты, входящие в состав системы, и отношения между ними. Модель классов изображается надиаграммахклассов,которыепоказываютобщуюструктуруиповедение,атакже связимеждуклассами.Модель состояний описывает историю жизни объектов. Модель состояний изображается на диаграммах состояний. Каждаядиаграмма показывает порядок состояний и событий, возможныйв рамках данной системы для одного класса объектов. Действия исобытия на диаграмме состояний становятся операциями объектов модели классов. Ссылки между диаграммами состояний становятсявзаимодействиями вмоделивзаимодействия.Модель взаимодействий описывает взаимодействия междуобъектами. Модели состояния и взаимодействия описывают разные аспекты поведения. Модель взаимодействия изображается спомощью вариантов использования и на диаграммах последовательностиидеятельности.Триэтимодели–связанныемеждусобойсоставляющиеполного описания системы. Несмотря на то, что каждая модельописывает свои аспекты системы, она ссылается на другие модели. Модель классов описывает структуры данных, которыми оперируют модели состояний и взаимодействия. Операции в моделиклассов связаны с событиями и действиями. Модель состоянийописываетструктурууправленияобъектов.Появлениеобъектно-ориентированнойметодологииразработкимоделейсложныхсистемвсвоюочередьпотребовало удобногоинструментадлямоделирования,визуальногопредставления и описания проектируемых программных приложений.Однако оказалось, что разработка соответствующего языка, который объединял бы сильные стороны известных методов и обеспечивал наилучшую поддержку моделирования, является непростым делом. Потребовалось несколько лет, прежде чем усилия