软件需求分析期末考试

需求基础

第二章从概念上让大家理解什么是需求,以及需求的研究目标是什么,研究对象是什么。
1 需求源于哪两方面?
用户的痛点和用户的期望
2 问题域与解系统
对问题域和解系统的理解,放图:
在这里插入图片描述
软件系统通过影响问题域,能够帮助人们解决问题,称为解系统
而需求工程师是问题域和解系统之间连接的桥梁和接口
3 需求的层次性(不考定义,需理解)
在这里插入图片描述
业务需求:对应解决方案等一些宏观性的问题。
用户需求:问题域的知识,业务流程,ER图等等。
系统级需求:建立一些细致的模型描述它。
这三步有一个逐步细化的过程,当时老师通过一个例子帮助我们理解。
在这里插入图片描述
业务需求比较宏观,将其分解成用户需求如下:
在这里插入图片描述

最后面对我们要开发的软件,我们实际上面对的是系统特性(system feature,SF)
在这里插入图片描述

4 需求的分类(不考定义,但要了解)
功能需求(Functional Requirement):
和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统所能够执行的活动,这些活动可以帮助用户完成任务。功能需求主要表现为系统和环境之间的行为交互。
性能需求(Performance Requirement):
系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、内存使用率等。
质量属性(Quality Attribute):
系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,例如可靠性程度、可维护性程度等。
对外接口(External Interface):
系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口、数据库接口等等。
约束
进行系统构造时需要遵守的约束,例如编程语言、硬件设施等
软件需求说明书就是对各种需求一个概括和规整

需求工程过程

在这里插入图片描述
需求获取:输入的是用户需求、期望和问题
·需求分析:UML那些东西
·需求规格说明:最主要的是写好需求规格说明文档
·需求验证:要是有问题,就反过头看到底是哪个阶段出问题了。

需求获取

1 需求获取中的常见困难
(1)用户和开发人员的背景不同,立场不同
(2)普通用户缺乏概括性、综合性的表述能力
(3)用户存在认知困境
(4)用户越俎代庖
(5)缺乏用户参与

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

明确问题

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

解决方案

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

活动图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

涉众分析与硬数据采样

1. 如何进行涉众分析?不同类型信息系统,不同的方法

组织级系统(Organization-Wide System)

分析组织内各类人群的互动关系

战略信息系统(Strategic Information System)

分析组织内各类人群的互动关系
各种风险/机遇对既有互动关系的影响

组织间系统(Inter-Organizational Systems)

分析组织间的互动关系
分析关系到组织间互动的各类人群在组织内的互动关系

补充:大众型产品 例如:搜索引擎、电子商务、移动互联网应用等等

分析产品定位人群(用户)
产品功能在用户社会关系网中的关联作用
分析用户与社会关系的互动

问题域(Problem domain)”指提问的范围、问题之间的内在的关系和逻辑可能性空间。软件工程:在软件工程中,问题域是指被开发系统的应用领域,即在客观世界中由该系统处理的业务范围

2 涉众分析过程
在这里插入图片描述
** 基于涉众扩展特征进行涉众优先级的评估**
在这里插入图片描述

3. 识别涉众的方法

简单方法:先膨胀后收缩(Expand  Shrink)
经验方法:检查列表(Checklist)
经典方法:涉众网络

简单方法:先膨胀后收缩(Expand - Shrink)
①膨胀。
在该阶段,需求工程师在收集到背景资料后,凭借自己的经验,尽可能多地列出涉众类别,越多越好。
②收缩。
在该阶段,需求工程师判断是否有两类或多类涉众的立场是一样的,将一样的多个类别进行合并。

优点 简单易用。
如果涉众群体比较复杂,可能会出现遗漏.

检查列表:经典列表
用户: 最终使用和操作产品的人
关注软件功能,主要信息来源
客户: 为软件系统的开发付费的人
关注经济上的成本、收益
开发者: 负责实现软件系统的人
关注技术上的成本和收益,可行的需求
管理者:参与软件系统开发事务管理的人
投资方管理者 、执行负责人、项目管理者
关注系统的开发进程

优点:容易操作,如果经验丰富会比较有效
缺点:有些类别太粗,尤其是用户作为一个类别是远远不够的

检查列表:经典列表
领域专家:在问题域中具有丰富知识的专家
关注软件中的知识,问题域分析
政府力量:法律法规 、长远规划、政策意向等
起约束和指导作用
市场力量:组织中的市场部门人员
关注用户的想法
维护人员:系统的非功能属性
例如质量

涉众网络:

  1. 从一些比较容易发现的涉众出发,通常包括客户、管理者和相关的投资者

  2. 由初始涉众集体讨论,列出一个涉众类别列表

  3. 对上一步产生的涉众类别列表进行分析 ,缩减为一个关键涉众类别列表

  4. 由上一步的各个关键涉众类别选择代表,集中讨论,列出新的涉众类别列表

  5. 如果涉众类别列表趋于稳定,就结束涉众识别过程 ,否则转向第2步

