《软件需求讲义第三部分》由会员分享,可在线阅读,更多相关《软件需求讲义第三部分(79页珍藏版)》请在金锄头文库上搜索。
1、软件需求(三),周勇 ,没有什么比恰当的举例更难的了。 马克吐温 (Mark Twain) 要发明创造,你得有丰富的想象力和一堆废物。 托马斯爱迪生 (Thomas Edison),2007年7月 SEI of ECNU 版权所有 软件需求工程 3-2,需求获取与需求分析,需求获取的方法 寻找客户的需求(导出问题) 理解用户的需要 定义系统 管理客户 需求建模 结构化分析 面向对象的建模 商业建模 用例建模 原型开发,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-3,第五章 需求获取的方法,获取需求是一个确定和理解不同涉众的需要和约束的过程。 获取需求的方法:面向目标,基
2、于场景,面向方面,面向视点,基于知识。 需求描述语言可分为三种:非形式化、半形式化和形式化语言。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-4,主要的获取方法,面向目标(Goal)的方法 基于场景(Scenario)的方法* 面向方面(Aspect)的方法 面向视点(Viewpoint)的方法 基于知识的方法,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-5,需求描述语言,非形式化语言 主要是指自然语言和进行了一些结构化的类自然语言,在目前实践中应用最为广泛。 形式化语言 主要以数学与逻辑的形式对系统需求进行描述,例如Z、VDM、STATECHA
3、RTS、Petri 网等。 半形式化方法 如图、表等方式,或者有选择的采用一些数学或逻辑的描述方式,试图兼顾可理解性和描述的准确性,在一定程度上兼具形式化语言和非形式化语言的特征(包括其优点和缺点),其代表例如PSL、SADT、UML等。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-6,获取需求的案例,我们将要开发一个在线图书借阅系统系统。传统的借书方式要求读者亲自来到图书馆,这显得非常不方便,而且随着藏书的增加和读者群的增长,尤其而且大量的读者到图书馆,使得图书馆的场地不足,工作人员也不够了。所以想到借助网络,让读者通过网络借/还书,这样可以省掉大量的场地维护和工作人
4、员成本支出,同时计算机可以方便的检索目录,让读者可以足不出户借到需要的书。为了把书送到借阅人手里,我们已经联系了快递公司,初步达成协议,由他们往返借阅人和图书馆之间,把图书送出和收回。读者在网上出示和验证借书卡,找到他们需要的书,提交申请,图书管理员确认后,就会通知快递公司来取书,当读者拿到书之后,快递公司需要把读者的签单拿回来以证明读者已经拿到了书。当然这个过程中,读者是需要付费的。还书基本上也是同样的过程。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-7,第六章 寻找客户的需求(导出问题),了解用户需求的第一步是在有关问题的定义上和用户达成一致。 用户陈述的问题往往
5、是表面现象,我们有必要和用户一起挖掘出问题背后的问题,即找出问题的根源,从而从根本上解决问题。 确定系统的涉众,除了开发团队和用户等直接涉众,我们还要找到间接的涉众。 系统边界确定了我们系统的内涵,即它究竟包括哪些功能,可以解决哪些问题。 确定解决方案的约束条件。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-8,在问题定义上达成共识,描述问题的模版,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-9,了解问题产生的根本原因(一),鱼骨图,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-10,了解问题产生的根本原因(二),帕累托图(
6、Pareto Chart),2007年7月 SEI of ECNU 版权所有 软件需求工程 3-11,确定涉众和用户,涉众 (stakeholder) ,在软件开发项目中主要是指和这个项目有密切相关利益的人,他们共同感兴趣的就是需求分析阶段。这些涉众包括客户、用户、业务或需求分析员(负责收集客户需求并编写文档,以及负责客户与开发机构之间联系沟通的人)、开发人员、测试人员、用户文档编写者、项目管理者和客户管理者。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-12,确定涉众的问题举例,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-13,在线图书借阅系统
7、中的涉众,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-14,确定系统的界限,定义系统的关键首先是要给出系统的边界。该边界把我们的系统和外部世界一分为二,换言之,系统边界确定了我们系统的内涵,即它究竟包括哪些功能,可以解决哪些问题。我们可以根据确定的系统边界给出系统的环境模型。它指出了我们的系统以及其它和它交户的系统之间的关系。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-15,在线图书借阅系统的界限,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-16,确定解决方案的约束条件,潜在的系统约束,2007年7月 SEI of EC
8、NU 版权所有 软件需求工程 3-17,到期催还功能的约束分析,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-18,第7章 理解用户的需要,有效而直接的用户访谈技巧要求访谈者准备一个问题列表,目的是了解真实的问题和潜在的解决方案。 专题讨论会可以减少一部分需求冲突,绕开纷繁的情况得到需求列表,以此作为进一步分析的基础。 制作情节串联板就是使用工具向用户说明系统如何适应组织的需要,并表明系统将如何运转。情节串联板的类型包括被动式、主动式和交互式,其复杂度依次递增。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-19,用户访谈,有效而直接的用户访谈技巧要
9、求访谈者准备一个问题列表,目的是了解真实的问题和潜在的解决方案。 为了尽可能获得没有偏见的答案,需要确保提出的问题与背景无关(Context Free)。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-20,用户访谈的五个阶段,准备访谈 计划和安排访谈日程 访谈开始和结束 引导访谈 后续的访谈整理工作,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-21,开放性问题与封闭性问题,在开始一个议题时,一般会用开放性的问题(什么,为什么,多么),便于被访谈者展开思路。 随着讨论的深入,渐渐转为提供结论的封闭性问题,这样能帮助证证实你的理解。 太多的封闭性问题
10、会导致收集的信息不完整,太多的开放性问题可能导致需求分析者的理解失误。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-22,调查问卷,使问卷表尽可能的简短。通常,一个问卷表包含的问题不超过10-15个。 估计回答问题需要的时间。 确保问题是前后一致的,没有让人含混的理解 为了保证不会理解含混,让与回答者关系密切的人员来进行问卷调查,并保证他们对问题的理解是正确的。 在制订问题前,先确定你需要得到怎样的答案 分别列出所有可能的答案 确保所有的需求能被问题覆盖。最后,剔除掉与需求无关的问题。,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-23,专题讨论会,常见的专题讨论会,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-24,情节串联板,情节串联板的复杂程度与成本,2007年7月 SEI of ECNU 版权所有 软件需求工程 3-25,