Cтраница 2
В главе 1 раздел Размышления об объектах знакомит с концепциями и терминологией объектной ориентации. Соответствующие разделы глав 2 - 5 представляют набор требований для создания серьезного проекта объектно-ориентированной системы, а именно - программы моделирования лифта, и проводят студента через типичные этапы процесса объектно-ориентированного проектирования. В этих параграфах рассматривается, как идентифицировать объекты в задаче, как определить атрибуты и функции объекта и как определить взаимодействия объектов. [16]
Идеи системного подхода и их реализация в объектно-ориентированной методологии являются естественной базой современного проектирования и управления сложными системами. Такие понятия, как сложная система, структура, состояние, иерархия, событие, пришедшие из системотехники, дополненные понятиями класса, объекта, атрибута, инкапсуляции, отношений обобщения, агрегации и другими стали основой парадигмы объектно-ориентированного проектирования ( ООП), широко используемого в современных автоматизированных системах. [17]
Базовый класс описывает общие черты объектов. Все классы, порожденные базовым классом, наследуют возможности этого базового класса. В процессе объектно-ориентированного проектирования разработчик отыскивает общие черты объектов и выражает их в форме базового класса. Производные классы затем пополняются дополнительными по сравнению с унаследованными от базового класса возможностями. [18]
Базовый класс описывает нечто обобщенное. Все классы, полученные из одного базового класса, наследуют его свойства. В процессе объектно-ориентированного проектирования разработчик ищет общность и выделяет ее в различных структурах, формируя базовые классы. Затем производные классы настраиваются - приобретают новые свойства, дополнительные к унаследованным от базового класса. [19]
Одним из решений проблемы может стать автоматическая генерация кода приложения CASE-средствами на основе модели предметной области. Эту задачу решает технология кодогенерации, основанная на объектно-ориентированном проектировании. Существует несколько CASE-средств, поддерживающих языки объектно-ориентированного проектирования, в том числе ставший в последнее время стандартом UML. [20]
Так, вопросы геометрического моделирования, изучаемые в курсах инженерной графики, основ САПР или в специальном курсе Вычислительная геометрия, полезно дополнить фрагментами соответствующих прикладных протоколов STEP. В главах, посвященных математическому моделированию, нужно знакомить студентов с возможностями многоаспектного моделирования, в том числе на базе языка VHDL-AMS. Студенты должны быть знакомы с методиками концептуального проектирования IDEFO, IDEFIX и объектно-ориентированного проектирования на базе языка UML. Эти вопросы, так же как структура стандартов STEP и основы языка Express, могут быть предметом изучения в отдельном курсе CALS-технологии или в курсе Основы автоматизированного проектирования. В раздел оптимизации проектных решений нужно включить методы оптимального планирования и распределения ресурсов. Наконец, следует предусмотреть знакомство студентов с основами Internet-технологий, в том числе с представлением документов с помощью языков разметки. [21]
Книга предлагает полный курс изучения наиболее популярного и перспективного языка программирования - C и рассчитана как на начинающих, не владеющих никаким языком программирования, так и на опытных пользователей. Для начинающих - это полноценный курс, в котором изучается все, начиная с устройства компьютера и кончая новейшими достижениями C: шаблонами функций и классов, обработкой исключений и т.п. Опытный программист может пропустить часть известного ему материала, но получит множество полезных сведений в остальных частях книги. Особое внимание авторы уделяют современным методикам разработки программного обеспечения: наследованию, полиморфизму, объектно-ориентированному проектированию и объектно-ориентированному программированию, не забывая и о классическом структурном программировании. Приведено множество полезных советов. [22]
Наконец, в девятой главе изложена методология проектирования MAC и искусственных организаций. Проведен сравнительный анализ восходящего и нисходящего подходов к проектированию MAC. В рамках восходящего подхода предложены варианты эволюционного и коэволюционного проектирования MAC, изложена стандартная методика обобщенного объектно-ориентированного проектирования. На примере задачи синтеза организационных структур на ранних стадиях реинжиниринга организаций рассмотрена методика нисходящего проектирования искусственных организаций. Предложена общая схема гибридного V-образного проектирования. [23]
Каждый из этих принципов не нов сам по себе, но в объектной модели они впервые применены в совокупности. Объектно-ориентированный анализ и проектирование принципиально отличаются от традиционных подходов структурного проектирования: здесь нужно по-другому представлять себе процесс декомпозиции, а архитектура получающегося программного продукта в значительной степени выходит за рамки представлений, традиционных для структурного программирования. Отличия обусловлены тем, что структурное проектирование основано на структурном программировании, тогда как в основе объектно-ориентированного проектирования лежит методология объектно-ориентированного программирования. Методология объектно-ориентированного программирования основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. [24]
Различают два подхода к декомпозиции ПО. Первый способ называют функциональным или структурным. Он основан на выделении функций и потоков данных. Второй способ - объектный, выражает идеи объектно-ориентированного проектирования и программирования. [25]
С - был разработан Бьерном Строустропом в начале 80 - х годов в Bell Laboratories. C обеспечивает ряд свойств, которые приводят в порядок язык С, но, что более важно, он обеспечивает возможность объектно-ориентированного программирования. Быстрое, корректное и экономное создание программного обеспечения остается иллюзорной мечтой и это в то время, когда требуется проектирование нового и все более мощного программного обеспечения. Объекты - это эффективные повторно используемые компоненты программного обеспечения, моделирующие элементы реального мира. Разработчики программного обеспечения обнаруживают, что использование достижений модульного, объектно-ориентированного проектирования может значительно повысить продуктивность групп разработки по сравнению с предшествующей популярной технологией программирования, такой, как структурное программирование. [26]
При этом сначала создается контекстная диаграмма верхнего уровня ( top level context diagram), где определяются системные ограничения и интерфейсы с внешним миром. Затем с помощью техники интервью формируется список событий из внешней среды, на которые система должна реагировать. Такой подход обеспечивает простой базис для формирования сырой DFD. Несколько DFD-реакций могут быть объединены в реакцию более высокого уровня. Критерием такого объединения является наличие узлов, связанных общими данными. По существу, событийное разбиение не что иное, как метод объектно-ориентированного проектирования. [27]
![]() |
Неструктурированная блок-схема. [28] |
Мы научимся составлять большие программы, комбинируя функции, которые, в свою очередь, состоят из управляющих структур. Мы увидим также, как применение функций способствует повторному использованию программных средств. В дальнейшем мы будем создавать объекты из классов и возобновим наше исследование объектно-ориентированного программирования. А пока мы продолжим знакомство с объектами, представив на рассмотрение проблему, которую читатель будет решать технологией объектно-ориентированного проектирования. [29]