【公众号 “项目管理研究所” 将会第一时间更新文章并分享《行业分析报告》】
归档于软件项目管理初级学习路线
第四章 软件需求管理
《初级学习路线合集 》
大家好,这节我们学习软件项目管理---传统需求建模方法,接下来通过例子介绍主流建模方法,我们介绍:1.原型方法 2.基于数据流建模 3.基于UML建模。
原型方法是通过不断地评价原型来确定需求的方法。
这是某门户网站的项目,那么在需求分析阶段,通过不断地优化这个原型界面,来最终确定项目的需求,而且与用户很容易进行交流,实践中可以采用原型建模工具,例如等Axure设计工具。


数据流方法是结构化分析方法的主要方法。20世纪70年发展起来的面向数据流的方法,是一种自顶向下逐步求精的分析方法,根据软件内部数据传递、变换的关系进行分析的。
数据流方法的主要技术有数据流图(DFD),数据字典(DD),系统流程图等等...
例如这是银行取款过程,通过数据流来描述银行取款的需求,这里采用的是DFD图进行描述的数据流由存折开始进入系统,接受检查,如果有问题就返回,否则继续将提款的信息记录在系统中,处理付款信息,付款给储户,完成了取款的过程。

那么这个例子是学生信息管理系统,那么他体现了自顶向下逐步求精的数据流分析过程,那么这是最顶层的数据流,数据流再往下需要进行合法性检查,进入了各个功能的模块 。


例如学生基本信息模块,学生健康信息模块,学生成绩信息模块,以及查询模块等。


如果希望对DFD图中的数据进行描述,还可以采用数据字典等工具来描述。我们这里将学生基本信息,学生健康信息,学生成绩信息等进行了详细的描述。

基于UML建模是基于面向对象的情景分析方法,从用户角度出发考虑的功能需求,用例是系统向用户提供一个有价值的结果的某项功能。
建模过程可以通过几种UML视图来描述,例如用例视图,顺序图,状态图,活动图等等。
基于UML建模步骤如下:
1.要识别出系统的角色既Actor。2.描述需要的Use case。3.实现用例视图。4.必要的时候可以再通过顺序视图,活动视图,状态视图等来进行描述。
进出口贸易的业务环节是很多的,涉及到配额与许可申请,询价,报价,合同洽谈,备货(出口),信用证,商检,报关,运输,投保,付汇/结汇,核销退税(出口)等多个环节。
这个案例采用UML方法进行需求建模的,首先识别角色,识别出很多角色,包括保险,出口商,存储,海关,检查部门,进口商,贸易管理部门,税务,银行,运输等等角色。

而角色之间也存在一定的关系。

我们再看角色需要的usecase,也就是需要的用例。最高层包括出口和进口,进出口贸易按照阶段可分为合同签订,合同执行两部分。
我们以出口贸易的一些业务为例来进行说明,合同签订阶段涉及的角色是出口商,进口商,贸易管理部门。出口商和贸易管理部门进行出口配额申请,出口商和进口商进行合同洽谈,因此产生了出口配额申请和合同洽谈两个usecase,那么usecase的参与者是出口商,进口商,贸易管理部门。

合同执行阶段主要是合同的履行过程,主要执行过程如下图,涉及的角色也非常多,产生的usecase也较多。

上述给出的usecase如果不够详细,还需要进一步描述,例如出口配额申请的usecase对很多人来讲是个黑盒子,不清楚其中功能,为了进一步描述其内部功能和相关信息,有必要将这个黑盒子打开,那么这个黑盒子可以进一步通过计划分配配额,招标配额两个usecase来描述,我们可以看这个图:

另外呢计划分配配额用例对很多人来讲仍然是个黑盒子,有必要进一步来描述内部的相关信息。
那么计划分配配额描述出 出口公司向省级的地区经贸委,外贸经贸部提交计划分配配额申请,并通过审核领取计划分配配额的活动,我们可以看这个图为计划分配配额的顺序图。

我们也可以通过活动图来进行展示,那么这个图就是计划分配配额的活动图。

那么其他的用例图以此类推,可以展开来说明,直到最后需求描述清楚为止。
总之呢我们这里介绍了原型方法,数据流建模,UML建模等传统的需求建模方法,当然还有其他的传统需求建模方法,这里就不一一介绍了。
到这里,第四章第二节 传统需求建模方法就讲解完毕!下一节介绍敏捷需求建模方法~
如果您觉得这篇文章有帮助到您的的话不妨点赞支持一下哟~~?
后续将持续更新【软件项目管理初级学习路线】的全知识点,大家感兴趣的多多关注博主哟~
————————————————
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案