Содержание
- 2. Принципы ОО представления программных систем Рассмотрение сложной системы - применение декомпозиции - разбиения на составляющие элементы.
- 3. ОО анализ и проектирование отличаются от структурного подхода: другой процесс декомпозиции, другая архитектура программного продукта. Структурное
- 4. Термин «ОО программирование" означает разное. Ренч [1981]: "В 1980-х годах ОО программирование будет занимать такое же
- 5. Эволюция объектной модели Тенденции в проектировании Поколения языков программирования: смещение акцентов от программирования отдельных деталей к
- 6. Поколения ЯП высокого уровня в зависимости от языковых конструкций, которые впервые в них появились (Вегнер): Первое
- 7. Третье поколение(1962-1970) PL/I - FORTRAN+ALGOL+COBOL ALGOL-68 - Более строгий приемник ALGOL- 60 Pascal - Более простой
- 8. Основные положения объектной модели Йонесава и Токоро: «термин "объект" появился практически независимо в различных областях, связанных
- 9. На становление объектного подхода оказали влияние: развитие теории баз данных; исследования в области искусственного интеллекта; достижения
- 10. По мнению сторонников этих подходов, были созданы более качественные средства, обеспечивающие: лучшее выявление ошибок, большую эффективность
- 11. Первые ОО ОС: Plessey/System 250 (для мультипроцессора Plessey 250), Hydra (для CMU C.mmp), CALTSS (для CDC
- 12. Вклад в объектный подход внесен объектными и ОО ЯП. Впервые понятия классов и объектов введены в
- 13. Дейкстра указал на необходимость построения систем в виде структурированных абстракций. Парнас ввел идею скрытия информации. В
- 14. Объектный подход известен издавна: Греки - идея о том, что мир можно рассматривать в терминах как
- 15. Объектно-ориентированное программирование (OOP , object-oriented programming) – методология программирования, основанная на представлении программы в виде совокупности
- 16. Не все ЯП объектно-ориентированные. Страуструп: «если термин ОО язык вообще что-либо означает, то он должен означать
- 17. Поддержка наследования в таких ЯП означает возможность установления отношения "is-a" («это есть»), например: красная роза -
- 18. Объектно-ориентированное проектирование (OOD, object-oriented design) – методология проектирования, соединяющая процесс объектной декомпозиции и приемы представления логической
- 19. Объектно-ориентированный анализ (OOA, object-oriented analysis) – методология, при которой требования к системе воспринимаются с т.зр. классов
- 20. Составные части объектного подхода Парадигмы программирования Дженкинс и Глазго: «в большинстве своем программисты используют в работе
- 21. 5 основных разновидностей стилей программирования с присущими им видами абстракций: ∙ процедурно-ориентированный алгоритмы ∙ объектно-ориентированный классы
- 22. Невозможно признать какой-либо стиль программирования лучшим во всех областях практического применения. Для проектирования БЗ более пригоден
- 23. В 80-е годы - множество различных методологий моделирования. Каждая имела свои достоинства и недостатки, свою нотацию.
- 24. Часть методов, которые существовали в то время и повлияли на UML
- 25. Появление ООП требовало удобного инструмента для моделирования, единой нотации для описания сложных программных систем. Три специалиста,
- 26. В 1994 г. существовало 72 метода или частные методики. Многие из них «перекрывались» - использовали похожие
- 27. Известная картинка - типичный процесс создания продукта или "решения" (поскольку продукт решает проблему заказчика). Здесь видны
- 29. UML в первую очередь - это спецификации. Спецификация - подробное описание системы, полностью определяет ее цель
- 30. Объектная модель: 4 главных элемента (без любого из них модель не будет ОО) : абстрагирование; инкапсуляция;
- 31. Абстрагирование - один из основных методов, для решения сложных задач. Хоар: «Абстрагирование проявляется в нахождении сходств
- 32. Абстракция выделяет существенные характеристики объекта, отличающие его от всех других видов объектов, и четко определяет его
- 33. Абстрагирование сводится к формированию абстракций. Каждая абстракция фиксирует основные характеристики объекта, которые отличают его от других
- 34. Аппарат абстракции — удобный инструмент для борьбы со сложностью реальных систем. Создавая понятие в интересах задачи,
- 36. Выбор правильного набора абстракций для заданной предметной области - главная задача OOD. «Существует целый спектр абстракций,
- 37. Клиент - объект, использующий ресурсы другого объекта (сервера). Поведение О характеризуют услугами, которые он оказывает другим
- 38. Каждая операция, предусмотренная контрактом, однозначно определяется ее формальными параметрами и типом возвращаемого значения. Полный набор операций,
- 39. Центральная идея абстракции - понятие инварианта. Инвариант - это логическое условие, значение которого (истина или ложь)
- 40. В случае нарушения условия возбуждается исключительная ситуация Некоторые ЯП имеют средства для работы с исключительными ситуациями:
- 41. Абстракции обладают статическими и динамическими свойствами. Например, файл как объект имеет объем памяти, имя и содержание
- 42. Примеры абстракций. В тепличном хозяйстве, использующем гидропонику, растения выращиваются на питательном растворе без песка, гравия или
- 43. Ключевая абстракция - датчик. Датчики: температуры воды и воздуха, влажности, рН, освещения и концентрации питательных веществ.
- 44. Инкапсуляция Абстракция объекта всегда предшествует его реализации. После того, как решение о реализации принято, оно должно
- 45. Инкапсуляция и абстракция - взаимодополняющие понятия: абстракция выделяет внешнее поведение объекта, инкапсуляция содержит и скрывает реализацию,
- 46. Инкапсуляция определяет четкие границы между абстракциями: структура растения: чтобы понять на верхнем уровне действие фотосинтеза, допустимо
- 47. Принцип разделения интерфейса и реализации: в интерфейсной части собрано все, что касается взаимодействия данного О с
- 48. Модульность Майерс: "Разделение программы на модули до некоторой степени позволяет уменьшить ее сложность... Однако гораздо важнее
- 49. Лисков: "модульность - это разделение программы на фрагменты, которые компилируются по отдельности, но могут устанавливать связи
- 50. Правильное разделение программы на модули - сложная задача как выбор правильного набора абстракций. Зельковиц: "поскольку в
- 51. Для небольших задач допустимо описание всех классов и объектов в одном модуле. Для большинства программ (кроме
- 52. В структурном проектировании модульность - это искусство раскладывать п/п по кучкам так, чтобы в одну кучку
- 53. Программист должен находить баланс между двумя противоположными тенденциями: стремлением скрыть информацию и необходимостью обеспечения видимости тех
- 54. Принципы абстрагирования, инкапсуляции и модульности - взаимодополняющие. Объект логически определяет границы определенной абстракции, а инкапсуляция и
- 55. Иерархическая организация 3 механизма для борьбы со сложностью: Абстракция (упрощает представление физического объекта). Но число абстракций
- 56. Дополнение к ним - иерархическая организация - формирование из абстракций иерархической структуры. Упрощаются понимание проблем заказчика
- 57. Основные виды иерархических структур: структура из классов («is a»-иерархия); структура из объектов («part of»-иерархия). «is а»
- 58. «part of» - иерархическая структура базируется на отношении агрегации. Агрегация не является понятием, уникальным для ОО
- 59. Сравним элементы иерархий наследования и агрегации с точки зрения уровня сложности. При наследовании нижний элемент иерархии
- 60. Принцип наследования делает проект менее громоздким и более выразительным. Кокс: "В отсутствие наследования каждый класс становится
- 61. Для любого класса существуют два вида клиентов: объекты, которые манипулируют с экземплярами данного класса, и подклассы-наследники.
- 62. Типизация Понятие типа взято из теории абстрактных типов данных. Дойч: «тип - точная характеристика свойств, включая
- 63. Вегнер: «такой способ контроля существенен для программирования "в большом" ». В понятии типизации центральное место -
- 64. Примеры сильной и слабой типизации Конкретный ЯП может иметь сильный или слабый механизм типизации или не
- 65. Статическое и динамическое связывание. Сильная (строгая) и статическая типизация - разные вещи. Строгая типизация следит за
- 66. Параллелизм ООР основано на абстракции, инкапсуляции и наследовании; параллелизм главное внимание уделяет абстрагированию и синхронизации процессов.
- 67. Объектная модель отличается от моделей, связаных с методами структурного анализа, проектирования и программирования. Объектная модель не
- 68. Преимущества объектной модели: Позволяет использовать возможности ОО ЯП. Повышается уровень унификации разработки, повторное использование программ и
- 69. Выводы: Развитие программной индустрии привело к созданию методов OOA, OOD, OOP, служщие для программирования "в большом".
- 71. Скачать презентацию