付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件体系结构第四章作业题 1. 请把基于体系结构的软件开发模型与其他软件开发模型进 行比较。答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件 的开发模型和基于体系结构的开发模型等。基于体系结构的开发模型是以软 件体系结构为核心,以基于构件的开发方法为基础。然后采用迭代增量方式 进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间 映射到系统设计空间的过程。该开发模型把软件生命周期分为软件定义、需 求分析和定义、体系结构设计、软件系统设计和软件实现 5 个阶段.特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组 装方法来构造软件系统。优点:基于构件的开
2、发方法使得软件开发不再一切从头开发,开发的过 程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。构 件组装模型导致了软件的复用,提高了软件开发的效率。软件体系结构的出 现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。并且软件 复用从代码级的复用提升到构件和体系结构级的复用。缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因 而引入了较大的风险。可重用性和软件高效性不易协调,需要精干的有经验 的分析和开发人员,一般开发人员插不上手。客户的满意度低,并且由于过 分依赖于构件,所以构件库的质量影响着产品质量。二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。
3、特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;优点:开发流程简单。缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需 要等待较长时间才能够看到软件产品,增加了风险系数。并且如果在开发过 程存在阻塞问题,则影响开发效率。三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实 现软件开发模型等。特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是 迭代的。通过迭代过程实现软件的逐步演化,最终得到软件产品。在此引入 了风险管理,采取早期预防措施,增加项目成功几率,提高软件质量;优点:强调了其他模型均忽略了的风险分析。逐步调
4、整原型使其满足客 户的要求,而同时也使开发者对将要做的事情有更好的理解。使得开发人员 和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别 适用于庞大、复杂并具有高风险的系统。缺点:由于需求的不完全性,从而为软件的总体设计带来了困难和削弱 了产品设计的完整性,并要求对风险技能管理水平的高要求。题2.请把基于体系结构的软件设计方法与其他软件设计方法进行比较。答:基于体系结构的软件设计方法为产生软件系统的概念体系结构提供 构造,概念体系结构是由 Hofimeister、Nord和Soni提出的四种不同的体系 结构中的一种,它描述了系统的主要设计元素及其关系。概念体系结构代表 了在开发
5、过程中作出的第一个选择,相应地,它是达到系统质量和商业目标 的关键,为达到预定功能提供了一个基础。体系结构驱动,是指构成体系结构的商业、质量和功能需求的组合。使用基于体系结构的软件设计方法,设计活动可以在体系结构驱动一决 定就开始,需求抽取和分析活动与设计活动并行。特别是在不可能预先决定 所有需求时,例如产品线系统或长期运行的系统,快速开始设计是至关重要 的。商业用例软件设计师的经验 遗留系统1 r需求分析功能需求抽象用例质量需求抽象质量因素体系结构选项1 F约束ABSD方法1抽象构件 软件模板 约束 F需求实际构件设计基于体系结构的开发方法从系统的总体结构入手,将一个系统的体系结构显 示化,
6、以在高抽象层次处理诸如全局组织和控制结构、功能到计算元素的分配、 计算元素间的高层交互等设计问题。基于体系结构的开发方法相比其他软件设计方法,出现了基于构件、基于框 架、基于模板的开发技术,项目利用基于体系结构开发的思想, 从需求到高层框 架设计、架构设计、平台实现,充分体现了基于体系结构开发中从高层设计入手, 复用体系结构框架、设计和实现可复用的构件的原则。此外,与其他软件设计方法的 区别还有:1、在基于软件体系结构的开发方法中,单个用户界面和业务逻辑的改动不会影响到系统整体,可根据新的需求选择或设计新的构件进行组装。2、在基于软件体系结构的开发方法中,开发人员的组织用户界面和业务逻辑的定制
7、可由领域人员来完成,不必专业计算机软件人员参与;专业 计算机人员则集中精力做构件库的部分,完成业务逻辑的抽象,制作 不同粒度的构件,完成模型的开发。3、在基于软件体系结构的开发方法中,不同业务对象有相似的业务逻辑, 可直接复用其构件。不同的业务逻辑可以有相似业务流程、业务规则、 和原子数据操作,这些都直接可复用构件库,这种构件级的重用将大 大节省了开发成本4、在基于软件体系结构的开发方法中,在针对新的需求的开发,可以复用原有系统的设计和实现,在系统维护过程更新某一模块,不会影响系统 的其它部分。题3.如何才能提高软件系统的可演化性。答:在生物学里面演化又称进化,是指生物在不同世代之间具有差异的
8、现象,以及解释这些现象的各种理论。但是在计算机软件领域里,“演化”这个术语一般是指在性质和特性方面的递增式的改变。在某种意义上来说,这 个在某个方面或某些方面属性的改变的过程,导致了新特性的出现或进行改 进。一般来说,这种改变都是诸如改变类的成员以适应环境的改变。改变会 使得它们更有用或更有意义,而且在某种程度上会增加它们的价值。与此同 时,演化也会去掉一些不合适的特性。也可以认为,软件系统的演化指的是 在软件系统的生命周期内软件维护和软件更新的行为和过程。在软件系统的 生命周期中,演化是一项贯穿始终的活动。在如何提高软件系统的可演化性上,Lehman提出了软件演化的八条规 律:(1) 必须频
9、繁地变化以适应要求。(2) 软件的复杂度不断地增长。(3) 通过自我调节以符合产品需求和过程特性。(4) 在软件的生命周期中保持一定的组织稳定性。(5) 不同的版本之间保持一定的连贯性。(6) 功能持续地增加。(7) 在没有严格的维护和适应性修改的情况下会出现质量衰退。(8) 是一个反馈系统。第五章作业题1.为什么要评估软件体系结构?答:对一个系统的体系结构进行评估 ,是为了在系统被构建之前预测它的质量 ,并不需要 精确的评估结果,通过分析SA体系结构对于系统质量的主要影响 ,进而提出改进。此外,软 件体系结构的设计是整个软件开发过程中关键的一步。而对于当今世界上庞大而复杂的系统来说,若没有一
10、个合适的体系结构, 却想要要有一个成功的软件设计几乎是不可想象的。不同类型的系统需要不同的软件体系结构,甚至一个系统的不同子系统也需要不同的体系结 构。因此,体系结构的选择往往会成为一个系统设计成败的关键。题 2. 从哪些方面评估软件体系结构?答:可以从以下 9 个方面来评估软件体系结构1、性能性能是指系统的响应能力, 即要经过多长时间才能对某个事件做出响应, 或者在某段事 件内系统所能处理的事件的个数。经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进 行定量的表示。2、可靠性 可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的 功能特性的基
11、本能力。可靠性可以分为两个方面:(1)容错。在错误发生时确保系统正确的行为,并进行内部“修复”。例如在一个分布式软件系统中失去了一个与远程构件的连接, 接下来恢复了连接。 在修复这样的错误之后, 软件 系统可以重新或重复执行进程间的操作直到错误再次发生。(2)健壮性。这里说的是保护应用程序不受错误使用和错误输入的影响,在遇到意外错误 事件时确保应用系统处于已经定义好的状态。 值得注意的是, 和容错相比, 健壮性并不是说 在错误发生时软件可以继续运行,它只能保证软件按照某种已经定义好的方式终止执行。3、可用性 可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障 时系统能
12、够恢复正常的速度来表示。4、安全性 安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝 服务的能力。安全性是根据系统可能受到的安全威胁的类型来分类的。 安全性又可划分为机密性、完整性、 不可否认性及可控性等特性。 其中,机密性保证信息不 泄露给未授权的用户、实体或过程;完整性保证信息的完整和准确,防止信息被非法修改; 可控性保证对信息的传播及内容具有控制的能力,防止为非法者所用。5、可修改性可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体 的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包含四个方面: (1)可维护性。这主要体现在问
13、题的修复上:在错误发生后“修复”软件系统。 (2)可扩展性。这一点关注的是使用新特性来扩展软件系统,以及使用改进版本来替换构 件并删除不需要或不必要的特性和构件。(3)结构重组。这一点处理的是重新组织软件系统的构件及构件间的关系,(4)可移植性。可移植性使软件系统适用于多种硬件平台、用户界面、操作系统、编程语 言或编译器。6、功能性功能性是系统所能完成所期望的工作的能力。 一项任务的完成需要系统中许多或大多数 构件的相互协作。7、可变性 可变性是指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合 预先定义的规则, 在某些具体方面不同于原有的体系结构。 当要将某个体系结构作为一
14、系列 相关产品(例如,软件产品线)的基础时,可变性是很重要的。8、可集成性可集成性是指系统能与其他系统协作的程度。9、互操作性作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操作性也影响应用的软件体系结构。10、概念完整性能够统一所有层面系统设计概念的能力11、可分解性支持生产系统某个子集的能力题3. A公司是一家相对较大的软件和硬件企业,专业从事网络设备的开发。从 单一的产品开始,现在,已经延伸到包括摄相服务器、
15、扫描服务器、光盘服务 器以及其他的存储服务器在内的产品。公司原来的产品都是一个一个地开发, 每个软件组织一个项目组。为了适应快速变化的市场,降低开发成本,公司想 引入产品线方法。然而,软件产品线开发涉及了一个软件开发组织的多个产品, 选择了软件产品线意味着要承担由此带来的许多风险。所以,公司的CTO王总决定在弄清三个问题之后再做决定,首先就是本公司的 业务范围是否适合使用产品线方法,其次是如何在原有产品的基础上建立产品 线,最后是成功实施产品线的主要因素是什么?问题1请用100字以内文字说明A公司是否适合采用产品线方法?为什么?问题2请用200字以内文字说明如何在原有产品的基础上建立产品线?问
16、题3请用150字以内文字说明成功实施产品线的主要因素是什么?答:问题1适合。原因:(1) 该公司是一家相对较大的软件和硬件企业,产品都是在同一个领域一一网络设备。该公司原有产品相对比较成熟,可以在原有产品的基础上建立产品线, 满足软件产品线建设的基本要求。(2) 该公司原来的产品都是一个一个地开发,每个软件组织一个项目组,这样 不可避免造成了一定程度的资源浪费。此外,公司需要适应快速变化的市场和降 低开发成本,而软件产品线方法可以达到这一目的。问题2在原有产品的基础上,可采用下列方式之一建立产品线:(1) 演化方式,即基于现有产品演化为产品线,将特定产品的构件逐步转化为 产品线的共用构件,从基于产品的方法逐步转化为基于产品线的软件开发。(2) 革命方式,即用软件产品线替代现有产品集,停止现有产品的开发,所有工作直接针对软件产品线的核心资源开发。遗留系统只有在符合体系结构和构件 需求的情况下,才可以和新的构件协作。演化方式革命行式基于现有产品集基于现有产品廊系结构开发 产品线的郎系结构经演化现有构件的文件一玄 开发一个产品线构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产程中产妇的饮食调整
- 《亚洲地理解题思路大全|举一反三 吃透同类题型》
- 《消费者权益解题思路大全|举一反三 吃透同类题型》
- 甘肃2026年中级会计职称《中级会计实务》真题及答案解析
- 河南周口市商水县普通高中2025-2026学年(上)高二年级期末考试生物试题(解析版)
- 2026广西事业单位考试试题及答案解析
- 四川省德阳市高中2024-2025学年高一上学期期末教学质量监测考试化学试题
- 苏州市2025江苏苏州市体育彩票管理中心招聘派遣制人员2人笔试历年参考题库典型考点附带答案详解
- 福州市2025福建省药品科普与监管数据中心编外派遣人员招聘笔试历年参考题库典型考点附带答案详解
- 2026年《喜乐于我》测试题及答案
- 《自主移动机器人 》课件 第6章 里程估计 1 概述及运动里程估计
- 早餐配送协议合同
- 桥梁检测评定与加固技术课件 第1章 绪论
- 安全与保密管理措施及方案
- 2025年劳动关系协调员-劳动关系协调师(二级)考试历年参考题库含答案解析
- 湖南省纪委监委公开遴选公务员笔试试题及答案解析
- 精神科急救知识培训
- 索尼相机DSC-HX300 中文说明书
- 急诊安全护理培训内容课件
- 北京市工程勘察服务成本要素信息(试行)2025
- 点茶课件教学课件
评论
0/150
提交评论