软件体系结构第一章课件

上传人:无*** 文档编号:241809533 上传时间:2024-07-26 格式:PPT 页数:40 大小:4.70MB
返回 下载 相关 举报
软件体系结构第一章课件_第1页
第1页 / 共40页
软件体系结构第一章课件_第2页
第2页 / 共40页
软件体系结构第一章课件_第3页
第3页 / 共40页
点击查看更多>>
资源描述
软件设计和体系结构软件设计和体系结构第第1章章 软软件工程和件工程和软软件件设设计计1.内容提要内容提要p1.1 软软件件l1.1.1软件的本质l1.1.2软件神话 6p1.2 软软件工程件工程l1.2.1软件工程l1.2.2软件过程和软件工程实践l1.2.3网络环境带来的影响p1.3 软软件件设计设计l1.3.1软件工程中的设计l1.3.2设计过程和设计质量l1.3.3软件设计原则p1.4 软软件体系件体系结结构构l1.4.1什么是软件体系结构l1.4.2软件体系结构的内容l1.4.3设计阶段的软件体系结构p1.5 小小结结2.1.1 软软件件1.1.1软软件的本件的本质质p计计算机算机软软件,是由件,是由专业专业人人员员开开发发并并长长期期维护维护的的软软件件产产品。品。l软件科学成为了今天商业、科学、工程必需的技术,促进了新科技的创新和发展 p但是,无但是,无论论国外、国内,国外、国内,软软件危机的达摩克利斯之件危机的达摩克利斯之剑剑,一直高一直高悬悬在在软软件从件从业业者者头顶头顶,至今至今挥挥之不去。之不去。3.软软件与信息件与信息转换转换 软软件不是有形的物理件不是有形的物理产产品,而是人品,而是人类类思思维维的的产产物,物,软软件不是被制造出来,而件不是被制造出来,而是思考出来的。是思考出来的。4.软软件的特性件的特性 p软软件是件是设计设计开开发发的,而不是的,而不是传统传统意意义义上生上生产产制造的制造的p软软件不会磨件不会磨损损!p随着基于构件的构造模式随着基于构件的构造模式发发展,大多数展,大多数软软件需要根据件需要根据实际实际的的顾顾客需求定制客需求定制5.硬件和硬件和软软件的失效曲件的失效曲线线 软软件,不会受引起硬件磨件,不会受引起硬件磨损损的的环环境境问题问题的影响。的影响。6.计计算机算机软软件分件分类类 p系系统软统软件件p应应用用软软件件p嵌入式嵌入式软软件件p科学和工程科学和工程计计算算软软件件p产产品品线软线软件件p人工智能人工智能软软件件p网网络络化化软软件件p计计算机算机软软件分件分为为七七个大个大类类,软软件工程件工程师师正面正面临临着持着持续续挑挑战战。7.新的挑新的挑战战 p开放开放计计算算p网网络资络资源源p开源开源软软件件p所有所有这这些新的挑些新的挑战战,毫无疑毫无疑问问,将,将对对商商务务人人员员、软软件工程件工程师师、最、最终终用用户产户产生生无法无法预测预测的的结结果。果。8.软软件的演件的演变变和和认识过认识过程程 9.程序程序设计语设计语言的言的发发展有三个展有三个层层面面 p以以标标准准C语语言簇言簇为为典型代表的面向典型代表的面向过过程的程的软软件件设计设计方法方法p以以JAVA语语言簇言簇为为典型代表的面向典型代表的面向对对象的象的软软件件设计设计方法方法p以以XML语语言言为为典型代表的面向构件的典型代表的面向构件的软软件件设计设计方法方法10.人月神人月神话话 人月神人月神话话的内容,源于的内容,源于作者布作者布鲁鲁克斯在克斯在IBM公司公司SYSTEM/360家族(最家族(最长长寿寿的的计计算机体系算机体系结结构之一)构之一)和和OS/360中的中的项项目管理目管理经验经验。11.1.2 软软件工程件工程p1.2.1软软件工程件工程p美国美国电电气与气与电电子工程子工程师协师协会(会(IEEE)给给出出的:的:l软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。12.软软件工程件工程层层次次图图 包括包括软软件工程在内的任何工程方法,必件工程在内的任何工程方法,必须须构建在构建在质质量的基量的基础础之上。之上。质量关注点(quality focus)过程(process)方法(method)工具(tool)软软件工程是一种件工程是一种层层次化的技次化的技术术!13.软软件工程与件工程与计计算机科学的差算机科学的差别别 软软件工程件工程计计算机科学算机科学目标在时间、资源、人员这3个主要限制条件下构建满足用户需求的软件系统探索正确的计算和建模方法,从而改进计算方法本身产品软件(比如办公包和编译器)算法(比如希尔排序法)和抽象的问题(比如哲学家进餐问题)进度与时间表软件专案都有特定的进度与时间表研究专案一般不具有设置的进度与时间表关注点软件工程关注如何为用户实现价值软件理论关注的是软件本身运行的原理,比如时间复杂度,空间复杂度,和算法的正确性变化程度随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展中对于某一种特定问题的正确解决方法将永远不会改变需要的其他知识相关领域的知识数学著名的探索者和教育家Barry Boehm,David Parnas,布鲁克斯Edsger Dijkstra,高德纳,Robert Tarjan,Peter Slater,艾伦图灵,姚期智著名的实践者John Backus,Dan Bricklin,蒂姆伯纳斯-李 林纳斯托瓦兹,理查德马修斯托曼无14.1.2.2软软件件过过程和程和软软件工程件工程实实践践p一个通用的一个通用的软软件工程件工程过过程框架,通常包含程框架,通常包含5个活个活动动:l沟通:沟通:在技术工作开始之前,和客户的沟通、协作极其重要目的是理解利益相关者的项目目标,并收集需求,以定义软件特性、功能。l策划:策划:软件项目好比是一个复杂的旅程,策划活动,就是创建一个使任何复杂的旅程都变得简单的地图,以指导团队的项目旅程,该地图称为软件。l建模建模:无论是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,每天的工作都离不开模型。他们会画一张草图,来辅助理解整个项目大的构想,包括体系结构、不同的构件如何结合,以及其它特征。l构建:构建:包括手写的、自动生成的编码和测试,以发现编码中的错误。l部署:部署:软件以全部、部分增量的形式交付给用户,用户对其进行评测,并给出反馈意见。15.7条条简单简单的原的原则则 p存在价存在价值值:软软件系件系统统因能因能给给用用户户提供价提供价值值,而具有存在价,而具有存在价值值。所有。所有的决定,都的决定,都应应基于基于该该思想。思想。p保持保持简洁简洁:软软件件设计设计并不是随意的并不是随意的过过程,程,软软件件设计设计中需要考中需要考虑虑很多很多因素。所有的因素。所有的设计设计,都,都应该应该尽可能尽可能简洁简洁,p保持愿景:保持愿景:清晰的愿景,是清晰的愿景,是软软件件项项目成功的基目成功的基础础。没有愿景,。没有愿景,项项目目将会有多种将会有多种设计设计思想而永思想而永远远不能不能结结束。如果缺乏一致性,束。如果缺乏一致性,p关注使用者:关注使用者:有有产业实产业实力的力的软软件系件系统统,不是在真空中开,不是在真空中开发发、使用的。、使用的。通常,通常,软软件系件系统统必定是由开必定是由开发发者以外的人者以外的人员员使用、使用、维护维护和和编编制文档,制文档,等等,等等,这这就必就必须须要要让别让别人理解你的系人理解你的系统统。因此,在需求。因此,在需求说说明、明、设计设计和和实现过实现过程程时时p面向未来:面向未来:生命期持久的系生命期持久的系统统,具有更高的价,具有更高的价值值。在。在现现在的在的计计算算环环境中,需求境中,需求规规格格说说明随明随时时会会变变p计计划复用:划复用:复用既省复用既省时时又省力。又省力。软软件系件系统统开开发过发过程中,高水平的复程中,高水平的复用,是一个很用,是一个很难实现难实现的目的目标标。面向。面向对对象技象技术术会会给给代代码码和和设计设计复用复用带带来好来好处处p认认真思考:真思考:这这最后一条最后一条规则规则,可能最容易忽略。行,可能最容易忽略。行动动之前,清晰定之前,清晰定位、完整思考,通常能位、完整思考,通常能产产生更好的生更好的结结果。仔果。仔细细思考,可以提高做好思考,可以提高做好事情的可能性事情的可能性16.10个重要的个重要的软软件工程思想件工程思想 17.1.2.3网网络环络环境境带带来的影响来的影响 p美国南加州大学的巴里美国南加州大学的巴里贝贝姆(姆(Barry Boehm)教授,)教授,总结总结了国了国际际上上软软件工程的件工程的发发展展历历程:程:l20世纪50年代的类似硬件工程l60年代的软件手工生产、70年代的形式化方法和瀑布模型l80年代的软件生产率和可扩展性l90年代的软件并发和顺序进程l21世纪初的软件敏捷性和价值18.软软件工程在件工程在40年年发发展展历历程中关注程中关注域域转转向需求向需求 p40年来,年来,软软件工程的件工程的发发展都是以系展都是以系统为统为中心的,中心的,基于基于图图灵灵计计算模式,算模式,图图灵灵计计算算时时代,代,计计算机算机软软件件是与是与计计算机系算机系统统操作有关的程序、操作有关的程序、规规程、程、规则规则及及如何与之有关的数据如何与之有关的数据结结构和文档,即:构和文档,即:l软件=程序+数据结构+文档p随着一个划随着一个划时时代的代的转变转变,人,人们们开始推崇开始推崇“软软件即件即服服务务”的思想。的思想。p那么,那么,计计算机算机软软件是与件是与满满足需求的信息及与之有足需求的信息及与之有关的服关的服务务工具,即:工具,即:l软件=满足需求的信息+服务工具pGoogle的成功,就是一个的成功,就是一个现实现实的例子。的例子。19.传统传统的与互的与互联联网网时时代的代的软软件工程件工程观观比比较较 传统软传统软件工程件工程观观互互联联网网时时代代软软件工程件工程观观基础理论基于系统,以中央处理器为核心;基于图灵计算理论和冯诺依曼结构。基于网络,节点是图灵机或智能体等主体对象,主体间相互作用;网络化软件具有小世界、无标度和高集聚的特性,研究网络动力学行为。研究方法操作系统屏蔽硬件的异构性,中间件屏蔽操作系统的异构性;用层次结构描述软件单元间的相互关系;自顶向下分解、逐步求精的开发;软件生命周期、软件评测和软件成熟度。网络成为一个虚拟资源环境;重视在不同时间段、不同软件规模上的软件间的相互关系和协同;软件按偏好依附生长,逐步演化。工程方法软件业是制造业;面向系统的结构;要求用户提供确定的需求、明确的系统边界。软件即服务,软件业是服务业;面向服务的架构;用户主导,随需即取,规模定制,敏捷开发。20.1.3 软软件件设计设计p朗曼字典里,朗曼字典里,对对“设计设计”的解的解释释包括:包括:l描述某个事物如何被制造出来的图样或模式。l形成上述图样或模式的艺术。l对人造产品中组成部分的一种安排,将对产品在实践中的可用性具有影响。l人的头脑中的一种规则,等等。p由上述定由上述定义义可可见见,设计设计是一种是一种“图样图样、模、模式或式或规规划划”,其目,其目标标,就是要描述一个,就是要描述一个产产品如何被制造出来。品如何被制造出来。p因此,因此,软软件件设计设计可以被看作是可以被看作是“对软对软件将件将如何开如何开发发出来的一种描述出来的一种描述”。如果把。如果把设计设计当作一个当作一个动词动词,那么,那么软软件件设计设计就是就是“得到得到这这种描述的活种描述的活动动或或过过程程”。21.1.3.1软软件工程中的件工程中的设计设计p分析模型分析模型p数据数据/类设计类设计p体系体系结结构构设计设计p接口接口设计设计p构件构件级设计级设计p对软对软件需求件需求进进行分析和建模开始后,行分析和建模开始后,软软件件设计设计是建模活是建模活动动的最后一个的最后一个软软件件工程活工程活动动,接着便要,接着便要进进入构造入构造阶阶段,段,并生成代并生成代码码和和测试测试。22.1.3.2设计过设计过程和程和设计质设计质量量p在整个在整个设计过设计过程中,要使用一系列正式技程中,要使用一系列正式技术评审术评审或或设计设计走走查查,来,来评评估估设计设计演化的演化的质质量。量。标标准如下:准如下:l设计必须实现所有分析模型中的明确需求,而且满足客户期望的所有隐性需求。l对于生成代码的人、进行测试的人、维护软件的人,设计必须是可读的、可理解的指南。l设计必须提供软件的全貌,并从实现的角度说明数据域、功能域、行为域。23.1.3.3软软件件设计设计原原则则p抽象抽象p体系体系结结构构p模式模式p模模块块化化p信息信息隐隐蔽蔽p功能独立功能独立p求精求精p重构重构p设计类设计类24.模模块块化和化和软软件成本件成本 模模块块化化时时,位置需要保持在,位置需要保持在M附近,来避免附近,来避免过过少、少、过过多的模多的模块块化。化。至于如何知道至于如何知道M的附近位置?如何将的附近位置?如何将软软件划分成模件划分成模块块?则则需要理解后面的需要理解后面的设计设计概念。概念。25.1.4 软软件体系件体系结结构构p1.4.1什么是什么是软软件体系件体系结结构构p牛津字典中,牛津字典中,“体系体系结结构构”一一词词定定义为义为:l建筑的艺术或科学,特别是在考虑美感和实用因素的情况下,设计人类使用的大型建筑物所需的技巧和实际。l建筑风格,建筑物,组织机构、结构的一种样式、规矩或风格。p卡内基梅隆大学的卡内基梅隆大学的软软件工程研究所在网站上公开件工程研究所在网站上公开征集征集软软件体系件体系结结构的定构的定义义,至今已有百余种。其,至今已有百余种。其中,中,较较有影响力的定有影响力的定义义包括:包括:l软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系;l软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则等。26.狗狗窝窝、房子和高楼、房子和高楼 开开发发一个具有一个具有一定一定规规模和复模和复杂杂性的性的软软件系件系统统和和编编写一个写一个简单简单的程序,是不的程序,是不一一样样的,借用的,借用设设计计模式的作者模式的作者G.Booch的比的比喻喻,其中的区其中的区别别如如同建造一座大同建造一座大厦和搭建一个厦和搭建一个狗狗窝窝的差的差别别。27.房子的建模房子的建模 p建筑建筑师师准准备备建筑最初建筑最初的草的草图图,展示外,展示外观观和和内部布局,与客内部布局,与客户讨户讨论这论这些草些草图图,直至所,直至所有相关方都达成一致有相关方都达成一致意意见见,认为认为展示的就展示的就是想要的。是想要的。28.建筑建筑师师的角色和沟通依据的角色和沟通依据 p建筑建筑师师也充当建造者和客也充当建造者和客户户之之间间的的协调协调人人!29.体系体系结结构的需要:温切斯特神秘构的需要:温切斯特神秘屋屋 这这个大厦没有制作个大厦没有制作过过建筑建筑蓝图蓝图!30.软软件体系件体系结结构的构的发发展史展史 p2001年到年到2012年年间间的重要方法、的重要方法、语语言、言、论论文、文、数据和会数据和会议议 31.软软件生命周期中件生命周期中软软件体系件体系结结构的构的研究与研究与应应用用 需求需求面向软件体系结构的需求工程,从需求到软件体系结构的转换设计设计软件体系结构的描述,设计方法,以及设计经验的记录和重用实实践践支持软件体系结构的开发过程,从设计模型到系统实现的转换;基于软件体系结构的测试部署部署基于软件体系结构的应用部署开开发发后后动态软件体系结构,软件体系结构恢复和重建p整个整个软软件生命周期中,各件生命周期中,各阶阶段段软软件体系件体系结结构的构的研究研究热热点点 32.1.4.2软软件体系件体系结结构的内容构的内容p下面将当前下面将当前软软件体系件体系结结构分构分为为4个研究个研究领领域:域:l(1)通过提供一种新的体系体系结结构描述构描述语语言言(Architectural Description Language,ADL)解决体系结构描述问题。这种语言的目标,是给实践者提供设计体系结构更好的方法,以便设计人员相互交流,并可以使用支持体系结构描述语言的工具来分析案例。l(2)体系结构领域知识的总结性研究。这一领域关心的,是工程师通过软件实践,总结各种体系结构原则和模式的分类和阐释。l(3)针对特定领域的框架的研究。这类研究产生了针对一类特殊软件的体系结构框架,比如,航空电子控制系统、移动机器人、用户界面。这类研究一旦成功,这样的框架便可以被毫不费力实例化来生产这一领域新的产品。l(4)软件体系结构形式化支持的研究。随着新的符号的产生,以及人们对体系结构设计实践的理解逐步深入,需要用一种严格的形式化方法刻画软件体系结构及其相关性质。33.创创建建软软件体系件体系结结构构 p典型的利益相关人及其关注点包括:典型的利益相关人及其关注点包括:l投投资资人:人:想知道项目是否能够在给定的资源和进度约束下完成。l架构架构师师、开、开发发人人员员、测试测试人人员员:首先考虑的是,最初的构建和以后的维护与演进。l项项目目经经理:理:需要组织团队,制定迭代计划。l市市场场人人员员:想通过品质特点实现与竞争者的差异化。l用用户户:包括最终用户、系统管理员,以及安装、部署、准备、配置人员。l技技术术支持人支持人员员:关注帮助平台电话呼入的数目和复杂性。34.创创建建软软件体系件体系结结构构 p具体系具体系统统,会有其它关,会有其它关键键的关注点。的关注点。l功能性:功能性:产品向用户提供哪些功能?l可可变变性:性:软件可能需要哪些改变?哪些改变不太可能发生,不需要特别容易进行这些改变?l性能:性能:产品达到怎样的性能?l容量:容量:多少用户并发使用该系统?该系统为用户保存多少数据?l生生态态系系统统:在部署的生态环境中,该系统与其他系统进行哪些交互?l模模块块化:化:如何将编写软件的任务分解为工作指派(模块),特别是这些模块可以独立地开发,并能够准确、容易地满足彼此的需要?l可构建性:可构建性:如何将软件构建为一组组件,并能够独立实现和验证这些组件?哪些组件应该复用其它产品,哪些应该从外部供应商处获得?l产产品化:品化:如果产品以几种变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发?在创建一条软件产品线时,要进行哪些投资?l安全性:安全性:产品是否需要用户认证,或者必须限制对数据的访问?数据的安全性如何得到保证?如何抵挡“拒绝服务”攻击或其他攻击?35.1.4.3设计阶设计阶段的段的软软件体系件体系结结构构p根据在根据在设计过设计过程中,程中,对对FR和和NFR考考虑虑的的阶阶段不段不同,可以将同,可以将软软件体系件体系结结构构设计设计方法分方法分为为3类类:lFR驱动的软件体系结构设计,根据FR得到初步的体系结构设计模型,然后,通过一定的手段,精化设计结果以逐步达到NFR的目标,典型的方法,包括评估与转化、自顶向下组装)等。lNFR驱动的软件体系结构设计将NFR作为首要考虑因素,将NFR直接映射成为体系结构的建模元素,典型的,包括属性驱动的设计ADD等。l集成FR和NFR的方法,将FR和NFR视为同等重要的设计输入,在体系结构设计过程中,同时兼顾FR和NFR,并将其转化成相应体系结构的建模元素这类方法,往往与面向Aspect的方法相结合,典型的,包括Use Case和目标驱动、形式化设计分析框架FDAF、Aspect构件等。36.体系体系结结构的复用构的复用 p圣索菲圣索菲亚亚大教堂,是拜大教堂,是拜占庭建筑之美的代表。占庭建筑之美的代表。1100年后,年后,Christopher Wren使用了同使用了同样样的的设计设计,来,来建造圣保建造圣保罗罗大教堂的穹大教堂的穹顶顶,并成,并成为伦为伦敦的地敦的地标标性建筑。性建筑。37.系系统统的构架的构架结结构构 软软件件结结构构关系关系适用于适用于分解是一个子模块;与之共享秘密资源分配、项目结构化和规划;信息隐藏、封装;配置控制使用要求正确出现设计子集;设计扩展分层要求正确的出现、使用服务、提供抽象增量式开发;在“虚拟机”可移植性上实现系统类是一个实例;共享访问方法在面向对象的设计系统中,从一个公共的模版中产生快速的、相近的实现客户机-服务器与之通信;依赖于分布式操作;关注点的分离;性能分析;负载平衡进程与之并发运行、可能会与之并发运行;排除;优先于等调度分析;性能分析并发在相同的逻辑线程上运行确定存在自资源争用,线程可以交叉、连接、被创建或被杀死的位置共享数据产生数据;使用数据性能;数据完整性;可修改性部署分配给;移植到性能、可用性、安全性分析实现存储到配置控制、集成、测试活动工作分配分配到项目管理、最佳利用专业技术、管理通用性38.1.5 小小结结p软软件件设计设计、软软件体系件体系结结构与构与软软件工程密切相关,它件工程密切相关,它们们是是软软件工程和件工程和软软件开件开发过发过程的重要程的重要组组成部分。成部分。l首先对软件工程进行介绍,包括软件的本质、软件危机的出现、软件神话,然后对层次化的软件工程以及网络环境带来的影响进行了描述。l由此,可以看到软件设计在软件生存周期和各种软件开发过程模型中所处的位置。p然后,然后,对设计过对设计过程、程、设计质设计质量、量、软软件件设计设计原原则进则进行了介行了介绍绍l对软件设计有一个全面的理解。p最后,介最后,介绍绍了了软软件体系件体系结结构的概念、构的概念、软软件体系件体系结结构的内容构的内容和和设计阶设计阶段的段的软软件体系件体系结结构。构。p软软件体系件体系结结构构设计设计作作为软为软件件设计过设计过程中的活程中的活动动之一之一l能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。39.此课件下载可自行编辑修改,此课件供参考!此课件下载可自行编辑修改,此课件供参考!部分内容来源于网络,如有侵权请与我联系删除!部分内容来源于网络,如有侵权请与我联系删除!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!