获取用户需求和描述需求.ppt_第1页
获取用户需求和描述需求.ppt_第2页
获取用户需求和描述需求.ppt_第3页
获取用户需求和描述需求.ppt_第4页
获取用户需求和描述需求.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、获取用户需求和描述需求,在本讲您能了解如下知识点 软件项目设计实现的总体流程 Web网站建设和开发过程 如何获得用户的需求 如何描述用户的需求 BBS论坛需求说明书示范文档,一、软件项目设计实现的总体流程,(2)软件生命周期的6个阶段 制订计划阶段 需求分析(Requirements Capture)阶段 系统分析与设计(System Analysis and Design) 系统实现(Implementation) 测试(Testing) 维护(Maintenance),体现为是反复迭代,不断完善的开发过程,1、软件工程(1)什么是软件工程,从系统的需求、总体架构到系统中的各个模块的具体实现

2、,(1)系统需求 确定本系统应该具有什么功能(功能性 非功能性以及环境要求)。主要涉及如何获得用户的需求、描述用户的需求 (2)系统分析与设计 主要包括分析需求和系统设计两个阶段,而这两个阶段是相辅相成、不可分割的。 一般系统设计是在需求分析之后实施的。 分析需求 我们应该解决什么问题,重点在于理解问题并对理解的结果加以分析。主要重点则是涉及对所实现的系统的结构和行为两方面进行分析和理解。 系统设计 通过某种特定的平台,而达到完成整体软件的功能。主要包括概要设计(静态结构)和详细设计(动态结构),2、各个阶段的工作重点,详细的内容请见文档,这样才能使得系统设计是理性的、切合应用需要的,(3)系

3、统实现 重点在于明确所要解决的问题并采用什么技术和手段(语言、工具、开发平台等)来实现前面的设计方案以满足用户的需求(也即通常的编程阶段)。 (4)系统测试 在此阶段主要是通过各种测试思想、方法和工具的具体应用,从而找出系统中各种隐藏的缺陷,最后使软件的Bug降低到最低。 一般包括单元测试和集成测试。 (5)系统部署 (6)系统交付和维护,此第五步和后面的第六步在应用中也可以“合二为一”,详细的内容请见文档,3、其它所应该考虑的问题 (1)项目中所应该考虑的一些问题的技术实现 项目中的安全性技术的实现 异常等错误处理技术、中文处理的问题 对数据库访问的优化和性能 项目开发中的编程规范 (2)项

4、目开发中团队的组建 因为,人员是项目成功和降低项目开发的风险的主要因素,必须加以重视。主要有两种形式的人员划分 按功能模块划分(按照问题域进行拆分-纵向划分):人员之间的沟通相对比较少。 按组件的层次划分(按照实现过程进行拆分-横向划分):人员之间的沟通相对比较多,此时项目的管理和协调工作比较大。但对人员的技术全面性要求比较低。,对这些通用的技术问题的解决随着不同的项目体现是不同的,在J2EE平台中可以由容器来帮助我们解决其中的一些问题,详细请参考文档中的说明,(3)项目管理:项目管理流程和管理的主要内容,4、了解各个阶段中的人员的角色,当然,对这些具体的与IT项目管理方面的管理理论、方法和技

5、巧的内容,我们目前可以不需要过多地了解!,人员、管理和技术,5、Web网站建设和开发过程,(1)网站建设的过程 一般将网站建设的整个过程共分为五个阶段进行,即“网站策划阶段”、“网站设计阶段”、“网站制作阶段”、“网站测试阶段”和“网站维护阶段”。 (2)每个阶段的工作内容和重点 请见文档说明,仍然为软件工程的5个阶段-因为Web网站只是软件开发中的某一特定类型,(3)一般的制作流程,请多关注网站架构分析和设计的内容,1、获取用户需求 (1)什么是用户需求 它主要是说明系统所必须符合的条件或者应该具备的的功能,也即它用来描述系统应该和不应该做什么也即决定本系统应该有什么功能,从而开发者和用户可

6、以创建一个初始的商业联系。 重点体现在应该了解系统应该做什么,而不是考虑如何做。 需求最根本的挑战在于:寻找、交流并记录什么是真正需要的,并能够向用户和开发团队讲解。,(2)一个关于影响项目进展的因素的研究如下图 可见37%的问题都与需求有关,这就需要“需求开发”和“需求管理”。,二、获得用户的需求,(2)需求的表达形式 Id(系统名称)shall 执行的功能,而 Shall包括“应该”或“必须”等的语句 表达需求可以采用多种不同的方式,如可以用商业的概念、该领域的术语、框图或者其它方法将功能性的需求写成文档。,只要用户和开发者能够相互理解就可以,(3)如何获取用户需求 对用户进行访谈和调研,

7、了解客户方的所有要求以及潜在的要求,有时还需要在用户方工作一定时间以深入了解其业务流程和潜在的业务规则。,(4)细分需求(理解RUP中的FURPS+模型的含义) 功能需求 非功能需求(主要涉及系统性能、可用性、可管理性、可靠性、可扩展性、安全性等等 ) 环境限制 设计约束等类型(比如开发的领导层或者用户方坚持要使用Java开发 ),(5)需求收集工作的特点 问题复杂性:需求涉及的因素繁多,如运行环境,系统功能 交流障碍:软件用户,问题领域专家,项目管理员具备不同的背景知识,相互交流困难 不完备性和不一致性:用户的陈述往往不完备,各方面的需求可能存在矛盾 需求易变:用户的需求变动极为普遍,(6)

