论软件需求分析方法和工具的选用
软件工程中的软件需求获取与分析方法

软件工程中的软件需求获取与分析方法软件需求获取和分析是软件工程开发过程中至关重要的一环。
它是为了确保软件开发的成功和软件产品能够满足用户的需求而进行的。
本文将介绍几种常用的软件需求获取与分析方法。
一、用户需求访谈用户需求访谈是软件工程中最常用的需求获取方法之一。
它通过与用户进行面对面的交流,了解其对软件产品的期望、功能、界面设计等方面的要求。
在访谈过程中,可以通过提问、观察、记录等方式获取用户的需求信息,并加以整理和分析。
在进行用户需求访谈时,软件工程师需保持沟通的良好态度,尊重用户的观点和需求。
同时,要注意细节,准确记录用户的需求,以便后续的需求分析和软件设计。
二、问卷调查问卷调查是另一种常用的需求获取方法。
通过设计问题,向用户发放问卷,收集用户对软件产品的需求和意见。
问卷调查可以同时面向多个用户,获取多个用户的共同需求和差异化需求。
在设计问卷时,要注意问题的合理性和可操作性。
问题应该具体明确,避免主观和模糊的描述,以便用户能够明确表达自己的需求和意见。
三、原型设计原型设计是一种通过创建软件界面的模型来获取用户需求的方法。
软件工程师可以使用原型设计工具,如Axure、Sketch等,创建界面原型,展示给用户,并征求其意见和建议。
原型设计可以帮助用户更直观地理解软件的功能和操作流程,从而准确地表达自己的需求。
软件工程师可以通过用户的反馈,不断改进原型设计,直到满足用户的需求为止。
四、场景分析场景分析是一种通过模拟用户在特定场景下的需求和行为来获取需求的方法。
软件工程师可以通过观察和记录用户在特定场景中的工作流程,了解他们所需的功能和服务。
在进行场景分析时,要注意选取具有代表性的场景,并与用户充分沟通,确保对场景的理解和模拟的准确性。
通过场景分析,可以更全面地获得用户的需求,为软件开发提供参考。
五、迭代开发迭代开发是一种将软件需求获取与分析过程融入到软件开发过程中的方法。
软件工程师可以在每个开发迭代的过程中,与用户进行交流和需求确认,并根据用户的反馈进行相应的修改和调整。
软件需求分析方法

软件需求分析方法软件需求分析是软件开发过程中的重要环节,它通过系统化的方法和工具,对用户需求进行分析和抽象,将用户需求转换为软件需求规格说明书,为软件开发提供明确的目标和方向。
在软件需求分析过程中,一些常用的方法有以下几种:1. 需求采集:需求采集是软件需求分析的起点,它主要通过与用户的沟通和访谈,收集用户的需求。
在需求采集过程中,可以采用面对面的交谈、问卷调查、观察等方法,以确保准确获取用户的需求。
采集的需求可以分为功能性需求和非功能性需求,并采用需求列表、用例图、用户故事等形式进行记录和整理。
2. 需求分析:需求分析是将采集来的需求进行分析和抽象的过程。
在需求分析过程中,可以采用功能分解、数据流图、状态图等方法,以将需要系统实现的功能分解为更具体的模块或子功能,并进行详细的描述和定义。
同时,对用户需求进行可行性分析,确定是否能够实现用户需求,并考虑软件系统的可靠性、可扩展性等方面。
3. 需求建模:需求建模是将需求进行进一步抽象和整理的过程。
在需求建模过程中,可以使用UML(统一建模语言)等工具,采用用例图、活动图、类图等方式对系统的需求进行建模和描述。
用例图描述了系统与外界的交互,活动图描述了系统的流程和交互,类图描述了系统中各个类之间的关系。
4. 需求验证:需求验证是验证需求的正确性和完整性的过程。
在需求验证过程中,可以采用原型演示、模拟测试、用户验收测试等方法,以验证需求是否满足用户的期望,并及时发现和纠正需求中的问题和缺陷。
5. 需求管理:需求管理是对需求进行跟踪和管理的过程,以确保软件开发的目标和进度。
需求管理包括需求变更管理、版本管理和配置管理等方面。
需求变更管理是管理需求变更的过程,包括需求审批、变更需求分析和实施变更等环节。
版本管理是管理需求版本的过程,包括需求的版本控制、变更追踪和回归测试等环节。
配置管理是管理需求配置的过程,包括需求管理工具的选择和配置、需求跟踪和跟踪需求变更等环节。
软件研发如何进行有效的需求分析

