软件工程知识(软考备考要点汇总).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程知识(软考备考要点汇总).doc》由会员分享,可在线阅读,更多相关《软件工程知识(软考备考要点汇总).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流软件工程知识(软考备考要点汇总).精品文档.软件工程知识(软考备考要点汇总)1.1概述软件由计算机程序、数据及文档组成,同时与硬件、数据库人、过程等共同构成计算机系统。软件工程是1968年在德国的NATO会议上提出的,希望用工程化的原则和方法来克服软件危机;而软件危机就是软件开发和维护过程中的各种问题,由于软件开发阶段缺乏好的方法的指导和好的工具的辅助,而且缺少有关的文档,使得大量的软件难以维护。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、减低软件成本。软件
2、工程包括三个要素:方法、工具和过程。软件工程基本原理(7个):n 按软件生存周期分阶段指定计划并认真实施;n 坚持进行阶段评审;n 坚持严格的产品控制;n 使用现代程序设计技术;n 明确责任,使得工作结果能够得到清楚的审查;n 用人少而精;n 不断改进开发过程;软件生命周期是指由软件定义、软件开发和软件维护等阶段组成的全过程,反映软件生存期内各种工作得组织以及各个阶段如何衔接。下表归纳了软件生存周期各个阶段的任务、参与人员和产生文档。阶段 任务 参与人员 产生文档 软件定义阶段待开发软件要“做什么” 系统分析 确定待开发软件的总体要求和适用范围,以及与之有关的硬件、支撑软件的要求 用户、项目负
3、责人、系统分析员 可合并项目计划书中 软件项目计划 确定待开发软件的目标,对其进行可行性分析,并对资源分配、进度安排等做出合理的计划 用户、项目负责人、系统分析员 可行性分析报告、项目计划书 需求分析 确定待开发软件的功能、性能、界面等要求,从而确定系统的逻辑模型 用户、项目负责人、系统分析员 需求规格说明书 软件开发阶段待开发软件“怎么做” 软件设计 概要设计 模块分解,确定软件的结构,模块的功能和模块间的接口,以及全局数据结构的设计 系统分析员、高级程序员 设计说明书、数据说明书、模块开发卷宗 详细设计 设计每个模块的实现细节和局部数据结构的设计 高级程序员、程序员 编码 用某种程序语言为
4、每个模块编写程序 高级程序员、程序员 程序清单 软件测试 发现软件中的错误,并加以纠正 高级程序员或系统分析员(另一部门或单位) 软件测试计划、软件测试用例说明,软件测试报告 软件维护阶段开发后交付使用的软件的维护 软件维护 使软件适应外界环境的变化、实现功能的扩充和质量的改善而修改软件 维护人员 维护计划、维护报告 生命周期法:生命周期法认为:每一个软件系统都有一定的生命周期。软件的生命周期是指一个软件系统从其提出、调查到分析、设计和有效使用,直至被淘汰或取代的整个期间。软件生命周期法就是按软件生命周期的各个阶段划分任务,按一定的规则和步骤,有效地进行软件开发的方法。通常一个软件系统的生命周
5、期可分为五个阶段:可行性分析、分析阶段、设计阶段、实施阶段、运行与维护阶段原型法:原型法是先根据用户的最主要要求,开发出能实现系统最基本功能的一个原型,再根据用户对原型使用与评价的意见,反复修改完善原型,直到等到用户满意的最终系统为止。原型法分4个阶段:确定用户需求;设计原型;使用、评价原型;修改、完善原型。1.2软件维护和软件管理软件开发项目管理基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具软件管理工作涉及到软件开发工作的方方面面,其直接对象包括人、财、物,简单地说,人就是指软件开发人员,财就是指项目经费,物就是指软件项目。也许还没有关于这方面的专门理论,
6、但在工商管理领域已经有十分成熟的管理学理论,他山之石,可以攻玉,所以我们完全可以引进到软件项目方面的管理。作为软件管理人员,应该站在高处来俯瞰整个项目,如果有不识庐山真面目的感觉就不太好了。有了俯瞰全局的意识这一前提,采用适当的管理技术,项目开展就容易罗。软件项目的管理工作可以分位四个方面:软件项目的计划、软件项目的组织、软件项目的领导和软件项目的控制.1 软件项目的计划软件开发项目的计划包括定义项目的目标,以及达到目标的方法。他涉及到项目实施的各个环节,带有全局的性质,是战略性的。计划应力求完备,要考虑到一些未知因素和不确定因素,考虑到可能的修改。计划应力求准确,尽可能提高所依据的数据的可靠
7、程度。主要工作集中在软件项目的估算、软件开发成本的估算和软件项目进度安排。软件项目计划的目标是提供一个能使项目管理人员对资源、成本和进度做出合理估算的框架。这些估算应在软件项目开始时的一段有限时间内作出,并随着项目的进展进行更新。2 软件项目的估算软件项目管理过程开始于项目的计划,在做项目计划时,第一项活动是估算。现在已经使用的使用技术是时间和工作量的估算。因为估算是其他项目计划活动的基石,而且项目计划又未软件工程过程提供了工作方向,所以我们不能没有计划就着手开发,否则就会陷入盲目性。估算本身带有风险,估算资源、成本和项目进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气。估算的
8、精确程度受到多方面的影响。首先,项目的复杂性对于增加软件计划的不确定性影响很大,复杂性越高,估算的风险就越高。复杂性是相对度量的,他与项目参加人员的经验有关,比如如果让搞MIS的项目组去搞操作系统设计显然增加了复杂性。其次,项目的规模对于估算的精确性和功效的影响也比较大,因为随着软件规模的扩大,软件相同元素之间的相互依赖、相互影响也迅速增加,因而估算时进行问题分解也会变得更加困难。还有项目的结构化程度也影响项目估算的风险,这里的结构性是指功能分解的简便性和处理信息的层次性,结构化程度提高,进行精确估算的能力就提高,相应风险将减少。此外,历史信息的有效性也影响估算的风险,在对过去的项目进行这综合
9、的软件度量之后,就可以借用来比较准确地进行估算。影响估算的因素远不止这些,比如用户需求的频繁变更给估算带来非常大的影响。估算的依据是软件的范围,包括功能,性能、限制、接口和可靠性。在估算开始之前,应对软件的功能进行评价,并对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常常采用功能分解的办法。性能的考虑主要包括处理和响应时间的需求。约束条件则标识外部硬件、可用存储和其他现有系统对软件的限制。另外软件项目计划还要完成资源估算,包括人力资源、硬件资源和软件资源。在考虑各种软件开发资源时最重要的是人,必须考虑人员的技术水平、专业、人数以及在开发过程各阶段对各种人员的需要
10、。硬件资源作为一种工具投入。软件资源包括各种帮助开发的软件工具,比如编程工具、管理工具、测试工具,还有操作系统和数据库等。1.3软件开发工具与环境(CASE)用来辅助软件开发、运行、维护、管理和支持等过程中的活动的软件称为软件工具,通常也称为CASE(计算机辅助软件工程)工具。整个软件开发过程要使用很多开发工具,其中包括分析工具、设计工具、编程工具、测试工具、维护工具等等。软件开发工具是指支持软件产品开发的软件系统,它由软件工具集和环境集成机智构成。工具集包括支持软件开发相关过程、活动、任务的软件工具;环境集成机智为工具集成和软件开发、维护和管理提供统一的支持。软件开发环境是把一组相关的工具集
11、成在环境中,提供数据集成、控制集成和界面集成等机制。其中: 数据集成机制:提供统一的数据模式和数据接口规范,需要相互协同的工具通过这种统一的规范交换数据。数据集成可由共享文件、共享数据结构或共享信息库等不同的层次; 控制集成机制:支持各工具或各开发活动之间的通信、切换、调度和协同工作,并且支持软件开发过程的描述、执行和转接;通常消息传送的方式实现控制的集成。 界面集成机制使这些工具具有统一的界面风格,从而为软件开发、维护、管理等过程的各项活动提供连续的、一致的全方位支持。集成型软件开发环境由工具集和环境集成机制组成,这种环境应该具有开放性和可剪裁性;环境集成机制的核心是环境数据库。1.4软件分
12、析可行性分析的任务是从技术上、经济上、使用上、法律上分析需解决的问题是否存在可行的解。需求分析是软件生存周期中相当重要的一个阶段。需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。具体有以下几点: 确定软件系统的综合要求 分析软件系统的数据要求 导出系统的逻辑模型 修正项目开发计划 如有必要,可开发一个原型系统需求分析的基本原则是能够表达和理解问题的信息域和功能域;以层次化的方式进行分解和不断细化;要给出系统的逻辑视图和物理视图;描述软件需求的方法:功能层次模型:一般来讲就是系统的功能图,模块分布图等描述整个系统的功能的分布和功能的层次结构;数据流模型:就是以数据流为着眼点的分析方法
13、得到的模型,主要通过数据在整个系统的流动情况来确定系统的主要功能主线和流程;控制流模型:通过了解和界定系统中控制线,通过控制流的走向和控制的对象来确定系统的功能分布和控制与被控制的关系;结构化分析(SA)方法是一种面向数据流的需求分析方法,它适用于分析大型数据处理系统。结构化分析方法的基本思想是自顶向下逐层分解,这样做可以把一个大问题分解成若干个小问题,经过多次逐层分解,每个最底层的问题都是足够简单、容易解决的,这个过程就是分解的过程。结构化方法的分析结果由数据流图DFD、数据词典和加工逻辑说明几个部分组成。其中,DFD的基本成分有数据流(data flow)、加工(process)、文件(f
14、ile)和源/宿(source/sink)。n 画数据流图的基本步骤:自外向内、自顶向下、逐层细化、完善求精;n 数据流图的父图与子图要平衡, 即输入和输出的数据流一致;n 数据流图中的每个加工至少有一个输入数据流和一个输出数据流;n 局部的数据存储不画出来,只有当局部数据存储作为某些数据加工之间的数据接口才画出,这有利于信息隐蔽;n 画数据流的时候不画控制流,两者的区别就是控制流中没有数据;n 一个加工的数据流与输出流不应该同名;n 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出流向两个不同的加工;n 保持数据守恒:一个加工的所有输出数据必须能从该加工的所有的输入流中
15、获得;n 在整套数据流图中,每个文件都必须既有读文件的数据流也有写文件的数据流;1.5软件设计软件设计原则: 软件设计的原则对提高软件的设计质量有很大的帮助。 抽象抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。过程抽象和数据抽象是常用的两种主要抽象手段。 模块化模块化是指将一个待开发的软件分解成若干个小的简单的部分模块,每个模块可独立地开发、测试、最后组装成完整的软件。这是一种复杂问题的“分而治之”的原则。模块是指执行某一特定任务的数据结构和程序代码。一个模块有它的外部特征和内部特征。 信息隐蔽、数据封装信息隐蔽是开发整体程序结构时使用的法则,即将每个程
16、序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。 模块独立模块独立是指每个模块完成一个相对独立的子功能,并且与其他模块之间的联系简单。衡量模块独立程度的度量标准有两个:耦合和内聚。耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。按耦合度从低到高依次有7种耦合方式。 非直接耦合(独立运行) 数据耦合(用参数表传递简单数据) 标记耦合(传递数据结构或者一部分) 控制耦合(传递的信息包括控制模块的信息) 外部耦合(模块与软件之外的环境有关) 公共耦合(多个模块引用同一全局的数据区)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 知识 备考 要点 汇总
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内