题 1. 请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系
结构的开发模型等。基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为
基础。然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设
计空间映射到系统设计空间的过程。该开发模型把软件生命周期分为软件定义、需求分析和定义、
体系结构设计、软件系统设计和软件实现 5 个阶段.
特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。
优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,
维护的过程就是构件升级、替换和扩充的过程。构件组装模型导致了软件的复用,提高了软件开发
的效率。软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。并且
软件复用从代码级的复用提升到构件和体系结构级的复用。
缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。
可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。
客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。
二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。
特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的
阶段性;
缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够
看到软件产品,增加了风险系数。并且如果在开发过程存在阻塞问题,则影响开发效率。
三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件开发模型等。
特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。通过迭代过程
实现软件的逐步演化,最终得到软件产品。在此引入了风险管理,采取早期预防措施,增加项目成
功几率,提高软件质量;
优点:强调了其他模型均忽略了的风险分析。逐步调整原型使其满足客户的要求,而同时也使
开发者对将要做的事情有更好的理解。使得开发人员和用户对每个演化层出现的风险有所了解,继
而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。
缺点:由于需求的不完全性,从而为软件的总体设计带来了困难和削弱了产品设计的完整性,
并要求对风险技能管理水平的高要求。
题 2. 请把基于体系结构的软件设计方法与其他软件设计方法进行比较。
答:基于体系结构的软件设计方法为产生软件系统的概念体系结构提供构造,概念体系结构是
由 Hofimeister、Nord 和 Soni 提出的四种不同的体系结构中的一种,它描述了系统的主要设计元素及
其关系。概念体系结构代表了在开发过程中作出的第一个选择,相应地,它是达到系统质量和商业
目标的关键,为达到预定功能提供了一个基础。
体系结构驱动,是指构成体系结构的商业、质量和功能需求的组合。
使用基于体系结构的软件设计方法,设计活动可以在体系结构驱动一决定就开始,需求抽取和
分析活动与设计活动并行。特别是在不可能预先决定所有需求时,例如产品线系统或长期运行的系
统,快速开始设计是至关重要的。