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

news2024/9/22 19:24:47

  • 本文原创作者:谷哥的小弟
  • 作者博客地址: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.coloradmin.cn/o/511075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动画图解常见串行通讯协议:SPI、I²C、UART、红外分析

一、SPI传输 图1:SPI 数据传输 图1.2:SPI数据传输(2) ​ 图1.3: SPI时序信号 二、IC传输 图1.2.1: I2C总线以及寻址方式 三、UART传输 图1.3.1:PC 上通过UART来调试MCU 图1.3.2:R…

深入探究语音识别技术:原理、应用与实现

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

Qt-AES加密库

Qt-AES加密库 AES在线加解密工具[1] Qt-AES加密库[2] Qt AES/DES加密算法库 软件/文件/任意长度字符串加密 试用期许可使用方法软件试用期算法对称加密和非对称加密非对称加密(Asymmetric Cryptography)实例总结加密算法 [3] Qt笔记-AES加密[4] AES 加密…

【Betternet怎么用呢?】Betternet下载使用完整教程

Betternet是一款非常历史悠久的访问世界互联网行业的工具了。知道Betternet的用户,也应该是比较久的互联网用户了。早在2015年左右,那时候的betternet就是很多外贸行业的朋友上gmail以及Facebook上开发客户必备的工具了。 因为那时候betternet使用简单&…

Pandas + ChatGPT 超强组合,pandas-ai :交互式数据分析和处理新方法

Python Pandas是一个为Python编程提供数据操作和分析功能的开源工具包。这个库已经成为数据科学家和分析师的必备工具。它提供了一种有效的方法来管理结构化数据(Series和DataFrame)。 在人工智能领域,Pandas经常用于机器学习和深度学习过程的预处理步骤。Pandas通过…

第7章链接:静态链接、符号表、符号解析

文章目录 7.2 静态连接7.3 目标文件7.4 可重定位目标文件7.5 符号和符号表7.6 符号解析7.6.1 链接器如何解析多处定义的全局符号7.6.2 与静态库链接7.6.3 链接器如何使用静态库来解析引用 7.2 静态连接 像 Unix ld 程序这样的静态链接器(static linker)…

C语言函数大全-- u 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- u 开头的函数 1. ultoa 1.1 函数说明 函数声明函数功能char *ultoa(unsigned long value, char *str, int base);用于将无符号长整型数转换成指定基数下的字符串表示 参数: value : 要转换的无符号长整型数st…

docker容器无法执行vim【已解决】

docker容器无法执行vim【已解决】 docker容器中执行vim失败安装文件没更换之前,速度非常的慢【失败】这里我更换了163的但是报错【失败】这里我更换了阿里的第一种报错【成功】::::这里我更换了阿里的第二种成功 完整步…

struct模块进行数据打包

原理: 将一组简单数据进行打包,转换为bytes格式发送。或者将一组bytes格式数据,进行解析。 接口使用 Struct(fmt) 功能: 生成结构化对象 参数:fmt 定制的数据结构 st.pack(v1,v2,v3…) 功能: 将一组数据按照指定格式打包转换为by…

分子动力学基础知识

分子动力学基础知识 目前主要存在两种基本模型:其一为量子统计力学, 其二为经典统计力学。 量子统计力学 基于量子力学原理, 适用 于微观的, 小尺度, 短时 间的模拟,可以描述电子 的结构分布,原子间的成 键断键等化学性质。 经典纭计力学…

MySQL原理(七):内存管理和磁盘管理

前言 上一篇介绍了 MySQL 的日志,这一篇将介绍内存管理和磁盘管理相关的内容。 内存管理 MySQL 的数据都是存在磁盘中的,我们要更新一条记录的时候,得先要从磁盘读取该记录,然后在内存中修改这条记录。修改完这条记录后会缓存起…

15 KVM虚拟机配置-体系架构相关配置

文章目录 15 KVM虚拟机配置-体系架构相关配置15.1 概述15.2 元素介绍15.3 AArch64架构配置示例15.4 x86_64架构配置示例 15 KVM虚拟机配置-体系架构相关配置 15.1 概述 XML中还有一部分体系架构相关的配置,这部分配置包括主板,CPU,一些与体…

【2023/05/10】Mitchel Resnick

Hello!大家好,我是霜淮子,2023倒计时第5天。 Share Her wistful face haunts my dreams like the rain at night. 译文: 她的热切的脸,如夜雨似的,搅扰着我的梦魂。 Once we dreamt that we were stra…

论文解读:DELPHI:用于蛋白质相互作用位点预测的精确深度集成模型

期刊: Briefings in Bioinformatics 出版日期 2022-11-22 websever:https://iasri-sg.icar.gov.in/pldbpred/ 网址: PlDBPred: a novel computational model for discovery of DNA binding proteins in plants | Briefings in Bioinformatics | Oxfo…

递归到动态规划- X-空间压缩技巧

空间压缩技巧的示例代码代码, LeetCode第64题 验证链接:力扣 package dataStructure.recurrence.practice;/*** https://leetcode.cn/problems/minimum-path-sum/* Leecode第64题* 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左…

C++好难(6):模板初阶

【本节目标】 1. 泛型编程2. 函数模板3. 类模板 目录 【本节目标】 1.泛型编程 2.函数模板 概念: 格式: 原理: 实例化: 1.隐式实例化: 2.显式实例化 原则一: 原则二: 原则三&#…

数组存储与指针学习笔记(三)指针与数组

嵌入式C语言学习进阶系列文章 GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解 GUN C编译器拓展语法学习笔记(二)属性声明 GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏 数组存储与指针学习笔记(一)数…

OpenCv更改颜色空间以及图像阈值

本文主要讲解以下几个方面: 如何将图片从一个颜色空间转换到另一个,例如 BGR 到 Gray,BGR 到 HSV 等。简单阈值法另外,我们会创建一个从图片中提取彩色对象的应用。 1.改变颜色空间 cv.cvtColor(img, flag) 参数flag表示颜色空间转换的方…

Hive语言2(大数据的核心:窗口函数)

1、Common Table Expressions(CTE)> 重点 公用表达式(CTE)是一个临时结果集,该结果集是从WITH子句中指定的简单查询派生而来的,该查询紧接在SELECT或INSERT关键字之前。 2.inner join(内连接)、left joi…

网页源码加密JavaScript程序,有效压缩和加密JS、Html、Css页面数据

我们知道,基于Des或Aes对称加密时,当明文和密码相同,则密文相同。而我们此次发布是WJLSymmetricEncryption4.js(点击链接跳转到下载页面)加密程序,当明文和密码相同,每次加密后的密文不相同&…