exam02 4 - stankin/design-part-1 GitHub Wiki
Структурно-функциональный и объектно-ориентированный подходы
Общая характеристика процесса проектирования
Реферат к лекции 2Цацурина Анастасия, ИДБ-18-06
Выполнила:Каноник Карина, ИДБ-18-06
Проверила:Структурно-функциональный подход
Структурно-функциональный (структурный) метод строится на основе выделения в целостных системах их структуры — совокупности устойчивых отношений и взаимосвязей между ее элементами и их роли (функций) относительно друг друга. Структура понимается как нечто инвариантное (неизменное) при определенных преобразованиях, а функция как «назначение» каждого из элементов данной системы (функции какого-либо биологического органа, функции государства, функции теории и т.д.). Основные требования процедуры структурно-функционального метода (который часто рассматривается как разновидность системного подхода):
- а) изучение строения, структуры системного объекта;
- б) исследование его элементов и их функциональных характеристик;
- в) анализ изменения этих элементов и их функций;
- г) рассмотрение развития (истории) системного объекта в целом;
- д) представление объекта как гармонически функционирующей системы, все элементы которой «работают» на поддержание этой гармонии.
Сущность структурного подхода к разработке программного обеспечения заключается в его декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, подразделяемые на задачи, и т. д. Процесс разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. Следует отметить, что при обратной разработке системы («снизу-вверх») от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Все наиболее распространенные методологии структурного подхода базируются на таких принципах, как:
- принцип «разделяй и властвуй» — принцип решения сложных проблем путем их разбиения на множество меньших независимых задач, легких для понимания и решения;
- принцип иерархического упорядочивания — принцип организации составных частей проблемы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне.
В структурном анализе используются группы средств, иллюстрирующих функции, выполняемые системой, и отношения между данными. Каждой группе средств соответствуют определенные виды моделей (диаграмм), наиболее распространенными среди которых являются следующие:
- метод SADT (Structured Analisis and Design Technique) — метод структурного анализа и проектирования, модели и соответствующие диаграммы;
- метод DFD (Data Flow Diagrams) — диаграммы потоков данных;
- метод ERD (Entity-Relationship Diagrams) — диаграммы «сущность-связь» (модель данных).
Объектно-ориентированный подход
Объект в объектно-ориентированном программировании — это модель или абстракция реальной сущности в программной системе. Объектно-ориентированная программа — совокупность объектов и способов их взаимодействия. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними.
Любая программа, написанная на языке ООП, отражает в своих данных состояние физических предметов либо абстрактных понятий — объектов программирования, для работы с которыми она предназначена. Каждый объект в объектно-ориентированном программировании характеризуется своим состоянием. Состояние объекта описывается текущим значением его атрибутов (данных). Атрибутами объекта в ООП могут быть как простейшие значения (число, логическое значение и т.д.), так и сложные величины или другие объекты. Исходя из этого, можно определить объект как некую совокупность данных и способов работы с ними. Иначе говоря, все данные об объекте программирования и его связях с другими объектами можно объединить в одну структурированную переменную, называемую объектом. Данные (характеристики объекта) можно рассматривать как поля записи. Пользователи и объекты программы должны иметь возможность читать эти данные объекта, каким-то образом обрабатывать и записывать в объект новые значения.
С объектом связывается набор действий, иначе называемых методами. С точки зрения языка программирования набор действий или методов — это функции, получающие в качестве обязательного параметра указатель на объект и выполняющие определенные действия с данными объекта программирования. Технология ООП позволяет работать с объектом только через его методы и никак иначе, т.е., внутренняя структура объекта скрыта от внешнего пользователя. Прямой доступ к данным запрещен пользователю, и делается это по следующим причинам:
- Для надежного функционирования объекта надо поддерживать целостность и непротиворечивость его данных. Если не позаботиться об этом, то внешний объект или пользователь могут разрушить или занести неверные данные, и объект будет функционировать с ошибками.
- Необходимо изолировать внешние объекты от особенностей внутренней реализации данных. Для внешних потребителей данных должен быть доступен только пользовательский интерфейс — описание того, какие имеются данные и функции и как их можно использовать, а внутренняя реализация — это дело разработчика объекта. В таком случае разработчик всегда может модернизировать объект, изменить структуру хранения и форму представления данных, и если не затронуты внешние интерфейсы, то пользователь этого даже не заметит. Следовательно, в программе и в действиях пользователя не придется ничего менять.
- Важнейшей характеристикой объекта в объектно-ориентированном программировании является описание того, как он может взаимодействовать с окружающим миром. Это описание называется интерфейсом объекта.
- Условно схему организации объекта можно представить следующим образом (рис. 4.1). Внешнее управление объектом осуществляется через обработчики событий. Эти обработчики обращаются к свойствам и методам объекта. Начальные значения данных объекта могут задаваться также в процессе проектирования установкой различных свойств. В результате выполнения методов объекта могут генерироваться новые события, воспринимаемые другими объектами программы или пользователем.