|
怎样写软件需求更有效?
李培圣(北京软件造价评估技术创新联盟)
引言:
提到软件需求相信很多人并不陌生,特别是从事信息化方面工作的人员,基本每天都需要与软件需求打交道。 可是在实际的工作中,因为软件需求问题导致信息化项目失败的情况屡见不鲜,软件需求在软件项目中处于一个什么地位,我们需要怎样编写需求?希望通过本文的探讨给大家带来一些思考,给实际工作带来帮助 。
一、软件需求是什么
根据百度百科的定义:软件需求是用户解决问题或达到目标所需条件或权能;系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 软件需求包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制。本文我们主要讨论软件的功能性需求,主要包含三个层面的内容:
业务需求 |
用户需求 |
功能需求 |
|
|
业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明,这是软件项目要实现的目标或者功能 。
用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(scenario)说明中予以说明,这是用户在特定场景下,通过软件所需要实现的功能。
功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求
工作中,怎样编写软件需求可以更好的满足软件研发的需要 。 很多人可能认为需要写得越详细越好,只有把需求写清楚了,我们才能研发出客户满意的软件。可是在实际中,编写软件需求工作量很大,并且在时间做软件研发过程中,需求内容随时都会发生变更,随着敏捷研发思想的普及,很多人又走向了另一个极端:认为软件需求不需要编写,通过代码就可以反映需求的内容,研发不需要把宝贵的时间浪费在冗余的文档编写上 。 两种意见可能都有一定的道理,那么我们需要怎样的软件需求文档呢 ?
要回答这个问题,需要我们首先考虑:我们为什么需要需求文档 。 如果需求的编写只是为了解释说明软件实现的功能,那么良好的编码结构,代码注释就可以很好的实现软件的功能说明,程序员可以将编写需求的时间节约下来进行更多功能的实现; 可是,这样的情况可能更多适用于中小型项目,或者互联网项目,因为这样的项目需求不复杂,并且需求变化很快,所以研发的效率非常重要。然而,针对大型软件项目或者功能比较复杂的系统,软件研发可能是多人协作的成果,所以在信息传递过程中, 我们只有提前考虑好软件需求的内容,才能正确评估开发软件所需要的时间,成本的要素,从而更好的管理项目。
三、如何写好软件需求
如何写好一个软件需求,我们通过一个案例来进行说明:
1、业务需求 :
客户对系统的总体的目标要求 ;在线培训考试平台,主要是用于网上教学、学习、模拟训练等,老师可以通过此系统进行学习科目、学习课件、学习评估等管理,学员可以通过系统进行网上学习、模拟训练、在线考试及帮助。
2、用户需求
用户在特定场景下,通过软件所需要实现的功能 ; 在线培训考试平台的案例中,核心功能主要包括 :
其中在线培训管理模块包括:
科目管理:针对培训过程中的不同类别进行科目管理,对培训科目进行管理维护:包括科目信息添加、科目信息查询、科目信息修改、科目信息的删除等操作。
课程管理:对于培训课程进行管理维护:包括课程信息添加、课程信息查询、课程信息修改、课程信息的删除等操作。
课件管理:课程信息主要包括不同课程的课件信息,用户通过输入课件的 名称、密级、类型、讲义可以对课件信息进行独立的管理 ;包括课件信息添加、课件信息查询、课件信息修改、课件信息的删除等操作。
学员管理: 对于登陆用户报名学习某一科目的课程内容进行管理,包括学员新增,查询、修改、删除等操作
计划管理:管理员可以对培训计划进行管理,主要计划添加培训课程和培训学员,管理员卡还可以对培训计划进行添加、查询、修改、删除等操作
培训日志:管理通过输入时间、类型、描述可以对培训信息进行查询。
3、功能需求
开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求,在线培训管理包括科目管理、课程管理、课件管理、学员管理、计划管理,培训日志查询等功能。
3.1科目管理
功能描述 |
对科目进行增,删,改,查等管理操作。 |
输入 |
a) 新增科目:新增界面输入科目名称、科目描述等信息。 b) 修改科目:在科目编辑界面对科目名称、描述等信息进行修改。 |
操作序列 |
a) 新增科目 1) 在科目管理界面点击“添加”按钮进入科目新增界面; 2) 在科目新增界面输入科目、描述等信息; 3) 点击保存按钮,新增科目成功; 4) 点击返回按钮返回科目管理界面。 b) 修改科目 1) 在科目管理界面科目对应的操作列中点击“修改”进入修改界面; 2) 在科目修改界面根据自己需要修改相关项; 3) 点击保存按钮,科目修改成功; 4) 点击返回按钮返回科目管理界面。 c) 删除科目 1) 在科目管理界面科目对应的操作列中点击“删除”; 2) 弹出提示删除信息; 3) 点击确定删除。 d) 查询科目 1) 在科目管理界面输入查询条件; 2) 点击查询; 3) 显示查询结果 4) 点击导出功能,导出.xls文件。 |
输出 |
增、删、改,查等操作如果保存成功,给出成功提示;如操作失败,给出错误提示。 |
补充说明 |
无 |
功能描述 |
对课程进行增,删,改,查等管理操作。 |
输入 |
a) 新增课程:新增界面输入科目、名称、类型、描述等信息。 b) 修改课程:在课程编辑界面对科目、名称、类型、描述等信息进行修改。 c) 课程查询:输入课程名、科目等查询条件。 |
操作序列 |
a) 新增课程 1)在课程管理界面点击“添加”按钮进入课程新增界面; 2)在课程新增界面输入课程、描述等信息; 3)点击保存按钮,新增课程成功; 4)点击返回按钮返回课程管理界面。 b) 修改课程 1)在课程管理界面课程对应的操作列中点击“修改”进入修改界面; 2)在课程修改界面根据自己需要修改相关项; 3)点击保存按钮,课程修改成功。 4)点击返回按钮返回课程管理界面。 c) 删除课程 1) 在课程管理界面课程对应的操作列中点击“删除” 2) 点击确定即可删除该条记录。 d) 查询课程 1) 在课程管理界面上输入查询条件; 2) 点击查询按钮,即可查询检索相应的记录。 3) 点击导出功能,导出.xls文件。 |
输出 |
增、删、改、查等操作如果保存成功,给出成功提示;如操作失败,给出错误提示。 |
补充说明 |
无 |
功能描述 |
对课件进行增,删,改,查等管理操作。 |
输入 |
课件名称、密级、类型、讲义 |
操作序列 |
a) 进入课件管理界面 1) 在课程管理界面点击“课程名称”即可进入对应的课件管理界面。 b) 新增课件 1) 在课件管理界面点击“添加”按钮进入课件新增界面; 2) 在课件新增界面输入课件、讲义等信息; 3) 点击保存按钮,新增课件成功; 4) 点击返回按钮返回课件管理界面。 c) 修改课件 1) 在课件管理界面课件对应的操作列中点击“修改”进入修改界面; 2) 在课件修改界面根据自己需要修改相关项; 3) 点击保存按钮,课件修改成功。 4) 点击返回按钮返回课件管理界面。 d) 删除课件 1) 在课件管理界面课件对应的操作列中点击“删除” 2) 点击确定即可删除该条记录。 e) 查询课件 1) 在课件管理界面上输入查询条件; 2) 点击查询按钮,即可查询检索相应的记录。 3) 点击导出功能,导出.xls文件。 |
输出 |
增、删、改、查等操作如果保存成功,给出成功提示;如操作失败,给出错误提示。 |
补充说明 |
课件支持类型:pdf、doc、docx、xls、xlsx、flv、mp4等常见格式; 模拟训练功能采用3D技术实现。
|
3.4学员管理
功能描述 |
a) 注册学员管理:注册学员查询、修改、删除等操作。 b) 后台新增学员管理:教员可在学员管理中新增学员,也可对学员信息进行查询、删除等操作。 |
输入 |
登录名、真实姓名、密码 |
操作序列 |
a) 新增学员 1) 在学员管理界面点击“添加”按钮进入学员新增界面; 2) 在学员新增界面输入登录名、真实姓名、密码等信息; 3) 点击保存按钮,新增学员成功; 4) 点击返回按钮返回学员管理界面。 b) 删除学员 1) 在学员管理界面学员对应的操作列中点击“删除” 2) 点击确定即可删除该条记录。 c) 查询学员 1) 在学员管理界面上输入查询条件; 2) 点击查询按钮,即可查询检索相应的记录。 3) 点击导出功能,导出.xls文件。 |
输出 |
增、删、查等操作如果保存成功,给出成功提示;如操作失败,给出错误提示。 |
补充说明 |
无 |
四、确定功能进行成本评估
通过对软件需求功能点点梳理,借助需求管理平台需求分析功能,我们可以了解该项目的规模大小,通过行业基准数据的分析可以了解研发成本,工期时间的管理要素,为项目管理提供依据 。
Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )
GMT+8, 2024-7-6 03:55 , Processed in 0.030572 second(s), 16 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.