软件开发过程
★★★ 什么是软件开发
软件开发是指一个软件项目的开发,如市场调查,需求分析,可研分析,初步设计,详细设计,形成文档,建立初步模型,编写详细代码,测试修改,发布等。
★★★ 软件是怎么样开发出来的
第一个步骤是市场调研,技术和市场要结合才能体现最大价值。
第二个步骤是需求分析,这个阶段需要出三样东西,用户视图,数据词典和用户操作手册。
◆ 用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了很多操作方面的流程和条件。
◆ 数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成了一半多。
◆ 用户操作手册是指明了操作流程的说明书。
请注意,用户操作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺序不分,开发工作和实际需求往往因此产生隔阂脱节的现象。
需求分析,除了以上工作,笔者以为作为项目设计者应当完整的做出项目的性能需求说明书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或公司市场部门)能够有真正的沟通和了解。
第三个步骤是概要设计,将系统功能模块初步划分,并给出合理的研发流程和资源要求。 作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为 涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是 并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和 经验教训的总结,还要重新进行详细设计的步骤。
第四个步骤是详细设计,这是考验技术专家设计思维的重要关卡,详细设计说明书应当把 具体的模块以最“干净”的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最 大;一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细 设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要 设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。
那些把作软件的程序员简单理解为写代码的,就从根子上犯了错误了。
第五个步骤是编码,在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/ 2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提 高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可 能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!
第六个步骤是测试
测试有很多种:
◆ 按照测试执行方,可以分为内部测试和外部测试
◆ 按照测试范围,可以分为模块测试和整体联调
◆ 按照测试条件,可以分为正常操作情况测试和异常情况测试
◆ 按照测试的输入范围,可以分为全覆盖测试和抽样测试
以上都很好理解,不再解释。
总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外 部测试都是正常的,因为永远都会又不可预料的问题存在。
完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,知道这个软件被彻底淘汰为止。
★★★ 什么是软件开发的核心问题
按照软件工程鼻祖,《人月神话》作者 Brooks 在“没有银弹——软件工程中的根本和次要问题”一章中阐述的思想,软件开发的核心问题就是如何从概念上对一个复杂的业务系统进行建模。这个建模是含义广泛的,不仅仅包括对象建模,还包括数据建模、算法建模等等一系列的内容。总而言之是要先找到解决复杂问题的突破口(先要搞明白需要做什么,然后再考虑如何做)。至于采用什么表示方法(简单文本、UML 图、E-R 图)、采用什么高级语言、是否一定要用面向对象、使用什么开发工具都是次要的问题。
★★★ 软件开发方法
软件开发方法(Software Development Method)是指软件开发过程所遵循的办法和步骤。软件开发活动的目的是有效地得到一些工作产物,也就是一个运行的系统及其支持文档,并且满足有关的质量要求。软件开发是一种非常复杂的脑力劳动,所以经常更多讨论的是软件开发方法学,指的是规则、方法和工具的集成,既支持开发,也支持以后的演变过程(交付运行后,系统还会变化,或是为了改错,或是为了功能的增减)。
关于组成软件开发和系统演化的活动有着各种模型(参见软件生存周期,软件开发模型,软件过程),但是典型地都包含了以下的过程或活动:分析、设计、实现、确认(测试验收)、演化(维护)。
有些软件开发方法是专门针对某一开发阶段的,属于局部性的软件开发方法。特别是软件开发的实践表明,在开发的早期阶段多做努力,在后来的测试和维护阶段就会使费用较大地得以缩减。因此,针对分析和设计阶段的软件开发方法特别受到重视。其它阶段的方法,从程序设计发展的初期起就是研究的重点,已经发展得比较成熟(参见程序设计,维护过程)。除了分阶段的局部性软件开发方法之外,还有覆盖开发全过程的全局性方法,尤为软件开发方法学注意的重点。
对软件开发方法的一般要求:当提出一种软件开发方法时,应该考虑许多因素,包括:
①覆盖开发全过程,并且便于在各阶段间的过渡;
②便于在开发各阶段中有关人员之间的通信;
③支持有效的解决问题的技术;
④支持系统设计和开发的各种不同途径;
⑤在开发过程中支持软件正确性的校验和验证;
⑥便于在系统需求中列入设计、实际和性能的约束;
⑦支持设计师和其他技术人员的智力劳动;
⑧在系统的整个生存周期都支持它的演化;
⑨受自动化工具的支持。
此外,在开发的所有阶段,有关的软件产物都应该是可见和可控的;软件开发方法应该可教学、可转移,还应该是开放的,即可以容纳新的技术、管理方法和新工具,并且与已有的标准相适应。
分享到:
相关推荐
"软件开发流程规范" 软件开发流程规范是指在软件产品开发过程中,每个步骤的规范和...软件开发流程规范的目的是确保软件开发过程的规范性、可重复性和可维护性,为产品的整个生命周期提供了一个清晰的架构和设计蓝图。
为了更好地理解和掌握软件开发流程,我们可以将软件开发过程划分为几个关键阶段,并且每个阶段都有其特定的活动和产出物。 1. 项目管理过程:这是软件开发项目的基础管理层面。项目管理过程包括项目策划、项目跟踪...
在软件开发过程中,遵循GB1526-89绘制的流程图有助于团队成员间的共识建立。无论是需求分析、系统设计,还是编码阶段,流程图都是必不可少的沟通工具。在需求分析阶段,它可以直观地呈现业务流程;在系统设计阶段,...
"软件开发过程和软件开发生命周期" 软件开发过程是指从软件概念到软件交付的整个过程,包括软件生命周期中的各个阶段。软件生命周期是指软件从提出开发到最终灭亡所经历的时期。软件开发过程模型是软件开发全过程、...
软件开发流程管理规范标准是软件开发过程中的一个重要组成部分,它规定了软件开发的流程、编码规范、注释规定等方面的标准,旨在确保软件开发过程的质量、效率和可维护性。 一、概述 软件开发流程管理规范标准的...
8. **项目管理**:在整个软件开发过程中,项目管理贯穿始终,包括时间管理、质量管理、风险管理、人力资源管理等,以确保项目按时、按质、按预算完成。 9. **敏捷开发**:现代软件开发中,敏捷方法论被广泛应用,如...
软件开发流程规范是软件开发过程中遵循的一系列规则和指导方针,以确保软件开发的质量、效率和一致性。下面是软件开发流程规范的详细说明: 概述 软件开发流程规范是软件开发过程中的重要组成部分,它规定了软件...
软件开发流程图是软件开发过程中的一个重要环节,它规定了软件开发的整个生命周期,从需求获取到系统部署的每个阶段都有明确的步骤和责任人。本文将详细解释软件开发流程图的每个阶段,包括需求获取、初步方案编制、...
软件开发流程是指在软件开发过程中所涉及的一系列活动、步骤和任务的集合,以便确保软件开发的顺利进行和质量保证。本文将详细介绍软件开发流程的各个方面,包括流程的目的、适用范围、定义、输入、输出、角色职责、...
软件开发流程是构建高质量软件产品不可或缺的一环,它涉及到项目的各个阶段,从需求收集到最终的系统维护。在本文中,我们将深入探讨软件开发的主要流程、相关文档管理和关键活动。 一、软件开发流程 1. **获取...
在嵌入式软件开发过程中,需求分析是第一步也是最重要的一步。需求分析的目的是确定软件的功能和性能要求。通过与客户和用户的交流,收集和分析需求信息,编写软件需求规格说明书(Software Requirement ...
软件开发流程管理制度IT公司版.pdf 本文档是软件开发流程管理制度IT公司版的总结,旨在加强对定制软件开发工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高开发效率和效益。下面是对该制度的详细解释...
为加强对定制软件开发工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高定开发效率和效益,特制定软件开发流程管理制度。
在《软件开发过程概述.pdf》文档中,作者Leon对软件开发的基本流程进行了详细介绍,并结合自身丰富的实践经验,为读者提供了一个全面的视角。 #### 二、软件开发过程的关键步骤 1. **需求分析**:这是软件开发的第...
《软件开发流程实训教程》是杜文洁编著的一份电子教案,主要涵盖了软件开发的整个过程,旨在通过实训的方式帮助学习者深入理解和掌握软件工程的相关知识。这份压缩包文件包含的是分章节的PPT文件,每一份PPT可能对应...
软件开发流程管理规范是软件开发过程中的一个重要环节,它旨在确保软件开发项目的质量、进度和成本的可控性。该规范对软件开发流程的各个阶段进行了详细的规定和要求,对软件开发团队的每个成员都提出了明确的责任和...
软件开发流程是IT行业中至关重要的一个环节,它涵盖了从项目构思到最终产品部署的整个过程。这个流程确保了软件的质量,提高了开发效率,并且降低了项目的风险。以下是对软件开发流程的详细阐述: 1. **需求分析**...