软件工程期末考点重点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程主要知识点串讲

第一讲概述

1 如何理解软件工程及其研究内容:

软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法。

软件工程是一门旨在指导生产无缺陷软件的学科,既指导如何生产能够及时交付、成本不超预算并且满足用户需求的软件产品。

软件工程研究内容包括两个方面:(1)要考虑专业软件开发所需要的理论、方法和工具----工程技术问题;(2)软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题

2软件的内涵:

软件包括:

①能够提供客户所需功能与性能的计算机程序;

②能够使程序得以处理信息的数据结构;

③用以描述程序开发过程及使用的文档。

3 软件产品的两种类型包括:

通用软件和定制软件(多数),前者是为某一类通用的市场设计开发的,后者是为一个特定的用户设计开发。

4 一个成功软件项目的三个要素包括:按时交付,不超预算和满足用户要求。

5软件过程与软件生命周期的相关概念:

●软件过程是指开发或制作软件产品的一系列活动及其成果.

●所有的软件过程中都包括四个基本活动:

1.描述( Specification)- 系统应该提供的功能及其开发约束;

2.开发( Development)- 软件产品的生产过程;

3.有效性验证(Validation )- 检验软件产品是否满足了客户的需要;

4.进化( Evolution )- 按照用户的变更要求不断的改进软件。

●软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、

软件设计、实现、测试、维护与退役等活动。

6 优良软件的属性包括可维护性、可依赖性、有效性、可接受性。

7 CASE是一些用于支持软件过程活动的自动化、半自动化的软件系统。(计算机扶助软件工程)

第二讲软件过程

1一个软件过程模型是软件过程的一种抽象表示,它通常是对软件过程某一特定方面的抽象描述。

2 瀑布模型的图形表示及其特点:

1)这种模型把软件过程划分成几个顺序的阶段。阶段间具有依赖性,前一个阶段结束,后一个阶段才能开始;

2)这种模型很难对用户变更做出调整,只适用于需求非常清楚和需求变更被严格限制的情况下。

3 进化式开发的基本思想、类型与特点:

基本思想:通过开发系统原型和用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。又叫做原型式开发方法。

进化式开发有两种基本类型:探索式开发和抛弃式原型法。

这种模型开发周期短、能够对变更做出快速反应,但其开发过程缺乏过程可见性,系统结构通常较差,而且需要一些特别的技术(如原型快速开发技术),这些技术通常与主流技术不兼容。所以它适用于中小规模的交互系统或生命周期较短的系统,也可以用于大型系统的局部开发(如系统界面),可以和瀑布模型混合使用。

4 增量式开发的图形表示及特点:

在这种开发方式中,系统不是作为一个整体交付,而是被分解成若干个增量,每个增量交付系统的部分功能。用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。

5螺旋模型的特点:

⏹这种模型用螺旋线表示软件过程,而不是采用一系列活动及活动间的反馈;

⏹螺旋中的每个回路表示软件过程中的一个阶段;

⏹这种模型充分考虑了软件开发所面临的风险,并贯穿软件过程始终。

第三讲需求工程

1 需求工程过程包括可行性研究、需求导出与分析、需求描述以及需求有效性验证等活动,如图:

2可行性研究要决定被提议的系统是否值得去做,包括信息评估、信息汇总和书写报告三部分工作。

3 软件需求有两个不同层次的描述,即用户需求与系统需求:

⏹用户需求

⏹从客户的角度,采用自然语言配合以图表对目标系统应提供的服务以及系统操作要受到的约束进行的声明。

⏹系统需求

⏹系统需求是一种结构化文档,要运用一些专业的模型详细的描述系统的功能及其约束。系统需求文档有时也称为功能描述,应该是精确的,它可以成为双方之间合同的重要内容。

4 功能性需求、非功能性需求及领域需求的相关概念:

⏹功能需求:对系统应提供的功能,系统在特定的输入下做出的反应及特定条件下的行为的描述。某些情况下还要包括系统不应做什么。

⏹非功能需求:对系统提供服务或功能时收到的约束进行描述。如时间约束、开发过程约束和标准等。

⏹领域需求:这种需求来自于系统的应用领域,反映领域特征。可能是功能需求也可能是非功能需求。

功能性需求与非功能性需求相比较,非功能需求往往更为关键,因为非功能需求表示的是系统的整体特征,而功能性需求描述的则是局部功能。

(要求能够识别功能性需求与非功能性需求!!!看课件上例子)

5 书写用户需求的准则:

⏹设计一个标准格式,以帮助减少遗漏,避免不必要的细节描述;

⏹使用一致的语言,尤其强调区别强制性需求与希望性需求;

⏹使用文本加亮来突出关键性需求;

⏹尽量避免使用计算机专用术语。

6 用自然语言描述系统需求存在的问题及替代方法:

用自然语言描述系统需求存在不明确、描述随意性大、不能进行模块化描述的缺点,可以使用结构化自然语言、设计描述语言、图形描述语言和数学描述方法来代替自然语言。

7 需求导出的过程活动包括:需求发现、需求的分类与组织、优先排序和冲突解决、需求文档化。

8 需求信息的来源包括已有的文件,系统的信息持有者(stakeholders)以及相近系统的规约描述。

9 场景的常用描述方法是自然语言和用例,描述内容一般包括:

⏹场景开始时系统初始状态的描述;

⏹一个标准事件流的描述;

⏹对可能出现的错误及解决方法的描述;

⏹其它并行事件流的描述;

⏹场景结束状态的描述。

10 结构化分析方法以及主要的结构化分析模型

结构化分析方法是一种面向数据流的系统建模技术,它从数据加工的角度对系统进行规格描述;结构化分析模型主要包括数据词典、数据流图、实体-关系图、状态-迁移图。

相关文档
最新文档