软件工程开发文档写作教程(05)—可行性研究报告写作规范


  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:电子工业出版社《软件文档写作教程》 马平,黄冬梅编著

软件工程开发文档现状

在这里插入图片描述

一个软件项目从立项到结尾共有几个阶段:立项,需求分析,概要设计,详细设计,软件编码,软件测试,维护,验收。在这几个阶段中,每一个阶段都有各自的文档内容及格式,但是国内目前存在以下一些现状:
1 .文档极其简单,相当于没有文档。
2 .文档流于形式,没有什么实际的价值。
3 .太强调文档的重要性,以至于文档不能改,只能改代码。

软件项目在立项阶段需要进行市场调查和产品定位等的业务分析,并且形成规范的可行性研究报告、项目建议书和投标文件,论述开发软件产品的充分理由。

接下来,我们介绍立项阶段的三个文档的写作规范:

  1. 可行性研究报告
  2. 项目建议书
  3. 投标文件

可行性研究报告的内容

可行性研究报告的编写目的是说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能选择的各种方案;说明并论证所选定的方案。

1. 引言

1.1 编写目的
说明编写本可行性研究报告的目的,指出预期的读者。
1.2 背景
说明:
a.所建议开发的软件系统的名称。
b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络。
c.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3 定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4 参考资料
列出可以使用的参考资料,如:
a.本项目的经核准的计划任务书或合同、上级机关的批文。
b.属于本项目的其他已发表的文件。
c.本文件中各处引用的文件、资料,包括所需用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。

2. 可行性研究的前提

说明对所建议的开发项目进行可行性研究的前提,如要求、目标、假定、限制等。
2.1 要求
说明对所建议开发的软件的基本要求,如:
a.功能。
b.性能。
c.输出如报告、文件或数据,对每项输出要说明其特征,如用途、产生频度、接口以及分发对象。
d.输入说明系统的输入,包括数据的来源、类型、数量、数据的组织以及提供的频度。
e.处理流程和数据流程,用图表的方式表示出最基本的数据流程和处理流程,并辅之以叙述。
f.安全与保密方面的要求。
g.同本系统相连接的其他系统。
h.完成期限。
2.2 目标
说明所建议系统的主要开发目标,如:
a.人力与设备费用的减少。
b.处理速度的提高。
c.控制精度或生产能力的提高•
d.管理信息服务的改进。
e.自动决策系统的改进。
f.人员利用率的改进。
2.3 条件、假定和限制
说明对这项开发中给出的条件、假定和所受到的限制,如:
a.所建议系统的运行寿命的最小值。
b.进行系统方案选择比较的时间。
c.经费、投资方面的来源和限制。
d.法律和政策方面的限制。
e.硬件、软件、运行环境和开发环境方面的条件和限制。
f.可利用的信息和资源。
g.系统投入使用的最晚时间。
2.4 进行可行性研究的方法
说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的。摘要说明所使用的基本方法和策略,如调查、加权、确定模型、建立基准点或仿真等。
2.5 评价尺度
说明对系统进行评价时所使用的主要尺度,如费用的多少、各项功能的优先次序、开发时间的长短及使用中的难易程度。

3. 对现有系统的分析

这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也可能是一个机械系统甚至是一个人工系统。分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系统的必要性。
3.1 处理流程和数据流程
说明现有系统的基本的处理流程和数据流程。此流程可用图表即流程图的形式表示,并加以叙述。
3.2 工作负荷
列出现有系统所承担的工作及工作量。
3.3 费用开支
列出由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服务、材料等项开支以及开支总额。
3.4 人员
列出为了现有系统的运行和维护所需要的人员的专业技术类别和数量。
3.5 设备
列出现有系统所使用的各种设备。
3.6 局限性
列出本系统的主要的局限性,例如处理时间赶不上需要,响应不及时,数据存储能力不足,处理功能不够等。并且要说明为什么对现有系统的改进性维护已经不能解决问题。