软件研发如何进行有效的需求分析软件开发过程中的需求分析阶段是非常重要的,它决定了整个开发过程的成功与否。
有效的需求分析可以确保软件开发团队理解用户需求,并基于这些需求设计出符合用户期望的软件产品。
本文将介绍如何进行有效的需求分析,以及一些常用的需求分析方法和工具。
一、需求分析的重要性需求分析是软件研发的第一步,它的目标是通过与用户充分的沟通和交流,明确用户的需求和期望。
只有在深入了解用户需求的基础上,开发团队才能制定出合适的开发计划,避免开发出不符合用户期望的软件产品。
需求分析的重要性如下所示:1. 确保软件符合用户需求:以用户为中心的需求分析方法可以确保软件产品与用户需求高度匹配,提高用户满意度;2. 避免开发过程中的冲突和误解:通过需求分析,可以发现和解决开发过程中的冲突和误解,减少开发过程中的不必要麻烦;3. 提高开发效率:准确的需求分析可以避免重复开发和无效的开发过程,从而提高开发效率;4. 减少开发成本:需求分析可以帮助开发团队在开发过程中避免不必要的额外开销,从而减少开发成本。
二、需求分析的过程需求分析通常包括以下步骤:1. 收集用户需求:通过与用户进行面对面的交流、会议、访谈等方式,收集用户的需求和期望;2. 分析和整理需求:对收集到的用户需求进行整理和归纳,将其转化为开发团队能够理解和操作的形式;3. 需求确认和迭代:与用户再次确认需求,对需求进行逐步细化和迭代,确保开发团队完全理解用户需求;4. 需求文档编写:将最终确认的用户需求整理成需求文档,以便于开发团队参考。
三、需求分析的方法和工具在需求分析过程中,有一些常用的方法和工具可以帮助开发团队更有效地进行需求分析,如下所示:1. 面谈法:通过与用户的面谈和交流,采集用户需求和期望;2. 问卷调查法:通过问卷调查的形式,收集用户对软件功能、界面等方面的需求;3. 用户故事法:以用户的视角,描述用户需求和使用场景,帮助开发团队更好地理解用户需求;4. 用例图:通过图形化的方式,描述软件系统的功能和角色之间的关系,帮助开发团队理解用户需求;5. 原型设计工具:通过原型设计工具,制作软件界面的初步设计,以便用户确认并提供反馈。
软件需求分析的方法与工具

软件需求分析的方法与工具在软件开发过程中,软件需求分析是非常重要的一环。
它收集和确定了软件产品的需求,以及开发应用程序的约束。
软件需求分析确保软件产品能够满足用户的需求和期望,同时也确保开发人员能够在预定的时间和预算内完成项目。
为了实现软件需求分析,人们需要采用一定的方法和工具,下面将详细讨论。
软件需求分析的方法软件需求分析是一项复杂的任务,需要使用科学、准确的方法来执行。
以下是常用的软件需求分析方法:1. 用户需求分析:这种方法强调用户的角度,需要收集用户的需求、观点和期望,以便设计出一个满足用户需求的软件产品。
这一方法通过用户需求调研、访谈和问卷调查等方式来实现。
2. 系统需求分析:这种方法强调整个系统的视角,需要收集整个系统的方方面面的需求,以便设计出一个功能完整、协调一致的软件产品。
这一方法通过分析用户行为、业务流程和已有系统等方式来实现。
3. 面向对象方法:这种方法强调对系统的抽象和组合,依靠面向对象程序设计技术,将软件系统分为对象集合,从而可以更加方便的组织和管理系统的需求。
4. 原型法:这种方法通常用于为用户提供一个演示、试用软件产品的机会,将软件产品的功能呈现出来,以便指导后续的需求分析和设计工作。
原型法通过迭代的方式逐步完善软件产品的功能,并得到用户的反馈导向软件产品的最终设计。
软件需求分析的工具为了更好的执行软件需求分析,我们需要使用一些工具。
这里我们介绍一些常用的软件需求分析工具:1. 绘图工具:能够帮助我们理解软件的业务流程和系统结构。
例如Microsoft Visio、StarUML等。
2. 会议记录工具:帮助记录软件分析会议的内容、参与者及各方意见、决策等信息。
例如Google Docs、Confluence等。
3. 需求追踪工具:帮助跟踪和管理软件需求,以确保软件产品开发的符合用户需求、时间表和预算。
例如JIRA、Trello等,这些工具还具备协同功能,可以协助开发团队进行软件产品开发。
2006-2010系统分析师论文题目

