Similar presentations:
Анализ требований и выделение классов. Разделение ответственностей
1.
Course: Software EngineeringFaculty of Mathematics & Informatics
Department of Advanced
Programming Technologies
Анализ требований и
выделение классов.
Разделение
ответственностей.
Yanka Kupala State University of Grodno
Grodno, 2022
2.
СловарьEnglish
Russian
separation of concerns
разделение ответственностей
establishing relationships
установление отношений
leveraging reuse
повторное использование
extracting commonality
выделение общего (общности)
layered structure
уровневая структура
low coupling
минимальная связность
English
Russian
3.
СловарьEnglish
Russian
high cohesion
высокая степень зацепления
data access layer
уровень доступа к данным
implicit
неявный
explicit
явный
log able
объект, который логируется
layering
распределение по уровням
English
Russian
4.
Содержание лекции5.
Система управления клиентами и заказами6.
Этапы проектирования7.
Этапы проектирования8.
Анализируем требования и постановкузадачи. Начинаем с существительных.
Customer Management System
Заказчик
Товар
Заказ
9.
Определяем состав классов10.
Определяем состав классов11.
Определяем поведение12.
Определяем состав классов13.
Думаем об абстракции14.
Думаем об абстракции15.
Соблюдаем принцип инкапсуляции16.
Соблюдаем принцип инкапсуляцииDemo_1
17.
Разделение ответственностей18.
Сложность ОО-модели (Complexity)19.
Сложность ОО-модели (Complexity)20.
Сложность ОО-модели (Complexity)При написании кода,
оставляйте классы простыми, не раздутыми
simple is critical
21.
Связность и сцепление (Coupling and Cohesion)Coupling (связность) - степень, в которой задачи, выполняемые
некоторым программным модулем, связаны друг с другом.
22.
Coupling and CohesionCohesion (сцепление) - степень взаимозависимости между
программными модулями
23.
Coupling (связность)Плохой дизайн.
Сильная связность.
Хороший дизайн.
Слабая связность.
24.
Coupling (связность)Tightly coupled
Loosely Coupled
25.
Coupling (связность)Проектируя свою систему, старайтесь проектировать ее модули (классы),
как блоки Lego: их легко соединить и переиспользовать повторно.
26.
Cohesion. Высокое и низкое сцепление.High Cohesion
Если модуль (класс) выполняет одну задачу, имеет
понятное назначение, то этот модуль - high cohesion
Low Cohesion
Если модуль (класс) пытается инкапсулировать больше
одной ответственности или имеет неясное назначение,
то этот модуль - low cohesion
27.
Связность (Coupling)28.
Выделим новый уровень ответственности задоступ к данным
29.
Сцепление (Cohesion)30.
Separating ResponsibilitiesРазделим ответственности
31.
Хороший дизайн системы это32.
Separating Responsibilities33.
Separating Responsibilities34.
Separating ResponsibilitiesDemo_2