- •Тема 1 Введение
- •Новейшие направления в области создания технологий программирования
- •Законы эволюции программного обеспечения
- •Трансляция программ
- •Классификация языков программирования
- •Технологическая схема решения задач
- •Эволюция современных систем программирования
- •Структурное программирование
- •Структурирование алгоритмов и программ
- •Методы разработки алгоритмов
- •Концепция модульного программирования
- •Объектно-ориентированное программирование
- •Моделирование при разработке программного обеспечения. Case-системы
- •Проблема искусственного интеллекта. Экспертные системы
- •Тема 2 Особенности программирования в оконных операционных средах
- •Общие сведения о технологии .Net
Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) – это методология разработки программ, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса. В свою очередь и объекты, и классы характеризуются набором свойств, методов и событий.
Идея объектно-ориентированного программирования основана на четырех важнейших принципах: абстрагирование, инкапсуляция, наследование и полиморфизм. При абстрагировании реальные процессы ограничиваются их функциями, существенными для программирования. Внутреннее содержимое объекта и сложного механизма его действия защищаются от внешнего мира посредством инкапсуляции, при этом работа с объектом заключается в изменении его свойств и выполнении его методов в ответ на происходящие события. Благодаря наследованию уже запрограммированные функциональные возможности можно использовать и при разработке других объектов, дополняя и изменяя их свойства и методы. Полиморфизм позволяет различным объектам (в том числе и родственным) по-разному реализовывать одноименные и схожие по смыслу функции.
Моделирование при разработке программного обеспечения. Case-системы
Центральным элементом деятельности, ведущей к созданию качественного программного обеспечения, является моделирование. Модели позволяют нам наглядно продемонстрировать желаемую структуру и поведение системы. Они также необходимы для визуализации и управления ее архитектурой. Модели помогают добиться лучшего понимания создаваемой нами системы, что зачастую приводит к ее упрощению и возможности повторного использования. Наконец, модели нужны для минимизации риска.
Модель является упрощенным представлением реальности. Хорошая модель всегда включает элементы, существенно влияющие на результат, и не включает те, которые малозначимы на данном уровне абстракции. Каждая система может быть описана с разных точек зрения, для чего используются различные модели. Модель может быть структурной, подчеркивающей организацию системы, или поведенческой, то есть отражающей ее динамику.
Моделирование позволяет решить четыре различных задачи:
визуализировать систему в ее текущем или желательном для нас состоянии;
определить структуру или поведение системы;
получить шаблон, позволяющий затем сконструировать систему;
документировать принимаемые решения, используя полученные модели.
Моделирование используется при создании различных систем, причем, чем больше и сложнее система, тем большее значение приобретает моделирование при ее разработке.
Длительный опыт использования моделирования позволил сформулировать четыре основных его принципа.
1. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение. Правильно выбранная модель высветит самые коварные проблемы разработки и позволит проникнуть в самую суть задачи, что при ином подходе было бы невозможно.
2. Каждая модель может быть воплощена с разной степенью абстракции. В любом случае лучшей моделью будет та, которая позволяет выбрать уровень детализации в зависимости от того, кто и с какой целью на нее смотрит.
3. Лучшие модели – те, что ближе к реальности. Лучше всего, если модели будут во всем соотноситься с реальностью, а там, где связь ослабевает, должно быть понятно, в чем заключается различие и что из этого следует. Поскольку модель всегда упрощает реальность, задача в том, чтобы это упрощение не повлекло за собой какие-либо существенные потери.
4. Нельзя ограничиваться созданием только одной модели. Наилучший подход при разработке любой нетривиальной системы – использовать совокупность нескольких моделей, почти независимых друг от друга.
При разработке ПО существует несколько подходов к моделированию. Наиболее распространенными из них являются: алгоритмический и объектно-ориентированный.
Алгоритмический метод представляет традиционный подход к созданию ПО. Основным строительным блоком является процедура или функция, а внимание уделяется, прежде всего, вопросам передачи управления и декомпозиции больших алгоритмов на меньшие.
Объектно-ориентированный подход определяет в качестве основного строительного блока объект или класс. В самом общем смысле объект – это сущность (для конкретной предметной области или решения), а класс является описанием множества однотипных объектов. Каждый объект обладает идентичностью, состоянием и поведением.
Сейчас объектно-ориентированный подход к разработке ПО является преобладающим потому, что в большинстве случаев он позволяет объединить все почти независимые представления системы в единое семантическое целое. Кроме того, большинство современных языков программирования, инструментальных средств и операционных систем являются в той или иной мере объектно-ориентированными.
Технология объектно-ориентированного моделирования в наиболее полной мере нашла свое воплощение в так называемых CASE-системах. Хотя обычно представление о CASE-системах в нашем сознании никак не связано с обычным программированием.
В настоящее время CASE-средства используются подавляющим большинством фирм-разработчиков программного обеспечения (ПО). Мощный толчок к развитию CASE-средства получили в пору внедрения объектно-ориентированной технологии разработки ПО, когда старого, проверенного временем, метода проектирования «сверху вниз» стало явно недостаточно [1]. К тому же появились технологии объектного моделирования (Booch, OOSE, ОМТ), которые сами по себе были весьма сложными для привязки к языкам программирования, чтобы оперировать ими вручную.
Сегодня лидирующей в мире CASE-системой считается Rational Rose корпорации Rational Software, в которой работают основоположники этой технологии Г.Буч, Д.Рамбо и А.Джекобсон. Используя передовые средства визуального моделирования системы Rational Rose можно интерактивно разрабатывать архитектуру создаваемого приложения, генерировать его исходные тексты и параллельно работать над документированием разрабатываемой системы.
Система Rational Rose нацелена на создание модулей с использованием унифицированного языка моделирования UML (Unified Modeling Language), который был разработан в компании Rational Software в 1995 году, а уже в 1997 году стал стандартным языком объектно-ориентированного моделирования.
UML – является графическим языком для визуализации, специфицирования, конструирования и документирования систем, в которых большая роль принадлежит программному обеспечению. С помощью UML можно разработать детальный план создаваемой системы, отображающий не только ее концептуальные элементы, такие как системные функции и бизнес-процессы, но и конкретные особенности реализации, в том числе классы, написанные на специальных языках программирования, схемы баз данных и программные компоненты многократного использования.