2010年上半年 (4)试题一论软件维护及软件可维护性 (4)试题二论面向服务的企业应用集成技术及其应用 (4)试题三论快速应用开发在系统建模中的应用 (4)试题四论信息系统中的访问控制 (4)2009年上半年 (5)试题一论软件项目质量管理及其应用 (5)试题二论企业服务总线技术及其在应用集成中的作用 (5)试题三论工作流管理技术在CIM系统协作中的应用 (5)试题四论政务流程的优化与再造 (5)2008年下半年 (6)试题一论基于场景的软件体系结构评估方法 (6)试题二论敏捷开发方法的应用 (6)试题三论SOA在企业信息化中的应用 (7)试题四论SaaS(Software-as-a-Service,软件即服务)的关键技术 (7)2008年上半年 (7)试题一论软件体系结构风格及其应用 (7)试题二论软件项目估算的过程与方法 (8)试题三论信息资源规划的需求分析 (8)试题四论P2P计算关键技术与应用 (8)2007年下半年 (8)试题一论迭代式软件开发过程与方法 (8)试题二论工作流管理技术在BPR中的应用 (9)试题三论电子商务系统中的技术基础设施集成 (9)试题四论虚拟计算的应用 (9)2007年上半年 (9)试题一论企业软件过程改进的实施 (9)试题二论信息系统的可行性分析 (10)试题三论工作流管理系统的分析和实现 (10)试题四论动态语言在互联网应用中的作用 (10)2006年下半年 (10)试题一论有效的需求分析过程 (10)试题二论信息系统建设的网络规划 (11)试题三论面向服务的体系结构在系统集成中的应用 (11)试题四论计算机支持的协同工作技术的应用 (11)2006年上半年 (12)试题一论需求获取技术 (12)试题二论XML语言在Internet平台上的应用 (12)试题三论设计模式在软件开发中的应用 (12)试题四论控制系统的可视化技术 (12)2005年11月 (12)试题一论项目的风险管理 (12)试题二论Web应用程序的测试 (13)试题三论电子政务建设中政务内网和外网的划分 (13)试题四论高可靠性系统中软件容错技术的应用 (13)2005年5月 (14)试题一论企业信息系统的安全 (14)试题二论电子政务信息共享整合 (14)试题三论多层分布式结构系统的开发 (15)试题四论项目管理中的进度控制 (15)2004年11月 (15)试题一论企业内部网的安全策略 (15)试题二论应用系统开发范围和功能的确定 (16)试题三论嵌入式操作系统的功能与特性 (16)试题四论软件测试计划的制定 (16)2004年5月 (17)试题一论电子商务的安全 (17)试题二论用例的获取方法 (17)试题三论ERP的开发与应用 (17)试题四论软件开发成本估算 (18)2003年 (18)试题一论自由软件的合理使用 (18)试题二论软件开发的风险控制 (18)试题三论工作流相关技术 (19)试题四论Web Service技术的应用与发展趋势 (19)2002年 (19)试题1 论软件质量保证 (19)试题2 论数据仓库的设计与实现 (20)试题3 论中间件技术在软件开发中的作用 (20)试题4 论虚拟现实技术的应用与发展 (20)2001年 (21)试题1 论软件需求分析方法和工具的选用 (21)试题2 论Java技术在因特网平台上的应用 (21)试题3 论改进Web服务器性能的有关技术 (21)试题4 实时控制系统与企业信息系统的集成 (22)2000年 (22)试题1 论软件测试的策略与环境 (22)试题2 论基于Web的数据库应用系统的开发技术 (22)试题3 论企业网络计算的组成与特性 (23)试题4 论软件维护的组织与实施 (23)1999年 (23)试题1 论软件开发环境的选用和建立 (23)试题2 论企业内部网Intranet的系统集成技术 (24)试题3 论改进数据库应用系统的性能 (24)试题4 论软件开发过程中的配置管理技术 (24)1998年 (25)试题1 论软件的可重用性设计 (25)试题2 论数据库的安全性设计 (25)试题3 论建立企业内部网Intranet的策略 (25)试题4 论项目管理工具的选用 (26)1997年 (26)试题1 论信息管理系统的可行性研究 (26)试题2 论软件需求分析的方法与策略 (27)试题3 论数据库前端开发工具的选用 (27)试题4 论计算机网络的安全性 (27)1996年 (28)试题1 论系统的健壮性设计 (28)试题2 论系统集成技术的应用 (28)试题3 论面向对象开发技术及其应用 (28)试题4 论开放系统应用的直保作性技术 (29)1995年 (29)试题1 论软件开发范式的选用原则 (29)试题2 论软件测试的完成标准 (29)试题3 论信息管理系统的Client/Server结构 (30)试题4 论CASE工具的使用 (30)1994年 (31)试题1 论数据库设计技术 (31)试题2 论软件开发平台的演变与选用 (31)试题3 论应用软件的输入输出设计技术 (31)试题4 论信息系统集成技术 (32)1993年 (32)试题1 论软件的选用和二次开发 (32)试题2 论软件的质量保证 (32)试题3 论图形用户界面技术 (33)试题4 论结构化程序设计方法 (33)1992年 (33)试题1 论软件排错 (33)试题2 论软件项目的进度管理 (34)试题3 论面向对象的需求分析或设计 (34)试题4 论系统的安全与保密控制 (34)试题一论软件维护及软件可维护性本题是一道软件工程方向的论文试题。
中国软考论文集

