软件工程导论_第1页
软件工程导论_第2页
软件工程导论_第3页
软件工程导论_第4页
软件工程导论_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 软件工程学概述1. 软件危机的典型表现: 对软件开发成本和进度的估计常常很不准确; 用户对已完成的软件系统不满意的现象经常发生; 软件产品的质量往往靠不住; 软件常常是不可维护的; 软件通常设有适当的文档资料; 软件成本在计算机系统中成本中所占的比例逐年上升; 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软件产品“供不应求”2. 产生软件危机的原因:一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关导致软件危机的主要原因有:软件日益复杂和庞大;软件开发管理困难和复杂;软件开发技术落后;生产方式落后;开发工具落后;软件开发费用不断增加3. 软件工程

2、的定义:1993年IEEE给出的定义:把系统的,规范的,可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。4. 软件工程的7条基本原理:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚的审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。5. 软件生命周期问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试。6. 软件过程的定义软件过程是为了获得高质量的软件所需要完成的一系列的任务框架,它规定了完成各项任务的工作步骤。7. 瀑布模型传统的软件生存期模型特点:各个阶段

3、的顺序性和依赖性;划分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。优点:可强迫开发人员采用规范的方法; 严格规定了每个阶段必须提交的文档; 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;缺点:“强调文档驱动”,系统可能不满足客户的需求。8. 快速原型模型优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。这种模型适合预先不能确切定义需求的软件系统的开发。缺点:所选的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量的低下,使用这个模型的前提是要有一个展示性的产品

4、原型,因此在一定程度上可能会限制开发人员的创新。9. 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品,逐步增加产品功能可以使用户有充裕的时间学习和适应新的产品,从而减少一个全新的软件可能给客户组织带来的冲击。10.螺旋模型风险驱动 优点迭代演化11.喷泉模型无缝衔接,迭代开发第二章 可行性研究1.定义:可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.技术可行性、经济可行性、操作可行性3.数据流图(数据的源点/终点、变化数据的处理、数据存储、数据流)4.数据字典:(数据流、数据流分流、数据存储、处理)4种类型:顺序、选择、重复、可选5.货币的时间价值:第三

5、章 需求分析1.基本任务:准确的回答“系统必须做什么”这个问题2.简易的应用规格说明书的基本流程:初步的访谈,通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案;开发者和用户分别写出“产品需求”;开发者和用户开会讨论,共同创建一张意见一致的组合列表;把与会者分成更小的小组,每个小组的工作目标是为每张列表中的项目制定小型规格说明,小型规格说明是对列表中包含的单词或短语的准确说明;每个小组向全体与会者展示他们制定的小型规格说明书,讨论,以创建出意见一致的确认标准;由一名或多名与会者根据会议成果起草完整版的软件需求规格说明书。3.状态图:初态、终态、中间状态4.验证软件需求的正确性:一致

6、性、完整性、现实性、有效性第五章 总体设计总体设计的目的就是回答“概括的说,系统应该如何实现”1.模块:模块不能无限制的分割;当模块数目增加时每个模块的规模将减小,开封单个模块需要的成本确实减少了,但是随着模块数目增加,设计模块的间接口所需要的工作量也增加。2.模块独立:高内聚,低耦合内聚度最高: 功能内聚 最低: 偶然内聚耦合度最高: 内容耦合 最低: 数据耦合耦合度 低高非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合3.深度、宽度、扇入、扇出4.变换流:单输入、单输出 数据流:单输入、多输出第六章 详细设计详细设计的目标是确定应该怎样具体的实现多要求的系统1.过程设

7、计的工具:程序流程图、盒图、PAD图、判定表、判定树、过程设计语2.PAD图的优点:使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序;PAD图所描绘的程序结构非常清晰;用PAD图表现的程序逻辑,易读,易懂,易记;容易将PAD图转换为高级语言源程序;PAD图支持自顶向下,逐步求精方法的使用。3.环行复杂度:V(G)=E-N+2(E是流图中变得条数,N是结点的个数); V(G)=P+1(P是流图中判定节点的数目)判定指的是简单判定第七章 实现1.测试的目的G.Myers的基本观点测试是为了发现程序中的错误而执行程序的过程;好的测试方案极可能发现迄今为止未发现的错误的测试方案;成功

