Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

implementation support
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 13 Review Questions
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Software Architecture Design Instructor: Dr. Jerry Gao.
Lecture 23: Software Architectures
SWE Introduction to Software Engineering
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chapter 22 Object-Oriented Design
System Architecture: Desing alternatives and methodologies.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Human Computer Interaction Implementation Support.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Architectural separation (MVC, arch model, Seeheim).
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
CSE 219 Computer Science III Program Design Principles.
Implementation support z programming tools y levels of services for programmers z windowing systems y core support for separate and simultaneous user-system.
1 Implementation support chapter 8 programming tools –levels of services for programmers windowing systems –core support for separate and simultaneous.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
REST By: Vishwanath Vineet.
System Design. System Design After analyzing the problem, you must decide how to approach the design. During.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Architectural Design Copyright © 2016 – Curt Hill
Architecture Brief Pepper
Support for the Development of Interactive Systems
IS301 – Software Engineering Dept of Computer Information Systems
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Hierarchical Architecture
Software Architecture
implementation support
Architectural Design.
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Implementation support
implementation support
Chapter 6 – Architectural Design
Implementation support
Presentation transcript:

Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 1 Version 1.0 Software Architecture in Practice Chapter 6: Unit Operations and HCI Reference Architectures

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 2 Version 1.0 Lecture Objectives This lecture will enable students to describe the usefulness of unit operations and list six types of these operations discuss each type of unit operation in terms of their effects on achieving quality requirements see how unit operations may be used to create new architectural styles and reference architectures understand the evolution of the human computer interaction reference architectures in terms of unit operations

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 3 Version 1.0 Unit Operations A unit operation is a codification of design operations that can be applied directly to an architecture. Examples include abstraction compression part-whole decomposition is-a decomposition replication resource sharing

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 4 Version 1.0 Styles Vs. Unit Operations Styles are pre-packaged off-the-shelf design solutions that have known quality properties. Unit operations are the steps that one applies to derive styles, patterns, and reference architectures. Unit operations affect the quality properties of the styles they lead to, but are not design solutions by themselves.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 5 Version 1.0 Abstraction as a Unit Operation Abstraction creates a virtual machine (a component whose function is to hide its underlying implementation). Abstraction is used for simulated target platform (when that is distinct from development platform) layered systems common interface to heterogeneous set of underlying implementations (such as user interface toolkits)

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 6 Version 1.0 Compression as a Unit Operation Compression combines two components into a single component. Compression is used to enhance performance -circumvent layering -eliminate overhead from calls speed up system development

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 7 Version 1.0 Decomposition as a Unit Operation Decomposition breaks up a large component into smaller pieces. It can be done in two ways: part-whole is-a

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 8 Version 1.0 Part-Whole Decomposition Every component in the system can be built from a fixed small set of subcomponents. Example: model view controller, flight simulators Used for supporting integrability, extensibility, and understandability A small number of component types gives a small number of component type interfaces.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 9 Version 1.0 Is-A Decomposition Each subcomponent represents a specialization of its parent’s functionality. Examples: PAC, class hierarchies Used for reuse by increments.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 10 Version 1.0 Replication as a Unit Operation Replication is the exact duplication of a component within an architecture. Replication is used for enhancing reliability (redundant operation) performance enhancement (data caching)

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 11 Version 1.0 Resource Sharing as a Unit Operation Resource sharing encapsulates either data or services and shares them among multiple independent consumers. Resource sharing is used for integrability portability modifiability Examples shared databases servers in client/servers

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 12 Version 1.0 Unit Operations and Qualities Abstraction Compression Part-whole decomposition++++ is-a decomposition Replication+-++ Resource sharing+-+-+ Scalability System modifiability Integrability Portability Sequential performance Concurrent performance Fault tolerance Ease of system creation Component modifiability Ease of component creation Reusability

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 13 Version 1.0 Reference Architecture Reference architecture: a division of functionality, together with data flow between the pieces

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 14 Version 1.0 Using Unit Operations to Build Reference Architectures Strengths and weaknesses of unit operations can be demonstrated by exploring human-computer interface (HCI) reference architectures. HCI reference architectures are important in their own right since user interface typically accounts for 50% of the cost of a system.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 15 Version 1.0 Unit Operations and HCI Reference Architectures Monolithic architecture PAC/ AMODEUS MVCPAC Seeheim Arch/ Slinky part-whole abstraction is-a

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 16 Version 1.0 Monolithic Reference Architecture for Interactive Systems An interactive system provides three functions. presentation: controls interaction with user (example: windows interface) application: underlying purpose of system (example: database system) dialogue: decomposes/sequences user tasks (example: interaction) When functions are lumped together in a single structure, it is a monolithic architecture.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 17 Version 1.0 Monolithic Reference Architecture Presentation Dialogue Application

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 18 Version 1.0 Achieving User Interface Quality Goals Through Unit Operations The typical user interface goals are modifiability and portability. Applying the unit operation of part-whole decomposition supports the modifiability goal and abstraction supports the portability goal.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 19 Version 1.0 Seeheim Reference Architecture The Seeheim reference architecture applies part - whole decomposition to the monolithic reference architecture. Presentation Dialogue Application

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 20 Version 1.0 Improved Seeheim Uses compression to ameliorate performance problems Presentation Dialogue Application

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 21 Version 1.0 Strengths of Seeheim Reference Architecture A separate presentation function supports portability and modifiability. A separate application layer allows modification of function without affecting user interface. A separate dialogue allows modifications to user interaction without rewriting the presentation.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 22 Version 1.0 Weaknesses of Seeheim Reference Architecture Many modifications affect all three functions. There are performance problems with sophisticated semantic feedback (which result in the need for compression). Use of the architecture leads to separate notations for dialogue, presentation, and application layer; this is cumbersome.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 23 Version 1.0 Unit Operations and HCI Reference Architectures Monolithic architecture PAC/ AMODEUS MVC PAC SeeheimArch/ Slinky part-whole abstraction is-a

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 24 Version 1.0 Model View Controller (MVC) -1 The MVC paradigm applies part-whole decomposition to portions of the monolithic reference architecture. Presentation Dialogue Application Presentation Dialogue Application Presentation Dialogue Application

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 25 Version 1.0 Model View Controller (MVC) -2 MVC: input = “controller” output = “view” dialogue application = “model” Dialogue/application not divided Dialogue/ application Input Output

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 26 Version 1.0 Strengths of MVC MVC promotes independent modification of objects and their presentation reuse at the object level language to describe whole application (e.g., Smalltalk)

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 27 Version 1.0 Weaknesses of MVC It is cumbersome to reuse widgets across objects. Portability is the responsibility of individual objects, rather than a system function. This is typically fixed by using layering. Interactions involving presentations from multiple objects are difficult to coordinate (e.g., it is difficult to stretch a line that connects two boxes as one box is moved).

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 28 Version 1.0 Unit Operations and HCI Reference Architectures Monolithic architecture PAC/ AMODEUS MVC PAC SeeheimArch/ Slinky part-whole abstraction is-a

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 29 Version 1.0 Presentation Application Control (PAC) Reference Architecture PAC uses part-whole decomposition within a PAC agent is-a decomposition to hierarchically decompose agents

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 30 Version 1.0 PAC Reference Architecture A P C A P C A P C A P C A P C A P C P = presentationA = applicationC = control

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 31 Version 1.0 Strengths and Weakness of PAC Strengths aligns better with separations of concerns in user interface software allows for modifiability of dialogue through hierarchical decomposition Weakness: doesn’t deal with reuse and consistency of user interface widgets

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 32 Version 1.0 Unit Operations and HCI Reference Architectures Monolithic architecture PAC/ AMODEUS MVCPAC SeeheimArch/ Slinky part-whole abstraction is-a

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 33 Version 1.0 Arch/Slinky Reference Architecture -1 From Seeheim to Arch/Slinky: applied abstraction to presentation and application interposed adapter between presentation and dialogue interposed adapter between application layers and dialogue Yields a five-component model

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 34 Version 1.0 Arch/Slinky Reference Architecture -2 Dialogue Application Virtual applicationVirtual toolkit Presentation

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 35 Version 1.0 Strength and Weakness of Arch/Slinky Strength: abstraction enhances portability of application and presentation Weakness: abstraction introduces performance penalty

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 36 Version 1.0 Unit Operations and HCI Reference Architecture Monolithic architecture PAC/ AMODEUS MVCPAC SeeheimArch/ Slinky part-whole abstraction is-a

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 37 Version 1.0 Unified Reference Architecture: PAC-AMODEUS* PAC hierarchically applied part-whole decomposition to dialogue Arch/Slinky applied abstraction to application and presentation *AMODEUS = assimilating models of designers, users, and systems

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 38 Version 1.0 PAC-AMODEUS Presentation Application Virtual application Virtual toolkit A P C A P C A P C A P C A P C A P C Dialogue

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 39 Version 1.0 Strength and Weakness of PAC-AMODEUS Strength: supports modifiability and portability Weakness: performance penalty for all subparts

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 40 Version 1.0 Lecture Summary -1 Quality goals can lead to different architectures. Unit operations by themselves are insufficient to achieve quality goals; rather, they are used to understand architectural design options. Unit operations represent primitive design decisions that lead to architectures.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 41 Version 1.0 Lecture Summary -2 Unit operations are used in cases where existing styles are not appropriate. Unit operations in isolation will not yield an architecture. Additional techniques are required for achieving quality goals.

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 42 Version 1.0 Discussion Questions -1 1.Consider a large system with which you are familiar. Can you see how unit operations were applied to it? In what ways were they used and for what reasons. If they were not used, has it caused difficulties?

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 43 Version 1.0 Discussion Questions -2 2.Unit operations are extremely coarse grained. Designs are always tempered by particular functional requirements and by other quality requirements (as Ralph Waldo Emerson - an early software engineer - noted, “Every good quality is noxious if unmixed”). Can you think of ways in which the application of unit operations is tempered by the environment in which they are applied?

© 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute Chapter 6 - page 44 Version 1.0 Discussion Questions -3 3.Choose an architectural style and try to derive it from a monolithic model using unit operations. Do the qualities that the unit operations impart match those for which the style is known? 4.Choose a blank entry in the table on page 12 and try to decide when the corresponding quality is supported by or in conflict with the unit operation.