中国软考——系统分析员论文14篇论文之一论软件需求分析方法和工具的选用——企业人事信息系统的应用【摘要】本文讨论《企业人事信息系统》项目的需求分析方法与工具的选用。
该系统的建设目标是帮助该企业管理好企业内部的人员和人员的活动,人事信息管理指的是企业员工从招聘面试到离职退休的全过程,涉及的主要活动包括面试、报到、培训、升职、离职或其他的人事变动,也包括电子化考勤、工资性收入的计算与分发、使用其他公司资源的有关记录(如宿舍、保险、证件办理等等)。
此外,本系统也涉及到企业在全国各地的人事信息管理,企业的组织架构的设置,级别与职务管理,人力申请直至人力需求报表,从而形成一个对企业真正有用的人事信息管理应用系统。
在本文中首先讨论了选用面向对象方法与工具的主要理由与策略,进一步通过一个简例说明该方法与工具使用的效果,也讨论了使用多种工具与方法在需求分析中的必要性,最后简要小结了选用正确工具与方法的意义和作用。
在项目开展期间,我担任了系统分析、系统设计与数据库管理等大量工作。
【正文】人事信息管理系统是一个有着广泛应用面的实用性系统,但是,我国各个企业有着自身的体制、机制、特点与不同的要求;在开发这类系统时,系统需求分析是极为重要的一环。
在整个分析过程中,我们都采用了面向对象的分析方法,这是因为我们在近几年的实践中已坚信这种方法能够更加有效地表达和描述现实世界。
软件要具有适用性和扩展性,就必须更接近于现实世界本身的发展规律。
以一个简单的例子来看,假设要求设计关于引进人才评估的一个系统,按我们过去的做法,先会要求提供给我们一份相关的引进人才评估表,然后依葫芦画瓢地设计相应的表单与界面。
在短期来说,这样做是简便而实用的,但并不能够符合现实世界的长远目标,这套设计方法不具有扩展性,因为任何一份评估表的结构都会有可能发生许多改变的。
采用面向对象的方法,可以从中提取出表类型、表结构、评分方法以及能考虑继承等各方面的要素,这样就可以保证软件的通用性,可配置性与可维护性。
软件工程的需求分析与设计

