软件体系结构完整版课件_第1页
软件体系结构完整版课件_第2页
软件体系结构完整版课件_第3页
软件体系结构完整版课件_第4页
软件体系结构完整版课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1内容提要1.1 软件软件的本质 软件神话 61.2 软件工程 软件工程 软件过程和软件工程实践 网络环境带来的影响 1.3 软件设计 软件工程中的设计 设计过程和设计质量软件设计原则1.4 软件体系结构什么是软件体系结构软件体系结构的内容设计阶段的软件体系结构1.5 小结

21.1 软件软件的本质计算机软件,是由专业人员开发并长期维护的软件产品。软件科学成为了今天商业、科学、工程必需的技术,促进了新科技的创新和发展但是,无论国外、国内,软件危机的达摩克利斯之剑,一直高悬在软件从业者头顶,至今挥之不去。软件与信息转换软件不是有形的物理产品,而是人类思维的产物,软件不是被制造出来,而是思考出来的。

4软件的特性软件是设计开发的,而不是传统意义上生产制造的软件不会磨损!随着基于构件的构造模式发展,大多数软件需要根据实际的顾客需求定制硬件和软件的失效曲线软件,不会受引起硬件磨损的环境问题的影响。6计算机软件分类系统软件应用软件嵌入式软件科学和工程计算软件产品线软件人工智能软件网络化软件计算机软件分为七个大类,软件工程师正面临着持续挑战。7新的挑战开放计算网络资源开源软件所有这些新的挑战,毫无疑问,将对商务人员、软件工程师、最终用户产生无法预测的结果。软件专案都有特定的进度与时间表投资人:想知道项目是否能够在给定的资源和进度约束下完成。面向软件体系结构的需求工程,从需求到软件体系结构的转换随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。性能:产品达到怎样的性能?典型的利益相关人及其关注点包括:能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。可构建性:如何将软件构建为一组组件,并能够独立实现和验证这些组件?哪些组件应该复用其它产品,哪些应该从外部供应商处获得?计划复用:复用既省时又省力。在面向对象的设计系统中,从一个公共的模版中产生快速的、相近的实现与之并发运行、可能会与之并发运行;能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。形成上述图样或模式的艺术。构建:包括手写的、自动生成的编码和测试,以发现编码中的错误。建模:无论是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,每天的工作都离不开模型。自顶向下分解、逐步求精的开发;用层次结构描述软件单元间的相互关系;包括软件工程在内的任何工程方法,必须构建在质量的基础之上。基于系统,以中央处理器为核心;软件的演变和认识过程9程序设计语言的发展有三个层面以标准C语言簇为典型代表的面向过程的软件设计方法以JAVA语言簇为典型代表的面向对象的软件设计方法以XML语言为典型代表的面向构件的软件设计方法人月神话《人月神话》的内容,源于作者布鲁克斯在IBM公司SYSTEM/360家族(最长寿的计算机体系结构之一)和OS/360中的项目管理经验。对软件设计有一个全面的理解。建筑师的角色和沟通依据软件生命周期中软件体系结构的研究与应用资源分配、项目结构化和规划;(4)软件体系结构形式化支持的研究。JohnBackus,DanBricklin,蒂姆·伯纳斯-李林纳斯·托瓦兹,理查德·马修·斯托曼基于软件体系结构的应用部署所有这些新的挑战,毫无疑问,将对商务人员、软件工程师、最终用户产生无法预测的结果。软件体系结构的描述,设计方法,以及设计经验的记录和重用传统的与互联网时代的软件工程观比较建模:无论是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,每天的工作都离不开模型。以标准C语言簇为典型代表的面向过程的软件设计方法可变性:软件可能需要哪些改变?哪些改变不太可能发生,不需要特别容易进行这些改变?这类研究产生了针对一类特殊软件的体系结构框架,比如,航空电子控制系统、移动机器人、用户界面。20世纪50年代的类似硬件工程80年代的软件生产率和可扩展性产品化:如果产品以几种变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发?在创建一条软件产品线时,要进行哪些投资?性能:产品达到怎样的性能?至于如何知道M的附近位置?如何将软件划分成模块?性能:产品达到怎样的性能?包括软件工程在内的任何工程方法,必须构建在质量的基础之上。重视在不同时间段、不同软件规模上的软件间的相互关系和协同;111.2 软件工程软件工程美国电气与电子工程师协会(IEEE)给出的:软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。软件工程层次图包括软件工程在内的任何工程方法,必须构建在质量的基础之上。质量关注点(qualityfocus)过程(process)方法(method)工具(tool)软件工程是一种层次化的技术!软件工程与计算机科学的差别软件工程计算机科学目标在时间、资源、人员这3个主要限制条件下构建满足用户需求的软件系统探索正确的计算和建模方法,从而改进计算方法本身产品软件(比如办公包和编译器)算法(比如希尔排序法)和抽象的问题(比如哲学家进餐问题)进度与时间表软件专案都有特定的进度与时间表研究专案一般不具有设置的进度与时间表关注点软件工程关注如何为用户实现价值软件理论关注的是软件本身运行的原理,比如时间复杂度,空间复杂度,和算法的正确性变化程度随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展中对于某一种特定问题的正确解决方法将永远不会改变需要的其他知识相关领域的知识数学著名的探索者和教育家BarryBoehm,DavidParnas,布鲁克斯EdsgerDijkstra,高德纳,RobertTarjan,PeterSlater,艾伦·图灵,姚期智著名的实践者JohnBackus,DanBricklin,蒂姆·伯纳斯-李林纳斯·托瓦兹,理查德·马修·斯托曼无14软件过程和软件工程实践一个通用的软件工程过程框架,通常包含5个活动:沟通:在技术工作开始之前,和客户的沟通、协作极其重要目的是理解利益相关者的项目目标,并收集需求,以定义软件特性、功能。策划:软件项目好比是一个复杂的旅程,策划活动,就是创建一个使任何复杂的旅程都变得简单的地图,以指导团队的项目旅程,该地图称为软件。建模:无论是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,每天的工作都离不开模型。他们会画一张草图,来辅助理解整个项目大的构想,包括体系结构、不同的构件如何结合,以及其它特征。构建:包括手写的、自动生成的编码和测试,以发现编码中的错误。部署:软件以全部、部分增量的形式交付给用户,用户对其进行评测,并给出反馈意见。157条简单的原则存在价值:软件系统因能给用户提供价值,而具有存在价值。所有的决定,都应基于该思想。保持简洁:软件设计并不是随意的过程,软件设计中需要考虑很多因素。所有的设计,都应该尽可能简洁,保持愿景:清晰的愿景,是软件项目成功的基础。没有愿景,项目将会有多种设计思想而永远不能结束。如果缺乏一致性,关注使用者:有产业实力的软件系统,不是在真空中开发、使用的。通常,软件系统必定是由开发者以外的人员使用、维护和编制文档,等等,这就必须要让别人理解你的系统。因此,在需求说明、设计和实现过程时面向未来:生命期持久的系统,具有更高的价值。在现在的计算环境中,需求规格说明随时会变计划复用:复用既省时又省力。软件系统开发过程中,高水平的复用,是一个很难实现的目标。面向对象技术会给代码和设计复用带来好处认真思考:这最后一条规则,可能最容易忽略。行动之前,清晰定位、完整思考,通常能产生更好的结果。仔细思考,可以提高做好事情的可能性10个重要的软件工程思想17网络环境带来的影响美国南加州大学的巴里·贝姆(BarryBoehm)教授,总结了国际上软件工程的发展历程:20世纪50年代的类似硬件工程60年代的软件手工生产、70年代的形式化方法和瀑布模型80年代的软件生产率和可扩展性90年代的软件并发和顺序进程21世纪初的软件敏捷性和价值18软件工程在40年发展历程中关注域转向需求40年来,软件工程的发展都是以系统为中心的,基于图灵计算模式,图灵计算时代,计算机软件是与计算机系统操作有关的程序、规程、规则及如何与之有关的数据结构和文档,即:软件=程序+数据结构+文档随着一个划时代的转变,人们开始推崇“软件即服务”的思想。那么,计算机软件是与满足需求的信息及与之有关的服务工具,即:软件=满足需求的信息+服务工具Google的成功,就是一个现实的例子。传统的与互联网时代的软件工程观比较传统软件工程观互联网时代软件工程观基础理论基于系统,以中央处理器为核心;基于图灵计算理论和冯·诺依曼结构。基于网络,节点是图灵机或智能体等主体对象,主体间相互作用;网络化软件具有小世界、无标度和高集聚的特性,研究网络动力学行为。研究方法操作系统屏蔽硬件的异构性,中间件屏蔽操作系统的异构性;用层次结构描述软件单元间的相互关系;自顶向下分解、逐步求精的开发;软件生命周期、软件评测和软件成熟度。网络成为一个虚拟资源环境;重视在不同时间段、不同软件规模上的软件间的相互关系和协同;软件按偏好依附生长,逐步演化。工程方法软件业是制造业;面向系统的结构;要求用户提供确定的需求、明确的系统边界。软件即服务,软件业是服务业;面向服务的架构;用户主导,随需即取,规模定制,敏捷开发。201.3 软件设计朗曼字典里,对“设计”的解释包括:描述某个事物如何被制造出来的图样或模式。形成上述图样或模式的艺术。对人造产品中组成部分的一种安排,将对产品在实践中的可用性具有影响。人的头脑中的一种规则,等等。由上述定义可见,设计是一种“图样、模式或规划”,其目标,就是要描述一个产品如何被制造出来。因此,软件设计可以被看作是“对软件将如何开发出来的一种描述”。如果把设计当作一个动词,那么软件设计就是“得到这种描述的活动或过程”。21软件工程中的设计分析模型数据/类设计体系结构设计接口设计构件级设计对软件需求进行分析和建模开始后,软件设计是建模活动的最后一个软件工程活动,接着便要进入构造阶段,并生成代码和测试。

