Шаблони і UML.  Конструювання програмного забезпечення   2009
Значення архітектури
Правильне проектування
Приховування нутрощів Прихована  реальність Нестійка презентабельність
Якщо б будівельники будували будинки так, як   програмісти пишуть програмний код, достатньо було б одного єдиного дятла, щоб  зруйнувати  усю цивілізацію  
UML  (Unified Modeling Language) .  Види д іаграм Structure Diagrams: Class diagram  Component diagram  Composite structure diagram  Collaboration (UML2.0)  Deployment diagram  Object diagram  Package diagram  Behavior Diagrams: Activity diagram  State Machine diagram  Use case diagram  Interaction Diagrams:   Collaboration (UML1.x) / Communication diagram (UML2.0)  Interaction overview diagram (UML2.0)  Sequence diagram  UML Timing Diagram (UML2.0)   Структурні діаграми: Класів  Компонентів  Композитної/складеної структури  Кооперації (UML2.0)  Розгортування  Об'єктів  Пакетів  Діаграми поведінки: Діяльності  Скінчених автоматів (станів)  Прецедентів  Діаграми взаємодії:   Кооперації (UML1.x) / Комунікації (UML2.0)  Огляду взаємодії (UML2.0)  Послідовності  Синхронізації (UML2.0)
UML.  Огляд ПЗ Rational Rose
UML.  Огляд ПЗ BOUML
UML.  Огляд ПЗ TopCoder UML   Tool
UML.  Огляд ПЗ Eclipse Plugin.  UML2 Tools
UML .   Побажання Розпочати викладання на молодших курсах Було б непогано використовувати “цікаві” приклади (UML жарти) Вимагати практичну роботу на кожний вид вивчених діаграм Опис лабораторних робіт за допомогою UML, документування курсових та дипломних робіт
Шаблони проектування (Design Patterns)
Шаблони проектування (Design Patterns) Фундаментальн і  ( Fundamental) Породжуючі патерни  Структурні патерни  (Structural) Шаблони поведінки  (Behavioral) Паралельного програмування  (Concurrency) Модель-Вид-Контролер ( MVC ) Enterprise Anti-Design-Patterns Інші
Фундаментальн і  ( Fundamental) Delegation pattern/Шаблон делегування Immutable/Незмінний об'єкт  Interface  Marker interface
Пород жуючі  шаблон и Abstract Factory/Абстрактна фабрика  Builder/Будівельник Factory Method/Фабричний метод  Lazy initialization/Відкладена ініціалізація  Object Pool/Об ’ єктний пул  Prototype/Прототип  Singleton
Пород жуючі  шаблон и Factory Method/Фабричний метод
Структурні шаблони (Structural) Adapter/Адаптер  Bridge/Міст  Composite/Компонувальник  Decorator/Декоратор  Facade/Фасад  Flyweight/Пристосуванець Proxy/Замісник  Private class data
Структурні шаблони (Structural) Декоратор
Шаблони поведінки  (Behavioral) Chain of Responsibility/Ланцюг відповідальності Command/Команда  Interpreter/Інтерпретатор  Iterator/Ітератор Mediator/Посередник  Observer/Спостерігач  State/Стан  Strategy/Стратегія  Template Method/Шаблонний метод  Visitor/Відвідувач Event listener/Відслідковувач подій
Шаблони поведінки  (Behavioral) Observer/Спостерігач
MVC
MVC
MVC
Enterprise Business Delegate  Composite Entity  Composite View  DAO  ( Data Access Object ) Об ’ єкт доступу  до  дан их  Dispatcher View  Front Controller  Intercepting Filter  Service Activator  Service Locator/ Пошук служби Service to Worker  Session Facade/Фасад  с есії  Transfer Object  View Helper
Enterprise DAO  ( Data Access Object )/ Об ’ єкт доступу  до  дан их
Anti-Design-Patterns public   interface  MessageStrategy { public   void  sendMessage(); } public   abstract   class  AbstractStrategyFactory { public   abstract  MessageStrategy createStrategy(MessageBody mb); } class  MessageBody { Object payload; public  Object getPayload() { return  payload; } public   void  configure(Object obj) { payload = obj; } public   void  send(MessageStrategy ms) { ms.sendMessage(); } }
Anti-Design-Patterns class  DefaultFactory  extends  AbstractStrategyFactory{ private  DefaultFactory() { } static  DefaultFactory  instance ; public   static  AbstractStrategyFactory getInstance() { if  ( instance  ==  null ) instance  =  new  DefaultFactory(); return   instance ; } public  MessageStrategy createStrategy( final  MessageBody mb) { return   new  MessageStrategy() { MessageBody body = mb; public   void  sendMessage() { Object obj = body.getPayload(); System. out .println(obj); } }; } }
Anti-Design-Patterns public   class  HelloWorld { public   static   void  main(String args[]) { MessageBody mb =  new  MessageBody(); mb.configure("Hello, world"); AbstractStrategyFactory asf =    DefaultFactory. getInstance (); MessageStrategy strategy =     asf.createStrategy(mb); mb.send(strategy); } }
Шаблони та ітеративна розробка Уніфікація термінології, рішень та модулів Зрозумілість іншим програмістам Повторне використання  Підвищення надійності системи  Зменшення часу на внесення змін
Шаблони. Побажання Ознайомити з основними шаблонами Закріпити практично Дипломні та курсові як область для використання
Питання  & В ідповіді

