Chapter : 9 Architectural Design

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Design Phase What’s design?
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Fall 2005
Chapter 10 Architectural Design
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
An Introduction to Software Architecture
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Lecture 9: Chapter 9 Architectural Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
SOFTWARE DESIGN.
Chapter 9 Moving to Design
Chapter 13 Architectural Design
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Lecture 7: Requirements Engineering
Systems Analysis and Design in a Changing World, 3rd Edition
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Software Design: Principles, Process, and Concepts Getting Started with Design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
Chapter : 9 Architectural Design. Software Architecture What Is Architecture? The software architecture of a program or computing system is the structure.
1 Chapter : Architecture & User Interface Design.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
1 Chapter 2: Architectural Design. 2 Introduction Structure or structures of the system, which comprise software components, the externally visible properties.
Design Concepts ch-8
Chapter 13 Architectural Design
Architectural Design.
Lecture 9- Design Concepts and Principles
Chapter 13 Architectural Design
Part 3 Design What does design mean in different fields?
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Chapter 13 Architectural Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 9 Architectural Design
Software Architecture
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Lecture 9- Design Concepts and Principles
Chapter 13 Architectural Design
Chapter 9 Architectural Design.
Chapter 6: Architectural Design
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Presentation transcript:

Chapter : 9 Architectural Design

What Is Architecture? The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationship among them

Software architecture considers two levels of design – data design and architecture design. Data design enables you to represent the data component of the architecture in conventional system and class definitions in object-oriented system. Architectural design focuses on the representation of the structure of software components, their properties and actions.

Classification of Architectural Styles Data-centered architecture Data flow architecture Call and return architecture Object oriented architecture Layered architecture

Data-centered architecture Figure A data store resides at the center of the architecture and is accessed frequently by other components that update, add, delete data within the store In some case data repository is passive. i.e. client s.w access the data independent of any changes to the data or actions of other client s.w A variation on this approach transforms the repository into a “blackboard” that sends a notification to client s.w when data of interest to the client changes

Data-centered architectures promotes integrability i. e Data-centered architectures promotes integrability i.e. existing components can be changed and new client components added to the architecture without concern about other clients Client components independently execute processes

Data flow architecture It is applied when input data are to be transformed through a series of computational or manipulative components into o/p data Figure A pipe and filter pattern has set of components , called filter , connected by pipes that transmits data from one component to the next

Each filter works independently and is designed to expect data input of a certain form, and produces data output of a specified form Batch sequential approach: This structure accepts a batch of data and then applies a series of sequential components to transform it

Call and return architecture Categories Main / sub program architecture: it decomposes function into a control hierarchy where a “main” program invokes a no of program components , which in turn may invoke still other components RPC architecture: the components of main program / sub program architecture are distributed across multiple computers on a network

Object oriented architecture The components of a system encapsulates data and the operations that must be applied to manipulate the data. Communication and coordination between components are accomplished via message passing

Layered architecture A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set At the outer layer, components are used to serve user interface operations At the inner layer, components perform operating system interfacing Intermediate layers provides utility services and application software functions

Architectural patterns Architectural patterns address an application-specific problem within a specific context and under a set of limitations and constraints. The pattern proposes an architectural solution that can serve as the basis for architectural design

Organization and Refinement Set of design criteria can be used to access an architectural design that is derived Control: How is control managed within the architecture? Data: How are data communicated between components? What is a mode of transfer? etc.

Architectural Design This information is generally acquired from the requirement model and all other information gathered during requirement engineering An archetype is an abstraction that represents one element of system behavior

Tasks: Representing The System In The Context Defining Archetypes Refining The Architecture into Components Describing Instantiation of The System

Representing The System In The Context An architectural context diagram is used to model the manner in which software interacts with entities external to its boundaries Figure Super-ordinate systems:- uses the target system as part of some higher level processing scheme

Subordinate systems:- those systems that are used by the target system and provide data or processing that are necessary to complete target system functionality Peer-level system:- interact on peer-to-peer basis. Information is produced or consumed by the peers and the target system. Actors:- entities ( people, devices) that interact with the target system by producing or consuming information that is necessary for requisite processing. Each of these external entities communicates with the target system through an interfaces (the small shaded rectangles in figure).

