软考中级——软件工程基础概念总结

目录

一、需要记和背的

1.软件工程基本原理

2、软件生存周期

3、软件过程中的能力成熟度模型 CMM

4、能力成熟度模型集成

5.概要设计内容

6.软件配置管理内容

7.风险管理内容

8.软件质量特性和子特性

9.系统设计基本原理

10.系统总体结构设计原则

11.软件开发方法

12.软件质量保证

其他:

二、需要理解的

1.软件过程模型

2.演化模型

3.结构化分析方法——模块独立性

4.项目成本估算模型

三、需要练习的(略)

1.软件测试

2.软件进度管理

3.软件度量

4.结构化分析方法


一、需要记和背的

1.软件工程基本原理

7点:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应少而精、承认不断改进软件工程时间的必要性

2、软件生存周期

7点:可行性分析与项目开发计划、需求分析、需要完成体系结构和模块分析的概要设计、每个模块具体功能描述的详细设计、编码、测试、维护

3、软件过程中的能力成熟度模型 CMM

  1. 初始级,杂乱无章,个人英雄主义、没有明确定义的步骤
  2. 可重复级,建立了基本的项目管理过程和时间来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功
  3. 已定义级,管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目采用根据实际情况修改后的得到的标准软件过程来开发和维护软件
  4. 已管理级,制定了软件过程和产品质量的详细度量标准。软件过程的产品质量都被开发组织的成员所理解和控制。
  5. 优化级,加强了定量分析,通过过程质量的反馈和来自新观念、新技术的反馈使过程能不断持续的改进

4、能力成熟度模型集成

阶段性模型,5点:初始的,已管理的,已定义的,定量管理的,优化的

连续性模型,5点:CL0 未完成的,CL1已执行的,CL2已管理的,CL3已定义级的,CL4定量管理的,CL5优化的

5.概要设计内容

        设计软件系统总体架构;将系统划分成模块,确定模块功能与接口、调用关系等;数据结构设计(详细设计也有涉及)、数据库设计;编写概要设计文档、数据库设计说明书、用户手册、修订测试计划等。

6.软件配置管理内容

基线、文档等软件配置项、版本控制、变更控制

7.风险管理内容

风险识别;风险预测、风险评估、风险控制

8.软件质量特性和子特性

软考中级——软件工程基础概念总结_第1张图片

9.系统设计基本原理

 抽象、模块化、信息隐蔽、模块独立

10.系统总体结构设计原则

分解—协调原则 ; 自顶向下原则 ; 信息隐蔽、抽象原则 ; 一致性原则 ; 明确性原则;高内聚低耦合;模块扇入系数和扇出系数要合理;模块规模适当

11.软件开发方法

  • 结构化方法:自定向下,逐层分解。原则是分解与抽象,适合数据处理领域问题,难处理大规模、复杂项目,难适应需求变化
  • Jackson方法:面向数据结构的开发方法,以数据结构为驱动,使用与小规模项目,难适应数据结构与输出关系没有对应关系的项目,
  • 原型化方法: 沟通,改进不断迭代,适用于需求不明确,规模不大的项目
  • 面向对象方法: 略(自己感受) 

12.软件质量保证

7点:应用技术方法;进行正式的技术评审;测试软件;标准的实施;控制变更;度量;记录保存和报告。

其他:

度量是任何工程科学的必备活动

逆向工程,也可以叫反向工程。在软件工程领域,一般是先UML设计,然后用工具生成代码,这个叫正向工程;相应的,从代码生成UML设计图叫做逆向工程

二、需要理解的

1.软件过程模型

瀑布模型,顺序的执行需求分析、设计、编码、测试、运行和维护。以文档为驱动适合与需求明确的软件项目模型。

增量模型,把需求分段为一系列增量产品,每个增量使一个瀑布模型。版本交付快,开发风险低,但是需要对用户变更要求进行规划。

V模型,类似于瀑布模型但是又看重于测试。顺序的执行需求分析、设计、编码、单元测试、集成测试、系统测试、验收测试。

2.演化模型

原型模型,适合需求不明确,或者需求经常变化的软件项目模型。通过不断的快速开发,交付客户,通过客户的反馈意见不断改进,反复进行的迭代开发。

螺旋模型,一个强调风险分析的一个模型。分为制定计划、风险分析、实施工程、用户评估4个步骤,相当于瀑布模型加上快速原型模型。

喷泉模型,以用户需求为动力,以对象作为驱动模型,适合于面向对象的开发方法。开发活动(分析、设计、编码)具有迭代型和无间隙性,每个可以开发活动可以交叉进行。

