- 1、本文档共193页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程总复习2讲述
1 软件与软件危机
1.1 软件的定义
指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。
数据结构,使得程序可以充分利用信息。
描述程序操作和使用的文档。
1.1 软件的定义
指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。
数据结构,使得程序可以充分利用信息。
描述程序操作和使用的文档。
1.2软件危机
许多软件项目不能满足客户的要求。
许多软件项目超出预算和时间安排。
软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。
软件危机的表现
对软件开发成本和进度的估计常常很不正确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。
软件危机的原因
软件是逻辑产品,开发进度、成本难以估计。
缺乏或不完整、不一致的文档给维护带来困难。
用户对软件需求的描述往往不够精确,有遗漏,有二义。
软件开发人员对需求的理解与用户的本来愿望有差异。
大型软件项目需多人协同完成,缺乏管理经验。
开发人员不能有效地、独立自主地处理大型软件的全部关系。
缺乏有力的方法学和工具的支持。
软件项目的特殊性和人类智力的局限性。
1.3 软件工程的发展
一、结构化开发方法
是一种面向数据流的开发方法,是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。
结构化方法总的指导思想是自顶向下、逐步求精,以数据流,数据的封闭性准则来逐层分解的,它的基本原则是功能的分解与抽象。
结构化方法强调结构的合理性。提出了一组提高软件结构质量的准则,如功能的分解与抽象、模块独立性、信息屏蔽等。
JACKSON方法是一种面向数据结构的设计方法。强调程序结构与问题结构相对应。
JACKSON方法由两部分构成:
1、JSP(Jackson structured Programming)
(杰克逊结构程序设计 )
2、JSD (Jackson System Development)
二、Jackson方法
面向对象软件工程
OOSD(Object-Oriented Software Development)法这是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。
其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。
2.2 软件生存期模型
软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
划分软件生存周期的阶段时所应遵循的基本原则是各阶段的任务尽可能相对独立。
软件开发模型是对软件过程的建模
边做边改模型
瀑布模型
原型模型
增量模型
螺旋模型
RUP过程
敏捷过程
极限编程
微软过程模型
2.2.1边做边改模型
遗憾的是,许多产品都是使用“边做边改”模型来开发的。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。
2.2.2瀑布模型
1970年Winston Royce提出了著名的瀑布模型,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
该模型将基本的过程活动、描述、开发、有效性验证和进化,看成是一些界限分明的独立的过程阶段,如:需求描述阶段、软件设计阶段、实现阶段、测试阶段等。
该模型也可以看成是软件的生命周期模型。
该模型是计划驱动的,理论上,在开始工作之前,必须对所有的过程活动制定计划并给出进度安排。
瀑布模型的特点
1.阶段间具有顺序性和依赖性关系
顺序性的含义是必须待前一阶段的工作完成之后,才能进行下一阶段的工作。
依赖性的含义是前一阶段的输出就是后一阶段的输入,只有前一阶段的输出正确,后一阶段的工作才有可能获得正确的结果。。
2.2.3快速原型模型
由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次或多次:
第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求。
第二次则在此基础上获得较为满意的软件产品。
快速原型模型特点
在需求定义之前,需要快速构建一个系统
文档评论(0)