8、的测试是发现了至今为止尚未发现的错误的测试。测试和调试的区别:测试是找出程序中存在的错误;而调试是不仅找出错误并改正错误,并且在改正的过程中不引入新的错误。2.测试准则:所有的测试都要追溯到用户需求;应在测试之前就制定出测试计划;把Pareto原理应用到软件测试中;应先进行小规模测试,再逐步进行“大规模”测试;穷举测试是不可能的;为了达到最佳的测试效果,应该有第三方独立的进行测试工作;应确保测试用例的完整性和有效性; 应保存所有的测试用例和出错记录,直到软件不用为止。3.黑盒和白盒的区别:黑盒可以把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,只检测程序功能是否按照规格说明书的规定正

9、常使用,检测是否适当的接收输入信息并且产生正确的输出信息;白盒测试可以把程序看做装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法,检测程序中的主要通路是否都能按照预定要求正确工作;黑盒和白盒测试互相补充,缺一不可。白盒用于早期测试,而黑盒用于测试晚期。 4.测试:单元测试、集成测试、系统测试、确认测试5.集成测试:渐增式、非渐增式6.渐增式:自顶向下、自底向上7.自顶向下:深度优先、广度优先8.回归测试:就是用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动9.Alpha和Beta的区别:环境不同:Alpha是在开发环境下,Beta是在用户环境下;Al

10、pha有热指导,Beta无人指导;Alpha的错误有开发人员记录,Beta而又用户自行记录;Alpha受控,Beta而不受控;主持部门不同:Alpha有测试部门,Beta而由发行部主持10. 循环测试:1,2,3,m,n-1,n,n+111. 设计题:等价划分、因果图、边界值分析(三选一)12. 软件可靠性和可用性软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率;软件可靠性是程序在给定的时间点,按照规格说明书的规定成功的运行的概率;13. 系统的稳态可用性:14. 植入错误法:分别测试法:第八章 维护所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新需要而修改

11、软件的过程1.完善性维护50%左右改正性维护17%左右适应性维护20%左右预防性维护4%左右2.决定软件的可维护性因素:可理解性、可测试性、可修改性、可移植性、可重用性3.修改代码副作用修改数据副作用修改文档资料的副作用第九章 面向对象方法学引论1.OO=objects+classes+inheritance+communication with messages2.面向对象方法学的优点:与人类习惯的思维方法一致;稳定性好;可重性好;较易开发大型软件产品;可维护性好3.对象模型类图动态模型状态图功能模型用例图第十章 面向对象分析复杂问题的对象模型的5个层次:主题层、类与对象层、结构层、属性层、

12、服务层第十一章面向对象设计1.设计问题域子系统、设计人机交互式子系统、设计任务管理子系统、设计数据库子系统2.类构件的重用方式:实例重用、继承重用、多态重用3.子系统之间的两种交互方式:客户-供应商关系、平等伙伴关系第十二章面型对象的实现1.面型对象的集成测试:基于线程的测试、基于使用的测试2.测试单个类的方法主要有随机测试、划分测试、基于故障测试第十三章软件项目管理1. 开发同一个软件的时候,如果把项目持续时间延长一些,则可以降低完成项目所需的时间。2. COCOMO2模型: 应用系统组成模型:主要用于构建原型的工作量早期设计模型:适用于体系结构设计阶段后体系结构模型:适用于完成体系结构设计之后的软件开发阶段3. Brooks规律:向一个已经延期的项目增加人力,只会使得它更加延期。4. 软件项目的开发时间最多可以减少到正常开发时间的75%,如果要求一个软件系统的开发时间过短,则开发成功的概率几乎为0.5. 关键路径计算题6. 人员组织:民主制程序员组、主程序员组、现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论