预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共33页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第二章软件开发模型2.1软件生存周期(LifeCycle)典型的软件生存周期生存周期每一时期的任务(1)计划时期主要任务:调查和分析,调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。包括两个阶段:问题定义主要弄清“用户需要计算机解决什么问题”,由系统分析员根据对问题的理解,提出关于“系统与范围的说明”,交由用户审查和认可。可行性分析对问题的解决给出在技术上可行、且在经济上有较高效益的可操作解决方案,并写出“可行性论证报告”,如若项目不值得进行,应提出终止该项目的建议。(2)开发时期主要任务:系统分析、设计和实现。包括四个阶段需求分析弄清用户对软件系统的全部需求,并用“需求规格说明书”的形式准确地表达出来。软件设计将需求转变为软件的表示形式,确定软件的总体结构、数据结构、用户界面和算法细节。又可分为总体设计和详细设计两个阶段。编码按照选定的语言,把设计的过程性描述翻译为源程序。测试发现软件中隐藏的各种错误,是保证软件质量的重要手段。(3)运行时期主要任务:做好软件维护,使软件在整个生存周期内保证满足用户的需求和延长使用寿命。一个阶段:软件维护2.2传统软件开发模型传统软件开发模型至今仍广泛使用的开发模型包括瀑布模型----线性顺序模型或生存周期模型快速原型模型(1)瀑布模型(WaterfallModel)瀑布模型特点阶段的顺序性和依赖性只有等前一阶段的工作完成以后,后一阶段的工作才能开始;想在后阶段获得正确的结果,必须在前阶段有正确的输出;因此,如果在生存期某一阶段出现了问题,往往要追溯到在它之前的一些阶段,必要时还要修改前面已经完成的文档。推迟实现的观点过早考虑程序的实现,常常导致大量返工,容易给开发带来灾难性的后果,因此把逻辑设计与物理设计清楚地划分开来,尽可能推迟程序的物理实现。质量保证的观点每一阶段都要完成规定的文档,是文档驱动的模型。每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。及时复审是保证软件质量、降低开发成本的重要措施。存在问题不适合需求模糊或需求经常变动的系统瀑布模型的阶段与文档(2)快速原型模型(RapidPrototypeModel)首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,最终建立完全符合用户要求的新系统。特点使用快速开发工具循环低成本可在较短时间获取用户的需求种类渐进型(演化型)抛弃型2.3软件演化模型(EvolutionaryModel)(1)增量模型(IncrementalModel)把瀑布模型的顺序特征与快速原型法的迭代特征相结合将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。增量小而可用的软件特点在前面增量的基础上开发后面的增量每个增量的开发可用瀑布或快速原型模型迭代的思路(2)螺旋模型(SpiralModel)在瀑布模型与快速原型的基础上,增加了风险分析。是一种迭代模型,每迭代一次,螺旋线就前进一周。一个螺旋周期内的工作步骤确定目标,选择方案,选定完成目标的策略分析该策略可能存在的风险启动一个开发阶段评价前一步的结果,计划下一轮的工作螺旋模型的特点将瀑布模型和演化模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。迭代式开发方式是一种风险驱动的模型,适合于大型软件的开发。但是,使用该模型需要有相当丰富的风险评估经验和专门知识,这使该模型的应用受到一定限制。2.4面向对象开发模型(1)对象(Object)客观世界中的个体或事物的抽象表示,是它的属性和相关操作的统一封装体。属性(静态属性Attributes)表示对象的性质,属性值规定了对象所有可能的状态。操作(动态行为Methods)指该对象可以展现的外部服务。对象::=<ID,MS,DS,MI>IdentifierMethodSetDataStructureMessageInterface对象的特点以数据为中心对象是主动的实现数据封装本质上有并行性模块独立性好(2)类(Class)和实例(Instance)类相同属性和行为的对象的抽象。实例特定类所描述的一个具体对象,即对象是类的实例。(3)继承(Inheritance)子类直接继承父类的数据和操作继承的传递性,单继承、多重继承(4)消息(Message)对象间的交互手段,对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息完成固有的某些操作,从而服务于其他对象。形式:Message:[dest,op,para]DestinationObje