软件工程及软件过程改进和复用

软件工程

软件需求

包括三个不同层次:

  • 业务需求
  • 用户需求和功能需求
  • 非功能需求

软件设计

基本原则是信息信息隐蔽和模块独立性。
内聚是模块功能强度的度量。内聚性和偶合性相对。
内聚按照强度又低到高以下几种类型:

  • 偶然内聚 模块成分之间毫无关系
  • 逻辑内聚 逻辑相关的功能放到同一模块中。修改局部功能可能会影响全局
  • 时间内聚 只是因为时间因素关联在一起。
  • 过程内聚 处理成分按照次序执行
  • 通信内聚 所有成分操作同一数据集
  • 顺序内聚 各个成分和同一功能密切相关
  • 功能内聚 所有成分对于完成单一功能都是必须的

耦合性由低到高的几种类型:

  • 非直接耦合 通过主模块的控制和调用来实现
  • 数据耦合 彼此之间通过简单数据参数来交换输出
  • 标记耦合 通过参数表传递记录信息。实质上是传递数据结构地址
  • 控制耦合 通过开关、标志、名字等控制选择另一个模块
  • 外部耦合 一组模块全部访问同一全局简单变量
  • 公共耦合 同一组模块都访问同一公共数据环境
  • 内容耦合

软件测试

目的:检验软件是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试可划分为:

  • 白盒测试 根据软件结构进行逻辑路径进行宿舍
  • 灰盒测试 关注输入输出的正确性,同时也关注内部表现
  • 黑盒测试 只关注输出与输出的正确性

桌前检查:程序员自行检查程序。
代码审查:程序员和测试员组成会审小组,静态分析的过程。
代码走查:评测人员自行运算,然后进行测试。
面向对象测试:采用面向对象开发相对应的测试技术,算法层、类层、模版层、系统层
性能测试:通过测试,测试系统的各项性能指标的变化情况
压力测试: 获取系统最大服务级别
第三方测试: 独立软件开发方和用户方的测试

软件维护

可维护性的三大因素:可理解性、可测试性、可修改性
性质上分为:纠错性维护、测试性维护、预防性维护、完善性维护

软件过程改进SPI

CMM软件能力成熟度模型
结合质量管理和软件工程等双重规定制定的一套针对软件生产过程的规范、
成熟度划分为五个等级:

  • 初始级 软件过程特点是无秩序性,软件产品所取得的成功往往依赖于极个别人的努力和机遇
  • 可重复级 已经建立了基本的项目管理过程,可用于对成本、进度、和功能特性进行跟踪。一个可管理的过程则是一个可重复的过程
  • 已定义级 用于管理和工程软件均已文档化标准化,并形成整个软件组织的标准软件过程。
  • 已管理级 软件过程和产品质量有详细的度量标准。
  • 优化级 能够不断地、持续性的进行过程改进。

CMMI 五个成熟度级别:

  • 完成级 企业在完成级上的项目实施对实施人员有很大的依赖性
  • 管理级 遵守既定的计划与流程,权责到人,保证企业的所有项目实施都会得到成功
  • 定义级 不仅除上,还保障项目完成,有标准流程。
  • 量化管理级 实现数字化管理,对管理流程做到量化与数字化
  • 优化级 能够主动改善流程,运用新技术,实现流程优化。

软件复用

又称软件重用,软件元素包括:程序代码、测试用例、设计文档、设计过程、需求分析文档。领域知识。
可重用软件元素称作软件构件。可重用的软件元素越大,就说重用粒度越大。

你可能感兴趣的:(软件工程及软件过程改进和复用)