The target system architecture is composed of these archetypes Defining Archetypes An archetype is a class or patterns that represents a core abstraction that is critical to the design of an architecture for the target system In general, a relatively small set of archetypes is required to design even relatively complex system The target system architecture is composed of these archetypes

Refining The Architecture into Components Various ways for choosing components: The analysis classes represent entities within the application domain that must be addressed within the software architecture. Hence the application domain is one source for derivation and refinement of components Another source is infrastructure domain eg. Memory Management Components, Communication Components, Task Management components etc…

Instantiation of The System architecture is applied to a specific problem with the intent of demonstrating that the structure and components are appropriate

Assessing Alternative Architectural Design An architecture trade-off analysis method (ATAM) Architectural complexity Architectural complex language

An architecture trade-off analysis method (ATAM) It establishes an iterative evaluation process for software architecture Activities: Collect scenarios : a set of use-cases is developed to represent the system from the user’s point of view Elicit requirements, constraints and environmental description : this information is used to be certain that all stakeholder concerns have been addressed

Describe the architectural style / pattern that have been chosen to address the requirements : The architectural styles should be described using one of the following architectural views : Module View for analysis of work assignments with components and the degree to which information hiding has been achieved. Process View for analysis of system performance. Data Flow View for analysis of the degree to which the architecture meets functional requirements Evaluate quality attributes by considering each attribute in isolation : Quality attributes include reliability, performance, flexibility, security, maintainability etc

Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural styles : Attributes that are significantly affected by variation in the architecture are termed as sensitive points. Detect the sensitivity of the quality attributes Critique candidate architecture (developed in step 3) using the sensitivity analysis conducted in step 5 the performance of a client – server architecture might be highly sensitive to the no of servers ( performance increases , within some range, by increasing the no of servers ) ….. The no of servers, then, is a trade-off point with respect to this architecture

Architectural Complexity A technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components within the architecture Three types of dependencies: Sharing dependencies: E.g. for two components u and v, if u and v refer to the same global data, then there exists a shared dependence relationship between u and v Flow dependencies: E.g. for two components u and v , if u must complete before control flows in to v , or if u communicates with v by parameters , then there exits a flow dependence relationship between u and v

Architectural Description Language Constrained dependence: e.g. for two components u and v, if u and v can not execute at the same time. Architectural Description Language It provides syntax for describing a software architecture

Architectural Mapping Using Data Flow Transform Flow Transform flow is one type of information flow Transaction Flow It is characterized by data moving along an incoming path that converts external world information into a transaction

(single, distinct function is performed) Transform Mapping Transform mapping is a set of design steps that allows a DFD with transform flow characteristics to be mapped into a specific architectural style To map DFD into an architecture, the following design steps are initiated Step 1: Review the fundamental system model: Represents the external producers and consumers of data that flows into and out of the function ( 0 level and 1st level DFD) Figure : 9.10 and 9.11 Step 2:Review and refine DFD for the S.W: Information obtained from the analysis models is refined to produce greater detail. E.g. 2nd level DFD is examined and 3rd level DFD is derived. Each transform in the DFD exhibits high cohesion. Figure 9.12 and 9.13 (single, distinct function is performed)

Step 3:Determine whether the DFD has transform or transaction flow characteristics: Referring to Figure - 9.13, we can see data entering the s.w along one incoming path and exiting along three outgoing paths. Step 4: Isolate the transform center by specifying incoming and outgoing flow boundaries: Incoming flow: path that converts information from external to internal form. Outgoing flow: converts from internal to external form. Alternative design can be derived by varying the placement of flow boundaries. Figure 9.13

Step 6: perform “Second level factoring”: Step 5: Perform “First level factoring”: The program architecture derived using this mapping results into top-down distribution of control. Figure 9.14 Step 6: perform “Second level factoring”: It is accomplished by mapping individual transforms (bubbles) of a DFD into appropriate modules within architecture. Two or even three bubbles can be combined and represented as one component or single bubble may be expanded to two or more components Figure 9.15

Step 7: Refine the first iteration architecture using design heuristics for improved s.w quality : First level architecture can always be refined by applying concepts of functional independence. Components are exploded or imploded to produce sensible factoring, separation of concern, good cohesion and minimal coupling