软件开发流程

9844人阅读

软件开发流程(Software development process)

首先 看一下基本软件项目开发流程图

其中

1.需求分析:
  通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书。
2.总体设计:
  通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。
3.详细设计:
  此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明)。
4.开发编程:
  对系统进行代码编写。
5.测试分析与系统整合:
  对所有功能模块进行模拟数据测试及其它相关性测试并整合所有模块功能。
6.现场支持:
  系统上线试运行进行现场问题记录、解答。
7.系统运行支持:
  系统正式推产后,对系统进行必要的维护和BUG修改

需求分析是怎样做的?

需求分析是构建软件系统的一个重要过程。 一般,把需求类型分成三个类型:

1、业务需求(business requirement)
  反映了组织机构或客户对系统、产品高层次的目的要求,它们在项目视图与范围文档中予以说明。
2、用户需求(user requirement)
  文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。
3、功能需求(functional requirement)
  定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。

业务需求和用户需求是软件需求分析的基础,也是软件构建的前提。
系统分析员通过对业务需求和用户需求的分解,将其转换成可以形式化描述的软件功能需求。
开发软件系统最为困难的部分,就是准确说明开发什么。这就需要在开发的过程中不断的与用户进行交流与探讨,使系统更加详尽,准确到位。这就需要确定用户是否需要这样的产品类型以及获取每个用户类的需求。

客户也经常是矛盾的。事实上,很少有客户能够明确的知道怎样的一个系统对自己是最有益处的,他们往往在集中方案之间徘徊,于是经常产生需求的变动。生产厂商经常陷入客户自己的矛盾之中。
  客户的负面影响可能对于能够在预算内按时完成项目产生很大的影响。尽管客户需要对需求的质量负责任,但是,当一个软件项目因为客户事先没有预料到的情况而导致失败的时候,即使客户不会追究开发方的责任,就软件项目本身而言,也已经是失败的。

总结:
良好的需求分析是软件成功的基础。
在软件项目整个过程中系统分析员主动进行沟通,提出指导性意见。当软件融合了客户和系统分析员双方智慧,其质量将会进一步得以提高。

软件开发管理规范流程图

摘项目管理的根本目的是按时、保质、保量完成预期交付的成果。项目管理要让整个组织能清楚理解项目实施的目的、影响、进度,应做到项目组所有员工都应理解项目实施的原因、意义及客户的要求。在项目管理中还能看到公司高层领导通过实际行动表现出来的对于项目实施的支持与帮助,通过以制度化管理来组织合理安排员工的工作职责和角色转换。为满足上述要求,就必须让员工、企业、客户能接受并适应新的“软件项目开发管理规范”。

1.启动阶段

这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的,首先要明确项目的总体战略目标,对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服务,以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的范围、所需资源、大约开支、各种风险,以及该项目不执行的其他替代选择等。这些代表了对整个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。

产品领域研究
  研究产品所在领域的状况,为项目论证提供依据。研究内容包括:

产品领域的现状和前景
产品领域的商业模式和业务流程
产品的价值和盈利空间
产品的特性和复杂度

技术可行性研究
  研究产品的实现技术,总结技术可行性。研究内容包括:

类似产品的当前实现技术和技术趋势
实现技术的候选方案
各个方案的优点、成本和风险
开发团队与实现技术的匹配情况

项目论证
  基于商业和技术等方面对项目的可行性进行论证,确定项目是否开展。如果开展项目,则进一步论证项目的总体方案。

论证的内容包括:

商业可行性
技术可行性
当前产品与类似产品的比较
项目收益和前景
项目的成本和风险
项目的总体方案

确定项目目标和范围
  项目开始时,所有相关人员必须对项目的目标和范围达成共识,形成共同的项目愿景。并把愿景叙述为《项目开发大纲》向相关人员传达。

《项目开发大纲》的内容包括:

概 述

用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责

高级功能

用一个段落来综述产品,再用一个段落来描述每个重要的功能

不实现的功能

用一个段落来描述每个对产品有用的但本项目不实现的功能

涉 众

用一个段落来明确每个重要的涉众群体和他们的风险股本

项目需求

用一个段落来讲述每个重要的项目需求

项目风险

按风险暴露量对每个重要的项目风险都用一个段落来讨论

项目回报

用一个段落综述产品的回报,其后再对每个重要的项目回报都用一个段落来讨论

结 论

用一到三个段落将上述所有部分联系起来,明确项目的需求和风险,再用论点和论据来总结为什么这个项目会成功

2.计划阶段

这个阶段的工作是为整个项目做计划。项目开始后,首先要确定项目的具体范围,明确定出项目到底要做什么,总结、归纳并定出产品的功能。然后进一步制定项目的计划,列出每项具体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。

规模、工作量评估
  围绕各项计划的制定工作对项目的规模、工作量等进行评估,评估的内容包括:

模块数量与复杂度
输入、输出和对外接口等数量与复杂度
SLOC和功能点
非生产性的支持工作量
开发工作量(人月)
进度与里程碑
进度风险

定制项目开发计划
  项目开发计划体现了项目组对整个开发周期的预期,指定了项目开发的总体方针。与其他计划一样,项目开发计划不是固定不变的,在执行过程中要对计划进行监控,可能会根据实际情况修改计划并重新发布。

《项目开发计划》的内容包括:

概 述

用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责。

(《项目开发计划》的概述部分应该是《项目开发大纲》中概述部分的拷贝。当项目计划改变时,修订《项目开发计划》的概述部分而不是修订《项目开发大纲》。这样,以后在进行项目评价时,通过比较《项目开发大纲》和《项目开发计划》的概述,就能看出项目是如何改变的)

高级功能

用一到五页的篇幅来概述产品的功能,其中,要包括这些功能的附加信息(开发者需要这样的信息来了解实现需求)。

项目成员

确定软件工程职能角色,以及分配到这些角色的人员数量。

软件过程

概述这个项目中所应用的软件过程。</

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值