首页 > 其他分享 >软件工程——学堂在线学习笔记四

软件工程——学堂在线学习笔记四

时间:2022-12-26 20:04:58浏览次数:48  
标签:需求 功能性 组织 系统 笔记 学堂 软件工程 文档 软件


文章目录

  • ​​一. 需求工程师​​
  • ​​1. 优秀需求⼯程师的目标​​
  • ​​二. 需求定义​​
  • ​​1. 概述​​
  • ​​2. 需求难度在?​​
  • ​​3. 需求的内容​​
  • ​​4. 将问题与解决⽅案分开​​
  • ​​三. 需求分类​​
  • ​​1. 按产品需求分类​​
  • ​​(1). 功能性需求​​
  • ​​(2). 非功能性需求​​
  • ​​2. 按抽象层次详细程度分类​​
  • ​​(1). 业务需求​​
  • ​​(2). ⽤户需求​​
  • ​​(3). 系统需求​​
  • ​​(4). 软件设计规约​​
  • ​​三. 需求工程活动​​
  • ​​1. 需求抽取(Elicitation)​​
  • ​​2. 需求分析(Analysis)​​
  • ​​3. 需求规约(Specification)​​
  • ​​4. 需求管理(Management)​​
  • ​​5. 需求验证(Validation)​​
  • ​​四. 需求来源​​
  • ​​1. 四世界模型​​
  • ​​2. 获取方法​​
  • ​​五. 需求获取​​
  • ​​1. 需求获取技术​​
  • ​​(1). 主要​​
  • ​​(2). 次要​​
  • ​​六. 撰写需求文档​​
  • ​​1. 软件需求规格说明 (SoftwareRequirements Specifica4on, SRS)​​
  • ​​2. 需求文档的组织形式​​
  • ​​3. 软件需求规格说明SRS的风格​​
  • ​​4. 需求规格说明生成过程​​

一. 需求工程师

  1. 分析问题和解决问题的能力
  2. 人际沟通及交流能力
  3. 软件工程知识和技能
  4. 应用领域有关知识
  5. 书面语言组织和表达能力

1. 优秀需求⼯程师的目标

  • 识别错误假设
  • 确保一致性
  • 提升依从性
  • 减少彼此误解
  • 提高支持速度和效率
  • 提升客户满意度
  • 撰写优质需求文档

二. 需求定义

1. 概述

“需求”是对外可见的系统特征。— Alan M. Davis

“需求管理” 有三项任务:

  • 学习 ——需求获取
  • 剪枝 ——需求优选
  • 文档化 ——撰写需求规格说明书

需求, 是人们要解决的某个问题或达到某种目的的需要。是系统或其组成部分为满足某种书面规定(合同,标准,规范等)所要具备的能力。需求将作为系统开发,测试,验收,提交的正式文档依据。—— IEEE 610.12, 1990

2. 需求难度在?

将机器领域(内部环境)用来描述应⽤领域(外部环境)

3. 需求的内容

为什么要设计该系统
系统由谁使⽤
系统要做什么
系统涉及哪些信息
对解决⽅案有何额外限制
如何使⽤该系统
质量需达到何种程度

4. 将问题与解决⽅案分开

软件工程——学堂在线学习笔记四_建模

三. 需求分类

1. 按产品需求分类

软件工程——学堂在线学习笔记四_系统需求_02

(1). 功能性需求

系统的功能性需求是指满⾜系统需求需要提供的功能有时,功能需求也被称为“⾏为需求”

(2). 非功能性需求

⾮功能性需求定义软件系统以及软件开发过程为满⾜系统功能需求要满⾜的

其他约束条件

软件工程——学堂在线学习笔记四_建模_03

2. 按抽象层次详细程度分类

(1). 业务需求

业务需求是指那些可以帮助企业达成组织⺫标(包括策略目标)的需求项

(2). ⽤户需求

系统的⽤户需求指的其满⾜会影响系统的⽤户接受程度的需求有时候,⽤户需求被称作“⽤户接⼝需求”

(3). 系统需求

系统需求的满⾜使得系统实现预期的功能,它从⽤户的⾓度描述系统在做什么,与系统是由什么硬件和软件实现⽆关。

(4). 软件设计规约

三. 需求工程活动

1. 需求抽取(Elicitation)

目标: 主动与干系人协同工作,找出他们的需求,识别潜在的冲突,磋商解决矛盾,定义系统范围与边界

实质:了解待解决的问题及其所属领域

关键:确保该问题的解决是有商业价值的

方法:

  • 协同工作(Collaborative sessions)
  • 面谈 (Interviewing techniques)
  • 问卷调查(Questionnaires)
  • 观察法 (Ethnography)
  • 原型法 (Prototyping)
  • 文档分析(Documentation)
  • 建模 (Modeling)
  • 角色扮演(Roleplaying)
  • 非功能性需求列表(Checklists of NFRs)

2. 需求分析(Analysis)

目标:对产品及其与环境的交互进行更深入的了解,识别系统需求,设计软件体系结构,建立需求与体系结构组件间的关联,在体系结构设计实现过程中进一步识别矛盾冲突,并通过干系人之间的协调磋商解决问题。

实质:概念建模———选择常用的建模语言,进行功能建模和信息建模

关键:体系结构设计与需求分配

3. 需求规约(Specification)

需求建模方法

软件工程——学堂在线学习笔记四_系统需求_04

4. 需求管理(Management)

贯穿从需求获取到软件系统下线的全过程。需求管理涉及软件配置管理、需求跟踪、影响分析和版本控制

  • 需求跟踪 (Requirements traceability)
    描述和追踪一条需求的来龙去脉的能力,包括向前追踪到软件制品,向后追踪到需求来源
  • 变更请求管理 (Change Requests)
    系统化的变更管理
  • 需求属性管理 (Requirements attributes)

