- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《软件工程》整理
软件危机:是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
软件危机主要有以下一些典型表现:?
(1)?对软件开发成本和进度的估计常常很不准确;?
(2)?用户对“已完成的“软件系统不满意的现象经常发生;?
(3)?软件产品的质量往往靠不住;?
(4)?软件常常是不可维护的?
(5)?软件通常没有适当的文档资料;?
(6)?软件成本在计算机系统总成本中所占的比例逐年上升;?
(7)?软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件;软件不同于一般程序,它是一个显著特点的规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
软件工程概念:是指计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程方法学包括三个要素:方法、工具和过程。
软件生命周期:由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
软件定义时期的任务:问题定义、可行性研究和需求分析。
软件开发时期的任务:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
软件维护时期的任务:使软件持久地满足用户的需要。
软件维护活动类型总起来大概有四种:性维护;适应性维护;完善性维护;预防性维护。P=F1/(1+j)+F2/(1+j)^2+?+Fn(1+j)^n?
P:现在的投资额??Fi:第i年底的效益(i=1,2,3,?,n)?
n:系统使用寿命?j:投资回收率?
需求分析:是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。
数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。
某校教学管理ER图:
总体设计过程通常由两个阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。
模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
抽象:是控制复杂性的基本策略。“抽象”?要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。
逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
局部化:是指把一些关系密切的软件元素物理地放得彼此靠近。
耦合:是对一个软件结构内不同模块之间互联程度的度量。耦合强度取决于模块间接口的复杂程度,进入后访问一个模块的点,以及通过接口的数据。
内聚合耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。
启发规则:??1)改进软件结构提高模块的独立性??
2)模块规模应该适中??
3)深度、宽度、扇出和扇入都应适当??
?4)模块的作用范围应在控制范围之内??
5)力争降低模块接口的复杂程度??
?6)设计单入口单出口的模块???
7)模块功能应该可以预测?
通常说的结构化设计方法(简称SD方法),也就是基于数据流的设计 方法。
信息流:交换流、事务流。
程序流程图:又称为程序框图,它是历史最悠久使用最广泛的描述软件设计的方法,能直观地描述过程的控制流程,便于初学者掌握。然而它也是用得最混乱的一种方法。
?
?
(a)选择(分支);(b)注释;(c)预先定义的处理;(d)多分支;(e)开始或停止?(f)准备;(g)循环上界限;(h)循环下界限;(i)虚线;(j)省略符;(k)并行方式;(l)处理;(m)输入输出;(n)连接;(0)换页连接;(p)控制流?
程序流程图的缺点:1)程序流程图本质上不是逐步求精的好工具,它 诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。2)程序流程图中用箭头代表控制流,因此程序员 不受任何约束,可以完全不顾结构程序设计的 精神,随意转移控制。3)程序流程图不易表示数据结构。
盒图:又称为N-S图。每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制,只要整张图可以在一张纸上容纳下就行?
?
(a)顺序?(b)IF_THEN_ELSE型分支?(c)CASE型多分支?(d)循环?(e)调用子程序A
盒图具有下述特点:功能域明确,可以从盒图上一眼就看出来;不可能任意转移控制; 很容易确定局部和全程数据的作用域;很容易表现嵌套关系,
原创力文档


文档评论(0)