КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Состав операций
Выделение объектов Объектный подход к проектированию Эти типы не абстрактны, они столь же реальны, как int и float.
Дуг Макилрой При разработке программного обеспечения выделяют два принципиальных подхода к проектированию: структурный (или функциональный) и объектный. Структурный или функциональный подход заключается в выделении в первую очередь основных функций или действий и базируется на нисходящем проектировании, основанном на структурах и алгоритмах управления. Основное понятие этого подхода – алгоритмы. В объектном или объектно-ориентированном подходе в первую очередь выделяется множество основных объектов системы и впоследствии определяется множество операций над объектами. Такой подход базируется на абстрактных типах, и решение задачи выражается в терминах выделенных объектов.
Для обоих подходов первый шаг проектирования заключается в постановке задачи. При объектно-ориентированном подходе удобно строить таблицу, в которую заносятся все объекты и операции. Такая таблица помогает структурировать описание и показывает основные взаимосвязи между объектами. Рассмотрим задачу реализации электронного каталога и системы учета для библиотеки. Читатель приходит в библиотеку, ищет в электронном каталоге нужные книги, выбирает их, берет на прочтение (эта операция связывает читателя и книгу, отметка ставится в формуляр читателя), получая номер полки, где хранится книга. После прочтения книги он возвращает книгу, делая соответствующую отметку в системе. Основными объектами программы будут: - Книга; - Формуляр; - Читатель.
Основные операции это – найти книгу, взять книгу и вернуть книгу. Таблица объектов будет выглядеть следующим образом:
Таблица 2. Объекты системы
Как видно из Таблицы 2, возможны случаи, когда одна операция выполняется сразу над несколькими объектами. Например, операция «Взять книгу на прочтение» выполняется сразу над тремя объектами – Читатель, Формуляр и Книга, т.к. эта операция связывает объекты Читатель и Книга через объект Формуляр. В данной задаче понятие Формуляра является связью между Читателем и Книгой. При этом это не равнозначная связь – с одним читателем может быть связно несколько книг, но не наоборот. Из Таблицы 2 видно, что для каждого объекта предусмотрена операция создания (конструктор). Эта операция позволяет заводить новые книги и новых читателей, с установкой для них первоначальных значений всех свойств. Таблица объектов выявляет наиболее значимые объекты, для которых определено наибольшее количество операций. В нашем случае основные объекты – это Читатель и Книга, что не противоречит восприятию реальной библиотеки. В таблицу объектов можно добавить объект «операция» или объект, отвечающий за получение команды пользователя электронной системой. Теперь, когда определены все основные объекты, можно рассматривать алгоритм, основываясь на выделенных операциях. Следующий шаг объектно-ориентированного подхода к проектированию заключается в детальной проработке каждой операции. Предварительно, должны быть рассмотрены все форматы ввода/вывода и интерфейсы. Первый шаг – построение таблицы объектов и операций рассматривает абстракции и не накладывает ограничений на реализацию. Второй шаг, наоборот, фиксирует структуры данных, детализирует представление каждого объекта, структурирует алгоритмы. Если операция или объект достаточно сложен – к нему в отдельности может снова применяться объектно-ориентированный подход. Как объектный, так и структурный подход имеют свои достоинства и недостатки. Объектный подход удобен в случаях, когда алгоритм для решения задачи представляется не очень сложным, и основная проблема заключается в представлении данных. Выделение основных объектов упрощает описание задачи реального мира. Однако, когда алгоритм представляется достаточно сложным, объектный подход не позволяет его упростить. В этом случае удобен структурный подход, который позволяет двигаться с верху вниз, постепенно упрощая алгоритм, но при этом общая картина постоянно остается целостной. Объектный подход упрощает декомпозицию программы на модули, естественно выделяя каждый объект в отдельный модуль. Структурный подход слабо поддерживает декомпозицию на модули, а это порой является довольно сложной задачей Объектно-ориентированный подход упрощает последующую модификацию, т.к. все операции логически выделены в отдельные процедуры. В силу того, что объектный и структурный подходы являются независимыми – их стоит объединять вместе, для использования преимуществ каждого. Объекты и операции удобно выбирать используя объектный подход, а реализацию удобнее проводить при помощи структурного подхода.
Внимание! Объектно-ориентированный подход помогает выделить объекты программы. Если описать алгоритм становится сложно, следует использовать структурный подход, если же основная проблема в структуре данных – стоит обратиться к объектному подходу. При проектировании следует придерживаться максимального уровня абстракции. Каждую операцию и каждый объект стоит рассматривать как отдельную задачу. Сочетание объектного и структурного подхода дает наибольший эффект.
Дата добавления: 2014-12-26; Просмотров: 459; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |