software engineering Final Review | 软件工程期末复习

软件工程复习

more important

  1. 模块独立性
  • 模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。
  • 高内聚低耦合
  1. 类间的关系
  • 继承
  • 继承关系表示子类重用父类的属性和操作,子类对象也是父类的对象,有时也称父类是子类的泛化。
  • 聚集
  • 普通聚集关系:一个部件对象可同时参与多个整体对象
  • 构成关系:限定一个部件对象在任意时刻只能参与一个整体类的对象,部件对象与整体类对象共存亡
  • 关联
  • 表示两个类的对象之间存在着用于消息传递的稳定通道。
  • 依赖
  • 依赖类B的对象需要向被依赖类A的对象传递消息;被依赖类A可作为依赖类B操作的形参类型
  • 依赖关系表示临时性的消息传递通道,操作完成通道消失
  • 依赖关系是关联关系的弱化,它表示被依赖的类的变化会影响到依赖类。
  1. 实体类、控制类、边界类的职责
  • 边界类
  • 描述目标软件系统与外部环境的交互,主要任务有:
  • 界面控制
  • 外部接口
  • 环境隔离
  • 实体类
  • 表示目标软件系统中具有持久意义的信息项及其操作。具有内向收敛特征
  • 控制类
  • 控制类作为完成用例任务的责任承担者,协调、控制其他类共同完成用例规定的功能或行为。
  1. 面向功能度量的优缺点
  • 优点
  • 与程序设计语言无关
  • 功能点度量能用于软件项目的开发初期
  • 缺点
  • 它涉及到的主观因素比较多,如各种权函数的取值
  • 信息领域中的某些数据有时不容易采集
  • Fp的值没有直观的物理意义
  1. 风险分析、风险管理、风险识别、风险分类
  • 风险分析
  • 风险识别
  • 风险估计
  • 风险评价
  • 风险驾驭
  • 风险分类
  • 项目风险
  • 技术风险
  • 商业风险
  • 风险识别
  • 产品规模
  • 商业影响
  • 客户特性
  • 过程定义
  • 开发环境
  • 建造技术
  • 人员数量及经验
  1. CMM能力成熟度模型
  • 见下文important of eight
  1. 基线是什么,成为基线的流程,修改基线的流程
  • 基线标志软件开发过程的各个里程碑,任一SCI一旦形成文档并复审通过,即成为一个基线,它标志开发过程中的一个阶段的结束。
  • 流程:
  • 修改流程:首先将它拷贝到私有工作区并在项目数据库中锁住,不允许其他人使用;在私有工作区中完成修改控制过程并复审通过之后,再把修改后的SCI释放并回送到项目数据库,同时解锁。

应用题

  1. 需求分析
  • 用例规约(基本流、备选流、前置条件、后置条件)
  • 数据流图
  1. 时序图(基本流的,对象,类,传消息)
  2. 类图
  • 边界类
  • 控制类
  • 实体类
  1. 顶层图(会画一层图,自顶向下逐步求精)
  2. 软件测试
  • 程序流图
  • 基本路径

important

First

  • 软件危机特征

  • 软件开发周期大大超过规定日期

  • 软件开发成本严重超标

  • 软件质量难于保证

  • 软件危机产生的原因

  • 用户需求描述不准确

  • 开发人员对需求的理解差异

  • 大型项目管理经验缺乏

  • 开发人员素质与经验

  • 缺乏有力的方法学与工具技术

  • 软件本身的复杂性

  • 软件工程过程的理解

  • 软件过程定义了

  • 方法使用顺序

  • 提交的文档

  • 为保证质量和适应变化所需的管理

  • 软件开发各个阶段的里程碑

  • 软件过程为了(目标)

  • 付出较低成本

  • 达到要求功能

  • 较好的性能

  • 维护成本低

  • 按时交付

  • 软件工程三要素

  • 成本

  • 质量

  • 工期

  • 商业风险

  • CMM的分级,各个级别

软件过程模型

  • 瀑布模型
  • 原型模型
  • 优缺点
  • 适合那些项目
  • 项目维护-估算模型
  • 公示、参数
  • 工作量计算方法
  • 边界类、实体类、控制类的职责

Third

  • 面向对象的需求建模
  • 核心时利用面向对象的概念和方法为软件需求建造模型
  • 面向对象的特点、抽象、封装(选择、判断)
  • 特点
  • 自然性
  • 软件复用
  • 可扩展
  • 可管理性
  • 核心概念
  • 对象:属性和操作的封装
  • 属性
  • 操作
  • 继承:类之间的内在联系及属性和操作的共享
  • 聚集:部分-整体关系
  • 消息:对象与外部世界关联的唯一途径5
  • 基于UML、用例的需求模型,怎么理解

forth

  • 模块独立性
  • 是指软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块的接口是简单的
  • 耦合、内聚
  • 耦合:模块之间的相互连接的紧密程度的度量
  • 内聚:模块功能强度的度量
  • 高内聚、低耦合

sisth

  • 结构化分析模型
  • 数据字典
  • 实体-关系图——数据对象描述
  • 状态-迁移图——控制规格说明
  • 数据流图——加工规格说明

seventh

  • 软件测试技术
  • 黑盒测试:完全不考虑程序的内部结构和处理过程,测试仅在程序界面上进行
  • 白盒测试:按照程序内部的逻辑测试程序、检验程序中的每条通路是否按照预定的要求正确工作。因此又称结构测试或逻辑驱动测试

技术

在哪儿里测

测什么

技术类型

举例

黑盒测试/功能测试/数据驱动测试

仅在程序界面

功能正常/输入输出/保持外界数据完整

确认技术

“我们在构造一个正确的系统吗”

白盒测试/结构测试/逻辑驱动测试

程序内部代码

基本路径/判断/循环/数据结构

验证技术

“我们在正确的构造一个系统吗”

  • 单元测试

  • 测试对象 —— 模块(软件设计最小单位)

  • 测试方法:多采用白盒测试,多模块可并行测试

  • 测试任务

  • 接口

  • 局部数据结构

  • 边界条件

  • 独立执行通路

  • 错误处理通路

  • 集成测试

  • 测试方法:常采用黑盒测试技术

  • 策略:

  • 非渐增式测试

  • 渐增式测试

  • 自顶向下结合

  • 深度优先

  • 广度优先

  • 自底向上结合

  • 确认测试

  • alpha测试:在开发者的场所由用户进行,在开发者注视和控制的环境下进行

  • beta测试:最终用户在自己的场所进行

eighth

  • 项目管理

  • 任务

  • 制定软件项目的实施计划和方案

  • 对人员组织分工

  • 按照计划进度,以及成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的各项要求和任务。

  • 目的:为了使软件项目能够在预定成本、进度、质量的前提下顺利完成,必须对软件工程项目进行计划、组织、监控和管理。

  • 面向功能的度量 见上文第4条

  • 风险分析

  • 活动

  • 风险识别

  • 风险估计

  • 风险评价

  • 风险驾驭

  • 分类

  • 项目风险:威胁到项目计划

  • 技术风险:威胁开发软件质量和预计交付时间

  • 商业风险:威胁到软件的生存能力

  • McCall的软件质量要素图

  • 修正性

  • 可维护、灵活性、可测试性

  • 转移性

  • 可移植性、可重用性、连接性

  • 运行性

  • 正确性、可靠性、有效性、完整性、可用性

  • 商业风险

  • 市场风险

  • 策略风险

  • 管理风险

  • 预算风险

  • 风险分析内容

  • 8.4.1

  • 风险识别

  • 产品规模

  • 商业影响

  • 客户特性

  • 过程定义

  • 开发环境

  • 建造技术

  • 人员数量及经验

  • 风险估计

  • 奉献驾驭

  • CMM简单介绍

  • 分级

  • 初始级

  • 可重复级

  • 已定义级

  • 已管理级

  • 优化级

  • 衡量软件工程

  • 提高的参考基准

ninth

  • 基线技术:见上文第7条

大题

  • 数据流图
  • 基本路径
  • 用例规约、时序分析

some tables

software type

分类依据

软件类型

功能

系统软件/应用软件

实时性

实时软件/非实时软件

运行环境

单机软件/网络软件

加工数据类型

事务处理软件/科学和工程计算软件

计算方法

基于传统算法的/基于符号演算和推理的人工智能软件

常用

系统软件/个人计算机软件/实时嵌入式软件/科学和工程计算/事务处理/人工智能/Web/

dev function

Name

description

结构化

自顶向下,逐步求精

面向对象

以对象、对象关系构建软件系统

形式化

以正确性为目标,用RSL描述需求规约

software process

description

特征

使用特征

优点

缺陷

瀑布模型

软件开发过程的分解与软件生存周期划分绑定在一起

当需求完全正确且明确时可用

适用于单主机计算模式

必须确定需求/软件第一版耗时漫长/易出现潜伏缺陷/开发时间长

增量过程模型

上述两者独立

模块式开发

用户反馈可及时/体系结构良好

规模不能大/顶层设计经验要求严格/常需要基础服务

专用模型

包括基于构建的软件过程模型、web应用软件过程模型、面向方面AOP的软件过程模型、以形式化开发方法为基础的变换模型

,

,

,

software dev model

基础与前提

特征

举例

软件需求完全确定

/

瀑布模型

初期仅提供基本需求

渐进式

原型模型/螺旋模型

形式化方法为基础

/

变换模型

螺旋模型

象限/活动

说明

优点

缺点

制定计划

确定目标/选定方案/弄清限制条件

/

/

风险分析

分析方案/考虑如何处理风险

/

/

实施工程

开发

/

/

客户评估

提修改建议

/

/

Welcome to add!


software engineering Final Review | 软件工程期末复习
https://www.frytea.com/post/20190603051800.html
作者
Tianlun Song
发布于
2019年6月3日
更新于
2024年6月10日
许可协议