《软件工程》复习大纲

发布 2021-05-13 17:21:28 阅读 7092

1. 软件:是能够完成预定功能和性能的可执行的计算机程序。包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档。即:软件 = 程序 + 文档。

2. 软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。

3. 软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;

4. 软件生产技术进步缓慢,是家居软件危机的重要原因。

5. 软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。

6. 软件工程:是指导计算机软件开发和维护的工程学科。

它采用工程的概念、原理、技术和方法来开发与维护软件,目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。

7. 软件的发展:大体经历了程序、软件、软件产品3个阶段。

8. 工具和方法是软件开发技术的两大支柱。

9. 三种编程范型:过程式编程范型、面向对象编程范型、基于构件技术的编程范型。

10. 三代软件工程:①传统软件工程②面向对象软件工程③基于构件的软件工程。

1. 软件生存周期:计划、开发、运行3个时期。

2. 软件生存周期的主要活动:需求分析—》软件分析—》软件设计—》编码测试—》软件测试—》运行维护。

注:需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。

软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。

软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。

单元测试通常与编码同时进行。软件测试:单元测试、集成测试、系统测试。

3. 软件过程:围绕软件开发所进行的一系列活动。

4. 瀑布模型是一种基于软件生存周期的线性开发模型。

5. 瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。

6. 瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。

7. 常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。

8. 增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。增量:小而可用的软件。

9. 一般情况下,第一个增量是软件的核心部分。如(增量一:需求-设计-实现和集成-交付客户)

10. 螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计划、风险分析、建立原型、用户评审 4种活动。(高风险的大型软件采用此方法)

1. 结构化设计 sd ; 结构化分析 sa ; 软件需求规格说明书 sas ; 结构图 sc ;数据字典 dd ; 状态转换图 std ; 数据流图 dfd

2. sa需求分析的两项基本任务:建立系统分析模型、编写软件需求规格说明书。

3. 分析模型组成:功能模型、数据模型、行为模型 3种。

4. 抽象和分解是结构化分析的主要指导思想,细化的实质是分解。分解和细化是软件设计的策略。

5. 需求分析的步骤:需求获取、需求提炼、需求描述、需求验证。

6. sa模型的组成:如下图。

7.sa模型的描述:

a) dfd、dd、pspec。(它们是早期sa模型的基本组成部分)

b) cfd、cspec和std。(它们是早期sa模型的扩展部分)

c) e-r图(适用于描述具有复杂数据结构的软件数据模型)

8.画分层数据流图:★例题3-8

9.模块设计(详细设计)的主要任务是编写软件的模块设计说明书。目的是确定模块采用的算法和块内数据结构。

10.模块设计的原则:清晰第一的设计风格、结构化的控制结构、逐步细化的实现方法。

11.“结构化”保证程序的清晰、易读,“逐步细化”实现程序的正确、可靠。

结构化程序设计原理和逐步细化的实现方法是完成模块设计的基础。

1.面向对象是以问题空间**现的物体为中心进行模型化的一种技术。面向对象技术通过抽象化现实世界中的物体,来描述一个系统。

2.对象是客观世界的实体或概念在计算机中的表示。一个对象是具有唯一对象名和固定对外接口的一组属性和操作集合,用来模拟组成或影响现实世界的一个或一组因素。

3.面向对象的基本特征:抽象、封装、集成、多态。

4.面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性。

5.类与对象的关系:可看成是抽象与具体的关系。组成类的每个对象都是该类的实例,实例是类的具体事务,类是各个实例的综合抽象。通过类还可以生成许多同类型的对象。

6.uml的组成:uml的模型元素、uml的元模型结构、图和视图。

7. uml的4个抽象层次:用户模型、模型、元模型、元元模型。

8.uml的2类图:

静态图(用例图、类图、对象图、构件图、部署图);

动态图(状态图、时序图、协作图、活**)

5种视图:用例视图、逻辑视图、进程视图、构件视图、部署视图。

9. uml的特点:同意标准、面向对象、表达能力强,可视化。

10.用例图就是由主角、用例以及它们之间的关系构成的图。该图说明了用例模型中的关系。用例模型由一组用例图组成,其基本组成部件是用例、参与者和系统。

11.类图:是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图最基本的元素是类或者接口。

12.对象图是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。

13.状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。

14.时序图用来描述对象之间的动态交互,着重体现对象间消息传递的时间顺序。

15.协作图用来描述相互协作的对象间的交互和链接。

16.构件图显示软件构件之间的依赖关系。

17.部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。

1. 软件需求主要指一个软件系统必须遵循的条件或具备的能力。

2. 软件需求的3个层次:业务需求、用户需求、功能需求。软件项目中40%~60%的问题源自软件需求阶段。

3. 软件需求的6个特性:功能性、可用性、可靠性、性能、可支持性、设计约束。

4. 需求工程与需求分析之间的区别:

需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。

所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。

5. 需求分析的步骤:需求获取、需求建模、需求描述(编写srs)、需求验证。

6. 需求分析的主要任务:建立需求模型。需求分析是迭代过程。

1. 面向对象分析的任务是:将需求阶段产生的需求模型转换为软件分析模型。

面向对象设计的任务是:将分析阶段建立的分析模型转换为软件设计模型。

