Robust Design Strategies I Gruia-Catalin Roman and Christopher Gill Washington University in St. Louis.

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

Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
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.
Object-Oriented Software Development CS 3331 Fall 2009.
Ch 3 System Development Environment
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Fundamentals of Information Systems, Second Edition
Chapter 1 Principles of Programming and Software Engineering.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Themes and Variations abstraction -- the object metaphor modeling -- understanding.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 22 Object-Oriented Design
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Chapter 10: Architectural Design
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Introduction To System Analysis and design
Software Engineering Muhammad Fahad Khan
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Software Architecture Fundamentals Gruia-Catalin Roman and Christopher Gill Washington University in St. Louis.
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Chapter 1: Introduction to Systems Analysis and Design
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Introduction To System Analysis and Design
SOFTWARE DESIGN.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
OOP Class Lawrence D’Antonio Lecture 3 An Overview of C++
1 Introduction to Software Engineering Lecture 1.
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.
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Introducing Allors Applications, Tools & Platform.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Formal Methods.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Data Structures Using C++ 2E
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
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.
Chapter 2 Principles of Programming and Software Engineering.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Principles of Programming & Software Engineering
Design Patterns: MORE Examples
Cmpe 589 Spring 2006.
Chapter 1: Introduction to Systems Analysis and Design
The Systems Engineering Context
Complexity Time: 2 Hours.
Principles of Programming and Software Engineering
Need for the subject.
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Robust Design Strategies I Gruia-Catalin Roman and Christopher Gill Washington University in St. Louis

3 2 OverviewOverview 1. Software Architecture Fundamentals 2. Software Architecture Specification 3. Robust Design Strategies

3 Robust Design Strategies Overview [3.1] Motivating factors [3.2] Design principles [3.3] Architectural styles [3.4] Design patterns

Motivating Factors n Systems are being delivered late and over budget n Coding and testing dominate development time n Maintenance and upgrade costs are too high n Performance levels are inadequate n Problem: software is treated differently from other kinds of products –an engineering mentality is needed –the intellectual tools used need to be specific to software development

3 5 An Engineering Perspective n Analysis –we seek to understand the function and constraints of the product first n Experimentation –we focus on risk factors and the unknown early in the process n Planning –we use the product design to drive the planning process n Problem solving –we approach the design in a systematic and predictable fashion

3 6 An Engineering Perspective n Tradeoffs –we see the design as the art of making the right technical compromises n Reuse –we reuse procedures, designs, and components and build things for reuse n Evaluation –we subject both designs and products to targeted and extensive evaluations

3 7 Answers From the Past An emphasis on programming and requirements n High-level languages n Structured programming n Information hiding n Top-down functional decomposition n Structured analysis and design n Rapid prototyping n Formal specifications

3 8 Modern Thinking Object-orientation as an enabling technology n Facilitates conceptualization –powerful abstraction mechanisms n Facilitates model construction –direct mapping to the physical world n Promotes encapsulation –programming by contract n Reduces development effort –programming by differences n Embodies modern programming language thinking n Promotes reuse

3 9 Object-Oriented Analysis n OOA is a process of discovery and modeling n Essential software requirements are captured in terms of the following key concepts objectclassrelation n Additional procedural abstractions are included to complete the model n Graphical notation is commonly used to depict the structural aspects of the model n It is often expected that the analysis will transfer to design and implementation

3 10 Object-Oriented Design n OOD is a process of invention and adaptation n The principal concern is the architecture of the software n The approach is (generally) language independent n The emphasis is on achieving certain structures having particular desirable properties n The same concepts are used but the interest is in modularity n Simple projection of real-world objects to software does not guarantee a good design –different domains of knowledge –constraints –concept versus module emphasis

3 11 Object-Oriented Programming n OOP is a construction process n It relies on the use of a programming language having many of the following features –objects as dynamically created instances of classes –classes (instance variables and methods) –inheritance (single and multiple) –generic classes (templates) –abstract classes and virtual methods –polymorphism –dynamic binding –exception handling

3 12 Beyond Object Orientation n Object orientation thinking –is dominated by the concern with modular design –gained an emphasis on design reusability (patterns) –is seeking to address quality of service concerns n Software architecture stresses two classes of issues –modular design functionality coverage, structuring, and distribution –system level constraints meeting non-functional requirements n Constraints determine design complexity

3 13 Architecture Revisited n The software architecture plays a critical role in placing software development on an engineering basis n Software architecture design is the phase most akin to the design process taking place in other engineering disciplines n It is the gap between paper and concrete that demands precision

Design Principles n General design guidelines –modularity –encapsulation –protection against changes –constraint satisfaction –constraint evaluation n Robust design –risk assessment –risk reduction –defensive design –defendable design –critical constraint driven

3 15 Design Strategy n Identify the critical constraints –assess risk level –understand cost implications n Separate the critical constraints –structurally encapsulate at the level of module –behaviorally encapsulate as a cross cutting constraint (aspect) ensure independent analyzability n Build and test along the critical path

3 16 Design Technique n Facilitators –static structures –simplicity where it counts n Core concerns –high level of decoupling –integrated analysis and design

3 17 Modular Design alignment manager travel manager door manager alignment sensor main motor door assembly floor sensor elevator control

3 18 Responsive Design Continuous alignment while at a floor door manager alignment manager travel manager alignment sensor main motor door assembly floor sensor elevator control

3 19 Safe Design Doors are closed while moving or not at a floor door manager travel manager alignment sensor main motordoor assemblyfloor sensor elevator control edge upedge downfloordoor floor departure request mandatory check doors closed stationary level at floor

3 20 Behavior Analysis check floor stationary at floor align exit open some door fully open align departure requested align close some door fully closed

3 21 Formal Analysis Pre-condition (rechecked) –doors closed –level at floor Post-condition (guarantees) –doors closed –level at floor Invariant (enforced) –level at floor

3 22 Formal Assumptions Sub-problems –dependable floor check correct report –dependable alignment finite bounded motion correct direction –dependable opening eventual completion accurate report –dependable closure eventual completion accurate report Other assumptions –motor safety guarantees lack of motion implies the motor is off motor needs a control signal to start –no concurrency no external motor activation no unexpected state changes –floor departure request limited to single boolean setting