Improving UML Class Diagrams using Design Patterns Semantics Shahar Maoz Work in Progress.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Design Patterns Section 7.1 (JIA’s) Section (till page 259) (JIA’s) Section 7.2.2(JIA’s) Section (JIA’s)
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Design Patterns In OPM Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger.
Software Design & Documentation – Design Pattern: Command Design Pattern: Command Christopher Lacey September 15, 2003.
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
Façade Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
Reuse Activities Selecting Design Patterns and Components
Domain-Specific Software Engineering Alex Adamec.
The Re-engineering and Reuse of Software
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
1. 2  Have a basic understanding of the fundamental principles of object-oriented software development.  Understand a selection of the design patterns.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
Visual Linker Final presentation.
Design Pattern. The Observer Pattern The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Introduction to Pattern Oriented Analysis and Design (POAD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 7 System models.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
System models l Abstract descriptions of systems whose requirements are being analysed.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Documentation Dr. Andrew Wallace PhD BEng(hons) EurIng
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Design Patterns By Mareck Kortylevitch and Piotreck Ratchinsky.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object Oriented Analysis & Design By Rashid Mahmood.
Design Patterns: Summary and Next Steps Y. NARAHARI Computer Science and Automation INDIAN INSTITUTE OF SCIENCE Bangalore –
Design Patterns CSCE 315 – Programming Studio Spring 2013.
Chapter 0: Introduction
Software Design Refinement Using Design Patterns
COMP2110 Software Design in lecture 14 Patterns(1) /Detailed Design
Strategy Design Pattern
Project management Software development typically includes:
Chapter 5:Design Patterns
Software Design Patterns
Introduction to Design Patterns
User Interface Design The Golden Rules: Place the user in control.
Design Patterns Introduction
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
Instructor: Dr. Hany H. Ammar
Abstract descriptions of systems whose requirements are being analysed
Command Pattern.
SYS466 Domain Classes – Part 1.
Introduction to Pattern Oriented Analysis and Design (POAD)
Interface Design Easy to learn? Easy to use? Easy to understand?
Presentation transcript:

Improving UML Class Diagrams using Design Patterns Semantics Shahar Maoz Work in Progress

Background  UML class diagrams are very popular design and documentation tool for software engineers  Many automatic layout algorithms exist and are implemented in CASE tools  Algorithms are based on optimizing syntactic “aesthetic” parameters (e.g. bends, orthogonality, edge length variation, node distribution, direction of flow)  Result is aesthetically pleasant at best but… Experiments found no significant improvement in comprehension (e.g. finding mistakes, answering questions) (except for crossing) Does not work well for “real world size” projects, large diagrams are still very difficult to understand

The Project  Use domain specific semantics to generate better visualizations  Add visual dimensions that are ignored in UML (color, interactivity, semantic filter/zoom)  I chose to use Design Patterns as the domain specific semantics  Goals Making the diagram more intuitively understandable to software engineers Help software engineers make better designs by reducing to “cost” of developing and identifying reusable frameworks and code

Design Patterns in One Slide  Design Patterns are reusable object oriented solutions, descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.  Standard DPs (21) originally defined by the GoF (Gamma et al.), divided into 3 categories: Creational, Structural, Behavioral; well known to experienced SEs  Examples: Adapter: convert the interface of a class into another interface clients expect. Command: encapsulate a request as an object, enable parameterize clients with different requests, queue or log requests, support undoable operations

How to use DP in class diagram visualization?  Data (meta data) would come from custom tags inside JavaDoc – accessible to reverse engineering tools  Visual tools to use Color Semantic filter / zoom  Work in Progress examples Work in Progress examples

Challenges  Classes belong to more than one DP Need to visualize multiple subsets of the diagram  Highlighting is not enough Need to show DP name (Icon?), information about the role of each class  Show how it scales with a real world project  Integrate into existing algorithms / CASE tools