软件工程问答--需求篇

1,关于需求的四个工具:

1)BPMN商业流程建模软件,IBM- WebSphere Business Modeler Advanced

2)UML建模软件,业界第一的,IBMRational RSA for websphere

3)业界第一的,需求管理软件,IBMRationalDOORS

4)业界第一的,软件UI建模工具,IBMRational RRC

 

2,需求

1)需求分为动态和静态两部分:

 

动态主要是流程,以及流程中的业务场景的详细描述

 

流程使用标准的BPMN来进行建模,业务场景的描述使用用例

 

BPMN采用业界领先的,IBMWBM工具来进行建模

 

2)用例采用业界排名第一的,IBMRational RSA来进行建模,具体用例建模请用我的名字+用例两个词进行百度,可以找到一篇我之前写的详细的指导文章。

 

3)静态方面包括但不限于:软件UI原型,为了能够快速的和客户进行交互反馈,让客户在需求阶段就能够感知到软件的实际运行状况,所以采用需求界面原型建模的方式来做。传统工具比较粗糙和实际软件的操作感,相去甚远,用户一看就知道是一个急就章的东西,达不到使用的感觉,也不好进行反馈 ,所以推荐,高度仿真软件界面的UI原型工具,IBMRational RRC,推荐使用容易部署的早期2.0版本 。

 

4)需求中非常重要的就是需求会变,变了要管,称之为,需求管理,需求管理传统方法是用跟踪表格,效率差,容易出错。操作是人工的,不便于项目干系人感知需求发生变化,也不方便做影响性分析, 所以,推荐采用业界第一的,IBM Rational DOORS进行需求管理。

 

3question:界面原型也是需求分析人员去设计,那怎么让研发知道每个功能和功能之间的跳转联系的关系呢?

answer:1)需求不是直接导致软件界面原型的。需求需要进行提取,分析,精华,然后构成一个系统的功能模块,功能模块需要覆盖全部的功能需求,然后,在业务层进行独立于软件界面的实现,然后再在上层进行UI的展现,UI的展现会根据客户的操作人员进行设计。

 

2)这里有一个概念,是解耦:你的软件,有可能后期会是3个版本,一个客户端版本,一个web版本,一个手机版本。所以,你的软件界面,不是在需求阶段,就立即出现的。如果,你能够确定客户就是要某种形式--例如web形式的,那么你就可以进行软件界面的UI原型建模。

 

4question也就是说我要根据用户的需求和习惯结合业务,设计出所有的功能,将这些功能运用用例图和文档等形式表现出来就行了,至于界面原型是UI根据我的文档去设计的?

answer:1)需求是搞清楚,客户要干什么;

功能是支持客户可以干的具体手段;

用例是描述业务场景下,客户的操作员,某个Actor如何进行业务操作的;

用户界面是为了展现软件功能的。用户界面,把软件的功能,呈现给软件的操作者;

我们不要在做需求的时候,一步到位,直接跑去软件的界面。因为这样,可能会遗漏,不全面。要先把业务搞清楚:包括,业务目标,业务流程,业务场景下的具体操作

2)领域模型是基于业务的,概念模型是一种抽象的表达方式。有时候,这2个词,是一个意思。概念模型是一个比较泛化的词,要在上下文情境中,才有具体意思。

3)界面原型,是在需求分析后期在需求分析师的指导下让美工去做。但是记住,这里的界面原型的作用,一个方面是为了最终确定软件后续开发出来的样子,另外一个更重要的方面,是为了搞清楚用户的需求。我们不是照着界面原型开发软件,而是通过界面原型搞清楚需求,参考界面原型的样子开发软件。

 

简单说,就像我们建筑师,做一个模型房子给客户看,让客户提意见一样的。

 

5question也就是说通过界面原型给客户演示,告诉他们软件能实现什么功能,但是交付的外观可能不是这个样子的?

Answer:交付的软件,大致也是这个样子。但是,做这个界面原型的目的,不是给开发人员去照着去直接开发软件,而是,为了摸清楚,客户的需求。

同时,一个附加的好处是:在真正开发软件的时候,可以参考这个界面原型的样子,去开发软件的UI。

 

这个真实的软件UI和界面原型之间,会比较相似,但肯定不是100%的相同。

 

6question那需求说明书要详细到什么程度呢?

Answer:细到设计人员能够觉得获取了足够的用户信息进行设计,开发人员觉得获取了足够的信息,能够在设计的要求下去开发

 

7,用户需求中做的界面原型,只是原型,如果完全按照这个原型来做,有可能后期会产生些问题。问,也就是说我要根据用户的需求和习惯结合业务,设计出所有的功能,但这些功能运用用例图和文档等形式表现出来就行了?

Answer:不是这样的,功能不是在需求阶段出来的,是在设计阶段,要架构师确定,我设计出什么样的功能模块可以满足你的需求。

也就是说,需求要尽可能的详细是必须的,只要在大的数据流程、功能设计约束、角色方面明确好。后期研发人员只要不违背整体设计在细节上做改动是允许的。

在需求阶段你去搞功能,不是抢了架构师的工作么。

而且,你需求阶段的所谓功能,可能并不是真正的功能模块的功能。

 

8question:如果架构师在需求阶段介入了解,那不是开发人员不能实现的需求就少了嘛?

Answer:你的需求,会进行整合,形成一个一个的功能团,功能组。然后,类似合并同类项

把功能需求上相近的,可以由一个功能模块支撑的,按照高内聚,低耦合的原则进行模块的划分。

Question:那界面原型是什么时候的事情呢?

