第五章 软件工程

发布于:2025-09-13 ⋅ 阅读:(15) ⋅ 点赞:(0)

目录

一、软件需求

1.需求的层次

2.质量功能部署

3.需求获取

4.需求分析

结构化分析

面向对象分析

SA和OOA基本步骤

5.需求规格说明书

6.需求变更

需求变更管理过程如图所示

常见的需求变更策略

变更控制委员会

7.需求跟踪

二、软件设计

1.结构化设计

模块结构

系统结构图(SC)(模块结构图)

2.面向对象设计

3.统一建模语言(UML)

UML中的关系

UML2.0中的图

UML视图

4.设计模式

三、软件实现

1.软件配置管理

2.软件测试

测试的方法

测试的类型

面向对象的测试

软件调试

四、部署交付

1.软件部署

2.持续交付

3.持续部署

五、软件质量管理

六、软件过程能力成熟度

1.软件过程能力成熟度模型CSMM由4个能力域、20个能力子域、161个能力要求组成。

2.软件过程能力成熟度等级


  • 软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本。
  • 软件工程由方法、工具和过程3个部分组成。

一、软件需求

1.需求的层次

层次

说明

业务需求

是指反映组织机构或用户对系统、产品高层次的目标要求。通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。

用户需求

描述的是用户的具体目标,或用户要求系统必须能完成的任务想要达到的结果。

系统需求

功能需求:功能需求通常是通过系统特征的描述表现出来的。

非功能需求:非功能需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和合约,是指系统必须具备的属性或品质,又可细分为软件质量属性(例如易用性、可维护性、效率等)和其他非功能需求。

约束:是指对开发人员在软件产品设计和构造上的限制,常见的有设计约束和过程约束。

2.质量功能部署

质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,它将软件需求分为三类:

  • 常规需求:用户认为系统应该做到的功能或性能,实现越多用户会越满意。
  • 期望需求:用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。
  • 意外需求:意外需求也称为兴奋需求,是用户要求范围外的功能或性能,实现这些需求用户会更高兴,但不实现也不影响其购买的决策。

3.需求获取

  • 需求获取是确定和理解不同的项目干系人对系统的需求和约束的过程。
  • 常见的需求获取方法包括用户访谈、问卷调查、采样、会议讨论法、界面原型法、情节串联版、联合需求计划等。

4.需求分析

  • 需求分析将提炼、分析和审查已经获取到的需求,以确保所有的项目干系人都明白其含义并找出其中的错误、遗漏或其他不足的地方。
  • 在需求获取阶段获得的需求是杂乱的,一个好的需求应该具有无二异性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特征。

结构化分析

  • 使用SA(结构化)方法进行需求分析,其建立的模型的核心是数据字典,围绕这个核心,有三个层次的模型,如图所示:

 

  • DFD需求建模方法(过程建模和功能建模方法),DFD方法有以下4种基本元素(模型对象)组成:数据流;处理;数据存储;外部项(数据源或者数据终点)
  • DFD方法利用应用问题域中数据及信息的提供者与使用者、信息的流向、处理和存储这4种元素描述系统需求,建立应用系统的功能模型。具体的建模过程及步骤:
  1. 明确目标,确定系统范围。
  2. 建立顶层DFD图。
  3. 构建第一层DFD分解图。
  4. 开发DFD层次结构图。
  5. 检查确认DFD图。
  • 数据字典最重要的作用是作为分析阶段的工具。它是一种用户可以访问的记录数据库和应用程序元数据的目录。数据字典是描述数据的信息集合,是对系统中使用的所有数据元素定义的集合。
  • 数据字典主要包括数据项、数据结构、数据流、数据存储、处理过程等几个部分。

面向对象分析

  • OOA所强调的是在系统调查资料的基础上,针对oo方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
  • OOA模型有5个层次(主题层、对象类层、结构层、属性层和服务层)5个活动(标识、对象类、标识结构、定义主题、定义属性和定义服务)组成。

名称

说明

抽象

  1. 抽象原则包括过程抽象和数据抽象两个方面。
    1. 过程抽象是指任何一个完成确定功能的操作序列,其使用者都可以把它看做一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。
    2. 数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。
  2. 数据抽象是OOA的核心原则,它强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(对象),对象的外部只需要知道他它什么,而不必知道它如何做。

封装

把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。

继承

特殊类的对象拥有其对应的一般类的全部属性与服务


网站公告

今日签到

点亮在社区的每一天
去签到