1北风网项目培训白手起家之企业应用系统的创建讲师:Lion企业通用工作流程系统的设计开发实例CommonWorkFlowSystem白手起家之企业应用系统的创建ThankingInDesign基于ASP.NETforC#2008如果25岁了,你还是只是一名普通程序员,你应该好好阅读此书!2第五章要件定义和需求分析.上一章,我们讲解了项目的启动环节之后的第一个实战阶段,问题定义及规划,我们结合本案的实例,讲述了如何将用户/客户的要求定义为项目的问题,接下来讲解了如何规划用户的业务,最后,说明了在该阶段,如何规避风险;本章我们要讲述软件工程的第二个阶段,要件定义和需求分析;本章分为:•5.1如何确定业务要件•5.2业务模型的构建•5.3实例解读35.1如何确定业务要件.很多软件设计人员都会遇到这样的问题,当我们所有设计都结束的时候,甚至开发到了一定规模,忽然却会杀出一个完全不为我们所知的业务出来,还有甚者,我们到用户培训阶段的时候,开发出来的产品却完全不是他们所需要的东西;当然产生这样的问题,不一定是我们的需求分析做的不够彻底,而经常是客户在问题定义的时候,没有对我们的软件人员说明,当然还有很多这样的例子,这一节我们要讲述,如何确定业务要件;第五章要件定义和需求分析4.•对日软件开发项目的流程知识在讲述如何进行要件定义之前,我们有必要讲述一下,在对日软件开发项目中,开发流程的一些基础知识;在对日软件开发项目中,开发的过程有多种多样的,但是无论怎样的开发过程,无非包括:设计、开发、测试这几个大的过程;1.设计作业内容:决定系统设计书,这里的设计书事该系统持有的功能或机能的东西;决定权:如果是最终客户的话,由最终客户决定,如果是公司内部开发的话,由项目负责人决定;成果:要件定义书,机能式样书,详细设计书等;第五章要件定义和需求分析5.2.开发作业内容:根据设计阶段的成果,进行代码编程决定权:项目经理(PM)成果:程序相关代码和产品3.测试作业内容:开发出来的成果,进行品质检查;决定权:客户成果:检查完成的程序产品和测试报告书;第五章要件定义和需求分析6.•各种各样的开发过程第五章要件定义和需求分析•流水式(WaterFall)设计开发测试审查审查7.•各种各样的开发过程第五章要件定义和需求分析•原型式(Prototyping)演示程序演示程序验证验证8.•各种各样的开发过程第五章要件定义和需求分析•螺旋式(Spiral)设设设设开开开开测测测测9.•要件定义要件定义就是将客户含糊的业务要求,制作成明确的系统功能式样;也就是说,要明确的告诉客户,有哪些业务要求,是用软件系统可以实现的,有哪些实现不了。所以,在与客户探讨的之前,有必要了解客户的业务方面的项目知识,例如我们做人事系统,就要了解人事组织,人事制度方面的知识,财务系统,就要了解会计,金融和税务方面的知识等;第五章要件定义和需求分析10.1.DOA(DataOrientedApproach数据中心型处理)这中要件定义的手法,是以数据为中心进行设计,适用于客户已经有一套系统,可能需要升级,例如从windows的平台转义到Unix平台,或者使用B/S模式等,或者客户本身有许多手工的做账的数据;第五章要件定义和需求分析2.DFD(DataFlowDiagram数据流图型处理)这中要件定义的手法,是业务处理流程为中心,它表现为业务流,数据存贮,处理三种形式;11.订单发货业务要件定义第五章要件定义和需求分析订单数确认在库数确认出库指示出库订单DFDDataStore数据存储项目名属性位数订单号string6仓库代码string3仓库名称string20…DataFlow数据流项目名属性位数订单号string6发货单号string3发货数量string20…Process处理输入处理输出出库指示单出库内容出库单在库信息取得错误信息12.3.要件定义作业流程第五章要件定义和需求分析P1P2P3P6P7P8P9P10P13P14P4P5P12P1:要件定义的计划和基准作成P7:DFD新系统物理模型P13:要件定义书作成P2:DFD既存系统物理模型P8:数据正规化P14:要件定义书再审查P3:DFD既存系统理论模型P9:ER图作成P15:外部设计以后的开发计划P4:要件调查计划P10:正规化结果反映到DFD中P5:要件调查和分析P11:画面布局讨论和确定P6:系统化范围讨论P12:系统要件整理P11P1513第五章要件定义和需求分析4.用户要求收集14第五章要件定义和需求分析5.2业务模型的构建根据上节课,我们整理的用户要求,就可以开始定义业务模型了;那么什么是业务模型呢?所谓的业务模型,就是企业活动和这些活动必要的信息;这些信息的流向,数据的构造化,都在企业经营模型当中体现;1.业务模型定义作业流程P1P2P3P4P1:业务过程定义P2:数据类定义P3:企业活动和数据类结合P4:重新审核15第五章要件定义和需求分析•业务过程定义:由企业各种各样的业务和意识决定,按活动的目的,类型分组构成;有时候并不是实际的业务活动,是由理想的业务流程规定的;使用DFD将业务流程化;•数据类:从用户使用的观点出发,为了实现业务过程,而使用的数据;它包括・基本业务・业务机能,业务的生命周期・定义的详细度・理论数据模型・现存物理模型・构造化手法16第五章要件定义和需求分析•业务描述业务描述登录系统该用户是否在系统中存在?如果不存在要求系统管理员注册一个;使用系统者检查是否设定了上司,由于审批人都必须由其上司来审批,所以对于还未设定上司的申请人,要求在使用之前设定;是否有没有处理的事情如果没有等待自己处理的申请,默认停留在个人设置,如果自己有申请单,则显示自己申请单的列表17第五章要件定义和需求分析•业务模型登录状态确认设定个人信息登录上司设定个人设定个人信息更新用户信息用户角色信息18第五章要件定义和需求分析菜单登录密码设置部下设置个人设置初始设置登录表用户角色表用户表流程表申请状态表•数据模型195.3实例解读.下面通过一些实例的讲解,我给大家说明一下,我们这个实例项目是如何做要件定义和需求分析的;第五章要件定义和需求分析20.第五章要件定义和需求分析编号SE0001日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名申请书显示业务代码NEW_APP0001业务描述对于登录的每个员工都能看到自己的申请,如果是有特别权限的人,能看到其他的人申请书系统实现申请数据一览表示,判断用户是够有显示其他用户申请书的权限,如果有也表示出来;优先度A作成者Lion备注21.第五章要件定义和需求分析编号SE0002日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名可使用申请书一览业务代码NEW_APP0002业务描述对于制作的申请书设定的使用部门,将能使用的申请书显示出来;系统实现申请书设定的能够部门表与用户登录的部门比较,如果存在则显示;优先度A作成者Lion备注22.第五章要件定义和需求分析编号SE0003日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名申请书输入业务代码NEW_APP0003业务描述根据系统管理员制作的申请书格式内容,由用户输入内容,然后进行提交,申请人觉得没有疑问的时候,提交给设定的审批者;系统实现申请书内容格式动态显示,提交后进去确认画面,在确认画面确认后,找到该类申请书的审批人,更新数据表优先度A作成者Lion备注23.第五章要件定义和需求分析编号SE0004日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名申请书状态业务代码NEW_APP0002业务描述用户提交的申请书,要能查到现在的申请状况;系统实现申请书的履历作成,显示该申请单的状态;优先度A作成者Lion备注24.第五章要件定义和需求分析编号SE0005日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名审批等待处理内容业务代码CHK_APP0001业务描述根据申请单提交给的审批人,如果是登录系统者,那么显示出来系统实现申请书当前状态的处理人ID和登录的ID比较,如果相等的话,将这条申请单显示出来;优先度A作成者Lion备注25.第五章要件定义和需求分析编号SE0006日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名审批处理业务代码CHK_APP0002业务描述根据申请人填写的内容,审批人可以选择同意,不同意,退回给申请人几种处理方式;系统实现更新申请书状态,分为(申请结束,同意,否决,退回,最后同意)状态优先度A作成者Lion备注26.第五章要件定义和需求分析编号SE0007日期2009-06-19使用部门公司全体部门部门担当者人事部)NNN业务名审批批处理业务代码CHK_APP0003业务描述可以一批处理我要处理的审批数据系统实现可以让用户选择需要一批处理的数据,最后整体提交优先度A作成者Lion备注27.第五章要件定义和需求分析编号SE0008日期2009-06-19使用部门系统部部门担当者系统部)NNN业务名申请表单定义业务代码CRT_FRM0001业务描述根据公司的需要,可以构造自己定义的申请表单系统实现将用户的表单内容作为数据,存储在数据库中,根据形势读出这些数据;优先度A作成者Lion备注28.第五章要件定义和需求分析编号SE0008日期2009-06-19使用部门系统部部门担当者系统部)NNN业务名用户管理业务代码MST_USR0001业务描述导入人事系统各类表系统实现定义接口文件,导入现存系统的人事数据优先度A作成者Lion备注29.第五章要件定义和需求分析下一章,我们会根据本章的要件定义和需求分析,讲述具体的概要设计,这一步将更加接近系统,敬请关注!作业题:如何使需求分析做的更加彻底?