Software Engineering: A Practitioner’s Approach, 6/e

Chapter 10 Architectural Design
copyright © 1996, 2001, 2005

R.S. Pressman & Associates, Inc.
For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

1

Why Architecture?
The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the effectiveness of the design in meeting its stated requirements, (2) consider architectural alternatives at a stage when making design changes is still relatively easy, and (3) reduce the risks associated with the construction of the software.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

2

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].

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

3

Inc.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. Pressman & Associates. 2001.S.. independent database that has access to the data that are stored in databases that serve the set of applications required by a business These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 6/e and are provided with permission by R. 2005 4 . copyright © 1996.

S.. Inc. 2001.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 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. Pressman & Associates. 6/e and are provided with permission by R. copyright © 1996. 2005 5 .

6.S. copyright © 1996. A software design and programming language should support the specification and realization of abstract data types. Pressman & Associates. 2001. Low level data design decisions should be deferred until late in the design process. 3. 7.Data Design—Component Level 1. A library of useful data structures and the operations that may be applied to them should be developed. The systematic analysis principles applied to function and behavior should also be applied to data. 4. The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure. 5. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 2. Inc. 6/e and are provided with permission by R.. All data structures and the operations to be performed on each should be identified. A data dictionary should be established and used to define both data and program design. 2005 6 .

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. Inc. coordination and cooperation” among components. (2) a set of connectors that enable “communication.      Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 2001. (3) constraints that define how components can be integrated to form the system. 2005 7 . 6/e and are provided with permission by R. Pressman & Associates. copyright © 1996.g..Architectural Styles Each style describes a system category that encompasses: (1) a set of components (e. a database.S.. computational modules) that perform a function required by a system.

2001. 6/e and are provided with permission by R. Pressman & Associates.S. copyright © 1996.Data-Centered Architecture These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.. Inc. 2005 8 .

. copyright © 1996. Inc. 2005 9 .S. Pressman & Associates. 6/e and are provided with permission by R. 2001.Data Flow Architecture These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.

Inc. copyright © 1996. Pressman & Associates. 2005 10 . 2001.. 6/e and are provided with permission by R.Call and Return Architecture These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.S.

6/e and are provided with permission by R. 2001.Layered Architecture These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. Inc. Pressman & Associates. copyright © 1996.. 2005 11 .S.

2005 12 ..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. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.S. Inc. 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. Pressman & Associates. copyright © 1996. 6/e and are provided with permission by R. 2001.