4 .所建议的系统

本部分将用来说明所建议系统的目标和要求将如何被满足。
4.1 对所建议系统的说明
概括地说明所建议系统,并说明列出的要求将如何得到满足,说明所使用的基本方法及理论根据。
4.2 处理流程和数据流程
给出所建议系统的处理流程和数据流程。
4.3 改进之处
按2.2条中列出的目标,逐项说明所建议系统相对于现存系统具有的改进。
4.4 影响
说明在建立所建议系统时,预期将带来的影响,包括:
4.4.1 对设备的影响
说明新提出的设备要求及对现存系统中尚可使用的设备须做出的修改。
4.4.2 对软件的影响
说明为了使现存的应用软件和支持软件能够同所建议系统相适应。而需要对这些软件所进行的修改和补充。
4.4.3 对用户单位机构的影响
说明为了建立和运行所建议系统,对用户单位机构、人员的数量和技术水平等方面的全部要求。
4.4.4 对系统运行过程的影响
说明所建议系统对运行过程的影响,如:
a.用户的操作规程。
b.运行中心的操作规程。
c.运行中心与用户之间的关系。
d.源数据的处理。
e.数据进入系统的过程.
f.对数据保存的要求,对数据存储、恢复的处理。
g.输出报告的处理过程、存储媒体和调度方法。
h.系统失效的后果及恢复的处理办法。
4.4.5 对开发的影响
说明对开发的影响,如:
a.为了支持所建议系统的开发,用户需进行的工作。
b.为了建立一个数据库所栗求的数据资源。
c.为了开发和测验所建议系统而需要的计算机资源。
d.所涉及的保密与安全问题。
4.4.6 对地点和设施的影响.
说明对建筑物改造的要求及对环境设施的要求。
4.4.7 对经费开支的影响
扼要说明为了所建议系统的开发,设计和维持运行而需要的各项经费开支。
4.5 局限性
说明所建议系统尚存在的局限性以及这些问题未能消除的原因。
4.6 技术条件方面的可行性
本节应说明技术条件方面的可行性,如:
a.在当前的限制条件下,该系统的功能目标能否达到。
b.利用现有的技术,该系统的功能能否实现。
c.对开发人员的数量和质量的要求并说明这些要求能否满足。
d.在规定的期限内,本系统的开发能否完成。

5. 可选择的其他系统方案

扼要说明曾考虑过的每一种可选择的系统方案,包括需开发的和可从国内国外直接购买的,如果没有供选择的系统方案可考虑,则说明这一点。
5.1 可选择的系统方案1
说明可选择的系统方案1,并说明它未被选中的理由。
5.2 可选择的系统方案2
按类似5.1条的方式说明第2个乃至第〃个可选择的系统方案。

6. 投资及效益分析

  • 支出
  • 收益
  • 收益/投资比
  • 投资回收周期
  • 敏感性分析

7. 社会因素方面的可行性

本章用来说明对社会因素方面的可行性分析的结果,包括:
7.1 法律方面的可行性
法律方面的可行性问题很多,如合同责任、侵犯专利权、侵犯版权等方面的陷阱,软件人员通常是不熟悉的,有可能陷入,务必要注意研究。
7.2 使用方面的可行性
例如从用户单位的行政管理、工作制度等方面来看,是否能够使用该软件系统;从用户单位的工作人员的素质来看,是否能满足使用该软件系统的要求等,都是要考虑的。

8. 结论

在进行可行性研究报告的编制时,必须有一个研究的结论。结论可以是:
a.可以立即开始进行。
b.需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行。
c.需要对开发目标进行某些修改之后才能开始进行。
d.不能进行或不必进行(例如因技术不成熟、经济上不合算等)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/18521.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ansys Lumerical | CMOS - 光学仿真方法

通过使用更小的像素尺寸和更大的填充因子,基于CMOS图像传感器像素的数码相机系统的成本正在降低。但是,只有在不牺牲图像质量的情况下,CMOS像素尺寸减小才是可以接受的。随着CMOS像素尺寸的不断减小,图像信噪比降低,相…