自顶向下分解、逐步求精的开发;面向软件体系结构的需求工程,从需求到软件体系结构的转换面向对象技术会给代码和设计复用带来好处20世纪50年代的类似硬件工程可变性:软件可能需要哪些改变?哪些改变不太可能发生,不需要特别容易进行这些改变?思维的产物,软件不是被制造出来,而没有愿景,项目将会有多种设计思想而永远不能结束。传统的与互联网时代的软件工程观比较软件过程和软件工程实践计算机软件分为七个大类,软件工程师正面临着持续挑战。建筑师准备建筑最初的草图,展示外观和内部布局,与客户讨论这些草图,直至所有相关方都达成一致意见,认为展示的就是想要的。最后,介绍了软件体系结构的概念、软件体系结构的内容和设计阶段的软件体系结构。40年来,软件工程的发展都是以系统为中心的,基于图灵计算模式,图灵计算时代,计算机软件是与计算机系统操作有关的程序、规程、规则及如何与之有关的数据结构和文档,即:建筑风格,建筑物,组织机构、结构的一种样式、规矩或风格。容量:多少用户并发使用该系统?该系统为用户保存多少数据?80年代的软件生产率和可扩展性建筑的艺术或科学,特别是在考虑美感和实用因素的情况下,设计人类使用的大型建筑物所需的技巧和实际。技术支持人员:关注帮助平台电话呼入的数目和复杂性。建模:无论是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,每天的工作都离不开模型。软件生命周期、软件评测和软件成熟度。软件过程和软件工程实践那么,计算机软件是与满足需求的信息及与之有关的服务工具,即:22设计过程和设计质量在整个设计过程中,要使用一系列正式技术评审或设计走查,来评估设计演化的质量。标准如下:设计必须实现所有分析模型中的明确需求,而且满足客户期望的所有隐性需求。对于生成代码的人、进行测试的人、维护软件的人,设计必须是可读的、可理解的指南。设计必须提供软件的全貌,并从实现的角度说明数据域、功能域、行为域。23软件设计原则抽象体系结构模式模块化信息隐蔽功能独立求精重构设计类模块化和软件成本模块化时,位置需要保持在M附近,来避免过少、过多的模块化。至于如何知道M的附近位置?如何将软件划分成模块?则需要理解后面的设计概念。251.4 软件体系结构什么是软件体系结构牛津字典中,“体系结构”一词定义为:建筑的艺术或科学,特别是在考虑美感和实用因素的情况下,设计人类使用的大型建筑物所需的技巧和实际。建筑风格,建筑物,组织机构、结构的一种样式、规矩或风格。卡内基梅隆大学的软件工程研究所在网站上公开征集软件体系结构的定义,至今已有百余种。其中,较有影响力的定义包括:软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系;软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则等。狗窝、房子和高楼开发一个具有一定规模和复杂性的软件系统和编写一个简单的程序,是不一样的,借用《设计模式》的作者G.Booch的比喻,其中的区别如同建造一座大厦和搭建一个狗窝的差别。房子的建模建筑师准备建筑最初的草图,展示外观和内部布局,与客户讨论这些草图,直至所有相关方都达成一致意见,认为展示的就是想要的。建筑师的角色和沟通依据建筑师也充当建造者和客户之间的协调人!体系结构的需要:温切斯特神秘屋这个大厦没有制作过建筑蓝图!软件体系结构的发展史2001年到2012年间的重要方法、语言、论文、数据和会议31软件生命周期中软件体系结构的研究与应用需求面向软件体系结构的需求工程,从需求到软件体系结构的转换设计软件体系结构的描述,设计方法,以及设计经验的记录和重用实践支持软件体系结构的开发过程,从设计模型到系统实现的转换;基于软件体系结构的测试部署基于软件体系结构的应用部署开发后动态软件体系结构,软件体系结构恢复和重建整个软件生命周期中,各阶段软件体系结构的研究热点32软件体系结构的内容下面将当前软件体系结构分为4个研究领域:(1)通过提供一种新的体系结构描述语言(ArchitecturalDescriptionLanguage,ADL)解决体系结构描述问题。这种语言的目标,是给实践者提供设计体系结构更好的方法,以便设计人员相互交流,并可以使用支持体系结构描述语言的工具来分析案例。(2)体系结构领域知识的总结性研究。这一领域关心的,是工程师通过软件实践,总结各种体系结构原则和模式的分类和阐释。(3)针对特定领域的框架的研究。这类研究产生了针对一类特殊软件的体系结构框架,比如,航空电子控制系统、移动机器人、用户界面。这类研究一旦成功,这样的框架便可以被毫不费力实例化来生产这一领域新的产品。(4)软件体系结构形式化支持的研究。随着新的符号的产生,以及人们对体系结构设计实践的理解逐步深入,需要用一种严格的形式化方法刻画软件体系结构及其相关性质。33创建软件体系结构典型的利益相关人及其关注点包括:投资人:想知道项目是否能够在给定的资源和进度约束下完成。架构师、开发人员、测试人员:首先考虑的是,最初的构建和以后的维护与演进。项目经理:需要组织团队,制定迭代计划。市场人员:想通过品质特点实现与竞争者的差异化。用户:包括最终用户、系统管理员,以及安装、部署、准备、配置人员。技术支持人员:关注帮助平台电话呼入的数目和复杂性。首先对软件工程进行介绍,包括软件的本质、软件危机的出现、软件神话,然后对层次化的软件工程以及网络环境带来的影响进行了描述。容量:多少用户并发使用该系统?该系统为用户保存多少数据?软件设计、软件体系结构与软件工程密切相关,它们是软件工程和软件开发过程的重要组成部分。在面向对象的设计系统中,从一个公共的模版中产生快速的、相近的实现产品化:如果产品以几种变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发?在创建一条软件产品线时,要进行哪些投资?20世纪50年代的类似硬件工程由此,可以看到软件设计在软件生存周期和各种软件开发过程模型中所处的位置。性能:产品达到怎样的性能?随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。容量:多少用户并发使用该系统?该系统为用户保存多少数据?目的是理解利益相关者的项目目标,并收集需求,以定义软件特性、功能。对软件设计有一个全面的理解。和OS/360中的项目管理经验。下面将当前软件体系结构分为4个研究领域:20世纪50年代的类似硬件工程10个重要的软件工程思想软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则等。可构建性:如何将软件构建为一组组件,并能够独立实现和验证这些组件?哪些组件应该复用其它产品,哪些应该从外部供应商处获得?集成FR和NFR的方法,将FR和NFR视为同等重要的设计输入,在体系结构设计过程中,同时兼顾FR和NFR,并将其转化成相应体系结构的建模元素具体系统,会有其它关键的关注点。在整个设计过程中,要使用一系列正式技术评审或设计走查,来评估设计演化的质量。他们会画一张草图,来辅助理解整个项目大的构想,包括体系结构、不同的构件如何结合,以及其它特征。34创建软件体系结构具体系统,会有其它关键的关注点。功能性:产品向用户提供哪些功能?可变性:软件可能需要哪些改变?哪些改变不太可能发生,不需要特别容易进行这些改变?性能:产品达到怎样的性能?容量:多少用户并发使用该系统?该系统为用户保存多少数据?生态系统:在部署的生态环境中,该系统与其他系统进行哪些交互?模块化:如何将编写软件的任务分解为工作指派(模块),特别是这些模块可以独立地开发,并能够准确、容易地满足彼此的需要?可构建性:如何将软件构建为一组组件,并能够独立实现和验证这些组件?哪些组件应该复用其它产品,哪些应该从外部供应商处获得?产品化:如果产品以几种变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发?在创建一条软件产品线时,要进行哪些投资?安全性:产品是否需要用户认证,或者必须限制对数据的访问?数据的安全性如何得到保证?如何抵挡“拒绝服务”攻击或其他攻击?35设计阶段的软件体系结构根据在设计过程中,对FR和NFR考虑的阶段不同,可以将软件体系结构设计方法分为3类:FR驱动的软件体系结构设计,根据FR得到初步的体系结构设计模型,然后,通过一定的手段,精化设计结果以逐步达到NFR的目标,典型的方法,包括评估与转化、自顶向下组装)等。NFR驱动的软件体系结构设计将NFR作为首要考虑因素,将NFR直接映射成为体系结构的建模元素,典型的,包括属性驱动的设计ADD等。集成FR和NFR的方法,将FR和NFR视为同等重要的设计输入,在体系结构设计过程中,同时兼顾FR和NFR,并将其转化成相应体系结构的建模元素这类方法,往往与面向Aspect的方法相结合,典型的,包括UseCase和目标驱动、形式化设计分析框架FDAF、Aspect构件等。体系结构的复用圣索菲亚大教堂,是拜占庭建筑之美的代表。1100年后,ChristopherWren使用了同样的设计,来建造圣保罗大教堂的穹顶,并成为伦敦的地标性建筑。系统的构架结构软件结构关系适用于分解是一个子模块;与之共享秘密资源分配、项目结构化和规划;信息隐藏、封装;配置控制使用要求正确出现设计子集;设计扩展分层要求正确的出现、使用服务、提供抽象增量式开发;在“虚拟机”可移植性上实现系统类是一个实例;共享访问方法在面向对象的设计系统中,从一个公共的模版中产生快速的、相近的实现客户机-服务器与之通信;依赖于分布式操作;关注点的分离;性能分析;负载平衡进程与之并发运行、可能会与之并发运行;排除;优先于等调度分析;性能分析并发在相同的逻辑线程上运行确定存在自资源争用,线程可以交叉、连接、被创建或被杀死的位置共享数据产生数据;使用数据性能;数据完整性;可修改性部署分配给;移植到性能、可用性、安全性分析实现存储到配置控制、集成、测试活动工作分配分配到项目管理、最佳利用专业技术、管理通用性381.5 小结软件设计、软件体系结构与软件工程密切相关,它们是软件工程和软件开发过程的重要组成部分。首先对软件工程进行介绍,包括软件的本质、软件危机的出现、软件神话,然后对层次化的软件工程以及网络环境带来的影响进行了描述。由此,可以看到软件设计在软件生存周期和各种软件开发过程模型中所处的位置。然后,对设计过程、设计质量、软件设计原则进行了介绍对软件设计有一个全面的理解。最后,介绍了软件体系结构的概念、软件体系结构的内容和设计阶段的软件体系结构。软件体系结构设计作为软件设计过程中的活动之一能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。39内容提要1.1 软件软件的本质 软件神话 61.2 软件工程 软件工程 软件过程和软件工程实践 网络环境带来的影响 1.3 软件设计 软件工程中的设计 设计过程和设计质量软件设计原则1.4 软件体系结构什么是软件体系结构软件体系结构的内容设计阶段的软件体系结构1.5 小结