8、用户需求不明确主要体现在四个方面 在软件开发出来之前,用户自己也不清楚软件的具体需求; 用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误 在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求 软件开发人员对用户需求的理解与用户本来愿望有差异,(3)环境限制 在局域网络的环境中完成此功能。,注意:不难看出,需求本身就是对客户而言产品必须满足的条件或具备的功能和能力-它们能够为客户带来价值!,(2)非功能性的需求 系统的响应查询时间应该小于10秒 系统必须7X24小时服务,每天可以有30分钟的维护时间,同时只能在0点到1点之间,2、某餐馆定座系统需求示例 (1)功能性的

9、需求 服务生可以通过系统查询是否有满足条件的餐桌尚未定出 服务生可以通过系统为顾客定座以及取消定座 服务生可以查询客户以往的消费情况,(3)环境限制 其实可以看作为系统运行期的环境约束。,3、软件系统的需求种类也相当复杂(超市系统的需求子集) (1)功能性的需求:“软件有什么用,软件需要做什么”,(2)非功能性的需求 约束 运行期质量属性 开发期质量属性,再次了解“需求”的内涵,4、感悟“需求收集”和“用例”-请见文档 对用户的需求整理就像是“理发”,和顾客交流本身就是需求收集的过程,而只有了解了用户的需求之后才可能设计出系统的初始原形(提出一个大概的样子-系统的初步功能,这当然可以利用原形法

10、或者面向对象的用例图来实现)与其进行确认。,5、在此阶段所应该形成的制品 (1)需求规格说明书 (2)用例图与序列图(可用活动图代替) (3)设计草案,什么是用例以及如何描述用例请见后面,6、引入领域业务专家(Domain Expert),(1)引入领域业务专家(Domain Expert) 当系统的需求比较复杂,同时行业的背景也比较广泛时,我们应该在项目中引入领域业务专家。 业务专家可以和架构师一起进行业务建模的工作,而架构师则偏重于技术方面,把业务模型转化成系统需求,也就是最终转变为成一个个用例(Use Case)。 (2)由架构师承担领域业务专家的职责的所带来的问题 也有很多企业没有业务

11、专家,而把这个角色附加给架构师了。他们要求架构师既要精通业务,也要精通技术。 而现实中,这样的人凤毛麟角,属于可遇而不可求的那一类。所以在这类角色没有很明确分开的项目开发中,得到的东西要么是需求方面做得不够好,要么在软件架构方面不令人满意。,7、怎样最大程度保证需求的合理 (1)开发出项目的界面原型 根据业务需求做出整个系统的页面原型,这样的页面也许很粗糙,后台也不需要任何的程序运行,但可以根据这些页面元素及之间的流程来验证业务需求是否合理、正确。 (2)为什么要利用界面原型 我们可以借助界面原型来和客户一起验证需求,经过几次反复,可以比较准确的理解、把握客户的真实需求。 这样的工作耗费时间不

12、多,但却能起到很大的作用。,1、对用户的需求进行建模的方式之一:采用用例图(Use Case),三、描述用户的需求,(1)用例图 在面向对象分析(OOA)方法中通常使用Use Case来描述软件的需求。 Use Case通过描述“系统”和“参与者”之间的交互来体现系统的行为。 通过分解系统的各个目标,利用Use Case的事件流来描述参与者为了实现这些目标而必须执行的各个步骤(活动)。,(2)Use Case方法最主要的优点 在于它是用户导向的-从用户的角度来说明系统所应该提供的功能。 注意:用例仅能捕获功能性需求,不适合捕获非功能性需求和设计约束等。,(3)前面的餐馆定座系统用例图示例,2、

13、企业应用系统中的一般需求功能描述-请见文档 (1)企业应用中的网站共同功能要求 (2)电子商务解决方案项目的基本功能 (3)某电子商务项目的主要功能模块,希望大家加以了解,这样在完成其它的系统时也就有了“感觉”,3、采用功能结构图来描述系统的各个的主要功能模块 (1)如何实现功能结构图 (2)功能结构图中的功能模块,4、在需求文档中还应该描述出-系统开发工具及使用平台,(1)开发平台和工具J2EE 平台,JBuilderX开发工具(一般由开发方自己选择)(2)数据库如SQL Server2000数据库平台( 一般由用户方提出,但开发方可以给出建议。主要应该满足性价比高)(3)使用环境-由用户方提出如Windows2000服务器系统 + BEA Weblogic8.1应用服务器 + SQL Server2000数据库服务系统。,下面只是一个示例,5、在需求文档中还应该描述出-项目的命名规范 (1)建议 命名时应该遵守一定的规范(开发方自己设定) 尽可能模块化和见名知意,这样可以提高可读性。,有助于软件版本配置和管理,(2)内容 文件名称和目录名称在命名时应该遵守一定的规范,程序代码中的各

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论