一场面试下来,狂飙 Framework底层原理

近期有位Android 开发的朋友在吐槽说:现在的招聘信息网站是假的吧,我都怀疑一些公司的人事在冲他们的KPI,三个月了,简历投了上百份,结果收到回应的才个位数,去面试还一套Framework底层原理面试题狂炸…… 面…

单链表OJ题:LeetCode--206.反转链表

朋友们、伙计们,我们又见面了,今天给大家带来的是LeetCode中206题:反转链表 数 据 结 构:数据结构专栏 作 者:stackY、 C 语 言 :C语言专栏 LeetCode :LeetCode刷题训练营 LeetCod…

Java之多线程初阶2

目录 一.上节内容复习 1.进程和线程的区别 2.创建线程的四种方式 二.多线程的优点的代码展示 1.多线程的优点 2.代码实现 三.Thread类常用的方法 1.Thread类中的构造方法 2.Thread类中的属性 1.为线程命名并获取线程的名字 2.演示isDaemon() 3.演示isAlive() 4.演示…

【操作系统OS】学习笔记第三章 内存管理【哈工大李治军老师】

基于本人观看学习 哈工大李治军老师主讲的操作系统课程 所做的笔记&#xff0c;仅进行交流分享。 特此鸣谢李治军老师&#xff0c;操作系统的神作&#xff01; 如果本篇笔记帮助到了你&#xff0c;还请点赞 关注 支持一下 ♡>&#x16966;<)!! 主页专栏有更多&#xff0…

数字化战略,如何解读企业财务报表

01 财务数字化管理 第一&#xff0c;财务基本信息化建设。比如财务系统、财务共享中心等通过数字化的手段提升财务会计核算、财务流程管理效率&#xff0c;解决流程性管理的问题。 第二&#xff0c;利用各类商业智能 BI 分析、数据分析的手段把企业的所有行为都进行量化对比&…

vue 水印组件

效果图展示 Watermark 参数说明类型默认值版本width水印的宽度&#xff0c;content 的默认值为自身的宽度number120height水印的高度&#xff0c;content 的默认值为自身的高度number64rotate水印绘制时&#xff0c;旋转的角度&#xff0c;单位 number-22zIndex追加的水印元素…

【计算机图形学基础教程】MFC基本绘图函数2

MFC基本绘图函数 绘图工具类 CGdiObject类&#xff1a;GDI绘图工具的基类CBitmap类&#xff1a;封装了GDI画刷&#xff0c;可以选作设备上下文的当前画刷&#xff0c;用于填充图形的内部CFont类&#xff1a;封装了GDI字体&#xff0c;可以选作设备上下文的当前字体CPalette类…

selenium——unittest框架

目录 一、unittest框架基本介绍二、unittest框架解析三、unittest框架使用方法1.测试固件2.测试套件3.用例的执行顺序4.忽略测试用例中的方法5.unittest断言6.HTML报告生成 一、unittest框架基本介绍 在进行selenium IDE脚本录制导出的脚本中&#xff0c;我们发现其中多了很多…

基于 EKS Fargate 搭建微服务性能分析系统

背景 近期 Amazon Fargate 在中国区正式落地&#xff0c;因 Fargate 使用 Serverless 架构&#xff0c;更加适合对性能要求不敏感的服务使用&#xff0c;Pyroscope 是一款基于 Golang 开发的应用程序性能分析工具&#xff0c;Pyroscope 的服务端为无状态服务且性能要求不敏感&…

mysql数据迁移与同步常用解决方案总结

目录 一、前言 二、数据迁移场景 2.1 整库迁移 2.2 表数据迁移 2.3 mysql版本变更 2.4 mysql数据迁移至其他存储介质 2.5 自建数据到上云环境 2.6 mysql数据到其他国产数据库 三、数据库物理迁移实施方案 3.1 数据库物理迁移概述 3.1.1 物理迁移适用场景 3.1.2 物理…