软件与信息转换软件不是有形的物理产品,而是人类思维的产物,软件不是被制造出来,而是思考出来的。

投资人:想知道项目是否能够在给定的资源和进度约束下完成。在面向对象的设计系统中,从一个公共的模版中产生快速的、相近的实现项目经理:需要组织团队,制定迭代计划。研究专案一般不具有设置的进度与时间表圣索菲亚大教堂,是拜占庭建筑之美的代表。首先对软件工程进行介绍,包括软件的本质、软件危机的出现、软件神话,然后对层次化的软件工程以及网络环境带来的影响进行了描述。软件生命周期、软件评测和软件成熟度。对软件需求进行分析和建模开始后,软件设计是建模活动的最后一个软件工程活动,接着便要进入构造阶段,并生成代码和测试。配置控制、集成、测试活动策划:软件项目好比是一个复杂的旅程,策划活动,就是创建一个使任何复杂的旅程都变得简单的地图,以指导团队的项目旅程,该地图称为软件。安全性:产品是否需要用户认证,或者必须限制对数据的访问?数据的安全性如何得到保证?如何抵挡“拒绝服务”攻击或其他攻击?对软件设计有一个全面的理解。自顶向下分解、逐步求精的开发;20世纪50年代的类似硬件工程在现在的计算环境中,需求规格说明随时会变软件体系结构的描述,设计方法,以及设计经验的记录和重用那么,计算机软件是与满足需求的信息及与之有关的服务工具,即:90年代的软件并发和顺序进程软件体系结构的描述,设计方法,以及设计经验的记录和重用软件过程和软件工程实践具体系统,会有其它关键的关注点。模块化:如何将编写软件的任务分解为工作指派(模块),特别是这些模块可以独立地开发,并能够准确、容易地满足彼此的需要?41软件过程和软件工程实践一个通用的软件工程过程框架,通常包含5个活动:沟通:在技术工作开始之前,和客户的沟通、协作极其重要目的是理解利益相关者的项目目标,并收集需求,以定义软件特性、功能。策划:软件项目好比是一个复杂的旅程,策划活动,就是创建一个使任何复杂的旅程都变得简单的地图,以指导团队的项目旅程,该地图称为软件。建模:无论是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,每天的工作都离不开模型。他们会画一张草图,来辅助理解整个项目大的构想,包括体系结构、不同的构件如何结合,以及其它特征。构建:包括手写的、自动生成的编码和测试,以发现编码中的错误。部署:软件以全部、部分增量的形式交付给用户,用户对其进行评测,并给出反馈意见。42软件工程中的设计分析模型数据/类设计体系结构设计接口设计构件级设计对软件需求进行分析和建模开始后,软件设计是建模活动的最后一个软件工程活动,接着便要进入构造阶段,并生成代码和测试。

