CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.

Slides:



Advertisements
Similar presentations
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Advertisements

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 10: 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.
Architectural Design.
What is Software Architecture?
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 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Chapter 10 Architectural Design
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.
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
Lecture 9: Chapter 9 Architectural Design
SOFTWARE 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.
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
Highlights of data design and
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 : 9 Architectural Design
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10b: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10b:
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.
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.
Introduction to DBMS Purpose of Database Systems View of Data
Chapter 8 Analysis Engineering
REV 00 Chapter 2 Database Environment DDC DATABASE SYSTEM.
REV 00 Chapter 2 Database Environment DDC DATABASE SYSTEM.
Chapter 2 Database Environment.
Chapter 13 Architectural Design
Architectural Design.
Software Design and Architecture
Chapter 13 Architectural Design
Advance Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 13 Architectural Design
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment.
Introduction to Database Systems
Chapter 2 Database Environment Pearson Education © 2009.
Highlights of data design and
Ch 15 –part 3 -design evaluation
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
Chapter 13 Architectural Design
An Introduction to Software Architecture
Introduction to DBMS Purpose of Database Systems View of Data
Chapter 9 Architectural Design.
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Call and return architectures
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 2 CREATING AN ARCHITECTURAL DESIGN

Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together” [BAS03].

Data Design At the architectural level … Design of one or more databases to support the application architecture Design of methods for ‘mining’ the content of multiple databases navigate through existing databases in an attempt to extract appropriate business-level information Design of a data warehouse —a large, independent database that has access to the data that are stored in databases that serve the set of applications required by a business

Data Design At the component level … refine data objects and develop a set of data abstractions implement data object attributes as one or more data structures review data structures to ensure that appropriate relationships have been established simplify data structures as required

Data Design—Component Level 1. The systematic analysis principles applied to function and behavior should also be applied to data. 2. All data structures and the operations to be performed on each should be identified. 3. A data dictionary should be established and used to define both data and program design. 4. Low level data design decisions should be deferred until late in the design process. 5. The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure. 6. A library of useful data structures and the operations that may be applied to them should be developed. 7. A software design and programming language should support the specification and realization of abstract data types.

Architectural Styles Each style describes a system category that encompasses: (1) a set of components (e.g., a database, computational modules) that perform a function required by a system, (2) a set of connectors that enable “communication, coordination and cooperation” among components, (3) constraints that define how components can be integrated to form the system, and (4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures

Data-Centered Architecture

Data-Centered Architecture Data store resite at the center of this architecture, accessed frequently by the other components Update, add, delete or modify data Data centered promotes integrability(can be changed) 8

Data Flow Architecture

Data Flow Architecture Applied when input data are to be transformed through a serious of computational or manipulative components into output data. Components called filters, connectred by pipes that transmit data from one component to the next. Each filter works independently However filters doesn’t require knowledge of the workings of its neighboring filters. 10

Call and Return Architecture

Call and Return Architecture Enables a software designer (System Architecture) to achieve a program structure that is easy to modify & scale Main program/subprogram architecture – invokes a number of program components. Remote procedure call architecture- components of main program/subprogram architecture distributed across multiple computers on network 12

Layered Architecture

Layered Architecture Outer layer, components service user interface operations Inner layer components perform OS interfacing Intermediate layers provide utility services & applications software functions. 14

Architectural Patterns Concurrency—applications must handle multiple tasks in a manner that simulates parallelism operating system process management pattern task scheduler pattern Persistence—Data persists if it survives past the execution of the process that created it. Two patterns are common: a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture an application level persistence pattern that builds persistence features into the application architecture Distribution— the manner in which systems or components within systems communicate with one another in a distributed environment A broker acts as a ‘middle-man’ between the client component and a server component.

Architectural Design The software must be placed into context the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction A set of architectural archetypes should be identified An archetype is an abstraction (similar to a class) that represents one element of system behavior The designer specifies the structure of the system by defining and refining software components that implement each archetype

Architectural Context

Archetypes

Archetypes Node. Represents a cohesive collection of input and output elements of the home security function. For example a node might be comprised of (1) various sensors and (2) a variety of alarm (output) indicators. • Detector. An abstraction that encompasses all sensing equipment that feeds information into the target system. • Indicator. An abstraction that represents all mechanisms (e.g., alarm siren, flashing lights, bell) for indicating that an alarm condition is occurring. • Controller. An abstraction that depicts the mechanism that allows the arming or disarming of a node. If controllers reside on a network, they have the ability to communicate with one another. 19

Component Structure

Refined Component Structure Continuing the SafeHome home security function example, you might define the set of top-level components that address the following functionality: • External communication management—coordinates communication of the security function with external entities such as other Internet-based systems and external alarm notification. • Control panel processing —manages all control panel functionality. • Detector management —coordinates access to all detectors attached to the system. • Alarm processing —verifies and acts on all alarm conditions

Analyzing Architectural Design 1. Collect scenarios. 2. Elicit requirements, constraints, and environment description. 3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements: • module view • process view • data flow view 4. Evaluate quality attributes by considered each attribute in isolation. 5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5.

An Architectural Design Method customer requirements "four bedrooms, three baths, lots of glass ..." architectural design

Deriving Program Architecture