*基于构建的开发模型,开发构建,利用预先包装的构建来构造应用系统。具有螺旋模型开发特点。

*形式化方法模型,建立在严格数学基础上的一种软件开发方法。

统一过程UP模型:用例和风险驱动,以架构为中心,迭代并且增量的开发过程,由UML方法和工具支持。所谓迭代就是将整个软件开发项目划分为许多个小的"袖珍项目"。分为4个技术阶段:初始阶段,精化阶段,构建阶段,移交阶段。初始阶段主要确定项目的边界、识别用例、展示系统架构、评估成本和风险,以"生命周期目标"为里程碑;细化阶段主要是分析系统问题领域、建立软件架构基础、淘汰高风险元素等,以"生命周期架构"为里程碑;构建阶段主要是开发和组装构建,以"初始运作功能"为里程碑;交付阶段主要是测试和发布版本以及产品培训相关,以"产品发布"为里程碑;

敏捷方法:

软考中级——软件工程基础概念总结_第2张图片

  1. 极限编程XP,XP是轻量级、高效、低风险、柔性、可预测的、科学的软件开发方式。不断的沟通,反馈,改进完成。4个价值观(沟通、简单性、反馈、勇气),5个原则(快速反馈、简单性假设、逐步修改、提倡更改和优质工作),12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准
  2. 水晶法:认为每一个不同的项目都需要一套不同的策略、约定、和方法论。认为人员素质对软件质量有重要影响。
  3. 并列争球法(SCRUM):在每一次冲刺(一个15到30 天周期 ,长度由开发团队决定),开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的特性来自产品订单(product backlog), 产品订单(产品目标)是指按照优先级排列的需要完成的工作的概要的需求(目标)。哪些订单项(目标项目)会被加入一次冲刺,由冲刺计划会议决定。 在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。 在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。
  4. 自适应软件开发:原则6个:有一个使命作为指导;特征被视为客户价值的关键点;过程中的等待是很重要的,“重做”与“做”同样关键;把变化视为软件开发实际情况的调整;确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;风险也包含其中。
  5. *敏捷统一过程(AUP):采用UP经典活动(初始,精化,构建,转化)。提供一些列活动,使团队为软件项目构想出一个全面的过程流。每一个活动使用敏捷,并将有意义的增量尽快交给用户

3.结构化分析方法——模块独立性

 软考中级——软件工程基础概念总结_第3张图片

软考中级——软件工程基础概念总结_第4张图片

4.项目成本估算模型

  • COCOMO 估算模型:分为低级、中级、详细的COCOMO模型。主要以源代码行数估计来确定工作量(不包括注释和文档)。中级将成本看成是程序大小和一系列的"成本驱动属性"的函数,考虑了15种影响软件,再低级模型中增加了调节因子。而详细的COCOMO模型还考虑了需求分析,软件设计等每一步的"成本驱动属性"的影响
  • COCOMO Ⅱ 估算模型:分为应用组装模型(看着用户界面、系统交互以及技术成熟度),早期阶段设计模型,再需求已经稳定且体系结构已经建立时使用;体系结构阶段模型,再软件构造的过程中使用。应用组装模型采用对象点估算,早期阶段设计模型采用功能点估算,功能点可以转化为代码行
  • Putnam 模型:一种动态多变量模型。建立了开发环境、代码行数、开发持续时间,软件开发和维护在整个生存期所花费的工作量

三、需要练习的(略)

1.软件测试

黑盒测试——等价类划分

黑盒测试——边界值分析

白盒测试——语句覆盖:每个语句至少执行1次

白盒测试——判定覆盖: 每个判定语句至少取一次真值 和 假值 ,或者说每一个分支都至少被执行一次

白盒测试——条件覆盖: 判定语句中的每个子逻辑条件都取一次真值和假值

白盒测试——判定/条件覆盖:条件 + 判定 ;每个判定语句中各取一次真假值,每个子逻辑条件都取一次真值和假值

白盒测试——条件组合覆盖 : 每个子逻辑的判定笛卡尔积

白盒测试——路径覆盖: 每个从开始到结束的所有可能的路径 至少执行一次

2.软件进度管理

甘特图 Gantt

PERT图

3.软件度量

McCabe度量法

4.结构化分析方法

DFD 数据流图 和  DD数据字典

你可能感兴趣的:(软考——软件设计师,系统架构设计师,软件工程,结构化分析,模块独立性,概念,知识点)