Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Robust Design Strategies I Gruia-Catalin Roman and Christopher Gill Washington University in St. Louis."— Presentation transcript:

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

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

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

4 3 4 3.1 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 3 14 3.2 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

15 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

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

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

18 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

19 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

20 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

21 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

22 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


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

Similar presentations


Ads by Google