1 Problems & Potential Solutions ProblemsPotential Solutions Documenting patterns & pattern languages for DRE systems is hard because We’re not accustomed.

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

CIT731: Database Development Object Oriented Modeling (OOM)
CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Introduction To System Analysis and Design
Copyright © Active Frameworks, Inc.. - All Rights Reserved - V2.0 Introduction - Page L1-1 PS95&96-MEF-L1-1 Dr. M.E. Fayad Creationa l Paradigm.
Unified Modeling (Part I) Overview of UML & Modeling
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Software Engineering I Object-Oriented Design
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Pattern Myths1 Ten Design Pattern Myths Jim Fawcett condensed from Pattern Hatching, John Vlissides, Addison-Wesley, 1998.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
On the purpose of Object Oriented Analysis Geri Magne Høydalsvik and Guttorm Sindre.
Chapter 6– Artifacts of the process
Introduction To System Analysis and design
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Software Engineering CS B Prof. George Heineman.
Ciarán O’Leary Wednesday, 23 rd September Ciarán O’Leary School of Computing, Dublin Institute of Technology, Kevin St Research Interests Distributed.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science Washington University, St. Louis
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Unified Modeling Language, Version 2.0
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Introduction To System Analysis and Design
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Approaching a Problem Where do we start? How do we proceed?
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
GRASP: Designing Objects with Responsibilities
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
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.
CMPS 435 F08 These slides are designed to accompany Web Engineering: A Practitioner’s Approach (McGraw-Hill 2008) by Roger Pressman and David Lowe, copyright.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Understanding and using patterns in software development EEL 6883 Software Engineering Vol. 1 Chapter 4 pp Presenter: Sorosh Olamaei.
Architectural pattern: Reactor Source: POSA II pp 179 – 214POSA II Environment: an application that receives multiple requests simultaneously but may process.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
OOPSLA Oct Towards a Pattern Language for NEST Middleware Venkita Subramonian & Chris Gill, Washington University, St.Louis David Sharp, The Boeing.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
TAG-TF Introduction Surveymonkey.com/s/TAGTFSurvey.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
FOSE-MAS Session Wrap-UP. Major Points (1) Scott DeLoach –We have yet to demonstrate benefits of MAS, address industrial needs –Lack of key concepts,
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Duke CPS Programming Heuristics l Identify the aspects of your application that vary and separate them from what stays the same ä Take what varies.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
1 Good Object-Oriented Design Dr. Radu Marinescu Lecture 4 Introduction to Design Patterns.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
1 Systems vs Software Socio-Technical Systems less aware for the need of Systems Engineering –people should be considered more Technical systems need different.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
A Brief Introduction to Design Patterns
Object-Oriented Design
Introduction To System Analysis and Design PART 2
Unified Modeling Language
Object oriented analysis and design
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

1 Problems & Potential Solutions ProblemsPotential Solutions Documenting patterns & pattern languages for DRE systems is hard because We’re not accustomed to reasoning about our designs Knowledge of how to develop successful DRE systems is fragmented amongst researchers & practitioners Start with the basics & get involved with the patterns community We know how to explain our system architectures & how our systems work, but often don’t motivate & justify our design choices effectively, which makes it hard to Compare/contrast different technologies Distinguish the fundamental/generic aspects of our solutions from the details of a specific implementation Document & present systems from a problem- oriented focus rather than a solution-oriented focus Writing effective patterns & pattern languages is hard Articulation of forces often missing, which makes it hard to know the scope/context where the pattern applies Need to demonstrate generality of solution, rather than simply document a specific design/model or algorithm/protocol Show relationships to existing patterns & existing systems, i.e., what is the “pedigree” of the pattern? Pick a pattern template & follow it! (e.g., Alexandrian, GoF, POSA, etc.)

2 Problems & Potential Solutions ProblemsPotential Solutions We need to simultaneously understand existing patterns, while also Not becoming wedded to existing patterns Decoupling specific design/implementation details from the generalizable pattern structure & dynamics To address key requirements of DRE system, we need to extend the corpus of existing patterns literature, which is largely focused on structure & behavior, but not on QoS Should we start by documenting “basic building block” patterns or start by creating pattern language template? Pincer’s movement The best patterns & pattern languages come from working on real-world problems; where do we find such problems? OEPs, research papers, open-source software, NEP Important to combine domain- experts with OO design & DRE experts Traditional DRE systems research community not accustomed to reasoning about design and traditional patterns community not familiar with DRE/QoS issues Form working groups and get involved with both communities

3 Problems & Potential Solutions ProblemsPotential Solutions Determine the appropriate methods & notations for capturing dimensions of different DRE problem spaces Should we concern ourselves with documenting non-DRE patterns in our DRE pattern language?

4 Pattern Taxonomies Gerard’s taxonomy Interface patterns (“Chunks of Lego”) Implementation patterns (“How do you build the Lego chunks?”) Usage patterns, e.g., codifying “best practices” (“How to combine chunks of Lego to create higher-level structures”) GoF taxonomy Creational patterns Structural patterns Behavioal patterns POSA taxonomy IdiomsDesign patternsArchitectural patterns Communication Initialization Service Access & Configuration Event Handling Synchronization Concurrency