- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程的回顾
PAGE 1
PAGE 1
软件工程的回顾
⒈软件的工业化生产与软件危机的出现
软件产业的出现与生产过程中所暴露出的问题
(一)软件产业的发展简历
·六十年代以前—个体化的设计体制;
·六十年代中期到七十年代中期—出现“软件作坊”;
·七十年代中期到八十年代中期—大型化的软件设计出现;
(二)逐渐产生的问题
·不可预计的开发成本和进度;
·所开发与生产出来的软件产品质量低下;
·因开发文档不规范致使所开发与生产出来的软件产品难于维护;
②业界对与软件生产过程有关问题的认识
·软件产品生产与其它工业产品的生产一样具有商品生产的所有特征且还有其属于自身的特征(开发的时间远大于生产时间、软件产品的维护投入相对较大);
·软件产品的开发过程实际上是对问题某一求解思路的具体实现,而问题的求解途径却并不是一条;
例:桌面上现有三枚硬币,设有国徽的一面为正,另一面为反。初始时的摆放状态为“反、正、反”。现规定每次只能翻动一枚硬币(但不允许不翻),若翻动三次硬币能否得到三枚硬币为全正或全反的状态,既如下图的效果。
解:设正面为0、反面为1、一枚硬币的状态用qn={0,1}表示,同时为此三枚硬币按自左至右的顺序编号为0、1、2。则三枚硬币的任一状态组合为Qn={q0,q1,q2},且Q共有23=8种状态。即:
Q0={0,0,0}、Q1={0,0,1}、…Q7={1,1,1}
其中Q5={1,0,1}为初始状态。现定义翻动一次第q0号硬币的动作为A;翻动一次q1号硬币的动作为B;翻动一次q2号硬币的动作为C。这样可将已知问题的状态空间描述为:{Q5},{A,B,C},{Q0,Q7}。并可用下面的状态变化图描述出全部的状态变化过程:
由此图可分析得出Q5与Q0间不存在一组三步连线,而Q5与Q7间却有多达7种解法:{A,A,B}、{A,B,A}、{B,A,A}、{B,B,B}、{B,C,C}、{C,B,C}、{C,C,B}。由此可以推广得出以下的结论:随着问题空间状态的增多,便会使解题的路径数量按指数级数递增。而解题路径的搜索难度也随之加大。
·在软件产品的开发周期内各阶段所花费的费用是不一样的;
·需要使用一种思想体系或方法论来指导软件产品的开发过程;
·需要一种与上述思想体系或方法论配套的管理体制来控制软件产品的开发过程;
③软件危机的确认与对策
·计算机软件在开发和维护过程中所遇到的所有问题的总和为软件危机;
·研讨能使所开发的软件产品优质与低耗的开发方法、工具与手段;
·确立软件工程学科体系;
⒉软件工程理论的发展历程
①软件工程中的几个重要的认识论观点
⑴软件产品也有生存寿命
·软件产品生存阶段的划分;
·不同阶段的成本付出概况;
⑵软件开发模型的探讨
A)瀑布模型(Waterfall Model)
·开发阶段的顺序过程;
·前后的开发阶段存在因果关系;
·发现错误的位置越向后则修改的难度和工作量就越大;
B)快速原型(Rapid Prototype Mode1)
·易于满足用户的近期需求;
·开发过程的重复多、修改量大;
·开发的产品质量较差;
C)螺旋模型(Spiral Model,简称SM)
·兼有前两种模型的特点;
·通过多级验证已确保系统的质量;
·开发周期长;
⑶软件工程开发工具的研制
·美国Information Builders公司的Focus系统;
·美国Transform LogicBIS/IPSE系统;
·美国Rational公司的Rose’2002系统(OO工具);
·北京大学的青鸟系统;
②软件工程的重要术语
⑴软件
软件是程序及其开发、使用和维护所需的所有文档的总和。
⑵软件工程
软件工程是指导计算机软件开发和维护的工程学科。
⑶软件的生存周期
一个软件产品从定义、开发、维护到废弃的时间总合称为软件的生存周期。
③软件工程的分析方法总体思路的确立
⑴数据是处理的核心
·研究处理过程的目的和目标;
·分析数据的一般性构成(顺序、重复、互斥);
·确定数据的全局和局部的两种生存状态;
⑵对处理过程的构造作出定性分析;
·处理过程可以综合描述为顺序、重复、选择三种结构从而提出结构化设计方法;
·处理过程应与其所处理的全局数据相分离;
⒊面向过程的程序设计方法的概念性总结
①系统的模型化思维
②软件系统计划时期的分析方法
⑴问题的定义
⑵可行性分析研究
③软件系统开发时期的几个重要阶段的考虑
⑴需求分析
·基于数据流分析处理过程的(Structural Analysis—SA)方法
·数据流图(Data Flow Diagram—DFD)的分层与数据字典
数据流图用来描述数据在系统中发生变化的过程。绘制的要求是自顶向下,逐步细化。其图形符号如下:
绘制数据流图要注意相邻层间的数据平衡问题。数据字典是用来说
文档评论(0)