软件工程期末复习要点归纳总结_第1页
软件工程期末复习要点归纳总结_第2页
软件工程期末复习要点归纳总结_第3页
软件工程期末复习要点归纳总结_第4页
软件工程期末复习要点归纳总结_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

软件工程期末复习要点归纳总结一、软件工程概述(一)软件的定义与特点1.定义:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。程序:是能够完成特定功能的一组指令序列。数据:是程序能正常操纵信息的数据结构。文档:是与程序开发、维护和使用有关的图文资料。2.特点软件是一种逻辑实体,具有抽象性。软件没有明显的制作过程,开发过程复杂。软件在使用过程中不存在磨损、老化问题,但会随着需求变化而进行修改维护。软件的开发和运行常受到计算机系统的限制,对计算机系统有依赖性。软件的开发至今尚未完全摆脱手工艺的开发方式,生产效率较低。软件本身是复杂的,而且以后会更加复杂。软件成本相当昂贵,且成本不断增加。相当多的软件工作涉及到社会因素。

(二)软件工程的定义与目标1.定义:软件工程是指导计算机软件开发和维护的一门工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。2.目标付出较低的开发成本。达到要求的软件功能。取得较好的软件性能。开发的软件易于移植。需要较低的维护费用。能按时完成开发任务,及时交付使用。开发的软件可靠性高。

(三)软件工程的基本原理1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性

二、软件生命周期(一)软件生命周期的阶段划分软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。1.软件定义时期问题定义:明确要解决的问题是什么。可行性研究:研究问题的解决方案在经济、技术和操作上的可行性。需求分析:确定软件系统必须具备的功能和性能要求,以及运行环境等约束条件。2.软件开发时期总体设计:设计软件的总体结构,包括系统架构、模块划分、接口设计等。详细设计:对总体设计中的每个模块进行详细的算法设计和数据结构设计。编码和单元测试:按照详细设计的要求编写程序代码,并对每个模块进行单元测试,检查模块是否正确实现了规定的功能。综合测试:将所有模块集成在一起进行测试,以发现软件系统中可能存在的各种问题,确保软件系统的功能和性能符合要求。3.软件维护时期软件维护是软件生命周期中持续时间最长的阶段,主要任务是使软件系统持久地满足用户的需求。包括改正性维护、适应性维护、完善性维护和预防性维护。

(二)各阶段的主要任务和文档1.问题定义阶段主要任务:明确问题的性质、工程目标和规模,回答"要解决的问题是什么"。文档:问题定义报告,简要描述问题及目标。2.可行性研究阶段主要任务:从经济、技术、操作等方面研究问题的解决方案是否可行。文档:可行性研究报告,包括项目概述、技术可行性、经济可行性、操作可行性、结论等内容。3.需求分析阶段主要任务:确定软件系统的功能、性能、数据、界面等方面的需求,建立系统的逻辑模型。文档:需求规格说明书,准确描述软件系统的需求,是软件开发的重要依据。4.总体设计阶段主要任务:设计软件的总体结构,划分模块,确定模块之间的接口和调用关系,设计数据库结构等。文档:总体设计说明书,包括系统总体结构图、功能说明、模块设计、数据库设计等。5.详细设计阶段主要任务:对总体设计中的每个模块进行详细的算法设计和数据结构设计,确定每个模块的内部实现细节。文档:详细设计说明书,包括模块的算法描述、数据结构设计、接口设计等。6.编码和单元测试阶段主要任务:按照详细设计的要求编写程序代码,并对每个模块进行单元测试。文档:程序清单、单元测试报告。7.综合测试阶段主要任务:将所有模块集成在一起进行测试,检查软件系统是否满足需求规格说明书的要求。文档:综合测试计划、测试用例、测试报告。8.软件维护阶段主要任务:对软件进行改正性维护、适应性维护、完善性维护和预防性维护。文档:维护记录,记录维护的原因、内容、过程等。

三、软件需求分析(一)需求分析的任务1.确定对系统的综合要求,包括功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求等。2.分析系统的数据要求,确定系统需要处理的数据及其之间的关系,设计合理的数据库结构。3.导出系统的逻辑模型,通过对需求的分析和整理,建立系统的逻辑模型,如数据流图、数据字典、状态转换图等。4.修正系统开发计划,根据需求分析的结果,对原有的项目开发计划进行修正,明确软件开发的范围、进度、资源等。

(二)需求获取的方法1.访谈:与用户、客户、领域专家等进行面对面的交流,了解他们对系统的需求和期望。2.问卷调查:设计问卷,向相关人员发放,收集他们对系统的需求信息。3.用户观察:观察用户在实际工作中的操作流程和行为习惯,获取需求。4.文档分析:分析现有的相关文档,如业务流程文档、规章制度等,提取有用的需求信息。5.原型法:快速建立系统原型,让用户试用并提出反馈意见,从而获取需求。

(三)需求规格说明书的内容1.引言:包括编写目的、项目背景、定义、参考资料等。2.任务概述:描述系统的目标、运行环境、条件与限制等。3.需求规定:详细描述系统的功能需求、性能需求、数据需求、界面需求等。4.运行环境规定:说明系统的硬件环境、软件环境等运行要求。

