University of Twente Analysis Patterns. University of Twente Software Reuse  Reuse is difficult and expensive Often does not pay off (quickly) Because.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
OASIS Reference Model for Service Oriented Architecture 1.0
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
FREMA: e-Learning Framework Reference Model for Assessment Design Patterns for Wrapping Similar Legacy Systems with Common Service Interfaces Yvonne Howard.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
Architectural Styles, Design Patterns, and Objects Architectural Styles, Design Patterns, and Objects By Robert T. Monroe, Andrew Kompanek, Ralph Melton,
Course Instructor: Aisha Azeem
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Design Patterns.
Figures – Chapter 16. Figure 16.1 Benefits of software reuse BenefitExplanation Increased dependabilityReused software, which has been tried and tested.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
Architecture GRASP Realization of use cases in interaction diagrams Design class diagram Design ( how )
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Design Patterns. Patterns “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Modelling Class T16: Conceptual Modelling – Architecture Image from
Object-Oriented Design Principles and Patterns. © 2005, James R. Vallino2 How Do You Design? What principles guide you when you create a design? What.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
GRASP: Designing Objects with Responsibilities
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Introduction to Design Patterns Part 1. © Lethbridge/Laganière 2001 Chapter 6: Using design patterns2 Patterns - Architectural Architectural Patterns:
Relationships Relationships between objects and between classes.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
Architectural Styles, Design Patterns, and Objects Joe Paulowskey.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Stephenson College DP 98 1 Design Patterns by Derek Peacock.
Java Software Solutions Lewis and Loftus Chapter 15 Copyright 1997 by John Lewis and William Loftus. All rights reserved. 1 Software Development Process.
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
University of Twente Meta Patterns Common Principles behind Design Patterns & OO Frameworks Lodewijk M.J. Bergmans.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
 2001 Lodewijk Bergmans University of Twente Pattern Languages.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
GRASP – Designing Objects with Responsibilities
Design Patterns: MORE Examples
Chapter 5:Design Patterns
Introduction to Design Patterns
The Object Oriented Approach to Design
CIS 375 Bruce R. Maxim UM-Dearborn
System models October 5, 2005.
Introduction to Design Patterns Part 1
Presentation transcript:

University of Twente Analysis Patterns

University of Twente Software Reuse  Reuse is difficult and expensive Often does not pay off (quickly) Because it requires generic components vWhich are expensive to make vWhich requires broad domain knowledge  But reuse need not be done only at the code level!

University of Twente Software Reuse  Reuse can also take place at the level of: Designs: vdesign patterns & idioms vDocumentation of solutions Architectures (incl. Architecural patterns) Analysis: vAnalysis models of common (within a domain) structures & models

University of Twente Analysis Patterns  Analysis patterns.. Are solutions to common analysis problems vUse pattern format to describe domain knowledge vTypically at higher abstraction level This provides reuse of analysis models But also creates opportunities for better software reuse! vBecause of 'common analysis problems' scope

University of Twente Analysis Patterns Characteristics/how to use Analysis scope: vTry to understand & model the problem (domain) vBut the boundaries are fuzzy (not important) vSometimes even implementation examples The analysis patterns are 'useful' vNot right/wrong vA starting point, not destination

University of Twente Analysis Patterns How to Apply Analysis patterns suggest: vIntroduction of new classes, associations & interfaces vAnalysis patterns are about interfaces, not implementations Often come in groups vfor a particular domain vWith varying complexity  To be applied as needed

University of Twente Example: Accountability AP  Accountability Is a series of patterns To model "specific relationship between two parties for a given time period" vE.g. employment, leasing & service contracts  Why not use OO/UML associations?

University of Twente Accountability Why no explicit structure?  Example:  But: Not effective if there is much common interaction behavior between organization elements (parties) Embeds current organizational structure in design

University of Twente Accountability AP: Organization Hierarchy If the elements in the organization (mostly) share the same behavior: Is very flexible w.r.t. organization structure

University of Twente Accountability AP: Party Generalize to include persons vRight: If hierarchy association between organizational elements & with persons is similar

University of Twente Accountability AP: Accountability If several different links between elements vBut multiple hierarchies is not desirable

University of Twente ConclusionsConclusions Patterns can express knowledge at any level vOf the software development process Comparing Design Patterns to Analysis Patterns: vThe common design patterns are usually more generic (they encapsulate generic –OO-- design knowledge) vThe discussion of consequences and applicability of DPs is more elaborate (implementation issues).

University of Twente Exercise: Quantity AP  Read the Quantity AP Think of 3 suitable examples when to apply Why/when is Money (not) a good example? Define a simple implementation vClasses + associations (if needed) vInterface:  Methods + parameters + return types  Informal description of implementation