people) that the software interacts with and the nature of the interaction An archetype is an abstraction (similar to a class) that represents one element of system behavior  A set of architectural archetypes should be identified   The designer specifies the structure of the system by defining and refining software components that implement each archetype 13 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 2005 .Architectural Design  The software must be placed into context  the design should define the external entities (other systems.S. devices.. 2001. 6/e and are provided with permission by R. copyright © 1996. Inc. Pressman & Associates.

Architectural Context Safehome Pro duct Internet-based system control panel target system: Security Function uses uses surveillance function peers homeowner uses sensors sensors A system context diagram accomplishes this requirement by representing the flow of information into and out of the system . 14 . user interface and relevant support processing.

2005 15 . copyright © 1996.Component Structure SafeHome Execut ive Funct ion select ion Ext ernal Communicat ion Management Securit y Surveillance Home management GUI Int ernet Int erface Cont rol panel processing det ect or management alarm processing These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.. 6/e and are provided with permission by R. Pressman & Associates. Inc. 2001.S.

. 2005 16 . Pressman & Associates. copyright © 1996. Inc. 6/e and are provided with permission by R. 2001.Refined Component Structure SafeHome Executive Ext ernal Communicat ion Management Security GUI Internet Interface Co n t ro l p an e l p ro ce ssin g d e t e ct o r m an ag e m e n t alarm p ro ce ssin g Ke y p ad p ro ce ssin g sch e d u le r phone co m m u n icat io n CP d isp lay fu n ct io n s alarm se n so se so r se n so r se n n so r se n so r se n so r se n so rr se n so r se n so r These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.S.

Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements: • module view • process view • data flow view 4. Pressman & Associates. Elicit requirements. Evaluate quality attributes by considered each attribute in isolation. 2.Analyzing Architectural Design 1. 3.. 2001. 6. 6/e and are provided with permission by R. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. copyright © 1996.S. constraints. 2005 17 . Collect scenarios. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style. 5. and environment description. Inc.

2001. Inc. 6/e and are provided with permission by R.An Architectural Design Method customer requirements "four bedrooms." architectural design These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.. three baths.S.. lots of glass . copyright © 1996. Pressman & Associates. 2005 18 ..

S. 2001. copyright © 1996. 6/e and are provided with permission by R.. 2005 19 . Pressman & Associates.Partitioning the Architecture  “horizontal” and “vertical” partitioning are required These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. Inc.

Pressman & Associates. Inc.S. copyright © 1996.. 2005 20 . 2001. 6/e and are provided with permission by R.Horizontal Partitioning   define separate branches of the module hierarchy for each major function use control modules to coordinate communication between functions function 1 function 3 function 2 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.

2005 21 . Inc. copyright © 1996.. 6/e and are provided with permission by R.Vertical Partitioning: Factoring   design so that decision making and work are stratified decision making modules should reside at the top of the architecture decision-makers workers These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 2001. Pressman & Associates.S.

.S. 2005 22 . 2001. 6/e and are provided with permission by R.Why Partitioned Architecture?     results in software that is easier to test leads to software that is easier to maintain results in propagation of fewer side effects results in software that is easier to extend These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. copyright © 1996. Inc. Pressman & Associates.

Flow Characteristics Transform flow Transaction flow These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 2005 23 . Pressman & Associates. 2001.S. 6/e and are provided with permission by R.. copyright © 1996. Inc.

isolate the transaction center working from the boundary outward. copyright © 1996. Inc. map DFD transforms into corresponding modules add control modules as required refine the resultant program structure using effective modularity concepts These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 6/e and are provided with permission by R. Pressman & Associates.S.. 2001. for transaction flows.General Mapping Approach isolate incoming and outgoing flow boundaries. 2005 24 .

Pressman & Associates.Transform Mapping a b d c data flow model x1 x2 b a c d x3 e f g h x4 i j e f g i h j "Transform" mapping These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 6/e and are provided with permission by R.S. Inc.. 2005 25 . 2001. copyright © 1996.

copyright © 1996. 6/e and are provided with permission by R. Pressman & Associates. Inc.S. 2005 26 . 2001.Factoring direction of increasing decision making typical "decision making" modules typical "worker" modules These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach..

Inc.S.. Pressman & Associates. copyright © 1996. 2005 27 . 2001.First Level Factoring main program controller input controller processing controller output controller These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 6/e and are provided with permission by R.

2005 28 .. Pressman & Associates. copyright © 1996. 6/e and are provided with permission by R. 2001. Inc.S.Second Level Mapping D C control main B A A B C mapping from the flow boundary outward D These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.

2001. copyright © 1996. 2005 29 . Inc..S.Transaction Flow incoming flow action path T These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 6/e and are provided with permission by R. Pressman & Associates.

copyright © 1996. Pressman & Associates. 2001. 2005 30 ..Transaction Example fixture setting commands operator process operator commands fixture servos report display screen robot control robot control software assembly record in reality. Inc. other commands would also be shown These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 6/e and are provided with permission by R.S.

Pressman & Associates. 2001.. Inc. 6/e and are provided with permission by R.S.Transaction Mapping Principles isolate the incoming flow path define each of the action paths by looking for the "spokes of the wheel" assess the flow on each action path define the dispatch and control structure map each action path flow individually These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. copyright © 1996. 2005 31 .

copyright © 1996.S.. Pressman & Associates. 2005 e d i f k data flow model l n Mapping x4 x3.1 j l m n 32 . 6/e and are provided with permission by R. 2001. Inc.Transaction Mapping a b t g h j m x1 b a d x2 e f g t x3 h i k These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.

6/e and are provided with permission by R. copyright © 1996. 2005 33 .S. Inc.Isolate Flow Paths co mmand prod uce error msg read co mmand i nva li d co mmand co mmand va li da te co mmand de te rmi ne type error msg sta tus de te rmi ne setti ng read fixtu re sta tus co mbi ned sta tus format setti ng raw se tti ng fixtu re settin g robo t co ntro l read reco rd reco rd ca lcul ate ou tp ut va lu es va lu es send co ntro l va lu e asse mbl y reco rd sta rt /sto p format repo rt repo rt These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach.. 2001. Pressman & Associates.

copyright © 1996. 2001.. Inc. 6/e and are provided with permission by R. Pressman & Associates.Map the Flow Model process operator commands command input controller read command validate command produce error message fixture status controller determine type report generation controller send control value each of the action paths must be expanded further These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. 2005 34 .S.

2001. 6/e and are provided with permission by R. 2005 35 .S.. copyright © 1996. Inc.Refining the Structure Chart process operator commands command input controller read command validate command produce error message fixture status controller determine type report generation controller send control value read fixture status determine setting format setting read record calculate output values format report These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach. Pressman & Associates.

702.98 49841. .9439$419.8.994307 85574.4:780.907.:894207706:7020398 14:7-0/74428 9700-.43:3.90.7094-0:80/3.9:7.90.70330073!7.083094/ .37.7.88  .9:7../083 %080..

3 884.908 3.70574.4579      .0.3/. ../0/ 950728843-# $ !70882.

4:780.90.9:70 47439.907. ..079.70330073!7.702.7094-0:80/3. 5.!.3/ .70 706:70/ %080. .43:3.994307 85574.799433907.8..9439$419.799433..

70574..4579      . ./0/ 950728843-# $ !70882.0.3/.3 884.908 3.

3..1470.4397424/:0894.994307 85574.7094-0:80/3.90 .447/3.8.43:3.943 1:3. ..907.47439.422:3.70330073!7.943-090031:3.943 %080.702.9439$419.943 :80.943 1:3.90-7.799433 /0130805.4:780.7.2..!.9438 1:3.08419024/:0 07.7..471:3.

.3/..70574.4579      .0.3 884./0/ 950728843-# $ !70882.908 3.

702.8432.3..843 2.843 /0.!. ..43:3.70 897..9:70 /0.3/47.7094-0:80/3.907.990945 4190.7.'079..078 47078 %080.4:780.8.910/ /0.90.8432.994307 85574.799433 .70330073!7.324/:0884:/708/0.9473 /083849.9439$419.9/0.

/0/ 950728843-# $ !70882.70574. ..3 884.4579      .908 3.0.3/.

4:780.807942.9434110078/00110..70330073!7.3 708:9835745.8.709.98 708:9838419.9439$419..39.709.994307 85574.7094-0:80/3.90.807949089 0.980.799430/7..807940903/ %080.43:3.702./8948419.709.!.907. .980.9:70 708:9838419.980.

/0/ 950728843-# $ !70882.70574.4579      .3 884.908 3..0. .3/.

.994307 85574.8 %7.7.38.7094-0:80/3.943 14 %080.4:780.8.9439$419.907.702.. ..38147214 %7.4..90789.70330073!7.43:3.

.3 884..0.3/.70574.908 3./0/ 950728843-# $ !70882.4579      .

9:70 :830110.943148 84.994307 85574.74:9.907.3814728394. .5 97.8706:70/ 7013090708:9..943..9439$419.5535574..8..4397424/:08.423.43.90 9097.9.7094-0:80/3.0307. 84.70330073!7.702..2897:.395747.0598 %080.70814797.4:780.//.3/4:94314 -4:3/.03907 473174290-4:3/.903.38..79.024/:.38.47708543/324/:08 .7/ 2.43:3.

.0.3/.908 3./0/ 950728843-# $ !70882.4579      .70574. .3 884.

/  0 1      0 1     %7. .8.4:780.9439$419.994307 85574.553 %080.1424/0   .3814722. / .%7..70330073!7.381472.553 ..43:3. /.9.702.907. .7094-0:80/3.

.70574.0.3 884./0/ 950728843-# $ !70882.4579      ..908 3.3/.

43:3.907.8432.83 /0.702...70.9473 /70.3 95. .70330073!7.7094-0:80/3..9439$419.470724/:08 %080..324/:08 95..4:780.8.943413.994307 85574./0..843 2.

3 884.70574..4579      .908 3.3/./0/ 950728843-# $ !70882. .0.

..4397407 35:9 .43:3.994307 85574.4:780.70330073!7.4397407 %080.2 .7890.907. .7094-0:80/3.9439$419.9473 2.0.4397407 4:95:9 .4397407 574.702..8.0883 .3 5747.

3/.3 884. .0.908 3.4579      .70574../0/ 950728843-# $ !70882.

43/0.553174290 14-4:3/.702.8.994307 85574.0.553   .$0. .74:9..43:3.7094-0:80/3.70330073!7.43974 2.9439$419.3      2.4:780..7/  %080.907.

3 884./0/ 950728843-# $ !70882. .4579      .3/.0..908 3.70574.

 .9439$419.9 % %080...%7.43:3..7094-0:80/3.994307 85574.38..4:780.70330073!7.9435.42314 .702.8.907.9434 3.

/0/ 950728843-# $ !70882.3/.908 3.3 884.0.4579      .70574. ..

 8.947 574.250 19:7080993 .907..47/ 370.70 .%7. .947 .3/8 4:/.84-0843 %080..9 4907 .43974 74-49 .38.7003 74-49.70330073!7.3/8 4507.43:3.43974 8419.994307 85574.8.422.943.422.088 4507..7094-0:80/3.3/8 19:70 807.4:780.48 705479 /85.702.422.8802- 70.9439$419.

..4579      .0.908 3./0/ 950728843-# $ !70882.3/.3 884.70574.

508 84.9435. %080..%7.994307 85574.907.702.98-443147 9085408419000 .90903..943..8...50.70330073!7.4:780.4190.423145..7094-0:80/3.9435.9 /01300./:. ..3/..43:3.43974897:.9439$419.38.553!73.9:70 2.9435..9 /013090/85.880889014430.9.9143/....

.70574.3 884.3/.4579      ..0.908 3./0/ 950728843-# $ !70882.

70330073!7.38.43:3.4:780..7094-0:80/3. 0 9    2  . /  0 1  9     %080.943.9439$419. ..553 .994307 85574..%7.8.907.702.

908 3.1424/0  3 .3 884.. .553      2 3  .3/.4579     /  1  /./0/ 950728843-# $ !70882.9.0.70574.

./ 70.90 4:95:9 .422.3/ ../ 19:70 89.3/ 574/:..9 80993 7.0 07747 28 70.80993 19:7080993 .47/ 70./ .47/ .9:8 /0907230 80993 .98 .9:8 1472..904!./.8802- 70.422..43974 .:08 .79.47/ 89.:0 ./.422.:08 1472..9:8 /0907230 950 0774728 89.3/ 74-49.84.3/ 3.9 705479 705479 803/ .43974 70.:.3/ 70.42-30/ 89.422..422.90 .

8945 %080.70330073!7.4:780.907.7094-0:80/3.994307 85574.702.43:3.8..9439$419.. .

70574.0.3/.908 3. .3 884./0/ 950728843-# $ !70882..4579      .

422..9435.3/ 35:9 .70330073!7.:0 0.8.422..3/ .702.90 .422.3/ 574/:.0 19:70 89.088 4507..947 .982:89-005./ . ..59044/0 574.3/8 .9:8 .907.943 .4397407 803/ .7094-0:80/3.0 07747 2088.9439$419..994307 85574.43974 ./...4397407 /0907230 950 705479 0307.4190.422.43:3.3/0/1:7907 %080.4397407 70.4:780.

908 3.4579      .0..70574. ./0/ 950728843-# $ !70882.3 884.3/.

9 705479 %080.0 19:70 89.:08 1472.9 80993 70..4397407 70.9:70.7094-0:80/3.43:3.9:8 .:.90 . .422.907.90 4:95:9 .70330073!7.9:8 /0907230 80993 1472.47/ .422.8./ 70./ .3/ 574/:.#013390$97:.79 574.422.947 .9439$419.43974 .3/ 35:9 .422./.3/ .4397407 803/ .702./ 19:70 89...994307 85574..4:780...3/8 .4397407 /0907230 950 705479 0307.0 07747 2088.:0 70.088 4507.943 ..

.3/.908 3.4579      .0./0/ 950728843-# $ !70882..70574.3 884.

Sign up to vote on this title
UsefulNot useful