1、.295.1.概述 .295.2.如何做好需求分析和变更管理? .29致谢语 .32参考文献 .33软件项目中的需求管理5引言人们常问:“需求、设计、编程、测试四者究竟哪个重要?”这个问题并不好回答。四者都是软件开发过程中必不可少的环节,只做好其中一个环节并不能产生好的系统,但是做坏了其中任何一个环节,必定对系统产生坏的影响。若站在风险管理的角度讲,我认为需求开发与管理是最重要的环节。因为需求是产品的根源,需求工作的优劣对产品的影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。Frederick Brooks在他1987年经典文章“No Silver Bullet”中阐述了需
2、求的重要性:“开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。”对于一个软件项目,开发和实现用户所真正需要的产品是非常重要的。软件产品的成功与否很大程度上取决于对需求的管理。像我下面要介绍的项目“厦门*公司墓石cad设计系统”的成功,我觉得首先就要归功于我们对它进行了有效的需求管理。但是,谈到软件产品的需求管理,我们认为遇到了一个非常棘手的问题。实际上由于面对的客户和市场环境的不同,需求可以变得非常复杂,这种复杂往往又是动态的和难以描述的。客
3、户的需求往往是很概括的,有时又是很具体的。客户有时会说:“我们需要一个整体解决方案”,有时又说:“图纸上的作者要这样写” 。显然这样的需求无法被我们完全接受。客户的要求显然是重要的,产品应该以客户为导,如何把客户的需求变成我们技术人员能够接受的功能说明书,相反如何在产品开发前就让客户认可最终的产品,或者使用户的需要与产品之间不应有过大的偏差。此外,软件项目的需求管理,涉及到用户、市场、产品与开发等各种职能和角色,涉及到客户的需求、项目开发的时间和资源;如何平衡各方面的要求,从整体上实现客户需要的产品,对需求进行有效的管理和控制。对需求管理的方法和应用进行系统的分析,提出一些利于实际操作的方法是
4、十分必要的。软件项目中的需求管理6第一章 需求及需求管理概述1.1.软件需求的定义宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。IEEE软件工程标准词汇表 (1997年)中定义需求为:(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。1.1.1.关于“需求”的解释工EEE公布的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求。关键的问题是一定要编写
5、需求文档。另外一种定义认为需求是“用户所需要的并能触发一个程序或系统开发工作的说明”下面的定义则从用户需要进一步转移到了系统特性:需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。上述需求定义的一种解释如下:所谓需求,应该是来源于用户调查即客户的需要,来源于某个特定行业的一些抽象的提炼;并参照行业规范进行业务分析的结果,考虑用户自身的特性与要求。这些从客户处获得的“需要”,被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么或对于模糊的部分不做什么。而并不是通过一些零碎的邮件,或者与用户的对话,收集的一些零乱的资料,就说,我已经做
6、好了需求,而这一种情况,恰恰就是导致失败的因素。1.1.2.需求的层次软件需求包括三个不同的层次业务需求、用户需求和功能需求(也包括非功能需求)。业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(user requirement)文档描述了用户使用产品必须要完成的任务,这在使用用例文档或方案脚本说明中予以说明。功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性是指逻辑上相关的功能需求的集合,给用户提供处理
7、能力并满足业务需求。软件项目中的需求管理71.2.需求管理的概念1.2.1 需求管理的概念需求管理的定义如下:顾名思义,需求管理是完整管理模式中的一环,同其他特性诸如完整性、一致性等不可分割,彼此相关而成一体。一套需求管理应当是已知系统需求的完整体现,每部分解决方案都是对总体需求一定比例的满足(甚至是充分满足),仅仅解决部分需求是没有意义的。对关键需求的疏忽很可能是灾难性的。不同的需求组合起来,构成了一套完整的需求模型。用户需求决定了系统设计所要解决的问题,所要带来的结果。可以说,需求管理指明了系统开发所要做和必须做的每一件事,指明了所有设计应该提供的功能和必然受到的制约。用通俗的话来说,需求
8、管理就是:一种获取、组织并记录系统需求的系统化方案,以及一个使客户与项目团队对不断变更的系统需求达成并保持一致的过程。我认为需求管理的目的是在顾客和将处理顾客需求的软件项目组之间建立对顾客需求的共同理解,并对此需求进行有效的控制,使项目走向成功。需求管理的过程,从需求获取开始贯穿于整个项目生命周期,力图实现最终产品同需求的最佳结合。通过对需求管理在项目进程中实施的不同任务进行分析,我们可以看出需求管理所起的作用。1.2.2.需求管理目标及需求管理要点需求管理的目标是:1 使软件需求受控,并建立供软件工程和管理使用的基线。2 使软件计划、产品和活动与软件需求保持一致。3 控制需求变更,保证项目进
9、度。需求管理要点:1 要明确和建立需求来源渠道,既为了避免需求蔓延,又要避免忽视客户需求、重复劳动、和不严肃的承诺;2 建立需求管理小组,对需求进行评审,如需求对系统的影响范围等;3 对需求变更进行管理,对于不同等级的需求,采取不同的测量;4 需求文档要进行版本控制。需求亦有基线和分支,并要和代码、文档等其它产品的基线和分支保持一致;5 需求文档中的SRS要其有唯一编号,可以通过项目号+SRS 编号,唯一定位具体的需求;6 在后续的代码、文档等数据中引用需求要确保和需求文档保持一致;7 需求管理小组要严格控制进人设计和开发之后的需求变更,并根据变更频率,改进项目需求分析过程。8 要正确对待用户
10、提出的新的需求以及需求变更,不能老报着“顾客是上帝”的心理,一味地答应用户的新需求。软件项目中的需求管理81.3.小结这一章主要讲述了需求和需求管理的定义,并着重解释了需求管理的概念、目标、流程等,我们可能有一些疑问:需求和需求管理有什么用?没有开发出一行代码,在整个软件工程过程中浪费这么多时间岂不是无用功吗?下面就需求及需求管理的重要性进行一下阐述。首先我们要树立一个概念:需求是根本,是我们一切开发活动的依据。由于忽略需求过程造成的项目返工是恶性的,后果不堪设想,大量的项目在需求阶段就注定了它的失败。以下是两个需求过程不科学的典型例子:1开发人员在用户处呆了两三天就埋头开发;2用户告诉开发人
11、员我要开发一个xx系统,但是我很忙,你先开发一个让我看着,开发人员就盲目答应。上面的这两种态度都意味着项目的不成功,应该说上面的开发人员和用户都应该对此负责。需求是开发者和用户交互的一个过程,任何一方的不投人都会导致项目的失败。当然,由于用户不是专业人士,开发者有权利告诉用户应该采用何种态度来对待项目的需求。所有最成功的项目都有一个重要的特性:用户非常的支持。评判一个软件项目成功的标准是看它是否解决了用户的问题,而用户的问题就是体现为用户的需求,需求也就顺理成章的成为项目的成功标准。而需求阶段的一个不慎都有可能导致软件实现阶段的大量返工,而需求的不慎不是说你小心就可以本科毕业论文(科研训练、毕
12、业设计)题 目:软件学院管理信息系统学生、科研管理和实验室管理子系统设计姓 名:学 院:软件学院系:专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称:年 月 日本科毕业论文 2软件学院管理信息系统学生、科研管理和实验室管理子系统设计【摘要】 本文阐述了厦门大学软件学院管理信息系统的开发,使用 Struts 开发框架,采用B/S 结构和 Microsoft SQL Server 2000 数据库。该系统在设计上遵循 MVC 设计模式,并从功能上划分为五个子模块:学生子模块、教师子模块、实验室管理子模块、科研管理子模块和教务管理子模块。它力求为软件学院全院师生
13、提供友好的界面和方便的功能以提高工作效率。【关键词】 管理信息系统 Struts B/S 结构 Microsoft SQL Server 2000 MVC 设计模式本科毕业论文 3AbstractThe information administration system of Software School of Xiamen University is developed based on the Struts framework, which encourages application architectures based on Model-View-Controller (MVC)
14、design paradigm. The system adopts the structure of Browser/Server (B/S) and Microsoft SQL Server 2000 database. It contains five modules: student module, teacher module, laboratory administration module, scientific research administration module and educational administration module. It provides a
15、friendly interface and convenient functions for all teachers and students of software school to improve the efficiency of work.KeywordThe information administration system Struts Model-View-Controller (MVC) Browser/Server (B/S)Microsoft SQL Server 2000本科毕业论文 4目录引言 .5第一章 需求 .61.1 系统需求 .61.2 软硬件需求 .6第
16、二章 设计模式及所应用的技术 .72.1 MVC 设计模式 .72.2 STRUTS 开发框架 .82.3 JSP .8第三章 系统总体设计 .93.1 系统设计原则 .93.2 系统规模及性能要求 .93.3 系统功能模块划分 .93.4 系统基本处理流程 .113.5 文件存放路径 .113.6 出错处理 .12第四章 数据库设计 .134.1 数据库命名规则 .134.2 数据库物理设计 .13第五章 设计实现 .165.1 数据源设置 .165.2 实例模块功能说明 .165.3 创建试图组件 .175.4 创建控制器组件 .205.5 创建模型组件 .22第六章 界面及功能 .256.1 学生信息查询 .