5. 需求验证(Validation)

对其他需求工程活动的质量的保证。通过数学的形式化工具或工程化的测试
过程来确保系统满足干系人的要求。

验证方法

  • 评审(Review)
  • 原型化(Prototyping)
  • 模型验证(Model validation)
  • 确认测试(Acceptance Tests)

四. 需求来源

1. 四世界模型

软件工程——学堂在线学习笔记四_规格说明_05

2. 获取方法

确定干系人

  • 这里需要强调与客户之间的联络关系
  • 系统的设计到底与谁的利益息息相关

定义边界

  • 怎样界定问题的范围?

定义目标与情景实例

  • 目标与情景实例是组织原始需求信息的有效手段

分析可行性

  • 如何进行可行性研究
  • 如何选择好的项目

分析风险

  • 风险管理应长期、持续进行,而非阶段性、一次性的任务
  • 进行灾难及事故分析,以确定风险

五. 需求获取

需求获取过程中,最困难的不是记录用户需求,而是与用户探讨磋商,发现真正要解决的问题,确定适用的方案。

1. 需求获取技术

(1). 主要

面谈

  • 一样的地点,一样的时间
  • 少量人参与,分析师驱动

问卷调查

  • 不同的时间,不同的地点
  • 很多人参与,分析师观察

群体诱导技术

  • 相同或不同的地点,同样的时间
  • 20人左右,分析师参与

参与调查法

  • 同样的时间,同样的地点
  • 分析师参与

(2). 次要

  • ⽂档分析
  • 头脑⻛暴
  • 情景分析
  • 原型化⽅法
  • 建模⽅法
  • 需求讨论会

六. 撰写需求文档

1. 软件需求规格说明 (SoftwareRequirements Specifica4on, SRS)

  • 是具有一定法律效力的合同文档
  • 清楚地描述软件在什么情况下,需要做什么,以及不能做什么
  • 以输入/输出、输入到输出之间的转换方式来描述功能性需求
  • 描述经过干系人磋商达成共识的非功能性需求
  • 一般参考需求定义模板,覆盖标准模板中定义的所有条目
  • 作为后续的软件评估依据和变更的基准

2. 需求文档的组织形式

文档需要有逻辑组织结构
• 例如:参照IEEE的模板

典型的组织形式包括
• 按系统能够响应的各种外部环境情况来组织
• 按系统特征来组织
• 按系统的响应方式来组织
• 按所管理的外部数据对象来组织
• 按用户类型来组织
• 按软件的工作模式来组织
• 按子系统的划分来组织

3. 软件需求规格说明SRS的风格

  • 描述性的自然语言文本
  • 从用例模型产生
  • 从需求数据库中生成
  • 从混合模型中生成

4. 需求规格说明生成过程

软件工程——学堂在线学习笔记四_系统需求_06


标签:需求,功能性,组织,系统,笔记,学堂,软件工程,文档,软件
From: https://blog.51cto.com/u_15923298/5970752

相关文章

  • 软件工程——学堂在线学习笔记三
    文章目录​​一、团队开发管理​​​​1.团队组织与管理​​​​(1).人员的选择​​​​(2).团队的概念​​​​(3).开发团队组织模式​​​​2.项目沟通管理​​​​(......
  • 声纹识别技术初步了解(阅读笔记)
    目录1.声纹识别分类1.1按任务分类1.1.1声纹验证(speakerverification)1.1.2声纹辨认(speakeridentification或speakermatching)1.2按文本内容分类1.2.1文本相关1.2.......
  • UE4学习笔记27——【UI】3DUI的交互和显示
    P69.3DUI的交互和显示P69 (新建一个包含第一人称射击模板的项目)新建一个文件夹(用于存放自己新建的文件)(我重命名为了“WJJ1221P69”),在此文件夹中,右键“用户界面——......
  • 微积分 II 笔记
    5.1定积分的概念定义定积分是积分的一种,是函数\(f(x)\)在区间\([a,b]\)上积分和的极限若\(f(x)\)在\([a,b]\)有界,在\([a,b]\)上任意插入\(n\)个分点将......
  • 一些排序算法的学习笔记
    大纲:冒泡排序插入排序选择排序快速排序归并排序堆排序一、冒泡排序简述:把一个数组看成一个装水的桶,数组中的每个元素的值代表其质量。一开始这些元素被我用箩筐......
  • Android笔记--视图显示
    视图显示视图的宽高设置方式一:在.xml文件中设置视图的宽和高通过调用android:layout_width设置视图的宽通过调用android:layout_height设置视图的高宽和高的取值主要......
  • 软件工程——软件测试(黑盒测试、白盒测试、测试分析报告)
    经过前面软件测编码阶段,是不是我们就可以把软件发布出去供用户使用了呢?不是的,为了确保软件不会出现不必要的差错,还需要经过重重测试的。目录​​软件测试的目的​​​​软件......
  • 软件工程——文档篇
    何为软件工程?就是客户和开发人员提前定好相关需求,并形成文字材料,开发人员通过这个需求来开发软件,为了软件能够更适用,并进行相关的维护测试等方面的一个过程。简单来说就是开......
  • CTC算法学习笔记
    CTC算法在OCR或语音识别任务中,经常出现不知道从哪里开始对齐比如对​​apple​​,OCR出aaappppllle这种东西如果只是简单的去重的话就变成了​​aple​​ConnectionistT......
  • manjaro安装有道云笔记
    我在使用debtap过程中,可以安装!但是竟然更新不了!真是绝了!所有我就在网上找到了有道云笔记的软件的英文名字——ynote-desktop使用yay ynote-desktop查找软件包,随后:会出现......