软件开发流程中的问题解析

软件开发流程是每个技术开发公司经常需要面对的问题,它在很大程度上决定了一个软件开发公司能不能做出好产品 ,并且是不是一种高效率的状态。下面就来简单对软件开发流程中的问题做些简单解析,方便开发者能够更加清晰开发中需要注意的事项,并找到符合自身的开发流程。

确定需要
软件开发的思想来源是丰富的。这些想法可以来自市场研究,包括潜在新客户的人口统计,现有客户,产品的销售前景,其他内部软件开发人员或创意第三方。软件产品的想法通常首先由营销人员评估经济可行性,以适应现有渠道分布,对现有产品线可能产生的影响,所需特征,并符合公司的营销目标。在营销评估阶段,评估成本和时间假设。在第一阶段早期就是否根据营销和开发人员产生的更详细信息,是否应进一步推进该项目作出决定。

工程专业的学生学习工程,很少接触金融或营销。营销学生学习营销,很少接触金融或工程。我们大多数人只在一个领域成为专家。更复杂的是,我们很少有人在劳动力中遇到跨学科的人,因此很少有人能够模仿。然而,软件产品规划对于开发成功至关重要,并且绝对需要多学科的知识。

由于软件开发可能涉及妥协或超出客户要求,软件开发项目可能会偏离较少的技术问题,如人力资源,风险管理,知识产权,预算,危机管理等。这些过程也可能导致业务开发与软件开发重叠的作用。

规划
规划是每项活动的具体需要做的事情,我们希望发现属于项目的事物。创建软件程序的一个重要任务是提取需求或需求分析。客户通常对他们想要的最终结果有一个抽象的概念,但不知道应该做什么软件。熟练且经验丰富的软件工程师此时会认识到不完整,含糊不清甚至相互矛盾的要求。经常演示实时代码可能有助于降低需求不正确的风险。

“虽然在需求阶段付出了很多努力来确保需求是完整和一致的,但很少是这种情况;在受到最小化新的或不断变化的需求影响时,将软件设计阶段作为最有影响力的阶段。具有一项挑战性的工作,因为它们影响未来或已经在开发的努力。

一旦从客户收集了一些要求,就应确定并明确说明对开发范围的情况。这通常称为范围文档。

设计
一旦建立了要求,就可以在软件设计文档中建立软件的设计。这涉及主要模块的初步或高级设计,以及部件如何配合在一起的整体图片(例如框图)。此时应该都需要语言,操作系统和硬件组件。然后创建详细或低级设计,可能将原型设计作为概念验证或确定要求。

实施,测试和记录
软件测试是软件开发过程中不可或缺的重要阶段。该过程的这一部分确保尽快识别缺陷。在一些通常称为测试驱动开发的过程中,可以在实现之前开发测试,并作为实现正确性的指导。

记录软件的内部设计为将来的维护和增强软件功能提供基础。这也可能包括编写API,无论是外部还是内部。开发团队选择的软件工程流程将确定需要多少内部文档(如果有的话)。计划驱动的模型(例如,瀑布)通常比敏捷模型产生更多的文档。

部署和维护
在对代码进行适当测试,批准发布,销售或以其他方式分发到生产环境之后,直接开始部署。这可能涉及安装,定制(例如通过将参数设置为客户的值),测试以及可能的延长评估期。

软件培训和支持非常重要,因为软件只有在正确使用时才有效。

维护和增强软件以应对新发现的故障或要求可能需要花费大量时间和精力,因为错过的要求可能迫使重新设计软件。

原文地址:http://blog.51cto.com/13843834/2145272

时间: 2024-10-05 23:56:43

软件开发流程中的问题解析的相关文章

软件开发流程(转载)

软件开发流程 迭代化软件开发技术 1. 传统开发流程的问题 传统的 软件开发流程是一个文档驱动的流程,它将整个软件开发过程划分为顺序相接的几个阶段,每一个阶段都必需完毕所有规定的任务(文档)后才可以进入下一个阶段. 如必须完毕所有的系统需求规格说明书之后才可以进入概要设计阶段,编码必需在系统设计完毕之后才可以进行.这就意味着仅仅有当所有的系统模块所有开发完毕之 后,我们才进行系统集成,对于一个由上百个模块组的复杂系统来说,这是一个很艰巨而漫长的工作. 随着我们所开发的软件项目越来越复杂,传统的瀑

软件开发流程------阅读《构建之法》 第5.5 第6 第7章

软件开发流程中的瀑布模型,圆形,螺旋都是根据用户所需而设计的模型,我们也要根据他们的特征特点去实现我们我们想要的开发流程. 1.一些项目需要很多暗箱操作和政治角力才能搞定,既然Scrum会吧这些矛盾都摆到明处,我们如何才能把风险降到最低?出自6.42敏捷流程的经验教训. 2.我还是分不清敏捷开发和MSF敏捷开发根本性的区别是什么? 感悟:<构造之法>这本书,传授给我的是另一种触动的知识,或许你看了好几章了,你才有那么一两个问题,那是因为我觉得这本书已经走向大众了,即使没有那么专业的我们也能把它