2. 面向对象分析ooa的建模步骤:需求理解、定义类和对象、标识对象的属性和操作、标识类的结构和层次、建立对象-关系模型、建立对象-行为模型、评审ooa模型。

3. ooa的优点:同时加强了对问题空间和软件系统的理解;改进包括用户在内的软件分析有关的各类人员之间的交流;对需求的变化具有较强的适应性;很好的支持软件复用;确保从需求模型到设计模型的一致性。

4. 分析模型(是一种概念模型)的特点:全面覆盖软件的功能需求;分析模型与软件的实现无关;分析模型的表述方法与所采用的分析技术有关。

5. 典型的五层次模型:建立类/对象层(抽象出类和对象)、建立属性层(设计静态属性和关系)、建立服务层(定义动态属性和消息通信)、建立结构层(定义层次结构关系)、建立主题层(每个主题构成一个子系统)。

1. 软件设计的基本概念:模块(定义输入、输出和特性的程序实体)与构件、抽象与细化、信息隐藏、软件复用。

2. 软件设计的基础:分析阶段对目标系统的数据、功能、行为建模。

3. 软件设计包括:数据设计、体系结构设计、接口设计、过程设计。

4. 模块的独立性从2个方面度量:模块本身的内聚、模块之间的耦合。

5. 内聚分类:低内聚(偶然性内聚、逻辑性内聚、时间性内聚)、中内聚(过程性内聚、通讯性内聚)、高内聚(顺序性内聚、功能性内聚)。

6. 耦合分类:弱耦合(非直接耦合、数据耦合、特征耦合)、中耦合(控制耦合)、较强耦合(外部耦合、公共耦合)、强耦合(内容耦合)。

7. oo设计模型由系统架构层、类和对象层、消息层、责任层4个层次组成。

8. 面向对象设计中,数据和过程被封装为类/对象的属性和操作;接口被封装为对象间的消息,而体系结构的设计则体现为系统的技术基础设施和具有控制流程的对象间的协作。

9. ood的软件设计可划分为2个层次:系统架构设计、系统元素设计。

10. 系统架构设计的内容:系统高层结构设计、确定设计元素、确定任务管理策略、实现分布式机制、设计数据存储方案、人机界面设计。

系统元素设计的内容:子系统设计、分包设计、类/对象设计。

11. 层次架构的基本原则:将系统划分不同的层次。确定设计元素的主要工作是:确定设计类、子系统、子系统接口。

1,编码的目的:使用选定的程序设计语言,把设计模型翻译为用该语言书写的源程序(或源**)。

2,编码的风格:清晰的前提下追求效率。

3.编码风格的要求:使用标准的控制结构、实现源程序的文档化、满足用户友好的输入输出风格。

4.测试的特性:挑剔型、复杂性、不彻底性、经济型。

5.测试分类:静态分析(静态分析器分析、**评审(**会审、走查、办公桌检查));动态测试(黑盒测试(功能测试)、白盒测试(结构测试))。

6.测试文档内容:测试计划、测试报告。测试计划的主体是测试内容说明:

测试项目名称、测试目的、步骤和进度、测试用例设计。测试报告的主题是测试结果:测试项目名称、实测结果和期望结果的比较、发现问题、测试效果。

7.黑盒测试:根据被测试程序功能来进行测试,也称功能测试。白盒测试:以程序结构为依据,又称结构测试。

8.黑盒测试分类:等价类法、边界值法、错误猜测法。

9.白盒测试分类:路经测试(点覆盖、边覆盖、路径覆盖)、逻辑覆盖测试(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)。

10.测试的层次性:单元测试、集成测试、确认测试、系统测试。(确认测试和系统测试都是对整个程序的测试,二者都属于高级测试)。

1.软件维护:在一个软件产品交付使用后对其进行修改,以纠正故障、改进其性能和其他属性,或使产品适应改变了的环境。目的:

满足用户对已开发产品的性能与运行环境不断提高的要求,进而延长软件的寿命。分类:完整性维护、适应性维护、纠错性维护等。

软件工程复习大纲

1 软件工程定义,本质特性,出现背景。软件工程是指导计算机软件开发和维护的一门工程学科。软件工程是 把系统的 规范的 可度量的途径应用于软件开发 运行和维护过程,也就是把工程应用于软件 研究中提到的途径。本质特性 1 软件工程关注于大型程序的构造。2 软件工程的中心课题是控制复杂性。3 软件经常变化...

软件工程复习大纲

考试题型。名词解释 填空 简答题 应用题 分析 设计 测试等 重点内容。第1章软件与软件工程的概念。1.了解与软件相关的基本概念,包括软件 程序 数据 文档。2.了解软件危机的表现及发生的原因。3.掌握软件工程的概念。4.软件生命周期由哪三个时期组成,每个时期又可划分为哪些阶段?每个阶段的主要任务是...

软件工程复习大纲

软件工程概论复习大纲。一 选用教材 软件工程导论 张海藩清华大学出版社 第5版 课程负责人 马丽。授课教师 08 软件工程1 3班马丽。二 考试方法。一 考试方法 笔试,闭卷,满分100分。二 考试时间 110分钟。三 试卷结构 一 题型及分数比例。选择题20 填空题 10 判断题 10 简答题20...