让你提前认识软件开发(50):软件需求

简介: 第3部分 软件研发工作总结软件需求         软件工程师的工作职责是什么?一句话,就是完成软件需求。大家每天都接触到的软件,都是从软件需求一步步进化而来的。

第3部分 软件研发工作总结

软件需求

 

        软件工程师的工作职责是什么?一句话,就是完成软件需求。大家每天都接触到的软件,都是从软件需求一步步进化而来的。那么,软件需求是什么?如何完成需求?在完成需求的过程中我们要注意哪些问题呢?本文将为你解答这些问题。

1. 什么是软件需求?

        通俗地讲,软件需求是指要求软件开发工程师完成的软件的功能。例如,如果要求一个软件具备文件处理的能力,要求一个WEB页面具备显示客户信息的能力,要求一款手机具备指纹识别的能力,等等,这些要求都是软件需求。

        用较为专业一点的术语来说,需求指被描述对象(也就是软件)“做什么”(功能需求)及“做什么”时的水平(非功能需求,如性能需求、质量属性需求、外部环境需求等)

        需求与开发的关系如图1所示:

1 需求与开发的关系

 

2. 软件需求示例

        如果要求做一个软件来实现文件处理功能,则一个较为完整的软件需求如下所示:

需求背景:客户要求软件具备文件处理能力,以获取文件中的信息。

需求描述:该软件处理本地文件中的信息,并将读取到的信息保存到数据库中。

执行者:本软件

优先级:高

使用频度:软件运行时执行

前置条件:数据库和操作系统正常运行

后置条件:无。

正常过程:

Step 1:该软件周期性地扫描本地指定的文件目录,以发现按要求命名的文件;

Step 2:扫描到文件之后,程序对读取到的内容进行解析,并将解析后的内容写入到指定的数据库中。

可选过程:无。

异常过程:如果本地目录里面没有文件,则程序继续执行而不停止。

特殊需求:不处理pdf格式的文件。

需求来源:运营商客户。

        一条软件需求包括了以上诸多的内容,其目的就是把需要做的东西描述清楚,以便于开发人员编写程序实现该需求。

 

3. 完成需求过程中的角色分工

        在一条需求从产生到完成的过程中,牵涉到的主要人员包括以下几类:

        (1) 系统工程师(System Engineer,简称SE):他们负责写需求,并在开发过程中不断完善需求,同时解答研发人员的疑问。

        (2) 开发工程师(Development Engineer):他们负责用程序代码实现需求,并就需求中的问题与SE沟通。

        (3) 测试工程师(Test Engineer):他们主要对开发工程师做出的软件进行测试,并就相关问题与开发工程师和SE沟通。

        以上三类角色的互动情况如图2所示:

2 三类角色的互动情况

 

4. 开发工程师如何准确地完成需求?

        (1) 参加需求评审会议,了解需求所要实现的功能,并就需求的合理性进行评估,剔除不合理的、有歧义的、实现难度很大的需求。

        (2) 在开始编码之前,做好软件的详细设计并发起评审,确保软件流程的正确性及功能的完整性,减少后期修改所带来的麻烦。

        (3) 在编码的过程中,仔细阅读需求,确保对之有了准确的、透彻的的理解。如果在需求实现过程中发现了需求问题或有所疑惑的地方,及时与SE沟通(最好面对面沟通)

        (4) 在完成了一个功能之后,即对代码进行自测(单元测试),确保已实现功能的正确性。在所有功能都实现之后,还要对整个程序进行测试(集成测试)

        (5) 在提交程序之前,确保代码、文档都已齐备,最后再对程序版本的完整性进行检查。

 

        一切软件都是从需求开始的,因此,对于软件需求,开发人员一定要抱着高度负责任的态度,快速、准确地将其实现,以做出高质量的软件产品。

 

 

 

(本人微博: http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
目录
相关文章
|
1月前
|
运维 Prometheus 监控
运维中的自动化实践每月一次的系统维护曾经是许多企业的噩梦。不仅因为停机时间长,更因为手动操作容易出错。然而,随着自动化工具的引入,这一切正在悄然改变。本文将探讨自动化在IT运维中的重要性及其具体应用。
在当今信息技术飞速发展的时代,企业对系统的稳定性和效率要求越来越高。传统的手动运维方式已经无法满足现代企业的需求。自动化技术的引入不仅提高了运维效率,还显著降低了出错风险。本文通过几个实际案例,展示了自动化在IT运维中的具体应用,包括自动化部署、监控告警和故障排除等方面,旨在为读者提供一些实用的参考。
|
6月前
|
小程序 UED
人力资源小程序的设计与开发步骤
人力资源小程序的设计与开发步骤
5款实用的软件,能帮你解决一些工作和生活中的问题
我乐于分享一些有用的软件给大家,让大家的工作更高效。今天,我要向大家推荐五款实用的软件,它们都能帮你解决一些工作和生活中的问题。
85 0
|
6月前
|
监控
项目总延期:确保软件开发公司按时交付项目,实用方法
在当今竞争激烈的商业环境中,软件开发项目的按期交付不仅是技术实力的体现,更是保障业务连续性和客户满意度的关键。面对可能存在的项目延期风险,一套有效的预防与应对机制显得至关重要。以下是参考“东莞梦幻网络科技”软件开发公司,有哪些保障条例,保证软件开发项目能够如期交付:
|
6月前
|
安全
软件开发外包风险如何避免,参考如下安全低风险的开发合作模式
在当今人力成本日渐增高的商业环境中,外包软件开发已成为许多企业的首选。然而,如何确保外包过程中的安全性与低风险性,成为众多企业在选择合作伙伴时的重要考量因素。以东莞梦幻网络科技公司为例,他们在外包软件开发服务中采取了一系列有效措施,成功构建了一套兼顾双方权益、保证项目顺利进行的安全低风险合作模式。
|
存储
推荐5款非常实用的软件,让你的工作和生活更便利
生活中我们会使用到各种实用软件,它们为我们的工作和生活带来便利。今天我就为大家推荐几款优秀的软件,希望能给你带来帮助。
107 1
|
网络协议 Linux C语言
让你提前认识软件开发(4):破除几个有关软件开发的错误观念
让你提前认识软件开发(4):破除几个有关软件开发的错误观念
83 0
|
搜索推荐 Linux 数据安全/隐私保护
5款最新最实用的小软件,让你的工作和生活更轻松
我喜欢发现和分享一些好用的软件,我觉得它们可以让我们的工作和生活更加轻松和快乐。今天给大家介绍五款我最近发现的软件。
151 0
|
人工智能 运维 大数据
软件开发商何时介入生产过程?一起跟随程序员看看软件开发全阶段
软件开发商何时介入生产过程?一起跟随程序员看看软件开发全阶段
114 0
软件开发商何时介入生产过程?一起跟随程序员看看软件开发全阶段
|
项目管理
艾伟也谈项目管理,软件开发前期设计时的注意事项
  说起软件设计,我们可能每个人都做过,但是什么样的方案才是好的设计方案?如何才能设计出一个好的设计方案?在设计过程中需要注意哪些呢?不要总是说:低耦合、可维护性、可扩展性、简易性、可重用性等,本文试图另一个角度出发,带着前面的这些问题,使大家能明白那些问题的答案,并与大家一起探讨。
1024 0