TCP三次握手

TCP三次握手 文章目录 TCP三次握手1. TCP三次握手过程和状态变迁1. 准备工作2. 进行连接 2. 能把三次握手改为两次握手吗&#xff1f;3. 改为两次握手会出现什么后果&#xff1f;4. 改为四次握手行不行&#xff1f;5. TCP第三次握手失败了怎么办&#xff1f;6. 三次握手是否可以…

TCP四次挥手

TCP四次挥手详解 文章目录 TCP四次挥手详解1. TCP四次挥手过程和状态变迁2. 为什么挥手需要四次&#xff1f;3. 为什么中间的ACK和FIN不可以像三次握手那样合为一个报文段呢&#xff1f;4. 为什么TIME_WAIT等待的时间是2MSL&#xff1f;5. 等待2MSL的意义5.1 保证客户端最后发送…

Linux网络——Shell编程之数组

Linux网络——Shell编程之数组 一、概念二、数组的定义三、Shell数组操作1. 获取数组的所有元素的列表2. 获取数组的所有元素下标3.取数组的元素个数4. 获取数组的某个元素的值5.删除数组某个元素6.删除数组7.数组切片8.数组字符替换9.数组追加元素 四、数组在函数的传参 一、概…

天猫数据分析:2023年Q1天猫净水器品牌销售TOP10排行榜

水质的好坏更是与人们的身体健康密切相关。随着社会经济的发展&#xff0c;居民生活水平提升&#xff0c;人们对饮用水质量、安全性的要求也不断提高&#xff0c;净水器也因此逐渐成为现代生活的必需品。 根据鲸参谋电商数据显示&#xff0c;2023年Q1在天猫平台上&#xff0c;净…

3. SQL底层执行原理详解

一条SQL在MySQL中是如何执行的 1. MySQL的内部组件结构1.1 Server层1.2 Store层 2. 连接器3. 分析器4. 优化器5. 执行器6. bin-log归档 本文是按照自己的理解进行笔记总结&#xff0c;如有不正确的地方&#xff0c;还望大佬多多指点纠正&#xff0c;勿喷。 1. MySQL的内部组件结…

MVC分部视图的使用:Html.Partial/RenderPartial,Html.Action/RenderAction,RenderPage

ASP.NET MVC 里的部分视图&#xff0c;相当于 Web Form 里的 User Control。我们的页面往往会有许多重用的地方&#xff0c;可以进行封装重用。 使用部分视图有以下优点&#xff1a; 1. 可以简写代码。 2. 页面代码更加清晰、更好维护。 在视图里有多种方法可以 加载部分视图&a…

硬盘数据突然消失怎么回事?硬盘数据突然消失怎么找回

硬盘上的数据对每个人都至关重要&#xff0c;它可能是我们的珍贵回忆&#xff0c;多年学习的总结&#xff0c;或者一些不可告人的秘密。而硬盘中的数据可能会在不知情的情况下消失或被删除&#xff0c;这种情况对我们来说十分痛苦和困扰。然而&#xff0c;我们不必担心&#xf…

如何用100天彻底学会Python?

Python 是一门功能强大、易于学习且历史悠久的编程语言。如果你希望在短时间内彻底学会 Python&#xff0c;需要制定一个全面的学习计划&#xff0c;并进行刻意的练习和实践。 以下是一份建议的学习计划&#xff0c;帮助你在 100 天内掌握 Python 技能。 第 1-10 天&#xff…

JavaScript class和继承的原理

&#xff08;对于不屈不挠的人来说&#xff0c;没有失败这回事。——俾斯麦&#xff09; class 相关链接 MDN链接 有关类的详细描述 关于构造函数&#xff0c;原型和原型链的说明 类的概述 类是用于创建对象的模板。他们用代码封装数据以处理该数据。JS 中的类建立在原型上…
最新文章