软件开发的完整步骤目录1问题定义...............................................41.1用户调查..........................................41.2编写《系统目标与范围说明》........................42可行性研究.............................................42.1确定项目的规模和目标..............................42.2研究正在运行的系统................................42.3建立新系统的高层逻辑模型..........................52.4重新定义问题......................................52.5导出和评价各种方案................................52.6推荐可行方案......................................52.7编写《可行性研究报告》............................52.8提交审查..........................................53需求分析...............................................63.1制定需求分析计划..................................63.2需求获取..........................................63.3分析和综合........................................63.4协商与沟通........................................63.5编写《需求规格说明书》............................63.6需求验证..........................................73.7修改完善开发计划..................................73.8技术审查和管理复审................................74概要设计...............................................74.1制定规范..........................................74.2设想供选择的方案..................................74.3推荐最佳方案......................................84.4功能分解..........................................84.5软件结构设计......................................84.6数据设计..........................................84.7制定测试计划......................................84.8编写《概要设计规格说明书》........................84.9其他文档编写......................................84.10技术审查和管理复审...............................95详细设计...............................................95.1数据结构设计......................................95.2物理设计..........................................95.3算法设计..........................................95.4界面设计..........................................95.5其他设计.........................................105.6编写《详细设计规格说明书》.......................105.7技术审查和管理复审...............................106编码..................................................106.1选择合适的程序设计语言...........................106.2制定编码规范.....................................106.3建立数据库系统...................................106.4程序编码.........................................117测试..................................................117.1测试用例设计.....................................117.2单元测试.........................................117.3集成测试.........................................117.4系统测试.........................................117.5编写《测试分析报告》..............................121问题定义问题定义指在项目初期,从客户或用户处获取需求,弄清用户需要计算机解决的问题根本所在,以及项目所需的经费和资源的文档,最终使开发人员与客户就所构建的系统的范围达成一致意见1.1用户调查对用户进行访谈,调查,初步了解项目范围,需要解决的问题以及项目经费的重要信息。1.2编写《系统目标与范围说明》将本阶段的结果写成相应的文档,即《系统目标与范围说明》2可行性研究软件可行性分析最根本的任务是用最少的代价,对以后的行动方针提出建议。如果问题没有可行的解释,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。2.1确定项目的规模和目标分析员对有关人员进行调查访问,仔细阅读和分析有关的材料,对项目的规模和目标进行定和确认,清晰地描述项目的一切限制和约束,确保分析员正在解决的问题确实是要解决的问题。2.2研究正在运行的系统收集,研究,分析现有系统的文档资料和使用手册,实地考察现有系统,在考察的基础上,访问有关人员,确定目标系统必须完成的基本功能。2.3建立新系统的高层逻辑模型根据对现有系统的分析研究,逐步明确了新系统的功能,处理流程以及所受约束,然后使用数据流图和数据字典,概括的描述高层的数据处理和流动。2.4重新定义问题将新系统的高层逻辑模型与项目的问题及目标进行比较,重新复查问题定义,工程规模和目标。2.5导出和评价各种方案分析员建立了新系统的高层逻辑模型,并进行复查后,要从技术的角度出发,提出高层逻辑模型的不同方案,即导出若干较高层次的物理解法。根据技术可行性,经济可行性,社会可行性对各种方案进行评估,去掉行不通的解法,得到可行的解法。2.6推荐可行方案根据之前可行性研究的结构,应该决定该项目是否值得去开发。若值得开发,那么可行的解决方案是什么,并且说明该方案可行的原因和理由。草拟开发计划初步确定工程进度表,开发人员,所需要的资源以及对项目所需要的时间进行估计。2.7编写《可行性研究报告》将该阶段的可行性研究过程的结果写成相应的文档,即《可行性研究报告》2.8提交审查用户和使用部门对《可行性研究报告》进行仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。3需求分析需求分析要求开发人员准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约(需求规格说明)的过程。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。3.1制定需求分析计划需求分析是一项重要的工作,也是最困难的工作,这个阶段可能会耗费相当的时间,人力以及物力。若有明确的计划进行指导,将使得需求分析工作更加有条不紊的进行。3.2需求获取需求获取是一个对准备建立的系统和正在使用的系统进行信息收集并从这些信息中提取用户需求和系统需求的过程。可以通过用户面谈,实地考察,用例,需求专题讨论会等方式发现,获取需求。3.3分析和综合分析人员根据导出的需求,进行移植的分析检查,在分析,综合中逐步细化软件功能,划分成各个子功能,找出各元素之间的联系,接口特性和设计上的限制。导出软件的逻辑模型根据分析与综合的结果,细化可行性研究阶段形成的高层逻辑模型,包括数据流图和数据字典,E-R图,状态转换图等,以图文的形式建立起性系统的逻辑模型。3.4协商与沟通在有多个项目相关人员(信息持有者)参与的地方,需求将不可避免的发生冲突,在这个阶段需要对需求的优先权进行排序并通过协商发现并解决这些冲突。3.5编写《需求规格说明书》把双发共同的理解与分析的结果用规范的方式描述出来,形成《需求规格说明书》,并向下一阶段提交,作为今后各项工作的基础。3.6需求验证为保障软件质量,确保软件开发成,一旦对系统提出一组要求之后,必须严格验证这些需求的正确性,一般从一致性,完整性,现实性,有效性四个方面进行验证。在这个阶段,系统客户和系统开发人员必须详细地阅读需求文档并检查其中的错误,一旦检查出任何问题必须记录下来,接着客户就需要和开发人员协商如何解决问题。3.7修改完善开发计划在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确的估计开发成本,进度以及资源要求,因此,对原计划要进行适当修正。3.8技术审查和管理复审用户和使用部门对《需求规格说明书》进行仔细的审查,通过后该文档将作文今后工作的基础。4概要设计概要设计也成为总体设计,在这个极端需要确定软件的总体结构,也就是软件应该由哪些模块组成,以及模块与模块之间的接口关系,软件系统主要的数据结构,同时还要制定测试计划,形成概要设计说明书。4.1制定规范尽管每个开发组织都有概要设计规范,但是不同的应有有些特殊性,所以应该针对具体的软件特点,制定出合适的规范。包括设计文档的编制标准,编码的信息形式,与硬件、操作系统的接口规约,命名规则等。4.2设想供选择的方案在概要设计时,设计人员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。此时设计人员有充分的自由比较不同的实现方案,一旦选出了最佳方案,将能大大提高系统的性价比。4.3推荐最佳方案综合分析对比各种合理方案的利弊,推荐一个最佳方案,并为最佳方案制定详细的实现计划。用户和有关技术专家应该认真审查,若符合需求并且完全能够实现,则提请负责人审批。方案被接受后者进入下一阶段。4.4功能分解为确定软件结构,首先需要从现实角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,将复杂的功能分解成一系列比较简单的功能。经过分解细化之后,通常一个模块只完成一个适当的功能,每个模块对于大多数程序员都是易于理解的。4.5软件结构设计设计软件模块的结构就是要把软件模块组成良好的层次系统,描述各模块之间的关系。顶层模块调用它下层模块,每个下层模块再调用更下层的模块,最下层的模块完成最具体的功能,这样自顶向下实现一个完整的功能。4.6数据设计数据设计包括数据结构设计,文件设计和数据库设计。根据需求分析阶段获得的数据要求,确定实现系统所必须的数据