Answer:需求中后期

我们做原型的目的,不是按照原型的外观,一比一的去开发软件

Question:那界面原型的功能怎么来的?

Answer:而是通过原型去校验你的需求是否正确,同时给开发软件的时候,参考这个软件的外观作需求,首先核心是,弄清,客户的业务目的,业务流程,业务操作。你不要一开始就去搞个界面原型给客户,那会进行错误诱导。

Question:也就是说架构会根据需求人员的文档去设计功能?

Answer:架构师,是根据需求进行架构设计,功能模块的划分。架构师还要考虑重用,依赖性,等等。不了解业务及产品目标而做界面设计会导致重新返工,做需求,要第一,正确,第二,完整。

 

9question:那也就是说你自己划分的功能模块了?

(要了解客户业务流程,在节点上需要看到什么显示什么, 要录入什么数据得到什么数据。 这些了解后才能设计业务界面原型)

Answer:做需求的人,不要去划分功能模块,做架构设计不光是考虑功能,还要考虑很多因素,例如,各个功能模块之间的依赖,配合,等。

question:既然功能的设计师在界面原型之后,那界面原型中的功能是怎么来的?需求人员自己划分的?
answer:界面原型中,并不能体现功能!!!!!!!!!

界面原型,就象一辆车的外观,你怎么能知道,这个车里面的各个零部件?
界面原型主要是和操作需求,交互需求,每个角色的业务目的等等有关系,在做界面原型的时候,不考虑底层的功能。

question什么是底层的功能?

answer:底层的功能模块,一个模块可能会支持上面的几个地方的功能需求。不光是不考虑如何实现功能,同时,你也不要去尝试划分出功能模块,那不是你干的活。

 

还有,框架,和架构,不是一回事。一个是framework,一个是,architecture。

 

10question能推荐一个工时管理软件吗?

Answer:如果是针对开发人员的,可以采用RTC里面的工作项管理。其实,业务肯定是需要懂的,不懂业务,做不好需求。

 

这里还有一个很重要的问题:就是客户的业务,在做这个系统之前,可能是存在问题的,例如,业务流程不合理,太长,有瓶颈等。通过熟悉业务,就可以对业务流程进行优化,改进。

 

11,对,我经常就说,我们的队伍,如果,没有信仰,没良好的技战术,没有良好的指挥协同,没有精良的武器,那么,再加上随时可以合法的当逃兵,那怎么去打仗??

Answer:所以,核心就是,要有武器--工具;要有方法--软件工程开发过程;合适的协同沟通--通过工具和使用方法;关键是,体系没有建立,所谓铁打的营盘,流水的兵,就是营盘这个体系要健全,硬。

 

12question:“老师您说下要培训哪些方面的知识呢?”

Answer:首先是要系统的学习,需求工程,这个方面的知识。

Question:麻烦您讲下好吗?能推荐一个书目么?

Answer:然后要掌握,做需求相关的方法和技术,包括,需求工程的5大块,都需要掌握。然后熟练使用需求工程中所涉及到的5大工具,然后,也要懂开发方面的基本技术知识,同时积累某几个行业的业务知识。

例如,哪些是可以实现的,哪些是无法实现的,哪些是可以实现,但是代价很大的。

了解中间件、数据库、云、新的存储模式、新的架构体系,至少能明白每种技术的用途。

例如,EJB是在什么情况下,才需要用。

 

硬件现在都是比较现成的,而且,云的体系结构决定了,硬件上,是可以扩充的,关键是,云的实现架构上,不要有瓶颈。例如,openstack就是一个soa的体系结构。

 

云计算中心的问题:关键是,计算密度,能量使用效率,散热。

 

13question:请教一下能不能推荐一本云计算的书。。。不要技术性很强的比较适合扫盲而且介绍的比较透彻的那种?
answer:首先,可以看看,云的参考架构。我用大白话讲,就是一大堆硬件服务器,在上面装上一个称之为,云操作系统的系统软件。例如,openstack,然后,把这一堆硬件,装成虚拟机,然后,把这一堆虚拟机,卖给你用。

 

 云的核心,就是,资源的虚拟化,池化,按需使用,按使用付费,网络访问。私有云不存在网络问题,公有云,才会有这个问题。我访问惠普的公共云,很流畅,以后企业都会用到私有云和公有云。 会对机房进行升级改造,提供,基本的云服务。例如,虚拟机,还可以结合惠普的一些软件。http://en.wikipedia.org/wiki/Cloud_computing大家看这个,说得很清楚。云其实,就是,你用,用的时候给钱,不用不给钱,灵活,简单。

 

 例如我开个Oracle的培训班,以前需要买20台高配置电脑,现在不需要了,买20个云,培训1星期,结束后,就不继续租用,方便简单,省时省力。15分钟,这20台高配置虚拟机,就ready了,惠普的,亚马逊的,都可以免费用,时间是,亚马逊1年,惠普3个月。

不需要客户端,每个学员,自己准备一个普通的破烂笔记本,上网本都可以。培训是在教室,面对面,和以前一样,老师,学生,在一起。但是,你做实验的电脑,在云里 ,你操作的是远程的,云中的高配置的虚拟机,破网本,只是一个客户端,云对于开公司,创业是最好的,客户端不需要装任何东西。云,大家,可以第一,试用感受,第二,研究下,openstack。

 

Question:有云集成这个词吗?
answer:没有。是把现有的环境可以迁移到云中去,例如,你现在是物理服务器上跑的一些应用,可以迁移到云的虚拟机中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值