各位仁兄:
我想知道一个软件的完整开发过程,从分析到设计到编码到测试的整个过程实例
以及怎样写文挡,特求文挡。请大家不要误会,我不是想剽取别人的成果!我觉得学软件工程太理论化了!如果有那那位仁兄有这个方面的开发实例文档或是对我有帮组的!可以的话,发给我一份(不要源代码,有可执行程序就行),小弟还是在校大学生,初来CSDN,没什么作为报酬,但可以给光分!为谢!
[email protected]
[email protected]
thanks!
我想知道一个软件的完整开发过程,从分析到设计到编码到测试的整个过程实例
以及怎样写文挡,特求文挡。请大家不要误会,我不是想剽取别人的成果!我觉得学软件工程太理论化了!如果有那那位仁兄有这个方面的开发实例文档或是对我有帮组的!可以的话,发给我一份(不要源代码,有可执行程序就行),小弟还是在校大学生,初来CSDN,没什么作为报酬,但可以给光分!为谢!
[email protected]
[email protected]
thanks!
(特别是文档,小弟还是在校学生,想知道文档是怎么写的)
[email protected]
可以给我一份吗?谢谢您。
-------------------------------------------------------
转自猛料
----------------
开发步骤
1)先做应用分析,直到你和用户都明白他想要你作什么,这是最重要的.
2)用文档的方式记录下来
3)做总体系统逻辑分析.
4)做总体系统应用分析.
5)划分模块,并分配人手,
6)每队再做分析,并建立原型,修改原型.如果和他人的接口部分要改动,必须由
三方同意商定.
7)接口联合调试
8)系统调试
9)文档,用户说明.
--以上每一步的文档都要清楚,并由各模块负责人负责.
原则上编码的工作量视,如果应用模型细,就少些,反之就多些,还要看实现技术是否
容易.
团队精神很重要,要让所有人都觉得自己很有价值.
我觉得如果想将项目做得好,要做到一下几点,除非您特别牛:)
1 : 首先要熟悉用户的业务流程,明确需求,做好充分的可行性分析. 这一点我觉得
非常重要,直接决定以后工作的进度和质量.我做得第一个项目就是没有重视这一点,
需求没完全明确,到用户要求改的时候,sigh...我们几个人没日没夜的改,还是一大堆
bug在里头,痛苦,往事不堪回首:).
了解用户的业务流程最为辛苦,或则编码对于我们程序员来说不是什么大问题,
但了解业务流程绝对是难解决的,要有耐心,不完全搞清楚不要匆匆忙忙的进行系统
设计,了解也是个渐进的过程,多点和用户交流,了解他们在现行系统上面的工作情况
和工作概要时非常重要的.这一部分的工作我觉得起码要1-2周.如果项目很大,还要
更久.
可行性的分析包括了经济上的,技术上的,社会上的等等方面的因素,要了解到
用户提出的要求是不是真的能够完成,经济上有问题吗?技术上是不是不可行?都要知道
得清清楚楚.
2 : 上面的内容了解完了,可以进行系统的设计了,按照上面所得的资料,确定一个
系统的概要.最好能用建模工具如Rose将模块划分好,再按工作量具体分工.如果系统
涉及到数据库的(大多数都是这样的拉),数据库各个表的定义及优化要讨论清楚,争取
一步到位,不要等做着做着发现表的定义有问题,要改,sigh...可能工作量就大了
3 : 要具体编码了,严格控制进度是应该的,结合测试来完成,写代码的时候尽量能
加上注释.我个人认为测试时非常重要的,偏偏中国不重视这个,很多公司都没有专门的
测试人员,没办法,只要交叉测试了.
4 : 文档要齐全!特别是对大型的系统来说,这个尤为重要.文档包括一开始的需求
报告,可行性报告,系统设计的总结,模块划分的纪录,在各个阶段测试结果的纪录,用户
手册,软件说明书等等,甚至程序员在编码的时候写的注释,可以在整个软件开发的过
程中起到知道的作用.
我的看法就那么多,不知道对不对,如有不对,请大家指出//thx:)
************
说点我认为实用的罢
做一个项目,始终是人在做,书上的东西是死的,而人是活的,有了好的方法,
不一定会有好的效果.
我认为做一个项目,有以下几点注意的,当然,做一个项目不会只有这些:
1.前其人员不用太多,找几个(具体几个,看业务大小和这几个人的人员素质而定,
其实有时,也与客户的要求有关)对业务熟悉的人员(当然,也必须是熟悉开发工具的)
进行前其的调研,设计文档,此时,尚未进入编码阶段呢
2第二阶段,此时不应该是大量人员投入的阶段,而应该是找几个(也许是一两个)比较
有实力的人,做出系统的框架(如果有Delphi的话,就应该将系统总控模块做好,同时
做好各模块的接口部分)
与此同时,再找一两个人做一些基础数据的维护界面(例如人员信息维护等)
3第三阶段,此时,投入大量人员,(此时,应该是整个项目中时间最短的部分)分模块
开发,记住,开发必须是在前面定义好的接口之下,同时必须在主框架中调试
4第四阶段,最好找开始做调研的人中的一两个负责测试的主要工作(当然,测试不可能
只用一两个人,但这一两个人是总体把握什么是对的即符合用户要求的)既然测试,总会
有些问题的,所以,此时,也应该留几个开发人员跟着,(这几个开发人员的水平可以平一
一些,锻炼队伍嘛),有问题及时修改,没有问题,一起做测试
其实在开发过程中,总会有一些不太协调的地方,所以,一个项目的成败,还必须有两点
特别提出的,一是这个项目的负责人必须能够调动项目组中的每一项可利用资源(包括
员和其它各方面的东西)二是项目客户必须有一个说话可以算数的人当对项目挂名负责
真的,这两点真的很重要.
说了这么多废话,不知有没有什么用处,真的,有些算是教训吧,有些可以算是不太成熟
的经验,有没有用我实在也无从知道,因为才做过一两个比较大的项目而已
共 页
编写: 年 月 日
校对: 年 月 日
审核: 年 月 日
标审: 年 月 日
批准: 年 月 日
目 录
[(请在此插入 à 索引和目录 à 目录 à 正式)]
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. 接口 数据库、网络、模块、服务器、用户等接口的考虑;
i. 图形用户界面;
j. 在安全与保密方面的要求;
k. 同本系统相连接的其他系统;
l. 完成期限。
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 对所建议的系统的说明
概括的说明所建议系统,并说明在2.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
参照第4条的提纲,说明可选择的系统方案1,并说明它未被选中的理由。
5.2 可选择的系统方案2
按类似5.1条的方式说明第2乃至第n个可选择的系统方案。
……
6 投资及效益分析
6.1 支出
对于所选择的方案,说明所需的费用。如果已有一个现存系统,则包括该系统继续运行
期间所需的费用。
6.1.1 基本建设投资
包括采购、开发和安装下列各项所需的费用,如:
a. 房屋和设施;
b. ADP (Automatic Data Processing,自动数据处理)设备;
c. 数据通讯设备;
d. 环境保护设备;
e. 安全与保密设备;
f. ADP (Automatic Data Processing,自动数据处理)的系统软件和应用软件;
g. 数据库管理软件。
……
6.1.2 其他一次性支出
包括下列各项所需的费用,如:
a. 研究(需求的研究和设计的研究);
b. 开发计划与测量基准的研究;
c. 数据库的建立;
d. ADP(Automatic Data Processing,自动数据处理)软件的转换;
e. 检查费用和技术管理型费用;
f. 培训费、旅差费以及开发安装人员所需要的一次性支出;
g. 人员的退休及调动费用等。
6.1.3 非一次性支出
列出在该系统生命周期内按月或按季或按年支出的用于运行和维护的费用,包括:
a. 设备的租金和维护费用;
b. 软件的租金和维护费用;
c. 数据通讯方面的租金和维护费用;
d. 人员的工资、奖金;
e. 房屋、房间的使用开支;
f. 公用设施方面的开支;
g. 保密安全方面的开支;
h. 其他经常性的支出等。
6.2 收益
对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费用的减少或
避免,差错的减少,灵活性的增加,动作速度的提高和管理计划方面的改进等,包括:
6.2.1 一次性收益
说明能够用人民币数目表示的一次性收益,可按数据处理、用户、管理和支持等项分类
叙述,如:
a. 开发的缩减 包括改进了的系统的运行所引起的开支缩减,如资源要求的减少,运
行效率的改进,数据输入、存储和恢复技术的改进,系统性能的可监控,软件的转换和优化,数据压缩技术的采用,处理的集中化/分布化等;
b. 价值的提高 包括由于一个应用系统的使用价值的提高所引起的收益,如资源利用
的改进,管理和运行效率的改进以及出错率的减少等;
c. 其他 如从多余设备出售回收的收入等。
6.2.2 非一次性收益
说明在整个系统生命期内由于运行所建议系统而导致的按月的、按年的能用人民币数目
表示的收益,包括开支的减少和避免。
6.2.3 不可定量的收益
逐项列出无法直接用人民币表示的收益,如服务的改进,由操作失误引起的风险的减少,
信息掌握情况的改进,组织机构给外界形象的改善等。有些不可捉摸的收益只能大概估计或进行极值估计(按最好和最差情况估计)。
6.3 收益/投资比
求出整个系统生命期的收益/投资比值。
6.4 投资回收周期
求出收益的累计数开始超过支出的累计数的时间。
6.5 敏感性分析
所谓敏感性分析是指一些关键性因素如系统生命期长度、系统的工作负荷量、工作负荷
的类型与这些不同类型之间的合理搭配、处理速度要求、设备和软件的配置等变化时,对开支和收益的影响最灵敏的范围的不同估计。在敏感性分析的基础上做出的选择当然会比单一选择的结果要好一些。
7 社会因素方面的可行性
本章用来说明对社会因素方面的可行性分析的结果,包括:
7.1 法律方面的可行性
法律方面的可行性问题很多,如合同责任、侵犯专利权、侵犯版权等方面的陷阱,软件
人员通常是不熟悉的,有可能陷入,务必要注意研究。
7.2 使用方面的可行性
例如从用户单位的行政管理、工作制度等方面来看,是否能够使用该软件系统;从用户
单位的工作人员的素质来看,是
共 页
编写: 年 月 日
校对: 年 月 日
审核: 年 月 日
标审: 年 月 日
批准: 年 月 日
目 录
[(请在此插入 à 索引和目录 à 目录 à 正式)]
1 引言
1.1 编写目的
说明编写这份软件需求说明书的目的,指出预期的读者。
1.2 背景
说明:
A. 待开发的软件系统的名称;
B. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
C. 该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3 定义
列出本文件中所用到的专门术语的定义和外文首字母组词的原词组。
1.4 参考资料
列出用到的参考资料,如:
A. 本项目经核准的计划任务书、合同或上级机关的批文;
B. 属于本项目的其他已发表的文件;
C. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资
料的来源。
2 任务概述
2.1 目标
如果本软件产品是独立的软件,并且全部内容自含,则叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。
2.2 用户的特点
列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使用频度。这些是软件设计工作的重要约束。
2.3 假定和约束
列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
3 需求规定
3.1 对功能的规定
3.1.1 用户现行系统描述
用逻辑图(结构图/组织图等)描述用户现行系统的状态。
3.1.2 对用户现行系统的分析
分析现行系统存在的问题,指出哪些可用PC解决,哪些流程可以优化、合并,哪些地方存在不足,哪些功能需要改进。并说明新系统应增加哪些新的功能。
3.1.3 目标系统的功能描述
在分析现行系统的基础上,用列表的方式(例如IPO标记输入、处理、输出表的形式),逐项定量和定性的叙述对软件所提出的功能要求,说明输入什么量、经怎样处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。3.1.4 目标系统数据流图
画出分层的数据流图。
目标系统数据字典
对数据流图中的数据流、数据库文件进行逐项说明。
加工(处理)说明
对数据流图中的加工(处理)的功能进行逐项说明。
3.2 对性能的规定
3.2.1 精度
说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
3.2.2 时间特性要求
说明对于该软件的时间特性要求,如对:
a. 响应时间;
b. 更新处理时间;
c. 数据的转换和传送时间;
d. 解题时间;
等的要求。
3.2.3 灵活性
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:
a. 操作方式上的变化;
b. 运行环境的变化;
c. 同其他软件的接口的变化;
d. 精度和有效时限的变化;
e. 计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
3.3 输入输出要求
解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)、声音以及图形或显示报告的描述。
3.4 数据管理能力及数据库的要求
说明需要管理的文件和记录的个数、表和文件的大小规模,要按可预见的增长对数据及其分量的存储要求做出估量;对数据结构及数据库的要求等。
3.5 对信息传输的要求
对信息的种类、传递数量频度、传递方式及管理的要求。
3.6 故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
3.7 其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4 运行环境规定
4.1 设备
列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
a. 处理器型号及内存容量;
b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
c. 输入及输出设备的型号和数量,联机或脱机;
d. 数据通信设备的型号和数量;
e. 功能件及其它专用硬件。
4.2 支持软件
列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
4.3 接口
说明该软件同其他软件之间的接口、数据通讯协议等。
4.4 控制
说明控制该软件的运行方法和控制信号,并说明这些控制信号的来源。