软件工程学概述.docx_第1页
软件工程学概述.docx_第2页
软件工程学概述.docx_第3页
软件工程学概述.docx_第4页
全文预览已结束

下载本文档

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

文档简介

第一章 软件工程学概述 1.软件危机概念、表现和产生的原因?a.软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题b.典型表现:(1)开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意;(3) “软件质量不可靠;(4)软件常常是不可维护的;(5)软件没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速及深入的趋势(软件产品“供不应求”);c.产生的原因:(1)软件的规模加大、复杂性提高、性能增强;(2)软件是逻辑产品,尚未完全认识其本质和特点;(3)缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法;(4)用户和软件开发人员的理解鸿沟;(5)错误的认识和作法:忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等;2.软件工程定义? 软件工程是指导计算机软件开发和维护的工程学科:(1)它采用工程概念、原理、技术和方法啦开发和维护软件;(2)它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;(3)它强调使用生存周期方法学和结构技术;(4)经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了“软件工程学”这一新的学科。3.软件生命周期?瀑布模型和快速原型模型的概念、特点和应用范围?软件生命周期:软件产品或系统一系列相关活动的全周期。瀑布模型的概念:瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。特点:(1)阶段间具有顺序性和依赖性;(2)推迟实现的观点;(3)质量保证的观点(文档驱动)。适用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。快速原型模型的概念:快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。特点:(1)快速原型的本质是“快速”;(2)快速原型可以取代规格说明阶段,但不是设计阶段,容易适应需求的变化;(3)有利于开发与培训的同步;(4)开发费用低、开发周期短、维护容易且对用户更友好。适用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。 第二章 可行性研究1.可行性研究的目的:不是要解决问题,而是确定问题是否值得去解决;用最小的代价在尽可能短的时间内确定问题是否能够解决2.可行性研究的任务:最根本的任务是对以后的行动方针提出建议;如果问题没有可行的解,应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。从技术可行性、经济可行性和操作可行性分析可行性第三章 需求分析1. 需求分析的基本任务:基本任务是准确地回答“系统必须做什么?”;“分析软件需求和书写软件需求规格说明书”。具体任务:确定对系统的综合要求;分析系统的数据要求;导出系统的逻辑模型;修正系统开发计划。2. 层次方框图和层次结构图的区别?a.层次方框图: 描述系统数据的层次结构;图中的连线表示数据的组成关系。b.层次结构图:(层次图、功能模块图) 描述系统的软件结构:图中的连线表示模块的调用关系。第五章 总体设计 1.总体设计的任务:(1)方案设计(寻找实现目标系统的各种不同的方案,选出最佳的方案,制定实施计划);(2)系统划分(程序、文件、数据库、人工过程和文档等);(3)设计软件的结构(每个程序是由哪些模块组成,以及这些模块相互间的关系 )。 2.模块独立和模块化a.模块化:把程序化分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成制定的功能满足用户的需求。b.模块独立:模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。3.模块独立的衡量标准(1) 耦合是不同模块之间互连程度的度量。(a-e耦合由高到低) a.内容耦合:一个模块访问另一个模块的内部数据; 一个模块不通过正 常入口而转入另一个模块的内部;两个模块的代码部分重合;一个模块有多个 入口。b.公共环境耦合:两个以上模块之间通过公共环境进行数据的存取。c.控制耦合:一个模块给另一个模块传递控制元素。d.特征耦合:一个模块通过数据结构向另一模块传递信息,而另一模块只需要数据结构的一部分属性。e.数据耦合:两个模块之间仅通过模块参数交换信息,且交换的信息全部为简单数据项或数据结构,但要求被调用模块使用数据结构的所有元素。(2) 内聚是模块内各个元素彼此结合的紧密程度。(a-h内聚由低到高)a.偶然性内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的。 b.逻辑性内聚:如果一个模块完成的任务在逻辑上属于相同或相似一类c.时间性内聚:如果一个模块包含的任务必须在同一段时间内执行。d.过程性内聚:如果一个模块内的处理元素是相关的,而且必须以特定次序执行。e.通信性内聚:如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据。f.顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行。g.功能性内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能。h.信息性内聚:执行一系列操作、每个操作都有各自的入口点,每个操作的代码相对独立,而且所有操作都在相同的数据上完成。 第六章 详细设计1.详细设计的任务:不是具体地编写程序,而是设计程序的“蓝图”;详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。过程设计即确定每个模块的实现算法;数据设计即设计软件中所需要的数据结构;接口设计即设计软件内部各个模块之间、软件与协作系统之间以及软件与使用它的人之间的通信方式。2.结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序的特点:结构清晰、容易阅读、容易修改、容易验证。 第七章 实现1.选择程序设计语言的因素:系统用户的要求;可以使用的编译程序;可以得到的软件工具;工程规模;程序员的知识;软件可移植性要求;软件的应用领域。2.编码风格是指编程时表现出来的特点、习惯、逻辑思路等。衡量程序好坏的重要标准:程序代码的逻辑简明清晰、易读易懂;使用一致和有意义的标识符名;用缩进显示程序结构;用加括号的方式排除二义性;避免大量使用循环嵌套和条件嵌套;当心运算符的副作用;把数定义成常量;利用sizeof()计算对象的大小;清晰的代码,而非最巧妙的代码。3.集成测试是测试和组装软件的系统化技术。4.渐增式测试:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合起来测试。这种每次增加一个模块的方法称为渐增式测试。它有自顶向下和自底向上两种集成策略。5.白盒测试:此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试;通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。黑盒测试:这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑

温馨提示

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

评论

0/150

提交评论