ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:470.21KB ,
资源ID:14949456      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14949456.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程总结.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程总结.docx

1、软件工程总结第一章 软件工程学概述1.1 软件危机(1) 危机表现:1、 对软件开发成本和进度估计常常很不准确。2、 用户对“已完成的”图案件系统很不满意的现象经常发生。3、 软件产品的质量往往靠不住,。4、 软件常常是不可维护的。5、 软件通常没有适当的文档资料。6、 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。(2) 消除软件危机的途径:1、 首先应该对计算机软件有一个正确的认识。2、 应该推广使用在实践中总结出来的开发软件的成功的技术和方法。3、 应该开发和使用更好的软件工具。4、 总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。1.

2、2软件工程(1) 1968年在第一届NATO会议上曾经给出了软件工程的一个早期定义: 软件工程就是为了经济地可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。 1993年IEEE进一步给出了更全面更具体的定义: 软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。(2) 软件工程的本质特性:1、 软件工程关注于大型程序的构造。2、 软件工程的中心课题是控制复杂性。3、 软件经常变化。4、 开发软件的效率非常重要。5、 和谐地合作是开发软件的关键。6、 软件必须有效地支持它的用户。7、 在软件工程领域中通常由具有一

3、种文化背景的人替具有另一种文化背景的人创造产产品。(3) 软件工程的基本原理:1、 用分阶段的生命周期计划严格管理。2、 坚持进行阶段评审。3、 实行严格的产品控制。4、 采用现代程序设计技术。5、 结果应能清楚地审查。6、 开发小组人员应该少而精。7、 承认不断改进软件工程实践的必要性。1.4 软件过程(1) 软件开发的特点:1、 阶段间具有顺序性和依赖性。2、 推迟实现的观点。3、 质量保证的观点。(2) 几个模型:1、 瀑布模型。2、快速原型模型。3、增量模型。4、螺旋模型。5、喷泉模型(面向对象方法学)。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。

4、 第二章 可行性研究2.1 可行性研究的任务(1) 研究可行性的五个方面:1、 技术可行性。2、经济可行性。3、操作可行性。4、法律可行性。5、社会可行性。2.4 数据流图(1) 数据流图(DFD):1、 用来描述软件系统的高级逻辑。2、 描述系统的功能集合。3、 描述系统的边界。4、 描述系统的处理过程。(2) 分层的依据:72原则。2.5 数据字典(1) 数据字典(DD):是关于数据的信息集合,也就是对数据流图中包含的所有元素的定义的集合。(2)习题:北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,

5、若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用定义数据字典的方法,定义上述的电话号码。解: 电话号码=校内电话号码|校外电话号码 校内电话号码=非零数字+ 3 位数字 /后面继续定义 校外电话号码=本市号码|外地号码 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=1|2|3|4|5|6|7|8|9 数字零0 3位数字3数字3 /3至3个数字 8位数字=非零数字+7位数字 7位数字=7数字7 数字0|1|2|3|4|5|6|7|8|9第三章 需求分析(1) 软件的七大功能:增、删、改、查、统、安、帮。(

6、2) 软件的五大需求:功能、性能、数据、环境、将来。(3) 分析的最大成果就是建模。分析 抽象 建模 画图 三个模型 (4) 需求分析的方法遵守的准则(三型两化)1、 必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(ER图)2、 必须定义软件应完成的功能,这条准则要求建立功能模型。(DFD)3、 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(状态图)4、 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。(5) ER 转换 类和对象图第五章 总体设计(1) 设计模型 分析模型 用图形描述结构化分析建模和结构化设计建模并解释它。5.2 设计原理(1)

7、模块: 是由边界元素限定的相邻元素的序列,而且有一个总体标示符代表它。(2) 模块化: 就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。(3) 模块独立1、 追求高内聚,低耦合。2、 耦合:无耦合数据耦合控制耦合公共环境耦合内容耦合出现内容耦合的情况: 一个模块访问另一个模块的内部数据。 一个模块不通过正常入口而转到另一个模块的内容。 两个模块有一部分程序代码重叠(只可能出现在汇编程序中)。 一个模块有多个入口(这意味着一个模块有几种功能)。3、 内聚:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内

8、聚、偶然内聚功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。5.3 启发规则(1)启发式规则:1、 改进软件结构提高模块独立性。2、 模块规模应该适中。3、 深度、宽度、扇出和扇入都应该适当。4、 模块的作用域应该在控制域之内。5、 力争降低模块接口的复杂程度。6、 设计单入口单出口的模块。7、 模块功能应该可以预测。第六章142页,第七题 142页第八题计算环形复杂度的方法:(1)区域数等于环形复杂度(2)流图V(G)=E-N-2 (其中E为边条数,N为节点数)(3)流图V(G)=P+1 (P是流图中判定节点的数目)第七章 1.测试的概念:测试是为了发现程序