四、总体设计(一)总体设计的任务1.设计软件系统的总体结构,包括确定系统的模块划分、模块之间的调用关系和接口。2.设计数据库结构,根据系统的数据需求,设计合理的数据库模式,包括数据库表结构、关系等。3.制定测试计划,根据总体设计的结果,制定系统的测试策略和测试计划,包括测试的范围、方法、步骤等。4.估算成本和进度,对软件开发所需的成本和时间进行估算,为项目管理提供依据。

(二)软件设计的原则1.模块化:将软件系统划分为若干个模块,每个模块具有独立的功能,便于软件的开发、维护和扩展。2.抽象:抽取事物的本质特性而忽略非本质细节,提高软件的可理解性和可维护性。3.信息隐蔽:将模块的实现细节隐藏起来,只向其他模块提供接口,降低模块之间的耦合度。4.模块独立:包括模块的内聚性和耦合性,高内聚低耦合的模块设计有利于软件的质量和可维护性。

(三)总体设计的图形工具1.层次图:用于描述软件系统的层次结构,展示模块之间的层次关系。2.HIPO图:由层次图和输入/处理/输出图组成,全面描述软件系统的结构和功能。3.结构图:描述软件系统中模块之间的调用关系和接口,反映系统的控制流和数据流。

五、详细设计(一)详细设计的任务1.为每个模块进行详细的算法设计,确定模块内部的具体执行步骤和逻辑。2.为每个模块设计数据结构,确定模块所使用的数据类型、数据组织方式等。3.对数据库进行物理设计,确定数据库在物理存储设备上的存储结构和存取方法。4.其他设计,如用户界面设计、输入输出格式设计等。

(二)详细设计的描述工具1.程序流程图:用图形符号表示程序的控制流程和执行顺序。2.盒图(NS图):一种不允许随意转移控制的流程图,更符合结构化程序设计的要求。3.PAD图:用二维树形结构的图来表示程序的逻辑结构。4.判定表:用于描述多条件、多操作的复杂逻辑关系。5.判定树:一种图形化的决策模型,直观地表示条件和决策结果之间的关系。

六、软件测试(一)软件测试的目的和原则1.目的:发现软件中的错误,而不是证明软件没有错误。2.原则应当把"尽早地和不断地进行软件测试"作为软件开发者的座右铭。测试用例应由测试输入数据和对应的预期输出结果组成。程序员应避免检查自己的程序。在设计测试用例时,应包括合理的输入条件和不合理的输入条件。充分注意测试中的群集现象。严格执行测试计划,排除测试的随意性。应当对每一个测试结果做全面检查。妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

(二)软件测试的方法1.黑盒测试:不考虑软件的内部结构和实现细节,只依据软件的需求规格说明书,检查软件的功能是否符合要求。常用的黑盒测试方法有等价类划分法、边界值分析法、因果图法、决策表法等。2.白盒测试:考虑软件的内部结构和实现细节,依据程序的内部逻辑来设计测试用例,检查程序中的每条通路是否都能按预定要求正确工作。常用的白盒测试方法有逻辑覆盖测试、基本路径测试等。

(三)测试阶段的信息流测试阶段的信息流主要包括测试计划、测试用例、测试执行和测试结果报告。测试计划根据软件需求规格说明书和总体设计说明书制定,明确测试的目标、范围、方法、步骤等;测试用例依据测试计划设计,包括输入数据和预期输出结果;测试执行按照测试用例对软件进行测试;测试结果报告记录测试过程中发现的问题及测试结果,反馈给开发人员进行修改。

七、软件维护(一)软件维护的类型1.改正性维护:诊断和改正软件在使用过程中发现的软件错误。2.适应性维护:修改软件以适应环境的变化,如操作系统升级、硬件更换等。3.完善性维护:根据用户的需求,增加软件的功能或改进软件的性能。4.预防性维护:为了提高软件的可维护性和可靠性,对软件进行的修改和优化。

(二)软件维护的过程1.提出维护要求:用户发现软件存在问题或提出新的需求,向维护人员提出维护要求。2.分析维护要求:维护人员对维护要求进行分析,确定维护的类型和内容。3.制定维护计划:根据分析结果,制定维护计划,包括维护的步骤、时间安排、资源需求等。4.实施维护:按照维护计划对软件进行修改,包括代码修改、测试等。5.验收维护成果:对维护后的软件进行测试和验收,确保软件满足维护要求。

(三)软件可维护性的度量1.可理解性:指别人能理解软件的结构、功能和内部逻辑的难易程度。2.可测试性:指软件容易被测试的程度。3.可修改性:指软件容易被修改的程度。4.可靠性:指软件在规定的时间和条件下,完成规定功能的能力。5.可移植性:指软件从一个环境移植到另一个环境的难易程度。

八、软件工程管理(一)软件项目计划1.项目范围:明确软件项目要开发的软件系统的功能、性能、界面等方面的边界。2.资源:确定软件项目所需的人力、物力、财力等资源。3.进度安排:制定软件项目的开发进度计划,包括各个阶段的开始时间和结束时间。4.成本估算:对软件项目的开发成本进行估算,包括人员费用、设备费用、软件工具费用等。

(二)软件质量保证1.软件质量的定义:软件满足明确或隐含需求的能力。2.质量保证活动:包括制定质量计划、质量控制、质量评审等,确保软件质量符合要求。3.软件质量度量:使用一些指标来度量软件质量,如缺陷密度、可靠性增长模型等。

温馨提示

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

评论

0/150

提交评论