需求分析:修订间差异

来自泡泡学习笔记
跳到导航 跳到搜索
(创建页面,内容为“软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据 IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。 ===需求的层次=== (1)业务需求。 业务需求是指反映企…”)
 
无编辑摘要
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据 IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据 IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
软件需求是针对待解决问题的特性的描述。所定义的需求必须可以被验证。在资源有限时,可以通过优先级对需求进行权衡。
通过需求分析,可以检测和解决需求之间的冲突;发现系统的边界;并详细描述出系统需求。




第53行: 第58行:


只有在业务需求基本明确,用户需求部分确定时,同步进行需求铡试,才可能及早发现问题,从而在需求开发阶段以较低的代价解决这些问题。
只有在业务需求基本明确,用户需求部分确定时,同步进行需求铡试,才可能及早发现问题,从而在需求开发阶段以较低的代价解决这些问题。
===UML===
UML 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
从总体上来看,UML 的结构包括构造块、规则和公共机制三个部分。
UML 中的事物
(1)结构事物:结构事物在模型中属于最静态的部分,代表概念上或物理上的元素。
(2)行为事物:行为事物是 UML 模型中的动态部分,代表时间和空间上的动作。
(3)分组事物:分组事物是 UML 模型中组织的部分
(4)注释事物:注释事物是 UML 模型的解释部分。
UML 中的关系
UML 用关系把事物结合在一起,主要有下列四种关系:
(1)依赖(dependency):依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
(2)关联(association): 关联描述一组对象之间连接的结构关系。
(3)泛化(generalization): 泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
(4)实现(realization): 实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
UML 视图
UML 对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。具体来说,就是指以下 5 个系统视图:
(1)逻辑视图:逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
(2)进程视图:进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
(3)实现视图:实现视图对组成基于系统的物理代码的文件和构件进行建模。
(4)部署视图:部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
(5)用例视图:用例视图是最基本的需求分析模型。
===面向对象分析===
类之间的主要关系有关联、依赖、泛化、聚合、组合和实现等,它们在 UML 中的表示方式如下图所示:
(1)关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联体现的是对象实例之间的关系,而不表示两个类之间的关系。
(2)依赖关系。两个类 A 和 B, 如果 B 的变化可能会引起 A 的变化,则称类 A 依赖于类 B。
(3)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说,子类继承了父类,而父类则是子类的泛化。
(4)共享聚集。共享聚集关系通常简称为聚合关系,它表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体","部分”与“整体”的生命周期可以不相同。
(5)组合聚集。组合聚集关系通常简称为组合关系,它也是表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的”部分”只能属于一个“整体", "部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。
(6)实现关系。实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。

2023年5月13日 (六) 16:26的最新版本

软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据 IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。


软件需求是针对待解决问题的特性的描述。所定义的需求必须可以被验证。在资源有限时,可以通过优先级对需求进行权衡。

通过需求分析,可以检测和解决需求之间的冲突;发现系统的边界;并详细描述出系统需求。


需求的层次

(1)业务需求。

业务需求是指反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。通过业务需求可以确定项目视图和范围,项目视图和范围文档把业务需求集中在一个简单、紧凑的文档中,该文档为以后的开发工作奠定了基础。

(2)用户需求。

用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务。也就是说,用户需求描述了用户能使用系统来做些什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景进行整理,从而建立用户需求。

(3)系统需求。

系统需求是从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。功能需求也称为行为需求,它规定了开发人员必须在系统中实现的软件功能,用户利用这些功能来完成任务,满足业务需要。功能需求通常是通过系统特性的描述表现出来的,所谓特性,是指一组逻辑上相关的功能需求,表示系统为用户提供某项功能(服务),使用户的业务目标得以满足;非功能需求是指系统必须具备的属性或品质,又可细分为软件质量属性(例如,可维护性、可维护性、效率等)和其他非功能需求。设计约束也称为限制条件或补充规约,通常是对系统的一些约束说明,例如,必须采用国有自主知识产权的数据库系统,必须运行在 UNIX 操作系统之下等。


质量功能部署

质量功能部署(Quality Function Deployment, QFD)是一种将用户要求转化成软件需求的技术。其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD 将软件需求分为三类,分别是常规需求、期望需求和意外需求。


需求获取

常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。


需求分析

一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。

在实际工作中,一般使用实体联系图(E-R 图)表示数据模型,用数据流图(Data Flow Diagram, DFD)表示功能模型,用状态转换图(State Transform Diagram, STD)表示行为模型。


软件需求规格说明书

软件需求规格说明书(Software Requirement Specification, SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS 是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。

在国家标准 GB/T 8567-2006 中,提供了一个 SRS 的文档模板和骗写指南,其中规定 SRS 应该包括以下内容:(1)范围。(2)引用文件。(3)需求。(4)合格性规定。(5)需求可追踪性。(6)尚未解决的问题。(7)注解。(8)附录。


需求验证

需求验证也称为需求确认,其活动是为了确定以下几个方面的内容:

(1)SRS 正确地描述了预期的、满足项目干系人需求的系统行为和特征。

(2)SRS 中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。

(3)需求是完整的和高质量的。

(4)需求的表示在所有地方都是一致的。

(5)需求为继续进行系统设计、实现和测试提供了足够的基础。


在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。需求评审就是对 SRS 进行技术评审,SRS 的评审是一项精益求精的技术,它可以发现那些二义性的或不确定性的需求,为项目干系人提供在需求问题上达成共识的方法。需求的遗漏和错误具有很强的隐蔽性,仅仅通过阅读 SRS, 通常很难想象在特定环境下的系统行为。

只有在业务需求基本明确,用户需求部分确定时,同步进行需求铡试,才可能及早发现问题,从而在需求开发阶段以较低的代价解决这些问题。