
组织软件开发流程2012/4/3
问题定义
问题定义是指在项目的早期阶段从客户或用户那里获取需求,阐明用户需要通过计算机解决的问题的根源,以及项目所需资金和资源的文档,最终允许开发人员和客户在系统范围内建立“同意”.
访谈,调查并初步了解项目范围,需要解决的问题以及有关项目资金的重要信息.
将该阶段的结果写入相应的文件,即“系统目标和范围说明”.
可行性研究
软件可行性分析的最基本任务是以最低的成本为未来的行动指南提供建议. 如果对此问题没有可行的解释,则分析人员应建议停止开发项目,以避免浪费时间,资源,人力和金钱. 如果问题值得解决,那么分析师应该建议一个更好的解决方案,并为项目初始计划制定解决方案.
分析师对相关人员进行调查访问,仔细阅读和分析相关材料,确定并确认项目的规模和目标,清楚地描述项目的所有限制和约束,并确保分析师正在解决的问题是确实要解决的问题.
收集,研究和分析现有系统的文档和用户手册,对现有系统进行现场检查,在检查的基础上拜访相关人员,并确定目标系统必须完成的基本功能.
根据对现有系统的分析和研究,逐步阐明新系统的功能,处理流程和约束条件,然后使用数据流程图和数据字典来描述高级数据处理和流程以一般的方式.
将新系统的高级逻辑模型与项目的问题和目标进行比较,并检查问题的定义,项目规模和目标.
分析师已经建立了新系统的高级逻辑模型,并在对其进行审查后,从技术角度出发,他们为高级逻辑模型提出了不同的方案,即得出了一些更高的水平的身体理解方法. 根据技术上的可行性,经济上的可行性和社会上的可行性,对各种方案进行了评估,并排除了无法解决的方案,得到了可行的方案.

根据先前的可行性研究的结构,应确定该项目是否值得开发. 如果值得开发,什么是可行的解决方案,并说明解决方案可行性的原因和原因.
初步确定项目进度表软件开发的流程是什么,开发人员,所需资源,并估算项目所需时间.
将可行性研究过程这一阶段的结果写入相应的文件,即“可行性研究报告”.
用户和用户部门仔细查看“可行性研究报告”,以确定是否将开发该项目以及是否接受可行的实施计划.
需求分析
需求分析要求开发人员准确了解用户的需求,进行详细的调查和分析,并将用户的非正式需求声明转换为完整的需求定义,然后从需求定义转换为相应的正式功能规范(要求规格)的过程. 需求分析是软件定义阶段的最后一步,即确定系统必须完成的工作,即为目标系统提出完整,准确,清晰和具体的要求.
需求分析是一项重要的工作,也是最困难的一项. 此阶段可能消耗大量时间,人力和物力. 如果有明确的计划指导,将使需求分析更加有序.
需求获取是以下过程: 收集有关要建立的系统和正在使用的系统的信息,并从这些信息中提取用户需求和系统需求. 您可以通过用户访谈,实地访问,用例和需求来查找和获取需求.
分析人员根据出口要求进行移植分析和检查. 在分析和综合过程中,他们逐渐完善软件功能,将它们划分为子功能,并找出每个元素之间的连接软件开发的流程是什么,接口特性和设计限制.
根据分析和综合的结果,完善可行性研究阶段形成的高级逻辑模型,包括数据流程图和数据字典,ER图,状态转换图等,建立逻辑模型. 图形形式的性系统.
在涉及多个项目相关人员(信息持有者)的地方,不可避免地会发生冲突. 在这一阶段,需要对需求的优先级进行排序,并通过协商发现并解决这些冲突.
以标准化的方式描述双发的共同理解和分析结果,形成“需求规范”,并将其提交到下一阶段,作为以后所有工作的基础.