软件工程的需求分析与设计在软件开发过程中,需求分析与设计是最为关键的环节之一。
它们奠定了项目的基础,决定了软件开发过程的方向和目标。
本文将就软件工程的需求分析与设计进行探讨,介绍其重要性以及常用的方法和工具。
一、需求分析需求分析是软件工程中的第一步,它涉及对用户需求的调查、组织、协调和定义,旨在为软件开发过程提供一个清晰的目标。
在需求分析阶段,开发团队与用户之间需要进行沟通和协商,以确保对需求的准确理解。
需求分析的过程中,可以采用的方法包括面谈、问卷调查、原型设计等。
面谈可以深入了解用户的实际需求,探讨用户的期望和意见;问卷调查可以收集到大量的用户反馈,以便对需求进行总结和分析;原型设计则可以帮助用户更好地理解和确认需求。
在需求分析过程中,需要明确需求的功能性、非功能性以及约束性需求。
功能性需求是指系统提供的具体功能,例如某个模块需要实现的功能;非功能性需求则是指系统的性能、安全性、可用性等方面的要求;约束性需求是指外部条件对系统设计和实现的限制。
二、需求设计需求设计是在需求分析的基础上,根据需求确定系统的整体结构、功能模块以及内部数据与网络的安排。
需求设计是过程设计的一部分,它将需求转化为可行的解决方案,以满足用户的需求。
在需求设计阶段,可以采用的方法和工具包括结构化分析方法、数据流图、用例图、系统建模等。
结构化分析方法通过建立层次化的功能模型,将系统的各个功能模块分析和定义,以便于后续的详细设计;数据流图可以描述系统中数据的流动和处理过程,从而帮助设计师理解和定义系统的输入、处理和输出过程;用例图则可以用来描述系统和用户之间的交互,以及系统的各种用例场景。
同时,在需求设计过程中,还需要考虑系统的可扩展性、可维护性、可测试性以及安全性等方面的要求。
设计师需要综合考虑这些需求,并合理权衡各种因素,以得到一个优秀的设计方案。
三、需求分析与设计工具为了提高需求分析与设计的效率和质量,通常会采用一些专门的工具和软件来辅助完成。
软件开发中的需求分析与系统设计方法

