文档状态:
文档编号: 编 撰: [ ] Draft [√] Released 编撰日期: [ ]Modifying 保密级别: 文档版本: 1.0.0
项目名称
(The English Name)
软件需求分析报告
XXX项目组
修订表
编号 1 2 3 4 5
生成版本 修订人 修订章节与内容 修订日期 PAGE 2 OF 19
审批记录 版本 1.0.0
审批人 审批意见 审批日期
PAGE 3 OF 19
目 录
1. 引言............................................................................................................................................................................................... 5 2. 系统概述...................................................................................................................................................................................... 6 3. 功能性需求分类 ........................................................................................................................................................................ 8
3.1.1 具体功能1 .............................................................................................................. 11 3.1.2 具体功能2 ............................................................................................................ 11
4. 产品的非功能性需求 ............................................................................................................................................................. 11 附录A:需求确认 ..................................................................................................................................................................... 18
A 软件需求分析报告文档模板 ..................................................................9 附录B 软件概要设计报告文档模板 .......................................................... 21 附录C 软件详细设计报告文档模板附录
附录D 软件数据库设计报告文档模板 ....................................................... 43
附录E 软件测试(验收)大纲
PAGE 4 OF 19
1 引言
系统的主要任务是将农业生产过程中涉及到的各种信息进行管理。通过系统,信息员可以将各种信息保存在服务器数据库中,也可以通过对数据库的访问来获得所需信息。并进行统计分析,为决策提供详实的数据依据。同时,可以减少信息浪费、冗余,提高信息利用率,提高信息员工作效率,规范工作流程。
系统开发主要分以下几个阶段:
第一阶段:需求分析。与相关人员进行交流,了解系统的主要功能需求以及获取相关资料,整理编写《系统需求说明书》。同时进行程序设计规范和界面框架的设计。
第二阶段:系统设计与具体设计。在该阶段主要根据《需求分析说明书》以及各种资料进行数据库设计和对系统进行模块化,规定各模块之间的接口以及各模块应实现的功能。然后对系统模块进行详细设计,填写功能模块表。
第三阶段:编程开发。编程实现每个功能模块并且对模块功能进行测试,完成系统源代码。 第四阶段:系统测试。组合各模块,对整个系统功能进行测试。
第五阶段:系统安装调试。实地安装系统及设备并且进行调试。对该系统主要进行服务器的安装配臵和调试,并且对网络进行相关配臵。
1.1 适用范围
【说明:
a. 待开发的软件系统的名称;
b. 说明软件将干什么,如果需要的话,还要说明软件产品不干什么;
c. 说明软件与其他系统的接口,本系统要完成什么,不完成什么,要实现的系统功能,需要其他系统提供什么,本系统需要为其他系统提供什么。】
本指南用于指导软件开发者为宁夏农林科学院农业科技信息研究所开发软件项目的过程,通过规范软件项目承担单位的开发过程达到提高软件质量,降低维护成本的目的。开发者应根据本指南进行软件开发和编制软件开发文档。本指南是对软件项目承担单位的基本要求。在本指南的附录A至E中提供了文档的编写模板供开发者参考,在进行具体软件开发时,开发者可根据实际情况采、编、写,但必须提供双方约定的文档,文档中约定的内容必须描述清楚。
1.2 参考资料
资料名称[标识符] 出 版 单 位 作 者 日 期 PAGE 5 OF 19
1.3 术语和缩略语
术语、缩略语 解 释 2. 系统概述
2.1 产品描述
【叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张结构图来说明该系统的组成和本产品同其他各部分的联系和接口。】
网络应用环境以Internet/Intranet技术为核心。
开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。 软件系统的数据库应依照《南京市信息化数据库建设规范》进行设计和建设。
本指南中没有规定开发者采用何种具体的软件工程开发方法,开发者可根据项目具体特点、自身擅长来选择采用面向过程的方法、面向对象的方法或面向数据的方法,但建议开发 商使用面向对象软件工程的方法,如:采用目前被广泛使用的RUP(Rational Unified Process)方法来进行分析、设计和开发。
注:结构图是用来描述系统的总体结构以及系统内部个部分之间的联系,它以树型结构来表示。 例如:
销售管理 销售汇总统计 定单管理 合同管理 档案管理 合同统计 生成利润表 审核销售合同生成合同统计表单输入订生成销售报表订单审核制定合同销售受款单销售出库申请单生成挡案生成客户报表 PAGE 6 OF 19
2.2 产品功能
【本条是为将要完成的软件功能提供一个摘要。
有时,如果存在较高层次的规格说明时,则功能摘要可从中取得,这个较高层次的规格说明为软件产品分配了特殊的功能,为了清晰起见,可以使用以下任意一种方法来进行说明:
a. b.
编制功能的一种方法是制作功能表,以便客户或者第一次读这个文件的人都可以理解; 用方框图来表达不同的功能和它们的关系也是有帮助的。但应牢记这样的图不是产品设计
时所需求的,而只是一种有效的解释性的工具。】
系统是基于浏览器/服务器(B/S)模式的信息管理系统。用户通过Internet浏览器方式对信息进行录入、管理、查询和统计。系统结构如图1所示:
c.
d.
e.
图1:系统结构图
由于该系统为大型系统,用户分散,所以Web服务器,应用程序服务器和数据库服务器不
能在同一台服务器上部署。
f.
该科技管理系统由Web应用程序和数据库组成。数据库负责存储和管理所有信息。Web
应用程序负责向用户提供友好的用户界面,安全而简单的数据访问方式,使用户能够方便快捷地访问数据库,对数据进行操作。
PAGE 7 OF 19
2.3 一般约束
【本条对设计系统时限制开发者选择的其他一些项作一般性描述。而这些项将限定开发者在设计系统时的任选项。这些包括:
a. 管理方针; b. 硬件的限制; c. 并行操作; d. 通信协议;
安全和保密方面的考虑。】
3. 功能性需求分类 功能性需求分类方法:
【数据流程分析:数据流程分析主要包括对信息的流动,变换,存贮等的分析。其目的是尽量发现数据流动中存在的问题,并找出加以解决的方法,优化数据流程。数据流程图是一种全面的描述系统数据流程的主要工具,他是一组符号来描述整个系统中信息的全貌,综合地反映信息在系统中的流动,处理和存贮情况。
绘制数据流程图常用的以下符号:
外部实体,本系统或子系统以外的人或单位
数据流,一组确定的数据组成
处理过程,表示对数据的加工处理,把它输入的数据流转化为输出的数据流
结构存储,是数据的仓库,表示系统产生的数据存放的地方
例如:
PAGE 8 OF 19
仓库员事物定货系统定货报表采购员 】
【UML的模型图 UML 的模型图能够将被建模的系统的某一个方面的某一部分以图形的方式表示出来,不同的视图通过将多个不同的模型图有机组合在一起就能够描述系统模型的某方面的特征。UML的模型图是有模型元素构成的,模型元素以图标的形式直观形象的表达各种概念。有的模型元素可以在多个模型图中使用,如注释和注释连接可以在任何模型图中使用,用于给其他的模型元素进行注释。各种模型图能使用的模型元素集合也不相同,在介绍各种模型图的时候会有具体的说明。 UML定义了九种模型图:用例图(Use Case View)、类图(Class Diagram)、对象图(Object Diagram)、构件图(Component Diagram)、部署图(Deployment Diagram)、状态图(StateChart Diagram)、活动图(Activity Diagram)、序列图(Sequence Diagram)以及协作图(Collaboration Diagram)。
例如: 用例图:
销售管理系统填写定单审核订单顶层包::客户制订销售合同审核销售合同档案整理生成客户报表顶层包::销售人员生成合同统计表生成销售出库申请单生成销售收款单汇总统计审核单据顶层包::经理 活动图:
PAGE 9 OF 19
销售合同汇总前台POS销售明细汇总汇总统计顶层包::销售管理人员生成销售报表生成利润表 状态图:
更新空白登记登记状态提交完成更新状态 】
【E-R图是相对于概念模型而言的,在数据库中有严格的界定,是P.P.S.Chen于1976年提出的实体-联系方法(Entityt-Relationship Approach).该方法用E-R图来描述现实世界的概念模型.
E-R图提供了表示实体型\\属性\\和联系的方法;▲实体型:用矩形表示.▲属性:用椭圆形表示.▲联系:用菱形表示.
例如:
】
其中用面向对象(用例图)和面向结构(数据流程图)这两种方法要根据项目自身特点,进行选择性地运用,是可选的。
PAGE 10 OF 19
3.1 功能描述1
3.1.1 具体功能1
【对于每一类功能或者有时对于每一个功能,需要具体描述其输入、加工和输出的需求,(根据需要,选择性的用数据流程图,实体图或UML模型图等来表示)。】
【如果选用面向对象分析该功能时,要写明该功能模块的前臵条件,模块中所参与的角色,用用例图对功能模块建模后,要有详细的用例描述话语。】
3.1.2 具体功能2
3.2 功能描述2
……
4. 产品的非功能性需求
4.1 外部接口说明
4.1.1
用户接口
【提供用户使用软件产品时的接口需求。】 4.2 软件开发平台要求
【在此要指定需使用的其他软件产品,以及同其他应用系统之间的接口。】
开发者开发的软件必须能够在南京市规定的软件平台上正常运行。目前软件平台为: 数据库管理系统: Oracle 9i以上版本 中间件(应用服务器)系统: IBM WebSphere OA系统:
Lotus Domino/Notes 网络架构:
完全支持TCP/IP协议 开发工具或技术体系:
为保证软件的上下兼容性,开发者应选择比较通用的开发工具的较新版本进行开发,如Microsoft Visual Studio.Net,Borland Delphi,C++ Builder, 或J2EE(Java2 P1atform Enterprise Edition)等。
4.3 性能需求
【从整体来说,本条应具体说明软件、或人与软件交互的静态或动态数值需求。
PAGE 11 OF 19
a.静态数值需求可能包括: 1)支持的终端数;
2)支持并行操作的用户数; 3)系统响应的时间特性;
b.动态数值需求可能包括:欲处理的事务和任务的数量,以及在正常情况下和峰值工作条件下一定时间周期中处理的数据总量。】
首先,开发者和应共同对的应用需求作充分的调研,提交完整的需求分析 报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属 性、外部接口。应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的 结果,而不是获得这些结果的手段。
软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。
编写需求分析报告的要求 a.无歧义性
对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。
b.完整性
需求分析报告应该包括全部有意义的需求,无论是关系到功能的、性能的、设计约束的、还是关系到外部接口方面的需求;对所有可能出现的输入数据的响应予以定义,要对合法和非合法的输入值的响应做出规定;填写全部插图、表、图示标记等;定义全部术语和度量单位。
c.可验证性
需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来检查软件产品是否满足需求。
d.一致性
在需求分析报告中的各个需求的描述不能互相矛盾。
e.可修改性
需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需求不能在需求分析报告中出现多次。
f.可追踪性
每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证每一个需求。
g.运行和维护阶段的可使用性
需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来源和目的。 需求分析报告应由和开发者双方共同完成。其中:负责根据实际需要提出希望软件实现的功能;软件开发者根据提出的性能需求,结合软件开发编写需求分析。
4.3.1
硬件的限制
【本项包括在各种硬件约束下运行的软件要求,例如,应该包括: a.硬件配臵的特点(接口数,指令系统等); b.内存储器和辅助存储器的容量。】
PAGE 12 OF 19
4.4 属性
【在软件的需求之中有若干个属性,以下指出其中的几个】 4.4.1
友好性
对界面的要求,程序界面友好,可操作性 4.4.2
安全性
防止各种非法的访问、使用、修改、破坏或者 泄密。这个领域的具体需求必须包括: a. 利用可靠的密码技术;
b. 掌握特定的记录或历史数据集; c. 给不同的模块分配不同的功能; d. 计算临界值的检查。 4.4.3
可维护性
规定若干需求以确保软件是可维护的。 4.4.4
可转移/换性
利用开发平台提供的数据转换功能,可以实现跨平台数据转换,实现不同数据库数据间的数据转换,如:FoxPro、Access、Microsoft SQL Server间的数据转换。
4.4系统的运行环境
【系统的起始运行时间,结束运行时间,运行的时限,运行的周期等。】 客户端: 硬件:
CPU P3 800MHz以上; 硬盘 1G以上; 内存128M以上;
网络 校园网;
打印机 能够在windows环境下正常使用的所有打印机。
软件:Windows2000/Windows xp, Internet Explorer。
服务器端: 硬件:
一般品牌服务器。
软件:
Windows2000 server, Oracle9i。
4.5 其他需求
4.5.1
用户操作需求
【这里说明用户要求的常规的和特殊的操作。】
PAGE 13 OF 19
a.在用户组织之中各种方式的操作。例如,用户初始化操作; b.数据处理运行功能; c.后援和恢复操作。
4.5.2用户级别需求 (1)系统管理
添加,修改和删除一级单位
备注:在进行删除操作时,如果系表和用户表中存在属于该一级单位的系或用户则禁止删除 (2) 科研人员管理
科研人员是指在校的参与科研工作的全部教师和职工,也包括科技处的职能教师。他们构成了该系统的用户群。 用户类型 相应功能说明 1 注册功能,即用户通过注册功能成为该系统的用户,注册信息必须经过系统管理员审核并赋予相应权限后,该用户才能使用该系统。 2 个人信息管理,用户可以通过个人信息管理模块对个人信息进行修改 3 录入本区域农业相关数据 1 注册功能,即用户通过注册功能成为该系统的用户,注册信息必须经过系统管理职能管理员审核并赋予相应权限后,该用户才能使用该系统。 部门(乡) 2 个人信息管理,用户可以通过个人信息管理模块对个人信息进行修改 3 可以查询所属及下属部门的信息 1 注册功能,即用户通过注册功能成为该系统的用户,注册信息必须经过系统管理职能管理员审核并赋予相应权限后,该用户才能使用该系统。 部门(县) 2 个人信息管理,用户可以通过个人信息管理模块对个人信息进行修改 3 可以查询所属及下属部门的信息 1 注册功能,即用户通过注册功能成为该系统的用户,注册信息必须经过系统管理职能管理员审核并赋予相应权限后,该用户才能使用该系统。 部门(区) 2 个人信息管理,用户可以通过个人信息管理模块对个人信息进行修改 3 可以查询所属及下属部门的信息 1 查询用户,查询条件如下(查询结果可导出为Excel表格): A:按姓名查询B:按学历查询C:按职务查询D:按职称查询E:按系查询F:按信息员 系统管理一级单位查询G:按科研基地查询H:按审核标志查询I:按锁定标志查询J:按以上条员 件的任意合理组合查询 2 审核已注册的用户信息,并且对用户设臵相应的权限 3 对不再使用该系统的用户帐号进行锁定 PAGE 14 OF 19
4 用户登录/退出信息的管理(直接对数据库管理系统进行操作) 备注:不再使用该系统的用户帐号不删除,只是由系统管理员锁定 1 查询用户,查询条件如下(查询结果可导出为Excel表格): A:按姓名查询B:按学历查询C:按职务查询D:按职称查询E:按系查询F:按一级单位查询G:按科研基地查询H:按审核标志查询I:按锁定标志查询J:按以上条超级管理件的任意合理组合查询 员 2 修改用户信息 3 审核已注册的用户信息,并且对用户设臵相应的权限 4 对不再使用该系统的用户帐号进行锁定 5系统维护升级(包括功能和界面),数据存贮及安全保障
4.5.3 软件的编码 (1) 软件编码
在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
(2) 软件编码的要求
a.模块化编码 b.代码可读性 c.可维护性 d.模块接口标准化 e.界面风格统一 e.注释的应用
(3) 编码的评审
为了尽早发现软件中的障碍,提高软件产品的质量,开发者在编码的过程中应该强调代码评审工作。将代码评审报告作为文档的一部分,提交给。
(4) 编程规范及要求
为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。
主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。
其中数据库部分应遵守《南京市信息化数据库建设规范》的要求。
在软件编码的同时应进行单元测试。
PAGE 15 OF 19
4.5.4软件的测试 (1) 软件测试
为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时。测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。
开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。
测试计划
在软件编码开始之前,开发者应提交《测试计划》,在软件交付时,开发者应提交《软件测试报告》,以确保开发者的软件得到了充分的测试。开发的软件必须经过充分的测试证明其符合设计要求、运行稳定、安全可用方可交付。
软件的交付准备 交付清单
在软件测试证明软件达到要求后,软件开发者应向提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。 《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配臵。
《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
软件的鉴定验收 软件的鉴定验收
在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。在开发者如期交付软件后,由负责确定具体的鉴定验收日期。
验收人员
聘请具有一定的分析、设计、编程和软件测试经验的验收组长和其他专业人员组成。验收组设组长一名(可设有副组长),负责整个验收的计划、组织工作。
PAGE 16 OF 19
验收具体内容
验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。
合法性检查检查软件开发工具是否合法、使用的函数库、控件、组件是否有合法的发布许可。 文档检查检查开发者提交的文档必须齐全,质量是否过关。需要开发者提供的文档包括: 项目实施计划; 详细技术方案;
软件需求规格说明书(STP)(含数据字典); 概要设计说明书(PDD);
详细设计说明书(DDD)(含数据库设计说明书); 软件测试计划(STP)(含测试用例); 软件测试报告(STR);
用户手册(SUM)(含操作、使用、维护、应急处理手册); 源程序(SCL)(不可修改的电子文档); 项目实施计划(PIP); 项目开发总结(PDS); 软件质量保证计划(SQAP);
此外,验收组可以根据需要对其它文档(如软件配臵计划、项目进展报表、阶段评审报 表等)进行检查。
文档的质量根据完备性、正确性、简明性、可追踪性、自说明性、规范件等方面进行踪合评定。 验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。
软件验收测试大纲
在软件进行鉴定验收前,开发者需按照一定的格式编写《软件验收测试大纲》,具体的格式请见附录E。
培训
系统应用培训
主要培训内容包括:系统操作使用、业务管理流程。
培训对象:应用操作人员。 系统管理的培训(可选)
主要培训内容包括:系统安装、调试、维护;系统管理。 培训对象:系统管理人员。
开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。
PAGE 17 OF 19
5. E-R图和数据字典抽取 5.1 E-R图
根据以上的分析,把在整个系统过程中出现的实体及各个实体之间的关联画成E-R图,以更好的从整体角度了解系统中所有的实体。比如:
5.2 数据字典
对系统中出现的各个实体的属性进行整理,形成数据字典,此可以做为后继开发过程中数据结构设计、数据库设计、数据库表结构设计的主要来源。格式如下例所示:
附录A:需求确认
需求评审报告摘要 需求文档 需求评审报告 输入名称,标识符,版本,作者,完成日期,... 输入名称,标识符,评审日期,... PAGE 18 OF 19
[ ] 工作成果合格,“无需修改”或者“需要轻微修改但不必再审核”。 评审结论 [√] 工作成果基本合格,需要做少量的修改,之后通过审核即可。 [ ] 工作成果不合格,需要做出比较大的修改,之后必须重新对其评审。 评审意见 评审小组成员 输入评审小组成员 PAGE 19 OF 19
因篇幅问题不能全部显示,请点此查看更多更全内容