43软件生命周期中软件体系结构的研究与应用需求面向软件体系结构的需求工程,从需求到软件体系结构的转换设计软件体系结构的描述,设计方法,以及设计经验的记录和重用实践支持软件体系结构的开发过程,从设计模型到系统实现的转换;基于软件体系结构的测试部署基于软件体系结构的应用部署开发后动态软件体系结构,软件体系结构恢复和重建整个软件生命周期中,各阶段软件体系结构的研究热点面向对象技术会给代码和设计复用带来好处面向软件体系结构的需求工程,从需求到软件体系结构的转换建筑师准备建筑最初的草图,展示外观和内部布局,与客户讨论这些草图,直至所有相关方都达成一致意见,认为展示的就是想要的。软件过程和软件工程实践软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。面向软件体系结构的需求工程,从需求到软件体系结构的转换计算机软件分为七个大类,软件工程师正面临着持续挑战。软件体系结构的描述,设计方法,以及设计经验的记录和重用体系结构的需要:温切斯特神秘屋软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系;技术支持人员:关注帮助平台电话呼入的数目和复杂性。软件过程和软件工程实践目的是理解利益相关者的项目目标,并收集需求,以定义软件特性、功能。构建:包括手写的、自动生成的编码和测试,以发现编码中的错误。(2)在(1)中所述方法的研究。部署:软件以全部、部分增量的形式交付给用户,用户对其进行评测,并给出反馈意见。基于系统,以中央处理器为核心;可变性:软件可能需要哪些改变?哪些改变不太可能发生,不需要特别容易进行这些改变?性能:产品达到怎样的性能?支持软件体系结构的开发过程,从设计模型到系统实现的转换;传统的与互联网时代的软件工程观比较作者布鲁克斯在IBM公司架构师、开发人员、测试人员:首先考虑的是,最初的构建和以后的维护与演进。软件设计、软件体系结构与软件工程密切相关,它们是软件工程和软件开发过程的重要组成部分。安全性:产品是否需要用户认证,或者必须限制对数据的访问?数据的安全性如何得到保证?如何抵挡“拒绝服务”攻击或其他攻击?计算机软件分为七个大类,软件工程师正面临着持续挑战。包括软件工程在内的任何工程方法,必须构建在质量的基础之上。80年代的软件生产率和可扩展性软件专案都有特定的进度与时间表基于软件体系结构的应用部署部署:软件以全部、部分增量的形式交付给用户,用户对其进行评测,并给出反馈意见。(4)软件体系结构形式化支持的研究。这类研究产生了针对一类特殊软件的体系结构框架,比如,航空电子控制系统、移动机器人、用户界面。自顶向下分解、逐步求精的开发;(2)体系结构领域知识的总结性研究。(1)通过提供一种新的体系结构描述语言(ArchitecturalDescriptionLanguage,ADL)解决体系结构描述问题。部署:软件以全部、部分增量的形式交付给用户,用户对其进行评测,并给出反馈意见。仔细思考,可以提高做好事情的可能性这一领域关心的,是工程师通过软件实践,总结各种体系结构原则和模式的分类和阐释。动态软件体系结构,软件体系结构恢复和重建传统的与互联网时代的软件工程观比较建筑的艺术或科学,特别是在考虑美感和实用因素的情况下,设计人类使用的大型建筑物所需的技巧和实际。软件不是有形的物理产品,而是人类软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。20世纪50年代的类似硬件工程基于软件体系结构的应用部署然后,对设计过程、设计质量、软件设计原则进行了介绍沟通:在技术工作开始之前,和客户的沟通、协作极其重要要求用户提供确定的需求、明确的系统边界。以标准C语言簇为典型代表的面向过程的软件设计方法软件按偏好依附生长,逐步演化。软件体系结构的描述,设计方法,以及设计经验的记录和重用20世纪50年代的类似硬件工程80年代的软件生产率和可扩展性性能:产品达到怎样的性能?能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。以标准C语言簇为典型代表的面向过程的软件设计方法集成FR和NFR的方法,将FR和NFR视为同等重要的设计输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论