`

软件项目研发的设计流程

阅读更多
一个软件项目研发的设计流程是怎样的呢?以通常标准的设计方法为例,(不过笔者喜欢快速原型法)。 

第一个步骤是市场调研,技术和市场要结合才能体现最大价值。 

第二个步骤是需求分析,这个阶段需要出三样东西,用户视图,数据词典和用户操作手册。

   用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了很多操作方面的流程和条件。数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成了一半多。用户操作手册是指明了操作流程的说明书。请注意,用户操作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺序不分,开发工作和实际需求往往因此产生隔阂脱节的现象。 
需求分析,除了以上工作,笔者以为作为项目设计者应当完整的做出项目的性能需求说明书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或公司市场部门)能够有真正的沟通和了解。 

第三个步骤是概要设计,将系统功能模块初步划分,并给出合理的研发流程和资源要求。

   作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。

第四个步骤是详细设计,这是考验技术专家设计思维的重要关卡,详细设计说明书应当把具体的模块以最‘干净’的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最大;


   一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。那些把作软件的程序员简单理解为写代码的,就从根子上犯了错误了。 


第五个步骤是编码

   在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有! 

第六个步骤是测试 

   测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。 
总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。 
完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,知道这个软件被彻底淘汰为止。 


本文节选自:http://blog.csdn.net/Gweber/archive/2005/06/05/388195.aspx
分享到:
评论

相关推荐

    10软件设计开发控制程序.docx

    在设计和开发控制程序中,研发部经理应在对项目的总体过程进行策划的基础上,按照《软件开发规范》和《软件开发流程》的要求,对项目设计开发活动进行策划。策划应明确设计开发各阶段任务列项、预期成果及时间预期、...

    软件开发概要设计模板.docx

    在总体设计部分,我们可以了解到软件的需求规定、运行环境、基本设计概念和处理流程、结构、功能需求与程序的关系、人工处理过程等方面的内容。这些内容是软件开发项目的核心组成部分,对软件的开发和维护具有重要的...

    软件项目研发管理流程.doc

    软件项目研发管理流程是软件开发项目中的关键环节,旨在确保软件项目的成功实施和高质量的 deliveries。下面是软件项目研发管理流程的详细解释和知识点总结: 一、软件项目整体开发流程 软件项目整体开发流程是指...

    软件项目研发管理流程.docx

    软件项目研发管理流程是指在软件项目开发过程中,为了确保项目的顺利进行和高质量完成,而实施的一系列管理活动。这些活动包括项目计划、需求分析、设计、编码、测试、部署和维护等多个阶段,每个阶段都对应着特定的...

    软件工程开发项目开发流程

    "软件工程开发项目开发流程" 软件工程开发项目的开发流程是一个复杂的过程,它涉及到多个阶段和步骤。在本文中,我们将总结出项目开发的一般流程,并对每个阶段进行详细的说明。 一、系统开发的一般流程 系统开发...

    软件项目管理系统程序毕业设计

    【软件项目管理系统程序毕业设计】 在信息技术领域,软件项目管理系统是一种关键工具,它旨在协助团队高效地规划、执行和监控软件开发项目。此类系统通常包括需求管理、任务分配、进度跟踪、资源调度、质量控制等多...

    软件项目文档(项目开发计划,需求说明书,设计概要,详细设计,安装计划,软件合同,....)

    1. **项目开发计划**:这是软件项目开始时制定的一份详细文件,概述了项目的目标、范围、时间表、预算、资源分配以及风险管理策略。它为项目的执行提供了一个蓝图,包括里程碑、任务分解结构(WBS)和责任分配矩阵...

    软件项目开发流程图

    ### 软件项目开发流程图详解 #### 需求分析阶段 需求分析是软件项目开发的起点,它涉及到对客户业务的深入了解以及与客户的深入沟通,旨在明确项目的具体需求。这一阶段的核心任务是对需求进行初步建模,将客户的...

    软件项目管理课程设计报告

    总结,软件项目管理课程设计报告旨在提供一套全面的实践指导,帮助学生在理论与实践中找到平衡,提升项目管理的技能,为未来在软件开发领域的工作奠定坚实基础。通过深入学习和实践,学生将能更好地应对复杂项目挑战...

    软件开发项目流程

    "软件开发项目流程" 软件开发项目流程是指从项目计划阶段到软件开发阶段、测试阶段、完成的整个过程。这个过程对软件开发项目的成功至关重要。在这个过程中,项目经理、系统分析员、设计员、程序员、测试员等各个...

    软件开发常见详细设计说明

    本说明书涵盖了软件开发项目所需的各个方面,包括项目背景、设计目的、技术架构、程序系统结构、程序设计、算法设计、接口设计、存储分配、注释设计等。 项目背景 软件开发项目是为了满足特定的业务需求而进行的,...

    软件开发项目考核办法

    软件开发项目的考核办法是一个至关重要的环节,它涉及软件研发的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。考核办法不仅关注项目的最终成果,还包括对项目管理和团队协作能力的评估。有效的项目考核...

    通用汽车公司软件项目开发流程介绍PPT

    通用汽车公司软件项目开发流程介绍 通用汽车公司软件项目开发流程是基于CMMI(Capability Maturity Model Integration,能力成熟度模型集成)框架的软件开发过程。该过程面向所有参与通用汽车软件开发的公司,旨在...

    软件产品项目设计研发全流程全生命周期管理模板WORD(16份).zip

    P001_0软件项目开发流程规范.doc P001_10资源需求计划Ver1.0.doc P001_11项目例会会议纪要Ver1.0.doc P001_12项目进展情况跟踪报告Ver1.0.doc P001_13操作手册Ver1.0_.doc P001_14测试用例Ver1.0.doc P001_15测试...

    案例-软件项目开发流程.pdf

    软件项目开发流程是指在软件项目开发过程中的各个阶段,包括需求分析、设计、实现、测试、部署和维护等阶段。该流程旨在确保软件项目的成功,提高软件项目的质量和效率。 软件项目开发流程的重要性 软件项目开发...

    大型软件项目管理的流程设计及分析.docx

    本文档从软件项目管理流程的设计与分析角度出发,探讨大型软件项目开发中的关键流程及各阶段的管理方法,以期对相关行业的项目管理实践提供参考。 首先,项目启动之前必须明确项目的商业可行性,这要求项目团队深入...

    一个软件项目的开发流程

    软件项目开发流程是一个复杂的过程,涉及到需求调研、系统设计、程序开发、测试、试用、培训、维护等多个阶段。下面将详细介绍每个阶段的知识点。 一、项目启动阶段 在项目启动阶段,需要组建项目团队,确定项目...

    软件项目开发流程规范Release_051227.pdf

    为了确保软件项目的开发按照规定的流程进行,本规范列出了所有相关的流程文件,包括项目开发计划、需求说明书、概要设计书、测试计划、测试用例等。这些文件都是软件项目开发的重要组成部分,需要按照规定的格式和...

    软件开发设计报告全套模板

    软件项目的成功首先取决于其可行性。可行性报告作为项目启动的第一个里程碑,承担着评估项目是否具备实施条件的重要角色。在此阶段,技术团队需要考虑项目的技术可行性,比如所依赖技术的成熟度、可获得性以及是否有...

Global site tag (gtag.js) - Google Analytics