项目需求分析和项目.ppt
为什么要进行毕业设计项目,假如,现在的你正在参加面试,面试官问你如下问题你能读懂项目计划么?你有过团队开发经验么?你能读懂需求规格说明书么?你对测试了解多少,会写测试用例么?你用Java/.NET做过中小型项目开发么?请你说说一个项目中都应该有哪些规范?你做过设计么,如果做过谈谈这些设计吧?.,你会做出怎样的回答?,经过毕业设计项目的“磨练”,回答这些问题将不成问题!,综合项目的目标,通过参与并完成综合项目,你将能够积累到项目经验积累到行业经验积累到团队开发经验学习到实用软件工程知识,第1章项目需求分析和项目计划,课程地位,课程目标,学习内容OOAD的概念 UML发展和用途用例图、类图、时序图、状态图以及活动图数据库设计原则PowerDesigner使用 需求分析、项目计划、概要设计、详细设计项目管理学习目标掌握OOAD的用法掌握UML的用法掌握用例图、类图、时序图、状态图以及活动图原理及画法掌握PowerDesigner用法掌握需求分析、项目计划、概要设计、详细设计文档格式了解项目管理过程,本章内容,项目计划OOADUML用例图需求分析说明书规范,本章目标,掌握项目计划书的规范了解OOA和OOD的概念了解UML的发展和用途掌握用例图的概念和用法掌握需求分析说明书的规范,为什么要做计划?,需要考虑到的事情小张要吃午饭为了维护公司形象,小张去之前要理个发从北京站到廊坊双程需要将近4个小时16:25分之前要达到客户公司今天女朋友过生日,晚上19:30分要陪她吃饭想想要做这么多事情,小张的头都大了,该怎么办?,小张在北京工作,老板派他今天16:30分到河北廊坊一家客户那里去签订合同,现在是11:30分。,古语说得好:凡事预则立,不预则废!,什么是计划?,老板把小张拉到身旁,两人一同制定了一个计划11:5012:50:吃午饭13:0013:30:去理发13:50:在北京站开始等公交车16:10:到河北廊坊16:20:到达客户公司 16:3016:50:和客户签订合同17:00:在廊坊开始等公交车19:10:到达北京站19:30:和女朋友一起吃饭,怎样制定项目计划?,制定项目计划的三个步骤1、划分任务点 11:5012:50:吃午饭 13:0013:30:去理发.2、分配资源 签合同 小张 利用下午时间3、获得项目人员的承诺小张拍拍胸脯,承诺一定能完成任务!,制定项目计划的二个原则,有效追踪原则(任务点划分)对任务进行有效分解粒度适中(一般控制在13个人日)共同参与原则不是PM一个人的事共同估计工作量,并作出承诺,制定“权限管理系统”项目计划,权限管理系统-项目介绍任务要求现有资源,权限管理系统应能进行用户管理和角色管理,能为角色分配权限,同时也能将角色赋予用户。,项目有了,人也有了!怎样来制定一个项目计划呢?,制定“权限管理系统”项目计划,权限管理系统 任务点划分,制定“权限管理系统”项目计划,“权限管理系统”项目 分配资源1、用户登录模块 诸葛亮 3个工作日2、用户管理模块2.1、增加用户、删除用户 关羽 2个工作日2.2、修改用户、查询用户 张飞 2个工作日2.3、查看用户、角色分配 赵云 2个工作日3、角色管理模块3.1、增加角色、删除角色 张飞 2个工作日3.2、修改角色、查询角色 关羽 2个工作日3.3、查看角色、权限分配 赵云 2个工作日4、生成菜单模块 诸葛亮 3个工作日,制定“权限管理系统”项目计划,“权限管理系统”项目 获得项目人员的承诺,用Project工具制定项目计划,Microsoft Project 2003 简介是 Microsoft 提供的企业管理工具产品的一员是一款专业的项目管理软件它可以帮助我们管理项目安排任务制定计划分配资源,用Project工具制定项目计划,用Project工具制定项目计划分为以下四个步骤1、创建项目文件2、划分任务点3、为项目分配资源4、设置项目里程碑,步骤一:创建项目,创建项目文件填写项目信息,教员演示,步骤二:划分任务点,划分任务点创建子任务前置任务,教员演示,“降级”按钮!,前置任务!,步骤三:分配资源,排定资源为项目分配资源,教员演示,分配资源结果,步骤四:设置项目里程碑,里程碑里程碑是标志项目重大事件的参照点设置项目里程碑,教员演示,项目“里程碑”!,项目计划书,规范的项目计划书通常是企业成功融资的必备文件之一项目计划书包含了投资决策所关心的全部内容,例如企业商业模式、产品和服务模式、市场分析、融资需求、运作计划、竞争分析、财务分析、风险分析等内容,商业计划书不仅对融资具有重要作用,而且对企业的发展具有战略指导意义,1.面向对象的分析和设计,OOA(Object-Oriented Analysis,面向对象分析)是指在系统的开发过程中进行了系统业务调查后,按照面向对象的思想来分析问题面向对象的分析是依照用户所理解的真实世界中的对象和概念,发现和分析对象的内部构成和外部关系,建立准确而简洁的软件系统的对象模型,1.1 面向对象的分析,1.1 面向对象的分析,OOA的主要原则 抽象:舍弃个别的、非本质的特征,抽取共同的、本质性的特征封装:将对象的属性和服务结合成一个不可分的系统单位继承:特殊类的对象拥有其一般类的全部属性与服务 分类:将具有相同属性和服务的对象进行划分聚合:将一个复杂的事物视为若干简单事物的组装体关联:通过一个事物联想到另外的事物消息通信:对象之间通过消息进行通信粒度控制:既能纵观全局,又能洞察秋毫,面向对象的分析,面向对象分析产生的3种分析模 对象模型 动态模型 功能模型,面向对象的分析,OOA的主要优点 加强了对问题域和系统责任的理解 改进与分析有关的各类人员之间的交流 对需求的变化具有较强的适应性 支持软件复用 贯穿软件生命周期全过程的一致性 实用性 互动性,面向对象的分析,OOA具体分析事物时的5个步骤 确定对象和类 确定结构 确定主题 确定属性 确定方法,1.2 面向对象的设计,OOD(Object-Oriented Design,面向对象设计)是面向对象方法中的一个中间过渡环节,其主要作用是对OOA分析的结果作进一步的规范化整理OOD模型由4个部分组成 设计问题域部分 设计人机交互部分 设计任务管理部分 设计数据管理部分,面向对象的设计,OOD设计过程的主要步骤对象定义规格的求精过程 数据模型和数据库设计 优化,2.UML,贝多芬作曲时使用五线谱,您設計軟體時使用UML,2.1 UML的产生和成长,UML(Unified Modeling Language,统一建模语言)是用来为面向对象开发系统的产品进行说明、可视化和编制文档的一种标准语言UML是软件界首次出现的统一的建模语言。目前,OMG已经将UML作为PAS(Publicly Available Specification,公用规范)提交给ISO进行国际标准化,使UML最终正式成为信息技术的国际标准语言,UML的产生和成长,UML的形成过程,2.2 什么是UML,UML是一种标准的图形化建模语言,是面向对象分析与设计的一种标准表示UML需要实现的目标 易于使用,表达能力强,进行可视化建模 与具体的实现无关,可以应用于任何语言平台和工具平台 与具体的过程无关,可以应用于任何软件开发的过程 简单且可扩展,具有扩展和专有化机制,便于扩展,无须修改核心概念 为面向对象的设计与开发中出现高级概念提供支持 与最好的软件工程实践经验集成 可以升级,具有广阔的适用性和可用性 有利于面对对象工具的市场成长,什么是UML,UML用于描述模型,通过使用模型来描述系统的结构或静态特征、行为或动态特征。它从不同的视角为系统的架构建模,形成5种不同的视图:用例视图 逻辑视图 并发视图 组件视图 展开视图,2.3 UML与OOAD,UML对提高软件质量产生的作用 标准的表示方法 与软件开发的成功经验集成,2.4 UML的应用领域,UML被用于为系统建模,应用范围非常广泛:信息系统 技术系统 嵌入式实时系统 分布式系统 系统软件 商业系统,UML的应用领域,UML的应用贯穿在系统开发的5个阶段:需求分析 分析 设计 构造 测试,为什么要做需求管理?,一天,一家爱斯基摩人来找你帮忙做一个杯子。要求:这个杯子在使用时要能适应北极的环境。这家人承诺:杯子做好后会有高额的酬谢。,你心里想:所谓适应北极环境。北极的地面很硬。那应该做一个结实的杯子。于是你历经千辛万苦做出了:,爱斯基摩人不断摇头,决定一分钱也不付给你。,最后你才知道,他们需要一个拿着不冻手的杯子。他们的真实需求是这样的:,为什么要做需求管理?,客户不知道自己要什么客户:塑料杯、木头杯、还是橡胶杯,我也不知道!客户知道自己要什么,但表达不清客户提要求:使用时要能适应北极的环境。我们经常会对客户的要求产生错误的理解我们的理解:他一定要一个结实的杯子!,我们不能知其然,而不知其所以然。要做好需求管理。,4.需求说明书,需求分析可分为需求提出、需求描述及需求评审3个阶段软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础,什么是需求规格说明书?,需求规格说明书概念软件开发项目中用于明确定义系统需求的文档。需求规格说明书的作用 开发者与用户间事实上的技术合同书 开发者下一步设计和编码的基础 测试验收目标系统的依据,功能性需求:用来描述系统所应提供的功能和服务 系统功能输入输出异常非功能性需求:不直接与系统的具体功能相关的一类需求 安全性可扩展性响应时间,需求规格说明书的构成,3.用例图,3.1用例模型 用例模型是将应满足用户需求的基本功能(集)聚合起来表示的强大工具用例模型的基本组成部件是用例、角色和系统用例用于描述系统的功能,也就是从外部用户的角度观察系统需要支持的功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,3.1 用例模型,引入用例的主要目的 确定系统需要具有的功能为系统的功能提供清晰一致的描述 为系统验证工作打下基础 从需求的功能(用例)出发,提供跟踪进入系统中具体实现的类和方法,检查其是否正确的能力,用例模型,在UML语言中,用例模型(也就是用例视图)是用例图描述的用例图中包含系统、角色和用例3种模型元素,3.2 系统,系统是用例模型的一个组成部分,代表一部机器或一个商务活动等,而并非真正实现的软件系统系统的边界用于说明构建的用例模型的应用范围用例图中用一个长方框表示系统,系统的名称写在方框上或方框中,3.3 角色,角色是与系统交互的人或事只要使用用例,与系统交流的任何人或事物都是角色角色是群体概念,代表一类能够使用某项功能的人或事物,并不是指个体,角色,在实际应用中,通过明确以下6个方面的问题可以帮助建模者发现角色:使用系统主要功能的人(即主要角色)是谁需要借助于系统完成日常工作的人是谁维护、管理系统、保证系统正常工作的人(即次要角色)是谁系统控制的硬件设备有哪些系统需要与哪些其他系统交互(其他系统包括计算机系统和该系统将要使用的计算机中的其他应用软件,分为两类:启动该系统的系统;该系统需要使用的系统)对系统产生的结果感兴趣的人或事有哪些,角色,UML中用一个小人的图形表示角色类,在小人的下方书写角色名称,角色类之间关系,角色类,3.4 用例,用例代表的是一个完整的功能用例具有以下的特征用例总由角色初始化 用例为角色提供值 用例具有完全性,用例,对于已识别的角色,通过询问下列问题即可发现用例角色需要从系统中获得哪种功能?角色需要做什么角色需要读取、产生、删除、修改或存储系统中的某种信息吗系统中发生的事件需要通知角色吗?或者角色需要通知系统某件事吗?这些事件(功能)能干些什么如果用系统的新功能处理角色的日常工作是简单化了,还是提高了工作效率还有一些与当前角色可能无关的问题,也能帮助建模者发现用例,用例,UML中的用例用椭圆形表示,用例的名称写在椭圆的内部或下方用例位于系统边界的内部,角色与用例之间的关联关系(或通信关联关系)用一条直线表示,用例,角色与用例的关联关系,用例,用例之间有两种关系扩展关系使用关系扩展和使用是继承关系(即通用化关系)的另一种体现形式,用例,扩展关系一个用例中加入一些新的动作后则构成了另一个用例,这两个用例之间的关系就是通用化关系,又称扩展关系,用例,使用关系一个用例使用另一个用例时,这两个用例之间就构成了使用关系,用例,一个自动售货系统用例模型,怎样画用例图?,画系统用例图的四个步骤:1、定义系统边界2、找出与用例直接相关的参与者3、画出各个用例4、确定参与者和用例之间的关系,用例详细描述-格式,前置条件用例开始时会发生什么事件流用例执行的各个步骤后置条件用例结束时会发生什么,用例详细描述 示例,前置条件:系统管理员登录系统事件流:1、系统管理员在系统菜单中选择“用户管理”时用例开始2、系统管理员可以增加一个系统用户3、系统管理员可以根据用户名查询系统用户4、对于每一个用户a)系统管理员可以查看该用户的详细信息b)系统管理员可以为该用户分配角色c)系统管理员可以删除该用户循环结束。后置条件:系统管理员执行的用户管理动作生效,为什么要用静态原型法?,遇到下面的问题,你该怎么办?耗时耗力地完成了系统,用户却说这根本不是他想要的?系统完成了,可用户突然说,能不能换套系统界面?项目开发完一半了。用户说,你说 开发完一半了,给我演示看看?,静态原型法可以帮助我们避免这些问题。,什么是静态原型法?,以少量代价快速地构造一个可执行的软件系统模型使用户和开发人员可以 较快地确定需求,静态原型法的实施,快速建立一套用户界面原型体现主要的功能(操作命令的使用)提供基本的界面风格(菜单格式、输出格式)原型的表现工具HTMLMS VisioMS PowerPoint.,总结,OOA(面向对象分析)是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题面向对象分析模型有3种:对象模型、动态模型、功能模型OOD(面向对象设计方法)是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受UML用于描述模型,它用模型来描述系统的结构或静态特征、以及行为或动态特征用例模型的基本组成部件是用例、角色和系统用例之间主要有扩展和使用两种关系,它们是继承关系(即通用化关系)的另一种体现形式需求分析可以分为需求提出、需求描述及需求评审3个阶段项目计划书不仅对融资具有重要作用,而且对企业的发展具有战略指导意义,