优点:适用于复杂情况下的涉众识别,保障正确性和完备性 缺点:比较麻烦,反复召集涉众进行讨论

涉众描述
额313
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


硬数据

什么是硬数据?

  1. 实际工作中产生的表格、文档资料
  2. 是一种精化过的知识
  3. 可用于获取事实,理解问题域
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用例图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么需要用例和场景
在这里插入图片描述


需求获取方法 —— 面谈

问题基本上可以分为两种类型:开放式问题和封闭式问题
开放式问题(Open-Ended)
封闭式问题(Closed)

开放式问题:
被会见者对答复的选择可以是开放和不受限制的,他们可能答复两个词,也可能答复两段话。
在希望得到丰富(具有一定深度和广度)信息时,开放式问题比较合适
例如:
“你觉得把所有的经理都置于一个内联网内怎么样?”
“请解释你是如何做进度决策的?”
“对公司中企业对企业电子商务的当前状态有何看法?”

开放式问题的优缺点:
优点:
让被会见者感到自在; 会见者可以收集被会见者使用的词汇,这能反应他的教育、价值标准、态度和信念;
提供丰富的细节; 对没采用的进一步的提问有启迪作用; 让被会见者更感兴趣; 容许更多的自发性; 会见者可以在没有太多准备的情况下进行面谈
缺点:
提此类问题可能会产生太多不相干的细节;
面谈可能失控;
开放式的回答会花费大量的时间才能获得有用的信息量;
可能会使会见者看上去没有准备。

封闭式问题:
答案有基本的形式,被会见者的回答是受到限制的
例如:
“项目存储库每个星期更新多少次?”
“电话中心一个月平均收到多少个电话?”
“下列信息中哪个对你最有用:(1)填好的客户投诉单;(2)访问web站点的客户的电子邮件投诉;(3)与客户面对面的交流;(4)退回的货物。”
“列出头两项需要优先考虑的改善技术基础设施的事项。”

优点:
节省时间;
切中要点;
保持对面谈的控制;
快速探讨大范围问题;
得到贴切的数据
缺点:
使得被会见者厌烦;
得不到丰富的细节;
出于上述原因,失去主要思想;
不能建立和面谈者的友好关系。

在这里插入图片描述
面谈的阶段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
面谈的优点
在这里插入图片描述
在这里插入图片描述

群体面谈和单一面谈比较(优缺点)

和一对一的面谈相比,有如下优点
通过集中讨论,充分利用了交流时间,因此比一对一面谈更加节约时间,有着更低的时间成本。
群体面谈往往是在一个集中连续的时间内完成,和一对一面谈的间隔性特点相比,能够加速项目的开发进展。
群体面谈中,涉众方可以直接交流,和一对一面谈的以开发者为中介进行交流相比,提高了冲突处理能力。
群体面谈的集中讨论具有明显的以用户为中心的特征,降低了开发者在面谈中的主导作用,这里可以提高涉众的项目参与度,减少开发者主导需求获取时的弊端。
群体面谈集中了所有参与者的智慧,所以常常会有创造性的信息内容产生


和一对一的面谈相比,也有如下缺点
群体面谈要求所有参与方都要在一个集中的时间抽出大量时间和精力投入面谈,这往往难以实现
群体面谈获得的信息比和一对一面谈要复杂得多,因此对他们的分析是一个不小的技术挑战。
主持群体面谈比主持一对一面谈要困难得多

其他方法:

1)调查问卷
2)头脑风暴

问卷调查相对于面谈和群体面谈来说更适用于哪方面?
涉众不易获取,人多的时候
在这里插入图片描述


需求获取方法—原型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

需求获取方法 —— 观察和文档审查

文档审查(需求获取最后一部分)
在这里插入图片描述


需求分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初始状态、终止状态、状态、转移、守护条件、事件、动作
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


书写SRS

在这里插入图片描述

在这里插入图片描述
2 写SRS的时候有什么要求
·保持语句和段落的简短。
·采用主动语态的表达方式。
·编写具有正确的语法、拼写和标点的完整句子。
·使用的术语与词汇表中所定义的应该一致。
·需求陈述应该具有一致的样式,例如“系统必须⋯⋯”或者“用户必须⋯⋯”,并紧跟一个行为动作和可观察的结果。
·为了减少不确定性,必须避免模糊的、主观的术语,例如,用户友好、容易、简单、迅速、有效、支持、许多、最新技术、优越的、可接受的和健壮的。当用客说“用户友好”或者“快”或者“健壮”时,你应该明确它们的真正含义并且在需求中阐明用户的意图。
·避免使用比较性的词汇,例如:提高、最大化、最小化和最佳化。定量地说明所需要提高的程度或者说清一些参数可接受的最大值和最小值。当客户说明系统应该“处理”、“支持”或“管理”某些事情时,你应该能理解客户的意图。含糊的语句表达将引起需求的不可验证。
在这里插入图片描述

需求验证

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需求验证的方法
在这里插入图片描述
软件评审会议