为了保证软件的质量并确保软件的开发,一旦向系统提出了一组要求,就必须严格地从一致性,完整性,现实和有效性. 在此阶段,系统客户和系统开发人员必须详细阅读需求文档并检查错误. 一旦检查出任何问题,都必须记录下来,然后客户需要与开发人员协商如何解决问题.
在对需求分析阶段要开发的系统有了更好的了解之后,可以更准确地估算开发成本,进度和资源需求,因此应适当修改原始计划.
用户和用户部门仔细阅读“需求规范”,该文件将成为批准后将来工作的基础.
外观设计
摘要设计也已成为整体设计. 在这种极端情况下,有必要确定软件的整体结构,即软件应组成的模块,模块之间的接口关系,软件系统的主要数据结构以及制定测试计划以形成摘要设计规范.
尽管每个开发组织都有一个简要的设计规范,但不同的开发规范应具有某些特殊性,因此应针对特定的软件功能开发适当的规范. 包括设计文档准备标准,编码信息表,与硬件的接口规范,操作系统,命名规则等.
在总结设计时,设计人员应考虑各种可能的实施方案,并尝试从中选择最佳方案. 此时,设计人员有足够的自由来比较不同的实现方案. 选择最佳解决方案后,可以大大提高系统的性价比.
全面分析各种合理计划的优缺点,推荐最佳计划,并为该最佳计划制定详细的实施计划. 用户和相关技术专家应仔细检查,如果符合要求并且可以完全实现,则应将其提交给负责人批准. 该计划被接受,后者进入下一阶段.
为了确定软件结构,我们首先需要从实际角度进一步分解复杂的功能. 分析人员结合算法描述仔细分析数据流图中的每个过程,并将复杂的功能分解为一系列相对简单的功能. 经过分解和完善后,通常一个模块仅完成适当的功能,并且每个模块对于大多数程序员来说都很容易理解.
设计软件模块的结构是为了形成一个良好的软件模块分层系统,并描述模块之间的关系. 顶层模块调用其下层模块,而每个下层模块则调用下层模块. 底层模块执行最具体的功能,从而实现从上到下的完整功能.
数据设计包括数据结构设计,文件设计和设计. 根据需求分析阶段获得的数据需求,确定实现系统所需的数据,数据之前的关系以及存储数据的实体.
为了确保软件的可测试性,软件必须在开始时就考虑软件测试,但是此阶段的测试计划应针对软件结构测试和系统测试.

将此阶段的结果编译为相应的文档,即“概述设计规范”.
需要提交以供审核的文档还包括用户手册,测试计划和实施计划. 这些文件也需要编写.
最后,应该对整体设计的结果进行严格的技术审查. 通过技术审查后,客户将从管理角度进行审查.
详细设计
详细设计阶段的基本目的是确定如何具体实施所需的系统. 在设计工作的这一阶段之后,应该获得目标系统的准确描述,以便可以在使用编程语言编写的程序的编码阶段将描述直接转换为使用.
数据结构设计是指在需求分析和摘要设计阶段确定的概念数据的精确定义.
的物理设计,即确定的物理结构. 物理结构主要是指的存储记录格式,存储记录安排和存储方法,这都取决于所使用的特定系统.
总体设计结构完成后,结构的每个环节的实现都是多解决方案. 这需要通过系统设计和分析技术来描述. 您可以使用一些图形,表格,语言和其他工具来表达每个模块处理过程的详细算法.
用户界面设计现在更加重要. 可以使用角色用户界面设计,图形用户界面和多媒体人机界面设计. 这必须与特定系统一起处理.
根据软件系统的类型,可能还会有其他设计,例如代码设计,输入/输出格式设计,人机对话设计,网络设计等.
将此阶段的结果编译为相应的文档,即“详细设计规范”.
最后,应对详细设计的结果进行严格的技术审查. 应该审查所有处理算法和的物理结构.

编码
编码将软件设计的结果转换为以编程语言编写的程序. 作为软件工程的一个阶段,编码是进一步的具体设计. 因此,程序的质量主要取决于软件设计的质量. 但是,编程语言和编码风格的选择也对程序的可靠性,可读性,可测试性和可维护性产生了深远的影响.
编程语言是软件活动的中心. 选择合适的编程语言非常重要. 通常从应用领域,算法和计算复杂度,数据结构复杂度,效率等方面考虑是否可以选择某种语言作为编码语言.
良好的编码风格和编码标准可以减少程序错误的机会,提高程序的可读性和质量,促进构建大型软件所需的团队开发,并有效地降低程序的维护成本.
基于先前的数据和数据流分析以及设计结果,建立了结构.
使用所选的编程语言将详细设计中的过程描述转换为用该语言编写的源程序(源代码).
最后,应对由代码生成的源程序进行严格的技术审查,以确保程序正确有效地运行并符合要求.
测试
测试是执行程序以发现错误的过程,即根据软件开发各个阶段的规范和程序的内部结构精心设计一批测试用例,并使用这些测试用例运行程序以发现程序错误. 过程.
一组旨在发现错误的测试数据,测试用例= {输入数据+预期结构}. 测试用例将用于后续测试.
单元测试用于检查程序模块的正确性. 目的是查找每个模块内部可能存在的各种错误,并验证它们是否满足模块功能说明的要求. 单元测试需要从程序的内部结构设计测试用例. 多个模块可以并行进行独立的单元测试.
集成测试是一种用于组装软件的系统技术. 也就是说,在单元测试的基础上,所有模块都需要根据设计要求组装到系统中并在此过程中进行测试. 其主要目的是发现与界面有关的问题.
确定开发的软件是否满足软件需求规格书的要求.
将新开发的软件安装到系统中,并检查其是否可以与系统的其余部分协调.
将该阶段的结果编译为相应的文件,即“测试分析报告”.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-194350-1.html
质检总局都买不着真货
就一句话