- •1. Предпосылки возникновения объектно-ориентированного подхода [1/2].
- •2. Концептуальная база объектно-ориентированного стиля[1/2].
- •4. Диаграммы языка uml[1/1].
- •5. Диаграмма вариантов использования[1/2].
- •6. Отношения на диаграмме вариантов использования[1/2].
- •Association relationship
- •Extend relationship
- •Generalization relationship
- •Include relationship
- •7. Диаграмма классов[1/3].
- •Атрибуты класса
- •Операции классов
- •Элементы диаграммы классов
- •8. Отношения между классами. [1/2]
- •9. Диаграмма состояний. [1/4]
- •10. Диаграмма деятельности. [1/2]
- •11. Диаграмма последовательности. [1/2]
- •12. Диаграмма кооперации. [1/2]
- •13. Физические диаграммы. [1/2]
- •14. История развития, назначение, общая структура языка uml [1/2].
- •15. Исторический обзор развития методологии ооап [1/1].
- •16. Диаграммы структурного системного анализа [1/2].
- •17. Разработка web-приложений с использованием uml [1/1].
- •18. Проектирование баз данных с помощью uml [1/1].
- •19. Среда описания и анализа бизнес-процессов aris [1/1].
- •20. Объектно-ориентированные базы данных [1/1].
1. Предпосылки возникновения объектно-ориентированного подхода [1/2].
По своей природе компьютер может выполнять только простейшие операции, которые можно вводить одну за другой в его память прямо в машинных кодах. Изнурительная монотонность такой работы привела первых программистов к естественному решению создания ассемблеров. Т.е. средств упрощающих написание программ за счет написания машинных кодов в некоторых мнемонических обозначениях с последующим автоматическим переводом. Дальнейшее развитие этих идей привело к созданию первых языков программирования высокого уровня в которых длинные и сложные последовательности машинных кодов были заменены одним обозначающим их словом или оператором. Эти нововведения существенно упростили написание программ. Тем не менее программы написанные сплошным текстом часто содержали запутанные последовательности операторов в которых зачастую было трудно уловить нить логических рассуждений. Эти проблемы были решены с появлением структурного программирования.
Параллельно был введен принцип декомпозиции. Следующим шагом стало появление модульного подхода, когда отдельные части программ стали отдельные самостоятельные структуры или модули.
Появление программирования снизу-вверх и сверху-вниз так же существенно упростило процесс написания программ. Методы основанные на этих подходах имеют общую черту, в них данные и обрабатывающий их код существуют отдельно друг от друга.
В этот период основным показателем сложности разработки программ считали ее размер. На начальных этапах программирование оценивалось значительно ниже реально затрачиваемых усилий, что служило причиной дополнительных расходов и затягивания окончательных сроков готовности программ.
Окружающий нам мир состоит из объектов, поэтому вполне логично было стремление перенести подобный метод представления информации о предметной области в программирование. Стало очевидным, что традиционные методы процедурного программирования не способны справиться ни с растущей сложностью программ и их разработкой ни с необходимостью повышения их надежности. Выходом из этого стало объектно-ориенитрованное программирование (ООП).
*1. Предпосылки возникновения объектно-ориентированного подхода [2/2].
Вместе с развитием ООП стали развиваться и общие объектно-ориентированные методы разработки ПО.
Объектно-ориентированные подход – это подход при котором требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.
С ООП тесно связанно объектно-ориентированное проектирование или моделирование. Если программирование направленно на правильное и эффективное использование контекстных языков, то проектирование направленно на правильное и эффективное структурирование сложных систем.
2. Концептуальная база объектно-ориентированного стиля[1/2].
Каждый стиль программирования имеет свою концептуальную базу. Для объектно-ориентированного (ОО) стиля концептуальная база – это объектная модель, создание которой требует особого ОО мышления.
ОО модель имеет 4 главных св-ва:
1) Абстрагирование – выделение искусственных характеристик некоторого объекта, отличающих его от других видов объектов. Оно включает понятия агрегации и обобщения.
а) Агрегация – это абстракция, которая превращает связь между объектами в некоторый агрегированный объект более высокого уровня.
Осуществляя такую абстракцию, мы можем игнорировать многие детали этой связи.
b) Обобщение – это абстракция, превращающая класс объекта в родовой объект.
2) Инкапсуляция – скрытие внутренней реализации объекта за представляемым этим объектом интерфейсом.
3) Модульность – способность системы быть разложенной на внутренне сильно- или слабосвязанные между собой модули.
4) Иерархия – упорядочение абстракций и разложение их по уровням.
Эти св-ва являются главными и, при отсутствии хотя бы одного их них, модель не будет ОО.
Также существуют 3 дополнительных св-ва:
1) Типизация – создание объектов на основе шаблонов определенного типа.
2) Параллелизм – способность системы обрабатывать несколько сообщений или задачи параллельно.
3) Сохраняемость – способность хранить не только данные, но и объекты в промежутке между отдельными запусками системы.
*2. Концептуальная база объектно-ориентированного стиля[2/2].
Для того чтобы создать ОО программу, необходимо создать некоторый набор объектов с определенным поведением, определить взаимосвязь. В свою очередь для создания объектов необходимо создать их описание, называемое классом.
Важнейшими св-ми класса явл-ся:
1) Наследование – это св-во, в соответствии с которым знания о более общей категории разрешается применять для более узкой категории. Наследование тесно связано с иерархией класса, которая определяет, какие классы следует считать наиболее абстрактными и общими по отношению к другим классам. При этом если некоторый более общий (или родительский) класс обладает фиксированным набором св-в и поведений, то производный от него потомок должен содержать этот же набор св-в и поведений, а также дополнительные, которые будут характеризовать уникальность полученного таким образом класса.
2) Инкапсуляция – это сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Взаимодействующему с классом субъекту или клиенту нет необходимости знать, каким образом реализован тот или иной метод класса, услугами которого он решил воспользоваться. Конкретная реализация присущих классу методов, которые определяют его поведение, явл-ся собственным делом данного класса. Отдельные св-ва и методы вообще могут быть невидимыми за пределами этого класса.
3) Полиморфизм – это св-во некоторых объектов принимать различные внешние формы в зависимости от обстоятельств. Действия, выполняемые одноименными методами, могут отличаться в зависимости от того, к какому классу относится тот или иной метод.
3.Методология системного анализа и системного моделирования[1/1]. Системный анализ как научное направление появилось раньше, чем ООАП и имеет собственный предмет исследований.
Центральным понятием системного анализа явл-ся понятие системы, под которой понимается совокупность объектов, компонентов или элементов произвольной природы, образующих некоторую целостность.
Определяющей предпосылкой выделения некоторой совокупности как системы, явл-ся возникновение у нее новых св-в, которые не имеют составляющие ее элементы.
Важнейшими характеристиками любой системы явл-ся:
1) Структура – это устойчивая во времени совокупность взаимосвязи между элементами и компонентами системы. Структура системы может отражать самые различные взаимосвязи, в том числе и вложенность элементов одной системы в другую. В этом случае вложенная (более мелкая) система наз-ся подсистемой, а более крупная – метасистемой.
2) Процесс функционирования системы тесно связан с изменением ее св-в или поведения во времени. При этом важной характеристикой системы явл-ся ее состояния, под которым понимается совокупность св-в или признаков, которые в каждый момент времени отражают наиболее существенные особенности поведения системы.
Методология системного анализа служит концептуальной основой системно-ориентированной декомпозиции предметной области. В этом случае исходными компонентами концептуализации явл-ся системы и взаимосвязи между ними.
Результатом системного анализа явл-ся построение некоторой модели системы или предметной области. Применительно к программным системам – это только то понятие модели, которое используется в системном анализе. Т.е. под моделью понимается некоторое представление о системе, отражающее наиболее существенные закономерности ее структуры, процесса функционирования и зафиксированное на некотором языке или в другой форме.
Общим св-ом всех моделей явл-ся их подобие оригинальной системе, а процесс построения и последующего применения модели для получения информации о системе-оригинале наз-ся моделированием.