审查参与者必须代表三个方面的观点:

  1. ·产品的开发者及其可能的同组成员编写需求文档的分析员
  2. ·先前产品的开发者或用户领域代表 可能是一个系统工程师、领域专家等
  3. ·要根据正在审查的文档来开展工作的人们 可能包括一个开发人员、一个测试人员、一个项目经理和一个用户文档编写人员

·参与者应限制在7个人左右或者更少


需求管理

在这里插入图片描述

需求基线

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需求变更原因

1 需求理解分歧
2 系统开发实施周期过长
3 客户业务需求改变
4. 国家政策改变
5. 需求有缺陷

需求变更影响

1 项目成本
2 影响软件质量及开发进度
3 影响人员的工作状态
4 影响文档和代码的一致性
5 影响开发者和用户的合作关系

在这里插入图片描述

需求变更的成本(同上)

1:项目成本
如果项目有需求变更,那么就需要安排专门的人员进行开发、测试、部署等工作,这样就增加了项目的成本。
2:影响软件质量及开发进度
在一个复杂的软件系统中,需求之间具有一定的联系,而相关的需求则构成需求链,如果评估变更影响时遗漏了需求链中的某些环节,就可能在实施变更过程中引入一些难易察觉的错误,这些错误将会影响系统的质量,严重时可导致系统崩溃。
3:影响人员的工作状态
如果需求变更频繁或者需求变更对系统影响比较大,会导致开发、测试人员在心理上产生抵触信息,从而影响其工作状态。严重时可能会导致人员的流失。
4:影响文档和代码的一致性
文档是软件系统的一个重要组成部分,也是维护系统的重要依据。在处理需求变更的过程中,如果没有采用规范的流程保证需求变更的评估与实施,会造成文档跟所开发的软件系统不一致,系统维护困难。
5:影响开发者与用户的合作关系
需求变更的实施时用户和开发者相互协作的过程。开发者和用户在是否采用变更问题上常常产生分歧,如果没有恰当的处理,相互之间的信任关系变得越来越差,甚至有合作关系转变为一种对抗关系,影响项目开发进度。

需求变更控制——基本原则

需求一定要与投入(成本)有显式的联系
否则如果需求变更的成本由开发方来承担,则项目需求的变更就成为必然了。软件开发方和出资方都要明确这一条:需求变化,软件开发的投入也要变化。

需求的变更要经过出资者的认可
这样才会对需求的变更有成本的概念,能够慎重地对待需求的变更

即使小的需求变更也要经过正规的需求管理流程,否则会积少成多。

精确的需求与范围定义并不会阻止需求的变更。并非对需求定义的越细,越能避免需求的渐变,这是两个层面的问题。太细的需求定义对需求渐变没有任何效果。因为需求的变化是永恒的,并非由于需求细化了,它就不会变化了。

如果开发团队缺少明确的需求变更控制过程或采用的变更控制机制无效,抑或不按变更控制流程来管理需求变更,那么很可能造成项目进度拖延、成本不足、人力紧缺,甚至导致整个项目失败。

当然,即使按照需求变更控制流程进行管理,由于受进度、成本等因素的制约,软件质量还是会受到不同程度的影响。但实施严格的软件需求管理会最大限度地控制需求变更给软件质量造成的负面影响,这也正是我们进行需求变更管理的目的所在。

变化不可避免,我们应该怎么办?

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 18
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
UML(统一建模语言)是一种软件工程中常用的面向对象分析与设计方法。它提供了一套图形化的语言,用于表示软件系统的各个方面,包括静态结构、行为和交互等。UML的面向对象分析与设计在期末考试中包含以下内容: 1. 类图:类图是面向对象分析与设计中最常用的图之一。它用于描述系统中的类以及它们之间的关系。在考试中,可能会要求通过给定的要求,绘制系统的类图,标明类之间的继承、关联、聚合、组合等关系。 2. 时序图:时序图用于描述系统中的对象之间的交互。它展示了对象之间的消息传递顺序和时序关系。在考试中,可能会要求通过给定的场景或需求,绘制系统的时序图,标明对象之间的消息传递和时序关系。 3. 用例图:用例图用于描述系统的功能需求。它展示了系统的各个用例以及它们之间的关系。在考试中,可能会要求通过给定的需求,绘制系统的用例图,标明系统的各个用例以及它们之间的关系。 4. 状态图:状态图用于描述系统中的对象状态及其状态之间的转换。它展示了对象状态的变化和条件触发。在考试中,可能会要求通过给定的场景,绘制系统的状态图,标明对象状态及其转换条件。 5. 包图:包图用于组织和管理系统的模块或组件。它展示了系统的包结构以及包之间的关系。在考试中,可能会要求通过给定的系统结构,绘制系统的包图,标明包之间的关系和依赖。 总的来说,UML的面向对象分析与设计在期末考试中主要包含类图、时序图、用例图、状态图和包图等内容。学生需要了解这些图的语法规则,能够根据给定的场景或需求,绘制相应的图形,并标明各个元素之间的关系和约束。同时,也需要掌握面向对象分析与设计的基本概念和原则,能够应用到具体的系统设计中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值