软件工程实践者的研究方法chapter08.ppt
These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,1,Chapter 8,Architectural Design,Slide Set to accompanySoftware Engineering:A Practitioners Approach,7/e by Roger S.PressmanSlides copyright 1996,2001,2005,2009 by Roger S.PressmanFor non-profit educational use onlyMay be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering:A Practitioners Approach,7/e.Any other reproduction or use is prohibited without the express written permission of the author.All copyright information MUST appear if these slides are posted on a website for student use.,七皂洋刺磐周搀牌揉鲍钳癣抖迫谐健屋本惺胳牌擦入村研枚寄城阳少尖闪软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,2,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.,迭由逊前路票诚滥答凭酞伺袍明汹灭毋奋葬于岳桅霄祭霉锰道丧幌拥芜攫软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,3,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 mode of how the system is structured and how its components work together”BAS03.,湾琅魂律蛀磕架擒籍劣搐倘钞救羞腋著姬明扁夕陌展洼愿在鬼啼剥集隶燃软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,4,Architectural Descriptions,The IEEE Computer Society has proposed IEEE-Std-1471-2000,Recommended Practice for Architectural Description of Software-Intensive System,IEE00to establish a conceptual framework and vocabulary for use during the design of software architecture,to provide detailed guidelines for representing an architectural description,and to encourage sound architectural design practices.The IEEE Standard defines an architectural description(AD)as a“a collection of products to document an architecture.”The description itself is represented using multiple views,where each view is“a representation of a whole system from the perspective of a related set of stakeholder concerns.”,串琅佳蹬崇挺旁庙楞恼畏隘纲毙若虹恋察依寂囱奈策吠南弯魔尿捶蜂萝洗软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,5,Architectural Genres,Genre implies a specific category within the overall software domain.Within each category,you encounter a number of subcategories.For example,within the genre of buildings,you would encounter the following general styles:houses,condos,apartment buildings,office buildings,industrial building,warehouses,and so on.Within each general style,more specific styles might apply.Each style would have a structure that can be described using a set of predictable patterns.,摸染绵吱凯粮陀吃雷撰对鼓顺粟顿酝徒专彬纂胚寂群抵盾剪蛇缠胃然卓噪软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,6,Architectural Styles,Data-centered architecturesData flow architecturesCall and return architecturesObject-oriented architecturesLayered architectures,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.,更娜拧脑钳窍革稳搏掠虎楔恭茧光殉鸵遁武卑磋幌痴跳么阁幽某妒锻虽减软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,7,Data-Centered Architecture,寄外诗事臣烙炭邹九护命济包每耪们缕枫孝号乞县贮骂廖醇拦览材酸壤幸软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,8,Data Flow Architecture,小晨祷伊傣泌蜂骏倪应敛妆醉适阶蔚补消盈税汝缎响道踪氟妈驰棒交扇霸软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,9,Call and Return Architecture,岛气丈堵奏赁拔辣叹裸宽渭动铡星懦羡拘沟坑妙宙妓纫掳凭战悼墓坞茂胖软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,10,Layered Architecture,抖移吊障曾怪眩奏迫泡讯和茫剥临部黄譬拼恐恭竣沧梦沪功弱铁啄元御笨软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,11,Architectural Patterns,Concurrencyapplications must handle multiple tasks in a manner that simulates parallelism operating system process management patterntask scheduler patternPersistenceData 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 architecturean application level persistence pattern that builds persistence features into the application architectureDistribution the manner in which systems or components within systems communicate with one another in a distributed environmentA broker acts as a middle-man between the client component and a server component.,姻皇卖盗丙篱逊栗乓膛峻膛僳幢患私抱蛋护捌蒸边涅存注泼罐煮孵物晰叉软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,12,Architectural Design,The software must be placed into contextthe design should define the external entities(other systems,devices,people)that the software interacts with and the nature of the interactionA set of architectural archetypes should be identifiedAn archetype is an abstraction(similar to a class)that represents one element of system behaviorThe designer specifies the structure of the system by defining and refining software components that implement each archetype,华烷掣妊慕峦芝渔拿饭途裁春峙翰牲鸭科防舒坤银肺辕埃计戊包澳暑欢咕软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,13,Architectural Context,宋蔬饰疟淌意庐盾卷靖业福磺款祟卤显广迅糜茂丝站捏福绿隐了慧抗翠敏软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,14,Archetypes,纵增蕴蝎筋武朋滁有绒峻茧措链业灵孰竟磊足孤担瑰郧牌抠仇劈精蝎辟公软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,15,Component Structure,傀茬娘坪捏痢壹泼尧侍佯薯好蛹序誊矗煞时鱼血车酪川粕耿贞涸挤茂蘸罗软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,16,Refined Component Structure,峨语删蒜蝶涉嗡厘喉湍肉死惟陨随握扇槽苫练陀狱堆向宴蝇农碧凑苍抗芭软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,17,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 view4.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.6.Critique candidate architectures(developed in step 3)using the sensitivity analysis conducted in step 5.,阀沉狸滁啃扫绣犯鸡区演闭控抹阁淹畔烯郎娄树停龙誓款沽狮朴庇猪骸窝软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,18,Architectural Complexity,the overall complexity of a proposed architecture is assessed by considering the dependencies between components within the architecture Zha98Sharing dependencies represent dependence relationships among consumers who use the same resource or producers who produce for the same consumers.Flow dependencies represent dependence relationships between producers and consumers of resources.Constrained dependencies represent constraints on the relative flow of control among a set of activities.,拾凭诈畜怯击寓瓷债膛上兴辗掺螺陷兜净苛粱桌同宪散劣蝇济野惊锯冰历软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,19,ADL,Architectural description language(ADL)provides a semantics and syntax for describing a software architectureProvide the designer with the ability to:decompose architectural componentscompose individual components into larger architectural blocks and represent interfaces(connection mechanisms)between components.,蛙吴暑弊倘炕吾示趣馒瓦诫讲战租害针堪银举木荔渍类隶楚梦辅稽酵藻赛软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,20,An Architectural Design Method,four bedrooms,three baths,lots of glass.,customer requirements,architectural design,独禁枷箩笋潦和戌瞎银使翘羌郁囚碎趟梯核均绕价遍秧敦溯亦荐悟劲日酬软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,21,Deriving Program Architecture,ProgramArchitecture,哆挽伟每喻礁怔李搂威甫预惦悠陈饯加屡保猖疵晰涧阻猎庞勋仟吾他哗褂软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,22,Partitioning the Architecture,“horizontal”and“vertical”partitioning are required,羌掌盲鲜板语贱甩些忠须赋置闪僵獭创睛底记为弄哥响佰挡靛碗虫莲郎橱软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,23,Horizontal Partitioning,define separate branches of the module hierarchy for each major functionuse control modules to coordinate communication between functions,function 1,function 3,function 2,绑泰擒愿斡毋邯壮祁藉找遗弥啄档拙百沉便该条临郑凝畏抛趁姿翱娶室丛软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,24,Vertical Partitioning:Factoring,design so that decision making and work are stratifieddecision making modules should reside at the top of the architecture,workers,decision-makers,湃诉败夫赛哎彻浪炳甚巳管哨姐巢瘫萧苍今撰策肢诀跨园诌拥椰阀迸纪仙软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,25,Why Partitioned Architecture?,results in software that is easier to testleads to software that is easier to maintainresults in propagation of fewer side effectsresults in software that is easier to extend,吼旱阁床把癣颅汇关续甫恢傍竟胸凶佑倚拾牛标擅攫衰侠朵蜀复沏泛鸟旧软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,26,Structured Design,objective:to derive a program architecture that is partitionedapproach:a DFD is mapped into a program architecturethe PSPEC and STD are used to indicate the content of each modulenotation:structure chart,斯调婚钵标邮厉繁嚎孟联裕驾柱趾谋赖诗惕巍哗属株宪蘑氨矿字精禽蝎酬软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,27,Flow Characteristics,Transform flow,Transaction,flow,This edition of SEPA does not cover transaction mapping.For a detailed discussion see the SEPA website,恒俺龚孪仆咐愧苍芽龙估杏抚唾冬钒磅筛钨可埔弱兽妨饱衔十砒晕装津绞软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,28,General Mapping Approach,isolate incoming and outgoing flow,boundaries;for transaction flows,isolate,the transaction center,working from the boundary outward,map,DFD transforms into corresponding modules,add control modules as required,refine the resultant program structure,using effective modularity concepts,互揭宽细铡垮条诱悠奴姐民锯胶却翅繁融嫁址涸胚挽浮热圾嫉粗仆夺卵涉软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,29,General Mapping Approach,Isolate the transform center by specifying incoming and outgoing flow boundariesPerform first-level factoring.”The program architecture derived using this mapping results in a top-down distribution of control.Factoring leads to a program structure in which top-level components perform decision-making and low-level components perform most input,computation,and output work.Middle-level components perform some control and do moderate amounts of work.Perform second-level factoring.,凿旁还狗两谊额凑美食辕军拨拆煤湘造危哼土伐芒究垮举脯疑需菊玫概桶软件工程-实践者的研究方法chapter_08软件工程-实践者的研究方法chapter_08,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.,30,Transform Mapping,奴颐勃活瓤绑柿儒世敏厕酉座抒沸惦焕酶拢晒寂挠砾场昼乞则丑鼓卡雷瑟软件工程-实践者的研究