5. Проблема №1: Завершенность
Часто, разработку программного
обеспечения не удается завершить.
Даже после значительных
допольнительных инвестиций.
@dmytromindra
6. Проблема №2: Дефекты
Объем работы, связанной с устранением дефектов
и ошибок в «завершенном» программном
продукте, необходимой для того, чтобы сделать
продукт готовым к использованию часто занимает
значительное количество времени. Часто это время
больше чем время разработки продукта.
@dmytromindra
7. Проблема №3: Требования
Функциональность программного
обеспечения редко соответствует требованиям
конечных пользователей.
@dmytromindra
8. Проблема №4: Поддержка
После создания программного обеспечения его
практически невозможно поддерживать, т.к.
способность разработчиков понять, что они
написали быстро уменьшается с течением
времени.
@dmytromindra
12. Выход:
Анализ концептуальная
Модель (Domain objects,
Use cases, Interactions,
Вход: Проблема some UI mockups )
@dmytromindra
13. Методы OOA
• Метод OOSA Шлеер-Меллора
• Метод Коада
• ОМТ
• Метод Мартина Оделла и средства проектирования Ptech
• Метод “класс-связь”
• OSA
• Метод SEOO
• Метод BON
• Fusion
• OBA
• Syntropy
• MOSES
• Метод Текселя (Texel)
• Метод OORAS
@dmytromindra
14. Проектирование
Выход: архитектура(дизайн)
Вход: концептуальная модель
системы
@dmytromindra
15. OOD
SRP — The Single Responsibility Principle
OCP — The Open Closed Principle
LSP — The Liskov Substitution Principle
ISP — The Interface Segregation Principle
DIP — The Dependency Inversion Principle
REP — The Reuse Release Equivalency Principle
CCP — The Common Closure Principle
CRP — The Common Reuse Principle
ADP — The Acyclic Dependencies Principle
SDP — The Stable Dependencies Principle
SAP — The Stable Abstractions Principle
А также DDD, Pattern Language, MVC, CQRS, Event Driven, SOA, …..
@dmytromindra
25. То, как представляет себе систему
пользователь не совпадает с тем, как она
спроектирована
@dmytromindra
26. Agile ценности
• Individuals and interactions
• Working software
• Customer collaboration
• Responding to change
@dmytromindra
27. MVC 1979
MVC улучшает восприятие
Но по-прежнему не отображает поведение
@dmytromindra
28. ООП фокусируется на том что
система из себя представляет.
При этом может быть совершенно не очевидно,
что она делает и как ей пользоваться
@dmytromindra