9、中的错误而执行程序的过程。2.测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。(3)成功的测试是发现了迄今为止尚未发现的错误的测试。3.测试的准则:(1)所有的测试都应该能追溯到用户需求。(2)应该远在测试开始之前就制定出测试计划。(3)把二八定律应用到软件测试中。(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。(5)穷举测试是不可能的。(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。4.模块并不是一个独立的程序,因此必须为每个单元测试开发驱动软件和(或)存根软件。通常驱动程序也就是一个“主程

10、序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关结果。存根程序代替被测试的模块所调用的模块。因此存根程序也可以称为“虚拟子程序”。它使用被他代替的模块接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用他的模块。5.软件有效性:如果软件的功能和性能如同用户所合理期待的那样,软件就是有效的。6.确认测试有下述两种可能的结果:(1)功能和性能与用户的要求一致,软件是可以接受的。(2)功能和性能与用户要求有差距。7.语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次。8.判定覆盖:每个判定的每个分支都至少执行一次。9.条件覆盖:每个语句至少执行

11、一次,判定表达式中的每个条件都取到各种可能的果。给出一段程序,请画出流图,写出一组独立路径,并设计一组测试用例。PROCEDURE average;INTERFACE RETURENS average,total.input,total.valid;INTERFACE ACCEPTS value,minimum,maximum;TYPE value1100 IS SCALAR ARRAY;TYPE average ,total.input,total.valid; minimum,maximum,sum IS SCALAR;TYPE i IS INTEGER;1: i=1; Total.inp

12、ut=total.valid=0; Sum=0;2: DO WHILE valuei-9993: AND total.input 100;4: Increment maximumtotal.input by1;5: IF valuei=minimum6: AND valuei011: THEN average =sum/total.valid;12: ELSE average =-999;13: ENDIF END average 独立路径:路径1: 1-2-10-11-13路径2: 1-2-10-12-13路径3: 1-2-3-10-11-13路径4: 1-2-3-4-5-8-9-2-路径5

13、: 1-2-3-4-5-6-8-9-2-路径6: 1-2-3-4-5-6-7-8-9-2-测试用例:路径1的测试用例:valuek=有效输入值,其中kiValuei=-999,其中2=i=100预期结果:基于K的正确平均值和总数。第八章1.软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程2.有四种维护:改正性维护,适应性维护,完善性维护,预防性维护3.维护的无形代价?维护的问题?维护的无形代价:(1)因为可用的资源必须工维护任务使用,以致耽误甚至丧失了开发的良机(2)当看起来合理的有关改错或修改的要求不能及时满足时将引起用户不满(3)由于维护时的改动,在软件中引入

14、了潜伏的错误,从而降低了软件的质量(4)当必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱维护的问题:(1)理解别人写的程序通常非常困难,而且困难的程度随着软件配置成分的减少而巡视增加(2)需要维护的软件往往没有合格的文档,或者文档的资料显著不足(3)当要求对软件进行维护时,不能指望由开发人员非人们仔细说明软件(4)绝大多数软件在设计时没有考虑将来的修改4.决定软件可维护性的因素(1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性第九章1.面向对象方法学的要点(1)对象(2)类(3)继承(4)消息2.面向对象方法学的优点(1)与人类习惯的思维方法一致(2)稳定性好(

15、3)可重用性好(4)较易开发大型软件产品(5)可维护性好3.对象的特点(1)以数据为中心(2)对象是主动的(3)实现了数据封装(4)本质上具有并行性(5)模块独立性好4.三种模型间的关系(1)针对每个类建立的动态模型,描述了类实现的生命周期或运行周期(2)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用力他们同时与类图中的服务相对应(3)功能模型中的处理对应于对象模型中的类所提供的服务(4)数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象(5)数据流图中的数据流,往往是对象模型中的对象属性值,也可能是整个对象(6)用例图中的行为者,可能是对象模型中

16、的对象(7)功能模型中的处理(或用例)可能产生动态模型中的事件(8)对象模型描述了数据流图中的数据流,数据存储以及数据源点/终点的结构5.面向对象设计的准则(1)模块化(2)抽象(3)信息隐藏(4)弱耦合(5)强内聚(6)可重用第十章3个子模型5个层次启发式规则(3)人机界面设计的问题(3)第九章面向对象方法4个要点:1. 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。2. 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。3. 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。4. 对象彼此之间仅能通过传递消息

17、互相联系。面向对象方法学概括:OO=对象+类+继承+消息传递对象的特点1. 以数据为中心。2. 对象是主动地。3. 实现了数据封装4. 本质上具有封装5. 模块独立性块3种模型之间的关系1. 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。2. 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。3. 功能模型中的处理对应于对象模型中的类所提供的服务。4. 数据流图中的数据存储,以及数据的原点/终点,通常是对象模型中的对象。5. 数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象6. 用例图中的行为者,可能是

18、对象模型中的对象7. 功能模型中的处理可能产生动态模型中的事件。8. 对象模型描述了数据流图中的数据流,数据储存以及数据源点/终点的结构第11章 面向对象设计一.面向对象设计的准则:1.模块化2.抽象3.信息隐藏4.弱耦合5.强内聚6.可重用二.启发规则:1.设计结果应该清晰易懂2.一般-特殊结构的深度应适当3.设计简单的类4.使用简单的协议5.使用简单的服务6.把设计变动减至最小第十二章 面向对象实现第十三章 软件项目管理一.估算软件规模:代码行技术:是比较简单的定量估算软件规模的方法.这种方法依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数.当有以往开发类似产品的历

19、史数据可供参考时,用这种方法估计出的数值还是比较准确的.把实现每个功能所需要的源程序行数累加起来,就可以得到实现整个软件所需要的源程序行数.下式计算程序规模的估计值:L=a+4m+b/6二.工程网路工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显示地描绘各个作业彼此之间的依赖关系.在工程网络中用箭头表示作业,用圆圈表示事件.注意事件仅仅可以明确的时间点,它并不是消耗时间和资源.作业通常既消耗资源又持续一定时间.用开始时间和结束时间的编号标识一个作业,在工程网络中的一个事件,如果既有箭头进入又有箭头离开,则它既是某些作业的结束又是另一些作业的开始.还有一些虚线箭头,它们表示虚拟作业,也就是事实上并不存在的作业.引入虚拟作业是为了显式地表示作业之间的依赖关系.注意,虚拟作业既不消耗资源也不需要时间.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2