精华内容
下载资源
问答
  • 需求分析与建模
    千次阅读
    2020-08-31 20:56:26

    需求分析的目的

    需求分析就是选择一种业务导向的线索将零散的需求串起来,形成一个体系完整、内容清晰的框架,以指导后续的设计和开发工作。
    要避免的误区:需求分析的任务不是分析系统如何实现用户的需要。

    需求分析做的是什么?

    需求分析就是先分解,再提炼,在这个过程中消除矛盾。
    这里值得一提的是,分解这个过程,其注意事项如下。
    分解是一种自顶向下的方法,按任何一种线索进行分解时,就会破坏其他线索的完整性。例如,如果以“事”为线索,分解后就会出现相互交叠的情况,也就在多个事件中都涉及相同的类。
    分解结构的几种方式如下:
    (1)以业务流程为主线索的分解结构
    (2)以程序结构为主线索的分解结构
    (3)基于场景的分解结构
    (4)基于数据的分解结构

    什么是需求建模?

    需求建模就是采用文字、图形化、表格化、公式化的方式,按照系统需求情况对系统进行可视化描述,提供一种详细说明系统的结构或行为的方法。

    需求建模的目的

    帮助我们按照实际情况或按我们需要的样式对系统进行可视化,提供一种详细说明系统的结构或行为的方法;给出有个指导系统构造的模板,对我们所作出的决策进行浪费。

    建模的要点与原则

    模型是用来沟通的,仅当需要时才构建它。
    在建模时遵循以下原则:
    (1)选择创建什么模型对如何动手解决问题和如何形成解决方案之间有着必然的联系。
    (2)模型也有精度。
    (3)每个系统最好使用独立的模型处理。

    选择使用UML建模的原因是什么?

    UML是统一建模语言(UnifiedModelingLanguage)的缩写,它发表于1997年,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。使用UML可以帮助沟通与交流,辅助应用设计和文档的生成,还能够阐释系统的结构和行为。UML定义了多种图形化的符号来描述软件系统部分或全部的静态结构和动态结构。

    可选择的UML图有哪些?

    截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。分别是:用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种,包图、组合结构图、交互概览图3种。
    用例图:从用户角度描述系统功能。
    类图:描述系统中类的静态结构。
    对象图:系统中的多个对象在某一时刻的状态。
    状态图:是描述状态到状态控制流,常用于动态特性建模
    活动图:描述了业务实现用例的工作流程
    顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
    协作图:描述对象之间的协助关系
    构件图:一种特殊的UML图来描述系统的静态实现视图
    部署图:定义系统中软硬件的物理体系结构
    包图:对构成系统的模型元素进行分组整理的图
    组合结构图:表示类或者构建内部结构的图
    交互概览图:用活动图来表示多个交互之间的控制关系的图

    建模前需理清框架和脉络

    在这个阶段,需要理清需求的结构框架(领域类图)和行为脉络(流程图和用例图),该工作的输入是需求定义阶段产生的业务事件列表和报表列表,输出的是领域模型和用例模型,对应于RUP中细化阶段的第一次迭代。【RUP(Rational Unified Process),统一软件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论。】
    该阶段的目的就是标识出绝大部分的用例,生成领域模型。

    确定需求细节

    这个阶段的任务就是对用例模型、领域模型标识出用例、领域类的细节进行填充。
    对于组织行为需求的用例,我们要填充用例的事件流;
    对于组织数据(结构)需求的领域类,我们要填充它的字段与格式。
    对于组织行为需求的用例,要细化的东西主要包括事件流、相关需求与功能点、界面原型,以及特定于该用例的规则与约束。
    需求=行为需求+结构需求+接口需求。
    其中,行为需求与结构需求是核心部分,接口需求是辅助需求。
    什么是接口需求?
    那里有分解,那里就有接口。这里接口指的是两个独立系统之间同步数据或访问对方程序的途径。所谓接口需求,就是指满足用户需要,在系统之间或者模块之间访问方式。每次主题域划分就应该思考主题域之间有什么样的服务接口,每次将主题域划分成不同的业务事件。

    建议

    第一,建模时要善于、敢于抛弃细节,不要过早地专研到业务活动的具体步骤中,这样可能会导致流程图的规模被扩大,破坏目标。
    第二,抛弃一次成型的思路,不要精雕细琢,而是出草图、谈问题、修正草稿、再讨论、在修正,…,最终达成共识。

    更多相关内容
  • 在本文中,我们将展示SysML建模语言如何对需求过程进行补充,即更好地定义和跟踪需求。系统建模语言(SysML)是一种通用的图形建模语言,由对象管理小组(OMG)根据著名的统一建模语言(UML)定义。它用于指定,分析,设计...
  • 什么需求建模|概述

    千次阅读 2022-03-14 16:42:31
    需求建模是软件建模最为重要的工作。需求模型描述软件的外部特性,包括软件能够给用户提供的...本章主要从软件需求、需求分析、软件需求建模、需求模型等概念进行阐述,同时简要阐述软件需求建模所需要遵循的一些原则。

    需求建模是软件建模最为重要的工作。需求模型描述软件的外部特性,包括软件能够给用户提供的功能和性能,分析模型、设计模型和测试模型均建立在需求模型的基础上。需求模型包括用例模型和非功能模型两个方面的内容。

    本章主要从软件需求、需求分析、软件需求建模、需求模型等概念进行阐述,同时简要阐述软件需求建模所需要遵循的一些原则。

    软件需求

    软件需求(software requirement)是所要开发的软件系统为解决用户问题所具有的能力与特性。

    软件需求可分为功能需求和非功能需求两个方面:

    • 功能需求: 是软件系统所具有的能力,表现为给用户提供的所有服务;
    • 非功能需求: 是约束系统,支持功能实现的相关需求,包括软件的效率、可靠性、安全性、可用性、适应性、健壮性等。

    需求分析

    需求分析(requirement analysis)是为获得合理的软件需求所从事的调查、分析、建模、编写文档及审核等工作。

    需求分析是开发软件的一项十分重要的工作,它是软件开发中软件分析、软件设计、编码和测试的基础,只有确定了正确、合理的软件需求,才有可能开发出成功的软件,错误或不完善的软件需求将导致软件开发工作的失败。

    软件需求建模

    软件需求建模(modeling for software requirement)是软件需求分析的一项重要工作,软件需求建模又简称需求建模,是在需求调查的基础上,在需求分析过程中采用软件建模工具建立软件需求模型的过程。

    需求模型

    需求模型(requirement model)是通过建模语言描述软件需求的模型。
    在需求模型中,需要对需求结构、软件功能、软件性能等内容进行建模。需求建模建立在业务模型的基础上,它又是软件其他模型的基础,如下图,描述了需求模型与其他软件模型之间的关系。
    图片
    需求模型包括用例模型、(功能模型)和非功能模型两部分。UML通过一组用例图来描述软件需求,功能模型用来描述软件的功能(用例和功能不一定能画等号,往往一个用例可能需要系统的多个功能来协作完成)。软件非功能需求一般表现为一组指标,非功能需求可以采用需求条目来表示。

    为了分清楚用例和需求的关系,笔者还特意做了相关文献的查阅和分析,如下:

    软件功能:功能是计算机术语,是用来描述计算机的,而非定义需求的术语。功能实际描述的是 输入->计算机->输出。一般用DFD图来表示,也是典型的面向过程分析模式。因此把用例当做功能点的分析员实际在做面向过程的分析。

    用例:用例不是计算机术语,是针对参与者来描述的,是从参与者的角度来描述,主要描述参与者可以做什么。用例的几个特征:

    1. 相对独立
    2. 执行结果对参与者来说是可以观测和有意义的
    3. 必须由一个参与者发起
    4. 以动宾短语形式出现

    业务流程:业务流程是要分析某项业务是如何一步一步完成的,有每个一步有哪些参与者,做什么业务动作,描述完成某个业务流程中多个业务动作的前后依赖关系。在UML中用活动图或序列图来描述。
    用例的核心是以参与者为中心,从参与者的角度来描述他要做什么日常工作(区分以业务流程描述的方式),并分析这些日常工作之间是如何交互的(区别于数据流的描述方式)换句话说, 用例要分析的首要目标不是要弄清楚某个业务是如何一步一步完成的,而是要弄清楚有多少参与者,每个参与者都做什么;业务流程分析则是后续的工作。其次,用例就是面向对象而生的,其思想完全符合OO。用例分析方法试图找到问题领域内所有相对独立的参与者和事件,并把业务流程当成这些参与者和事件之间的交互结果\

    软件需求建模需要遵循的原则

    1)真实地反映软件需求

    需求模型一定要真实的反映实际的软件需求。软件需求来自用户,需求模型的变更需要征求用户的意见,最后确定需求模型应通过用户确认。

    2)抽象的反映软件需求

    需求模型一定要在具体的业务的基础上进行革新和抽象。需求模型不是现行业务的模拟和照搬,而是对现行业务的改造和创新,因此,需求模型必须抽象的反映软件需求。

    3)完备反映软件需求

     需求模型必须全面反映软件的功能和性能需求,对软件范围之内的一切需求需要清晰地给出描述。
    

    4)直观地反映软件需求

    需求模型应该简单、直观地反映软件需求,使用户和开发人员能够容易理解。在需求建模过程中尽量用直观、易懂和简单的形式描述需求模型。

    5)一致的反映软件需求

     需求模型应该具有一致性,在模型中不应该存在矛盾、冲突和不一致之处。需求模型中的术语、定义、符号应该具有一致性,以给阅读者带来二义性的理解和理解难度。
    

    (后续将根据软件设计的几个维度分别进行阐述,欢迎关注后续文章!)


    如果你在这方面有不同方面的见解,也欢迎在下方进行留言,一起讨论

    想要了解更多信息,可关注本公众号(一起学开源);或请长按以下二维码添加助手。将拉你加入社区进行更多交流

    在这里插入图片描述

    文章有帮助的话欢迎点赞和转发。 
    
    谢谢支持哟 (*^__^*) 
    
    展开全文
  • 什么需求建模

    千次阅读 2020-07-12 20:26:00
    “产品经理获取用户的需求后,需要对需求建立模型。将一个抽象的,大概的业务或者产品需求,一步步抽丝剥茧,使之具体化,用一整套文档来描述这个产品需求因何...第二个要点是为什么要需求建立模型”。 小白对大...

     产品经理获取用户的需求后,需要对需求建立模型。将一个抽象的,大概的业务或者产品需求,一步步抽丝剥茧,使之具体化,用一整套文档来描述这个产品需求因何而来,需求如何实现,系统如何响应用户的请求

     

     

    什么是需求模型

    在一间不大的办公室里,小白和大牛开始了第一课。大牛在黑板上写下了第一课的学习内容。

    第一课的内容

    什么是需求模型

    为什么要建立需求模型

    大牛对小白说道:“黑板上写的是这节课要讲的内容要点,第一个要点是弄明白什么是需求建模;第二个要点是为什么要对需求建立模型”。

    小白对大牛说:“牛老师,后面要讲的内容能不能浅显一点,讲的内容理论性太强的话,我容易犯困,也听不进去”。

    大牛笑道:“在制作教案时,我也充分考虑到了这一点,教案内容都是从案例入手,由浅入深,即使没有任何软件基础的人也能听懂”。

    大牛很快在黑板上写了一个案例

    某一快餐连锁店,一直为顾客提供快餐服务,由于价格实惠,服务优良,到店吃饭的顾客很多,顾客需要排很长的队才能点餐和配餐,严重影响了顾客体验。快餐老板希望能够实现顾客电话预订餐,顾客提前通过电话预定餐,并预约到店时间,这样快餐店可以提前做准备,缩短了顾客在餐厅的等候时间。

    如果该店老板请你做在线电话点餐的技术顾问,你能否帮他分析一下在线电话点餐需要提供哪些功能?

    大牛在黑板上写完案例内容对小白说:“案例中的快餐店老板希望做个电话在线订餐系统,顾客可以提前通过电话订餐,并约定到店就餐的时间,你能不能帮这个快餐店的老板分析一下这个电话在线订餐系统需要提供哪些功能?”。

    小白认真思考了一会儿,拿起粉笔在黑板的案例内容下面写下了她对电话在线订餐系统的分析。

    电话在线订餐系统需要提供如下功能:

     

    (1)接顾客的电话

    (2)记下顾客预订的食品和到店时间

    然后对大牛说:“我是这么分析的,既然是电话订餐,那一定要提供接电话的功能了,另外还要记录顾客的订餐内容和取餐时间,就想到这么多了”。

    大牛说:“你提到的接顾客的电话和记录顾客预订的食品和到店时间,都是系统需要提供的功能。我们还可以再进一步考虑,电话订餐由于描述和理解问题,可能会发生一些纠纷,如果提供电话录音功能,当出现纠纷时,调出录音就有据可寻了;另外,电话订餐的都是快餐店的新老客户,系统还应该提供客户管理功能,当快餐店举办优惠活动或对老客户回馈时,提供客户资料;还有其它一些功能,例如:未接电话的提醒、客户定餐统计等,我就不一一细说了”。

    随后,大牛又在黑板上补充了电话在线订餐系统的功能。

    电话在线订餐系统需要提供如下功能:

    (1)接顾客的电话

    (2)记下顾客预订的食品和到店时间

    (3)电话录音管理

    (4)订餐客户管理

    (5)未接电话提醒

    (6)客户定餐统计

    大牛用粉笔在黑板上把补充完成的功能列表圈了一下。说道:“小白,刚才咱们共同分析了电话在线订餐系统,并依据分析的结果列出了系统需要提供的功能列表,实际上刚才的分析过程就是建模过程,建模的成果物就是黑板上的功能列表”。

    小白想了下说:“我明白了,快餐店老板对他需要的电话订餐系统提出了要求(需求),但这个要求很模糊,也就是大概需要这么个东西,需求建模就是帮助他把需求确定下来,把具体的功能要求列举出来。”

    大牛对着小白伸了一下大拇指,说:“说的对啊,需求建模就是对模糊的需求澄清的过程,黑板上的功能列表就是在快餐店老板提出需求的基础上,咱们进一步分析和完善得出的”。

    小白说:“这么说,功能列表就是电话在线订餐系统的需求模型了?在我的印象中,模型应该是一些图形之类的,我也听说过UML建模,我们列的功能列表只是一些简单的文字,也可以称为模型?”。

    大牛笑了笑:“只要是能够反映系统需求的事物或表述形式都可以称为需求模型,黑板上的功能列表虽然是文字形式,但它能够反映出电话订餐系统的实际功能需求,因此也是模型,是文字模型,如果我们把文字模型通过绘图工具转换成图形,就是图形模型了”。

    小白又问道:“我还有个问题,对电话订餐系统的需求建模这样就完成了吗?”

    大牛说:“这仅是需求模型的雏形,需求模型需要在和用户沟通的过程中不断地补充和完善,建立需求模型目的就是能够同用户进行很好地沟通,用户可以通过模型感知或认识到系统,并进一步提出问题和改进需求,避免出现实际研发出的系统和用户最初的期望相背离的问题”。

    大牛接着说:“另外,需求模型除了功能模型外,还需要建立一些与系统业务、活动相关的模型,从而反映出系统的整体需求框架,这些模型我们在后面都会用到”。

    说完,大牛走到黑板前,把先前内容擦掉,对需求模型进行了重新描述。

    什么是需求模型

    需求模型就是采用文字、图形化、表格化、公式化的方式,按照系统需求情况对系统进行可视化描述,提供一种详细说明系统的结构或行为的方法。

    大牛问小白:“现在明白什么是需求模型了吧?说说你对需求模型的理解”

    小白回答道:“按照我的理解,需求模型就是一段文字或一些图形,这些文字或图形对系统各方面进行了描述,人们可以通过这些文字或图形来了解系统的需求和构成”。

    大牛伸了大拇指说:“理解的很好,需求模型就是需求分析后产生的成果物,成果物由一系列需求文档组成,包括调研资料、会议资料、需求规格说明书等文档”。

    为什么要对建立需求模型

    大牛又对小白说道:“记得你说过,建立需求模型用处不大,现在还这么认为吗?”

    小白嘿嘿笑了笑,说:“现在看来,需求建模真的很重要。没有需求模型,系统需求就无法落实到纸面上,与用户产生沟通障碍,一旦完成后的系统不能满足用户的要求,可能就会出现大麻烦。”

    大牛接连伸了几个大拇指,对小白的话语点赞!

    大牛:“再就是需求模型可以帮助系统分析员更好地理解系统,系统分析员可以建立多个模型,从不同层面描述系统;还有就是建模过程就是分析系统的过程,没有建模过程也就没有系统分析了,这是很可怕的事情。”

    最后,大牛在黑板上对建模的意义做了一个小结:

    建模小结

    在建模过程中了解信息

    通过抽象降低复杂性

    有助于回忆所有的细节

    有助于和其他项目开发成员进行交流

    有助于和各种用户以及系统相关者进行交流

    为以后的系统维护和升级提供了文档

    小白也认为自己对需求建模有了更深的了解。但她还有一个疑惑,刚才为电话在线订餐系统建立的是文字模型,图形模型该如何建立呢?

    展开全文
  • 需求分析 需求工程 需求建模 需求 软件工程 需求分析建模
  • 软件需求建模案例.ppt

    2019-12-28 21:17:21
    软件需求建模案例,该案例教务系统的需求建模案例,内含,用例图,时序图,活动图,类图,是非常好的建模参考资料。。。。。。。。。。。
  • 北邮软件工程分布式系统中需求定义,领域建模,用例建模等相关文档,写的不一定非常符合您的心意,仅提供参考。
  • 研究了业界推荐的解决需求问题的主流需求建模方法,针对电信支撑系统需求的特点,探讨如何将需求建模方法在电信支撑系统进行实际应用,并给出了在支撑系统中进行需求建模的应用范例。通过对需求建模方法的应用,以求...
  • 解决需求建模中的常见难题 为了能以灵巧的方式进行需求建模,需要具备一定的条件。但不幸的是,很多项目组并不具备。需求建模工作常常被你所处的环境所影响和破坏,一般是组织所奉行的文化不利于有效的软件开发...
  • 需求开发与UML用例建模需求开发技术及UML用例建模
  • 作者在软件组织提供建模咨询和培训服务超过十年后,把他的经验和感悟写成了本书。《软件方法:业务建模需求》从“利润=需求-设计”开始,用市场经济的思想讲解软件开发中需求和设计的道理,以及统一建模语言...
  • 利用Use Case进行需求建模分析,不仅思路清晰.而且容易理解和跟踪,所以日益受到软件设计工程师的青睐-首先阐述Use Case的基本概念和基本特征,然后提出了一种基于Use Case的需求建模方法,并通过一个实例详细讲解了此...
  • 鉴于传统方法在知识获取、模型构建的准确性和效率方面一直存在弊端,近年来,越来越多的研究者们将具有广泛应用性的人工智能技术与需求获取、需求分类、需求建模方法相结合,提出了一系列智能需求获取与建模的方法和...
  • 《软件方法:上册,业务建模需求》从“利润=需求-设计”开始,用市场经济的思想讲解软件开发中需求和设计的道理,以及统一建模语言UML 在需求和设计中的应用。本书还破解了软件开发领域流行的一些心灵鸡汤式宣传...
  • 浅谈软件需求建模

    2019-11-18 13:06:06
    需求分析师在需求调研分析工作中经常会用到各种分析方法,但对各种建模方法没有体系化的认识,经常讲概念混淆。本文从常用的结构化分析方法和面向对象分析方法着手,对各种建模方法进行梳理,帮助理解其含义及作用。...

    需求分析师在需求调研分析工作中经常会用到各种分析方法,但对各种建模方法没有体系化的认识,经常讲概念混淆。本文从常用的结构化分析方法和面向对象分析方法着手,对各种建模方法进行梳理,帮助理解其含义及作用。

    1. 建模概述

    1.1. 什么是建模?

    建模就是采用表格化、图形化、公式化的方式,将系统的构成及其构成间的关系呈现给人们的一种技术方法。[1]可能是因为软件本身的不可见,使得软件的建模也显得抽象,但在平常生活中,建模随处可见,比如盖房子,需要画图纸,画图纸就是建模的过程,而图纸就是建模产出的模型。在楼盘预售时,房子都还没建好,地产商会先做个缩小版的原型出来,甚至做个样板房让顾客有直观的感受,这个也是建模。当房子卖出去了,屋主需要装修了,找装修公司设计,设计师根据屋主需要设计一套图纸,甚至细到水电的走线,这些也是建模。因此将开发软件比作盖房子,其建模过程就相当于绘制图纸的过程。

    可以说对软件系统进行建模的目的是帮助我们按照实际情况或按我们需求的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个知道系统构造的模板;对我们所作出的决策进行文档化。[2]

    1.2 建模演变历程

    软件建模并不是从来就有的,而是随着软件工程的发展而不断演变。主要经过了三个阶段。

    第一阶段:程序=数据结构+算法
    出现于20世纪50~60年代,软件开发主要解决的是科学计算问题,Fortran语言是其代表。其建模关键点是选择合适的数据结构和算法。

    第二阶段:结构化分析方法
    出现于20世纪60~70年代,将解决一些与数据处理相关的问题,例如计费等。COBOL、C语言是其代表。其建模关键点有两方面,一是确定有哪些数据,格式是什么,如何存储,主要通过E/R模型表达;二是确定数据的加工、处理过程,主要通过DFD(数据流图)表达。

    第三阶段:面向对象分析方法
    出现于20世纪80~90年代,信息系统覆盖了更多业务过程,数据不再是唯一的视角,事(业务流程)、人的视角越来越重要,因此加入更多这方面的建模工具。[2]
    目前结构化分析方法和面向对象分析方法仍广泛应用。

    2. 结构化分析方法

    结构化分析方法(Structured Analysis,简称SA)是将待解决的问题看做一个系统,从而用系统科学的思想方法(抽象、分解、模块化)来分析和解决问题,并基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,其最核心思想是自顶向下的分解。

    结构化分析方法模型如下图所示:

    在这里插入图片描述

    ● 数据字典是模型的核心,是关于数据的信息集合,也就是对数据流图中包含的所有元素定义的集合。对于数据流图中出现的所有被命名的图形元素加以定义,使得每个图形元素的名字都有确切的解释。
    ● 实体关系图(ER图):描述数据对象间的关系,用于数据建模。
    ● 数据流图(DFD图):描述了数据流在系统中流动的过程,以及对数据流进行变换的功能,用于功能建模。
    ● 状态迁移图(STD图):描述了对外部事件的响应方式,表示了系统的各种行为模式(称为状态)以及在状态间进行变迁的方式,用于行为建模。

    可见,结构化分析方法包含3层建模,数据建模、功能建模以及行为建模。

    2.1 数据建模——ER图

    数据模型是为了把用户的数据要求清晰明确地表达出来所建立的一个概念性的模型,也称为概念模型,因此数据建模也称为概念建模。概念性模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息进行建模。它描述了从用户角度看到的数据,也反映了用户的现实环境。

    数据建模的目标是为了明确下列与数据处理相关的特定问题:

    ● 系统处理哪些主要的数据对象?
    ● 每个数据对象的组成如何?
    ● 哪些属性描述了这些数据对象?
    ● 这些数据对象当前位于何处?
    ● 数据对象之间的关系?
    ● 数据对象和变换它们的处理之间有哪些关系?

    数据模型常用ER图表示,ER图也称实体关系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法。用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。ER图示例如下图所示,具体绘制方法不做详细说明。

    在这里插入图片描述另外,对于设计方面的数据建模包括概念建模、逻辑建模和物理建模,而需求分析中的数据建模相当于设计中第一阶段的概念建模。由于是设计方面的建模方法,这里不再说明,详细信息可网上查找“详解数据建模的三个阶段”。

    2.2 功能建模——DFD图

    当数据或信息“流”过信息系统时将会被系统的功能所处理、加工活变换,再将处理或变换后的数据从系统中输出,DFD图从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。而功能建模正是通过DFD图将系统所需实现的功能绘制出来的过程。

    DFD图的基本组成包括数据流、加工、数据存储和外部实体。通常用箭头标志数据流,用圆或椭圆表示加工,用双杠表示数据存储,用方框表示外部实体,即数据的源点或终点。DFD图示例如下图所示。
    在这里插入图片描述

    2.3 行为建模——STD图

    STD图(State Transition Diagram)用于描述系统或对象的状态,以及导致系统或对象状态发生改变的事件,从而描述系统的行为。它指明了作为特定事件的结果(状态),在状态中包含可能执行的行为。

    STD图中,用圆圈表示可得到的系统状态,用箭头表示从一种状态向另一种状态的迁移,在箭头上要写上导致迁移的信号或事件的名称。STD图示例如下图所示。
    在这里插入图片描述

    3 面向对象分析方法

    面向对象方法是从内部结构上模拟客观世界 ,其基本思想认为对象是对现实世界客观实体的描述 ,均由其属性和相关操作组成 ,是系统描述的基本单位。面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则 ,例如抽象、分类、继承、聚合、封装等 ,这使得软件开发者能更有效地思考问题 ,并以其他人也能看得懂的方式把自己的认识表达出来。

    面向对象方法包括面向对象需求分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)。而面向对象分析方法主要经过3个建模过程,包括结构建模、行为建模和功能建模,3中建模均采用统一建模语言 UML (Unified Modeling Language)。

    根据UML2.0标准,一共定义了13种不同的图,其功能各有不同,而OOA主要使用到其中的5种,分别是类图、活动图、用例图、构件图和部署图。

    3.1 结构建模

    结构建模也叫领域建模或概念建模,是对业务或系统的某个时刻或某段时间内的状态进行系统化描述,一般使用结构型的UML图进行结构建模。结构建模所表示的内容一般是静态的,在一段时间内是不会变化的。如用类图表示业务及业务之间的关系,用部署图、构件图表示系统的部署及架构设计。

    类图示例如下图所示:
    在这里插入图片描述
    构件图如下图所示:
    在这里插入图片描述
    部署图如下图所示:
    在这里插入图片描述

    3.2 行为建模

    行为建模是系统化地分析业务活动及业务流程的过程,一般使用行为型的UML图进行结构建模。行为建模表达的是某段时间内事情是如何发展的,这些发展最后会达到怎样的效果。

    业务流程分为生产性流程、管理性流程和支持性流程。生产性流程是流程中最重要的部分,是企业/组织价值体现的核心;管理性流程是对生产性流程的管控,通常是有管理层发现的,对一些质量、效率进行监督的控制性流程;支持性流程是对生产性流程的一种补充,通常是由协作部门、本部门员工执行的工作。如果拿软件开发过程来比喻的话,需求分析、软件设计、软件编码、软件测试是生产性流程;项目管理、质量保证是管理性流程;而文档配置等属于支持性流程。通常生产性流程是最容易标识的,而管理性流程和支持性流程比较容易忽略,因此在需求分析时要特别注意。[2]

    活动图示例如下图所示:
    在这里插入图片描述

    3.3 功能建模

    功能建模是在结构建模和行为建模的基础上,识别出通过系统实现的部分,一般使用UML用例图表现,描述系统应具有的功能,用于实现用户的日常需要。

    另外,在用例图的基础上通过原型工具制作出可视化原型也属于功能建模的范畴,通过原型用户能更直观地感知即将开发出来的系统的模样,更好地引出客户需求,同时避免后期需求变更。目前一般采用Axure原型工具制作系统或功能原型。

    用例图示例如下图所示:

    在这里插入图片描述

    4 结束语

    可以看出结构化分析方法和面向对象分析方法有相同的地方,那就是都需要先理清业务概念及其关系,虽然SA称为数据建模,而OOA称为结构建模,但本质是相同的。不同的地方在于SA更偏向对数据流的分析,而OOA更偏向对对象行为的分析,而且在现阶段OOA的应用更为广泛,但不得不说的是,无论SA还是OOA都只是需求分析的方法,关键还是在于使用它们的需求分析师。

    参考文献:
    [1]软件需求十步走 新一代软件需求工程实践指南_杨巨龙,周永利编著_北京:电子工业出版社
    [2]软件需求最佳实践:SERU过程框架原理与应用

    展开全文
  • 需求分析——需求建模技术

    千次阅读 2019-05-28 16:31:47
    需求建模技术需包含以下特征: 与外部实体的接口:对软件系统来说,外部实体包括:硬件、其它软件、人等。 执行的功能:除了描述软件功能以外,还要描述执行功能的条件(前、后置条件),对于实时系统来说,还要...
  • 关于ATM系统的需求建模 UML建模实验报告
  • 软件产品线方法是一种面向特定领域的、大...通过分析软件产品线开发过程和软件产品线需求建模的特殊性,采用扩展UML用例图标签的方法,实现对软件产品线需求的明确描述。以网络图书销售软件产品线例,进行具体说明。
  • PPT已在CSDN均可免费下载 《UML面向对象需求分析与建模教程》 邹盛荣 主编 电子版 2016.01 .doc 当当网上可购买纸质书: http://product.dangdang.com/23766413.html
  • UML系统需求分析建模实例包括业务建模.pptx
  • 需求分析是一个发现、求精、建模、规格说明和复审的过程,我们进行需求分析是为了发现系统中可能存在的问题,以及确定系统必须完成的工作,为了更好的满足用户的真正需求。我们所做的一切都是为了能够真正的满足用户...
  • 库存系统业务用例建模需求用例建模.doc
  • 软件工程(四)——需求建模

    千次阅读 2018-10-17 22:55:44
    笔者正在学习《软件工程-实践者的研究方法》这...需求建模动作产生以下一种或多种模型类型: 场景模型:出自各种系统“参与者”观点的需求; 数据模型:描述问题信息域的模型; 面向类的模型:表示面向对象类(属...
  • 数学建模资料-数学建模-深圳人口与医疗需求预测-数学建模
  • 本文分析了当前RUP实践的缺点及敏捷建模实践特点,在此基础上总结了敏捷化统一过程(AM-RUP),并提出了一种AM-RUP的需求建模过程――“总体概要需求Ka-,按需求优先级进行计划,小增量迭代式简单需求建模”。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 148,692
精华内容 59,476
关键字:

为什么要进行需求建模