《Power Designer系统分析与建模实战》——2.1 需求模型简介

简介:

本节书摘来自华章计算机《Power Designer系统分析与建模实战》一书中的第2章,第2.1节,作者:谢星星,朱婵著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.1 需求模型简介

IEEE的软件工程标准术语表将“需求”定义如下:
1)用户所需的解决某个问题或达到某个目标所要具备的条件或能力。
2)系统或系统组件为符合合同、标准、规范或其他正式文档,而必须满足的条件或必须具备的能力。
3)上述第一项或第二项中定义的条件和能力的文档表述。
RUP将“需求”定义为:需求描述了系统必须满足的情况或提供的能力,它可以直接来自客户需要,也可以来自合同、标准、规范或其他有正规约束力的文档。
两者对于需求的定义大同小异,简单来说,需求就是“软件能为用户做什么”。
在软件工程的历史中,需求分析并没有得到足够重视,在过去的10年中,项目团队越来越认识到需求分析的重要性,并将其作为软件过程中最关键、最困难的一个过程,因为它对软件开发过程、产品质量,以及软件是否能如期保质保量完成至关重要。
2.1.1 需求采集
需求采集的目标是获取知识。一般由熟悉用户所从事工作的资深人员进行需求采集工作,需求采集人员需要了解用户和客户希望软件系统在哪些方面帮助他们。
需求采集和需求分析并不是先后进行的两个阶段性工作,它们相互伴随,并且交叉进行。在需求工作开始阶段,更多的是进行需求采集工作,相伴进行的需求分析和整理工作占的比例偏少,但随着掌握的需求信息越来越多,需求采集人员需要开展的需求分析和整理工作也越来越多。
在进行需求采集前,需要做准备工作,如了解调研用户所属行业的情况、公司和部门的情况,列出需要询问的问题,准备相关资料等。需求采集的方法五花八门,如需求采集表、座谈会、客户访谈、现场参观和调研、同类软件分析等。通过需求采集活动,收集客户的众多“原始需求”,需求采集的工作成果是《软件用户需求说明书》,为需求分析工作提供基础。
2.1.2 需求分析
需求采集活动将采集客户的大量“原始需求”(又称为“用户需求”),这些原始需求有可能相互冲突,需要进行过滤和分析。需求分析是对采集到的原始需求进行分析、整理、辨别和归纳,最终形成系统的、明确的软件需求。
需求分析的工作成果是《软件需求规格说明书》,它精确地阐述了一个软件系统必须提供的功能需求、非功能需求、必须达到的质量属性指标以及它必须遵守的约束。《软件需求规格说明书》应尽可能完整地描述各种条件下的系统行为。
《软件需求规格说明书》参考目录如图2-1所示。

image


2.1.3 需求模型的功能
Power Designer的需求模型(Requirements Model,RQM)主要包括如下功能:
1)从结构化技术文档中创建RQM。
2)检查现有或导入的需求模型。
3)创建需求和设计对象(这些对象来自于其余类型的模型)的连接。
4)从其他设计对象中建立需求模型,或通过需求模型建立某些设计对象(如业务规则、包和用户用例等)。
5)从需求模型生成Word文档或更新Word文档。
Word文档、需求模型和设计模型三者之间的关系如图2-2所示。

image

相关文章
|
Cloud Native 网络协议 数据中心
Overlay网络与Underlay网络:深入探索与全面对比
在当今云原生的世界中🌍☁️,网络是构建和维护任何分布式系统的基石💎。了解Overlay网络和Underlay网络及其之间的区别🔍,对于设计高效、可扩展的云原生应用至关重要🚀。本文旨在全面解析Overlay和Underlay网络,揭示它们的工作原理、优缺点,并说明何种情况下应该使用哪一种网络📚。
Overlay网络与Underlay网络:深入探索与全面对比
|
机器学习/深度学习 数据采集 自然语言处理
机器学习模型的部署与上线:从训练到实际应用
在机器学习中,模型训练只是整个过程的一部分。将训练好的模型部署到实际应用中,并使其稳定运行,也是非常重要的。本文将介绍机器学习模型的部署与上线过程,包括数据处理、模型选择、部署环境搭建、模型调优等方面。同时,我们也会介绍一些实际应用场景,并分享一些经验和技巧。
|
机器学习/深度学习 自然语言处理 并行计算
淘宝搜索中的深度语义模型:从理论到实践
淘宝搜索系统通过引入深度语义模型,极大地提升了搜索质量和用户体验。这些模型不仅能够准确理解用户的需求,还能够智能地匹配和推荐商品,为用户提供了一个更加便捷、个性化的购物环境。随着技术的不断发展和完善,淘宝搜索将会变得更加智能和高效。
|
存储 JSON 程序员
Python基础知识点总结
本文包括python基本知识:简单数据结构,数据结构类型(可变:列表,字典,集合,不可变:数值类型,字符串,元组),分支循环和控制流程,类和函数,文件处理和异常等等。
3628 2
Python基础知识点总结
|
JavaScript Java 测试技术
基于微信小程序的医院挂号系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的医院挂号系统的设计与实现(源码+lw+部署文档+讲解等)
222 1
|
人工智能 监控 搜索推荐
|
机器学习/深度学习 人工智能 算法
AI+组合优化 |机器学习顶会ICLR/ICML/NeurIPS'23最新进展-MIP求解篇(附原文源码)
本文梳理了ICLR 2023、ICML 2023、NeurIPS 2023有关机器学习+混合整数规划问题求解加速求解加速的研究成果,总共包含8篇文章。
1723 0
|
数据安全/隐私保护 安全
个人0元购买无影云桌面操作指南
无影云电脑免费体验季节!个人新老用户可领取2核4G 10M带宽无影云桌面免费体验1周~
39994 5
个人0元购买无影云桌面操作指南
|
应用服务中间件
Tomcat - startup 启动闪退原因(附解决方案)
Tomcat - startup 启动闪退原因(附解决方案)
1979 0
Tomcat - startup 启动闪退原因(附解决方案)
|
安全 JavaScript Java
Nexus私服部署(十七)
nexus私服部署 1.nexus私服简介 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。
605 0
Nexus私服部署(十七)

热门文章

最新文章