软件开发流程选择

软件工程把这些相关的技术和过程统一到一个体系中,叫作"软件开发流程",软件开发流程的目的是为了提高软件开发.运营和维护的效率,以及提升用户满意度.软件可靠性和可维护性.        软件开发流程有:写了再改模式.瀑布模型.瀑布模型的各种变形.统 一流程.老板驱动的流程和渐进交付的流程.        在这些开发流程中,我比较支持瀑布模型的各种变形中的大瀑布带着小瀑布,这个对开发者的个人能力要求比较高,需要吧各个子系统统一到最后做系统测试,用户只有到最后才能看到结果,从一开始的需要一个

团队模式与软件开发流程的选择

1.团队模式的选择 软件团队的模式有主治医师模式.明星模式.社区模式.业余剧团模式.秘密团队.特工团队.交响乐模式.爵士乐模式.功能团队模式.官僚模式. 我比较倾向于交响乐模式和功能团队模式.交响乐模式的主要特点是门类齐全,各司其职,有共同方向的.其优点是在开发过程中分工明确,大家可以术业有专攻,效率比较高.缺点是适用于某歌软件领域处于稳定成长的阶段,如果是在刚开始的时候可能会产生分歧. 功能团队模式的主要特点是:人人平等,没有管理与被管理的关系.优点是小组间交流比较频繁,不同能力的人可以平等协

软件开发流程的选择

软件开发流程的定义:我们在开发.运营.维护软件的过程中有很多技术.做法.习惯和思想.软件工程把这些相关的技术和过程统一到一个体系中,叫做"软件开发流程". 软件开发流程有:写了再改模式.瀑布模型.瀑布模型的各种变形(生鱼片模型.大瀑布带着小瀑布).统一流程(RUP).老板驱动的流程.渐进交付流程. 软件开发的目的:为了提高软件开发.运营和维护的效率,以及提高用户满意度.软件的可靠性和维护性. 我选择统一流程. 统一流程的步骤:业务建模:需求:分析和设计:实现:测试部署:配置和变更管理:

智能家居项目(1):软件开发流程

结合公司开发过的产品以及对自学知识的总结,整理出此系列文章  .侧重点还是在软件部分. 公司开发某个项目,肯定是为了盈利赚钱.开发的项目无非就是自己的产品或者承接甲方的开发任务. 大体的流程可以分为几个部分或阶段: 1.需求说明书 预期想要一个什么功能,达到什么样的效果.有的客户也说不明白具体的东西,描述不清.需要加强沟通交流,确定最终的模型.一般情况下是甲方就提供好了的.关键部分大致如下: 监控功能 监控室内温度,监控红外传感器,以阻塞或异步的方式对红外传感器进行检测,如果红外传感器探测到有不

软件开发流程纲要及各个阶段产生的文档

转自:http://blog.csdn.net/flyfish1986/article/details/3870053 软件开发流程纲要及各个阶段产生的文档   作者:邵盛松 2009-2-9 1需求调研与分析 当我们做一个项目时,可能客户口头告诉你他想要做一个什么东西,或者给了你一些文档告诉你这就是需求.就根据几句口头讲述,或者一些文档,很难知道到底具体需要做什么.这时候就要对需求进行挖掘,以得到功能列表,或者用例图.这时候交流是非常重要的.通过不断的与客户进行交流,将用例详细化,也不必要追求

Atitit。 沉思录 与it软件开发管理中的总结 读后感

Atitit. 沉思录 与it软件开发管理中的总结 读后感 1. <沉思录>,古罗马唯一一位哲学家皇帝马可·奥勒留所著 2 2. 沉思录与it软件开发管理中的总结 2 2.1. 要有自己的培训..(不要总是依靠公共图书馆) 2 2.2. 要做大架构,优先大架构 2 2.3. 各司其职 世间万物各有所用,各司其职 2 2.4. 优秀的培训不一定能造就出强大的成员...但总比没有强 2 2.5. 顺势而为,随遇而安. 2 2.6. 看穿生死,淡泊名利. 2 2.7. 保持理智,洞察世事 2 2.8

软件工程和软件开发流程

人们在开发.运营.维护软件的过程中有很多技术.做法.习惯和思想体系.软件工程把这些相关的技术和过程统一到一个体系中,叫"软件开发流程". 软件开发流程的目的是为了提高软件开发.运营.维护的效率,并提高软件的质量.用户满意度.可靠性和软件的可维护性. program=data structure+algorithm 程序=数据结构+算法 software=program+software engineering软件=程序+软件工程 software company=software+bu