软件开发三步曲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发三步曲
【摘要】:大部分软件项目从开始到结束都会经历相似的历程,即项目的生命周期。一个项目首先被创立起来(开始阶段),并安排相应的经理人员,配备项目团队成员和启动所需的资源,制定工作计划。然后项目就进入正轨,开始迅速攀升。这期间不断取得进度,这种势头一直持续,直至面临其终结时刻。这个过程,这就是项目的三阶段——启动、实施和关闭。第一步:项目启动
项目启动阶段的工作,是项目成功的起点,如果这个阶段工作不规范,那整个软件项目就会“上梁不正下梁歪”了。
一、项目立项
当市场部门获取到来自市场的需求信息,并在充分的市场调查与分析之后,认为有必要启动软件项目时,应该向相关的管理者正式的提出立项申请。将立项申请正式化,能够有效地规范市场部门与技术开发部门之间的信息沟通渠道及工作流程,也能够有效地界定两个部门之间的职责划分,避免许多不必要的麻烦。
1.立项申请
实践中,采用标准化的《软件开发立项申请表》来完成这一流程。该表格由市场部门填写,报相关领导审批后提交给技术开发部门。该表格中应该包括了以下信息:(1)问题 / 机会:这一部门主要是提供该软件项目的背景介绍,说明其想要解决的问题,或是什么样的市场机会,这个部分将成为管理者决策的主要依据。
(2)项目目标与成功标准:项目目标是指用精练的商业语言描述项目想要表达的目标,并且设立可量化的成功标准对其进行解释。
(3)目标描述:这一部分是对项目目标的详细说明,将目标分解成一个个点,使得项目目标更有可实施性。
(4)假设、风险及障碍:如果立项申请人对该项目做出了一些假设,或预计到的一些风险及障碍,须在立项申请表中说明。
(5)客户名单:为了能够方便技术开发部门下一步的工作,在立项申请表中还需要提供相关的客户联系办法,包括该项目的提出人、决策人、使用人的信息。
《软件开发立项申请表》样例
2.立项审批
立项申请提出后,就需要对该立项进行评审。评审工作应主要集中在经济可行性、社会可行性、技术可行性三方面
(1)经济可行性:主要是对该项目的投资回报率进行估算,评估该项目是否值得投入,预计的投入与产出大概是多少等,评估的主体是市场部门;
(2)社会可行性:主要对该项目是否符合社会相关的法律法规,是否违背相关的规定等,评估的主体也是市场部门;
(3)技术可行性:主要是对该项目所涉及到的技术条件是否满足,公司在这块是否有能力完成,评估的主体是技术开发部。
请表》上签字确认。转到技术开发部门。不过请注意,这一决定并不意味着该项目一定要做,而是决定投入更多的人力、物力进行细化。
二、初步需求调研
1)确定项目范围
2)细化主要功能需求
三、初步项目计划
1)项目估算
2)资源计划
3)进度计划
4)形成初步的项目计划
5)项目计划评审
第二步:项目实施
一、计划和执行
项目计划的优劣,直接影响到是否能够准确地进行进度的监控、人员的安排等各方面事
二、项目启动阶段
到了项目实施阶段,我们已经获得了一个初步的项目计划和初步的软件需求说明书。
在初步的项目计划中,已经制订出需求分析、系统分析与设计、编码/单元测试、集成测试、验收测试等每个主要阶段的时间进度。并且还根据每个阶段的人员需求、软硬件需求,制定了资源计划。
要注意的是,这个初步的项目计划是建立在初步的软件需求、历史项目数据、估算经验之上的。所以应该在开发部、市场部、管理层、客户中达成一个共识:这是一个初步的项目计划,更加精确的项目计划将在过程中逐步得到。
三、项目实施步步为营
1.项目实施:需求分析子阶段
在项目启动阶段,我们已经进行过一次初步的需求分析,确定了项目的范围和主要的功能需求,而在项目实施阶段的需求分析子阶段中将进行详细的需求调研与分析。这个阶段主要的活动如下图所示:
在需求分析子阶段,将生成:
(1)细化了需求分析子阶段的项目组计划;
(2)需求模型
细化需求分析子阶段的计划,就是对需求分析的工作进行计划、安排,具体来说,就是修改进度图(建议采用甘特图)
而需求模型则主要包括软件需求说明书(SRS)。
a制定详细的用户访谈计划,采用面谈、收集用户的各种现有文档、报表等方式了解用户需求,形成软件需求报告。
b收集用户的专业术语与行业知识,对项目组队成员进行必要的领域知识培训。
c使用UML技术进行需求分析,建立软件的Use-case模型。在这一阶段中,尽量争取客户加入工作,共同进行需求的分析与探讨;
d确保在需求分析阶段,确信所有参与人员都知道该阶段的目的是“确定我们要做什么”,而且一直使用“问题域”的思想思考问题;
e需求分析阶段,要进行用户的分类,注意管理层与操作层的两类用户有时间可能对系统的需求是冲突的,一定要注意;
f在需求分析结束后,一定要编写出完整的软件需求说明书,并召开正式的软件需求评审会,让客户完整地了解项目组队所认识的系统需求,并与其达成共识,在此基础上签字确认。
2.项目实施:系统分析设计子阶段
在需求分析阶段,我们将得到一个问题领域视角的软件系统模型,这一模型在与用户交流、确认方面起到了良好的作用,但却不能够有效地指导开发,因此需要将其转换成为解决领域视角的软件系统模型,这项转换工作就是:系统分析与设计。
这一阶段的工作,也有一个大家已经熟悉的名称:概要设计,但我认为称之为高层设计更为准确一些。我认为在这一阶段,应该生成软件系统的体系结构,也就是整个软件系统的蓝图。
软件体系结构有四种不同的视图:
(1)概念视图:与应用领域密切相关,在该视图中,系统的功能映射为概念构件,并配套一些连接器(用于协调和数据交换);
(2)模块视图:将概念视图的概念构件与连接器映射为子系统和模块.
(3)运行视图:定义系统运行的实体及属性,如存储器的使用率和硬件分配;
(4)代码视图:将运行视图中的运行实体转换成为部署的构件(可执行代码)、将模块视图中的模块转换成源程序构件,并将源程序构件生成部署构件。
从上面的定义中,我们可以知道,概念视图主要是站在问题领域进行分析,概念视图与上一篇中介绍的上下文范围图十分接近,只是更加细致一些而已。