软件开发中的需求分析与系统设计方法在软件开发过程中,需求分析和系统设计是两个关键的环节。
需求分析主要是确定用户的需求和功能要求,而系统设计则是在满足这些需求的基础上,设计出适合的软件架构和系统模块。
本文将详细介绍软件开发中的需求分析与系统设计方法,并分析其重要性和实施步骤。
一、需求分析需求分析是软件开发过程中的第一步,它的目标是明确用户的需求和功能要求,以便进一步的设计和开发工作。
需求分析的方法有很多种,下面列举几种常用的方法。
1.1 用户需求调研在需求分析阶段,我们首先需要与用户沟通,了解他们的需求和期望。
可以通过面对面的访谈、问卷调查等方式来获取用户的需求信息。
此外,还可以借助市场调研和竞品分析等手段,了解用户的行业背景和市场趋势,从而更好地把握需求。
1.2 需求分析工具在需求分析过程中,还可以利用一些专业的工具来辅助分析。
例如用例图、活动图、时序图等,能够更形象地描述用户场景和功能流程。
另外,流程图、数据流图等也是常用的需求分析工具,它们可以帮助我们理清思路和关系。
1.3 需求文档编写需求分析的结果需要进行整理和文档化,以供后续的设计和开发工作参考。
需求文档一般包括需求描述、业务规则、功能列表等内容。
需求文档要求准确、清晰,避免歧义和冲突,以便于团队成员的理解和沟通。
同时,需求文档还应该是可追踪和可更新的,方便对需求进行修改和追踪。
二、系统设计系统设计是在满足用户需求的基础上,对软件系统进行结构设计和模块划分。
好的系统设计可以保证软件的可靠性、可扩展性和可维护性。
下面介绍几种常见的系统设计方法。
2.1 结构化设计结构化设计是将系统划分为不同的模块,并定义模块之间的接口和关系。
在结构化设计中,一般采用自顶向下和逐步求精的方法,先设计出系统的总体结构,再逐步细化到模块的详细设计。
结构化设计可以提高软件的可维护性和可读性,方便团队成员的协同开发。
2.2 面向对象设计面向对象设计是一种常用的设计方法,它将系统看作由对象组成的集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论软件需求分析方法和工具的选用
【摘要】
本文以某知名饮料公司的信息系统项目的开发为背景,讨论了一个电子商务信息系统需求分析的整个过程,其重要特征是:所涉及的项目是原有系统的一个升级替换版本。
因此,需求分析过程不同于建立一个全新的系统,大体上可分为三个阶段:第一阶段实施逆向工程获得对系统的初步了解;第二阶段在第一阶段的基础上写出基本需求,交由客户评审补充;第三阶段在第二阶段的基础上开发原型,利用原型与客户交流,最终获得基线需求。
针对上述三个阶段,本文论述了所使用的分析方法与工具以及所遇到过的一些典型问题和措施,最后我认为,在需求分析中工具方法都只是辅助项目成功的因素,真正的决定因素还是—
一“与客户的沟通”。
【正文】
我于2005年1月至2006年1月参加了某个知名饮料集团公司的企业信息系统的开发工作,该大型集团的业务主要涉及到奶制品的进销存。
本人在项目中负责系统分析,设计和部分测试与系统实施的工作,该集团企业原先已委托某个软件公司开发过一套产品进销存管理系统,原系统采用PB6.5开发,数据库采用SYBASE,服务器采用Windows2000Server,客户端采用Windows 98,程序架构采用的是传统的C/S结构。
但是该老系统存在两个主要的问题:(一)系统运行速度非常慢,如商品销售开单时,从确定开单到开单完成有时需要1~2分钟左右的响应时间,让客户无法忍受。
(二)系统数据不准确,经常出现实物库存与电脑库存严重不相匹配的情况,使销售数据的统计产生一些混乱,有关财务的数据因此无法有效使用,只能采用人工录入方式补充进行。
在这种情况下,该集团的总经理决定参考原有系统重新开发一个系统,以便解决原系统所存在的上述两个难以克服的难题。
鉴于该集团业务操作复杂,流程多,涉及人员多等特点,以及项目完成时间短,经费有限,人员有限等限制约束条件,再考虑到必须避免前一系统出现过的结构混乱与难于维护等问题,我们采用逆向工程进行对对原系统的需求做一个比较彻底的和切实可行的分析,由于原有系统已经开发了近三年,并且客户也有了一定的信息化应用经验,业务基本流程本身也并没有太大的变化,因此,我们把需求分析的过程分为三步:第一步采用逆向工程工具BPWIN分析原有系统的结构,主要是数据库结构和程序结构;第二步在获得第一步结果的基础上写出基本需求,交由客户评审补充;第三步在第二步的基础上开发。
原型,利用此原型与客户交流,从而获得最终可用的需求结果。
下面按上述三步分别加以论述。
第一步是实施逆向工程,获取原有系统的基本需求。
由于原有系统在功能上大体上能基本满足客户的需求,并且在两年多的开发中也积累了不少经验,因此,从中可以获得一些有益的参考,也可以避免多走弯路。
在这一阶段,我们采用的主要工具是ERWIN和BPWIN;前者主要用来分析数据库结构,后者主要用来分析程序结构,便于开发人员与高级用户理解程序。
采用这两个工具的原因是:原系统过于庞大,模块多,数据库模式多,表格量很大,仅靠人工的方法很难从中获得一个比较完整的、明确的系统结构以及整体构成,而且原有系统未能提供一套正确完整有效的设计文档,于是我们只能依靠工具辅助来进行。
在使用ERWIN分析数据库,并且用BPWIN分析原程序中的处理流程图以后,我们对原系统的结构有了一个初步的了解,再结合对原系统的使用,基本明确了功能与流程的需求,并在此基础上用人工录入方式,产生了初步需求的自然语言文档。
第二步是在第一步的基础上进行的,即写出系统基本需求,交由客户评审和补充。
通过第一步的逆向工程,我们获得了系统的基本需求。
为了充分记录需求的变化及需求之间的依赖关系,我们决定选用IBM 公司的Rational Requisite PRO作为我们的需求管理工具,IBM公司有一整套用于需求管理的工具,功能非常强大,包括Rational Requisite Pro、Rational Clear Quest变更管理工具等等,这些需求分析工具可以对需求进行全面的管理,包括记录需求的变化情况,需求之间的依赖关系等等。
但是,我们考虑到Rational的一套工具全面实施会非常昂贵与复杂,需要非常强的项目管理能力才能全面实施,因此,
我们只采用了其中简单的一部分需求管理工具,那就是需求管理工具Rational Requisite Pro和Rational Clear Quest变更管理工具,记录需求之间的依赖关系,其他跟RUP有关的功能都给略去了。
之所以这样做,主要是考虑到项目的经费、人力以及国内软件开发的实际情况。
正如前面所说,我们根据自己的理解并写出基本需求后,交由客户做评审井做适当补充,我们将经过补充整理后的需求作为正式需求记录入Requisite Pro所维护的数据库中,并对各个需求进行分类,设定优先级等,这些工作完成后,就可以从数据库中直观地了解客户到现在为止提出了哪些需求,哪些需求是必须优先考虑的,哪些是难度较大的等等。
在这个过程中,我们遇到了一些问题,譬如:用户对我们用自然语言书写的需求文档有许多地方不理解,往往在花了较长时间阅读之后,仍不明白我们所描写的需求过程与他们所完成的业务之间的对应关系;另外是由于首次采用Requisite Pro进行需求管理,在类型划分,属性值的确定上,部分开发人员没有经验,造成了不少反复,对于前者,我们的方法是想办法增加一些示意图,将大的流程分解为小流程,再与客户反复交流与沟通,最终达到双方理解一致的目的。
对第二个问题,则参考了一些例子,再结合实际中属性的使用情况,给予取舍或者选择,经过这一阶段的工作,我们建立了基本的需求库,定出了基本需求规格说明。
第三步则是在第二步的基础上建立起原型,利用原型与客户进行更深入的交流,通过交流修改相应的需求。
在这一阶段的工作是在对第二步任务进行报告交流的基础上进行的。
我们用Eclipse开发了一个原型系统,就具体该企业的进销存的业务流程与客户进行交流与沟通,通过原型,客户发现了许多我们与他们的理解相互不协调的地方,我们在修改需求的同时,也在Requisite Pro需求数据库中记录下修改的历史。
事实证明,这种记录历史的作用是很有效的,如曾经有该公司业务员在两个不同的时间对同一需求提了相反的需求,我们根据历史记录很快证实了该业务员的提法有错误,在事实面前无需再作争论,同时利用Requisite Pro,我们还发现了一些需求相互之间有矛盾。
经过这一阶段工作,我们终于获得了经过用户认可的需求基线,即是可用于下一步进行详细设计的基线需求。
在这个项目中,我们利用了BPWIN、ERWIN等逆向工程分析工具和Requisite Pro需求管理、Rational Clear Quest变更管理工具等等,这些工具的使用,使我们提高了工作效率,起到了一定的辅助作用。
IBM公司Rational 系列的一整套需求分析工具,其功能是非常强大的,国外已在普遍地使用,在国内也逐渐开始普及,现在很多那些通过CMM二级以上评审的单位,都是使用工具对需求进行管理。
在本项目中,我们仅仅利用了Requisite Pro功能的一些小方面,已经体会到该工具对于项目管理的诸多好处。
通过这次案例,我认为在软件的需求分析工作中,方法的重要性应远超过工具的使用,应当首先确定分析中的风险,把风险分类,用不同的方法去解决各类风险,而工具的选择不仅是要看影响力和名气,而是要真正为我所用,应把握其精髓,即是此工具到底可以对开发有什么帮助,而不是仅限于如何使用。
我认为在需求分析中工具的作用不外乎两个:一是实际系统与环境模型等的抽象工具,二是需求表达工具。
最后我还是总结一下,在需求分析中工具方法都只是辅助项目成功的因素,真正的决定因素还是—一“与客户的沟通”。