Uml+Patterns2

  • 1.
    Шаблони і UML. Конструювання програмного забезпечення 2009
  • 2.
  • 3.
  • 4.
    Приховування нутрощів Прихована реальність Нестійка презентабельність
  • 5.
    Якщо б будівельникибудували будинки так, як програмісти пишуть програмний код, достатньо було б одного єдиного дятла, щоб зруйнувати усю цивілізацію 
  • 6.
    UML (UnifiedModeling Language) . Види д іаграм Structure Diagrams: Class diagram Component diagram Composite structure diagram Collaboration (UML2.0) Deployment diagram Object diagram Package diagram Behavior Diagrams: Activity diagram State Machine diagram Use case diagram Interaction Diagrams: Collaboration (UML1.x) / Communication diagram (UML2.0) Interaction overview diagram (UML2.0) Sequence diagram UML Timing Diagram (UML2.0) Структурні діаграми: Класів Компонентів Композитної/складеної структури Кооперації (UML2.0) Розгортування Об'єктів Пакетів Діаграми поведінки: Діяльності Скінчених автоматів (станів) Прецедентів Діаграми взаємодії: Кооперації (UML1.x) / Комунікації (UML2.0) Огляду взаємодії (UML2.0) Послідовності Синхронізації (UML2.0)
  • 7.
    UML. ОглядПЗ Rational Rose
  • 8.
    UML. ОглядПЗ BOUML
  • 9.
    UML. ОглядПЗ TopCoder UML Tool
  • 10.
    UML. ОглядПЗ Eclipse Plugin. UML2 Tools
  • 11.
    UML . Побажання Розпочати викладання на молодших курсах Було б непогано використовувати “цікаві” приклади (UML жарти) Вимагати практичну роботу на кожний вид вивчених діаграм Опис лабораторних робіт за допомогою UML, документування курсових та дипломних робіт
  • 12.
  • 13.
    Шаблони проектування (DesignPatterns) Фундаментальн і ( Fundamental) Породжуючі патерни Структурні патерни (Structural) Шаблони поведінки (Behavioral) Паралельного програмування (Concurrency) Модель-Вид-Контролер ( MVC ) Enterprise Anti-Design-Patterns Інші
  • 14.
    Фундаментальн і ( Fundamental) Delegation pattern/Шаблон делегування Immutable/Незмінний об'єкт Interface Marker interface
  • 15.
    Пород жуючі шаблон и Abstract Factory/Абстрактна фабрика Builder/Будівельник Factory Method/Фабричний метод Lazy initialization/Відкладена ініціалізація Object Pool/Об ’ єктний пул Prototype/Прототип Singleton
  • 16.
    Пород жуючі шаблон и Factory Method/Фабричний метод
  • 17.
    Структурні шаблони (Structural)Adapter/Адаптер Bridge/Міст Composite/Компонувальник Decorator/Декоратор Facade/Фасад Flyweight/Пристосуванець Proxy/Замісник Private class data
  • 18.
  • 19.
    Шаблони поведінки (Behavioral) Chain of Responsibility/Ланцюг відповідальності Command/Команда Interpreter/Інтерпретатор Iterator/Ітератор Mediator/Посередник Observer/Спостерігач State/Стан Strategy/Стратегія Template Method/Шаблонний метод Visitor/Відвідувач Event listener/Відслідковувач подій
  • 20.
    Шаблони поведінки (Behavioral) Observer/Спостерігач
  • 21.
  • 22.
  • 23.
  • 24.
    Enterprise Business Delegate Composite Entity Composite View DAO ( Data Access Object ) Об ’ єкт доступу до дан их Dispatcher View Front Controller Intercepting Filter Service Activator Service Locator/ Пошук служби Service to Worker Session Facade/Фасад с есії Transfer Object View Helper
  • 25.
    Enterprise DAO ( Data Access Object )/ Об ’ єкт доступу до дан их
  • 26.
    Anti-Design-Patterns public interface MessageStrategy { public void sendMessage(); } public abstract class AbstractStrategyFactory { public abstract MessageStrategy createStrategy(MessageBody mb); } class MessageBody { Object payload; public Object getPayload() { return payload; } public void configure(Object obj) { payload = obj; } public void send(MessageStrategy ms) { ms.sendMessage(); } }
  • 27.
    Anti-Design-Patterns class DefaultFactory extends AbstractStrategyFactory{ private DefaultFactory() { } static DefaultFactory instance ; public static AbstractStrategyFactory getInstance() { if ( instance == null ) instance = new DefaultFactory(); return instance ; } public MessageStrategy createStrategy( final MessageBody mb) { return new MessageStrategy() { MessageBody body = mb; public void sendMessage() { Object obj = body.getPayload(); System. out .println(obj); } }; } }
  • 28.
    Anti-Design-Patterns public class HelloWorld { public static void main(String args[]) { MessageBody mb = new MessageBody(); mb.configure("Hello, world"); AbstractStrategyFactory asf = DefaultFactory. getInstance (); MessageStrategy strategy = asf.createStrategy(mb); mb.send(strategy); } }
  • 29.
    Шаблони та ітеративнарозробка Уніфікація термінології, рішень та модулів Зрозумілість іншим програмістам Повторне використання Підвищення надійності системи Зменшення часу на внесення змін
  • 30.
    Шаблони. Побажання Ознайомитиз основними шаблонами Закріпити практично Дипломні та курсові як область для використання
  • 31.
    Питання &В ідповіді