简而言之,软件开发过程主要体现为软件开发的工程化,主要是指把软件开发视为完整的系统性的工程项目,将工程项目领域当中常用的管理方法、处理流程技术等运用到软件开发中去。“目标”、“过程”与“原则”是软件工程(SoftwareEngineering)的基本框架构架构成,其中的软件开发“过程”一些列的步骤,通过这些步骤,软件开发人员能够最终开发出满足预期要求的软件产品。一般而言,软件工程的过程主要包括以下几个流程:开发→运作→维护。这三个流程基本上已经完全涵盖了软件开发过程必需的需求活动、设计活动、实现活动、确认活动以及维护活动。其中,(1)需求活动主要两个方面,即问题分析与需求分析,这两者的关系是,问题分析可以得到需求定义,而需求分析则能够产生功能规约。(2)设计活动通常由整体性设计与详细设计两个部分构成。前者的主要目标是构建软件系统的框架结构,而后者的主要内容是系统的模块内容(包括数据结构说明、加工描述等等)。(3)实现活动的主要目标是实现设计结果向具有执行能力的代码的顺利转换。(4)确认活动需要整个软件开发过程中进行体现,其主要目标就是确保客户的要求能够得到满足。(5)维护过程中主要是指软件开发、使用过程当中的调整、完善以及修改等等。笔者将软件开发过程中的若干构成要素进行了精确化处理(即精确软件开发过程),明确划分了软件开发生命周期的不同阶段。下文就精确软件开发过程的相关问题进行了分析和探讨。
一、精确软件开发过程概述
相对于精确软件开发过程,统一软件开发过程(RationalUnifiedProcess,RUP)中存在着诸多的不足与弊端。所谓的统一软件开发过程(RUP)主要是指以网络基础、面向对象的程序开发方法论,它就好像一个在线的指导人员,能够为全部层级、所有方面的软件程序开发提供开发模板、方针建议以及案例支持等等。统一软件开发过程(RUP)拥有着一个十分完整的框架结构,在该框架结构下,技术、实践等面向过程的方面以及代码、模型、文档等其它开发组件均被囊括其中。但是统一软件开发过程(RUP)的不足也是显而易见的,笔者在深入分析研究的基础上,以统一软件开发过程(RUP)为基础,给出了一种相对更加高效、更加可行的精确软件开发过程。精确软件开发过程的终极目标就是弥补统一软件开发过程(RUP)的不足,通过科学、系统以及有计划的指导,提高软件开发的效率、可行性尤其是成功率,能够为中小型软件系统的开发提供必要的扶持和帮助。精确软件开发过程的基本思想主要体现在以下几个方面:
第一,合理简化使其更具针对性。统一软件开发过程(RUP)的主要面向对象是那些常规性的绝大多数的软件系统开发,因此,在针对性方面显得不足,没有能力可以根据实际的问题给出具有很强针对性的软件开发设计方案。尤其是那些开发数量与日俱增的中小型软件系统,应用统一软件开发过程(RUP)则会使得整个开发过程显得啰嗦、累赘和臃肿,软件设计人员除了要进行软件设计活动之外,还需要有效处理统一软件开发过程(RUP)天生的不足,增加了软件开发人员的工作压力。而精确软件开发过程的基本思想则采取了与统一软件开发过程(RUP)的面面俱到截然相反的理念,即“分割简化、细致明确”。具体而言,就是将软件开发过程的复杂性问题进行合理划分,分析并探讨相对简单的部分,明确这些简单部分之后进行设计活动和实现活动。
由于精确软件开发过程来源于众多的中小型软件系统的设计实践,因此,它在有效解决实际问题不仅高效,而且极具针对性和简化性。这些特点使得不论是软件开发人员还是软件工程管理人员都能够比较容易地接受精确软件开发过程,获得良好的执行效果。
第二,能够实现软件开发支持的最大化。在软件开发的过程中,存在着诸多的不确定性因素,例如软件设计人员对于业务理解的偏差、系统用户对于业务的变更和微调等,统一软件开发过程(RUP)很难进行有效地应对,而精确软件开发过程则能够很好地解决软件系统在开发过程中出现的各种不确定性因素。这主要是由于精确软件开发过程当中,软件系统开发团队的人员构成与统一软件开发过程(RUP)团队存在着较大的差异,前者不仅拥有软件系统开发领域的专业技术人员,更有用户业务领域的专家。因此,精确软件开发过程的软件系统设计团队能够在开发的整个过程中与用户进行直接、没有偏差的交流,及时发生客户对于业务的新要求、新变化,相应地,客户也能够在交流过程中了解软件系统开发的具体进程,并根据软件系统开发团队的要求为软件系统开发提供最大的支持和协助。
第三,优化合理的软件系统开发过程。对于统一软件开发过程(RUP)而言,它的过程一般包括以下几个方面:计划过程、需求分析过程、设计过程、编码过程、测试过程以及运行维护过程。其中,统一软件开发过程(RUP)的设计过程要比精确软件开发过程(该过程的设计过程主要包括整体性设计过程和详细设计过程)笼统得多;而统一软件开发过程(RUP)的测试过程中主要包括两个方面,即开发人员的测试过程和用户的测试过程,且开发人员的测试过程密切联系着编码过程;同时,测试过程之后直接进入到运行过程也缺乏合理性,这两者之间应该增加“试运行过程”,即保持“测试过程→试运行过程→运行过程”的顺序,经过试运行过程证明系统具有良好的稳定性之后再进入到正式的运行维护过程中。有鉴于此,精确软件开发过程对软件系统开发过程进行了合理化与优化处理,将其划分为以下七个方面,即需求定义过程、外部设计过程、内部设计过程、编码测试过程、联合测试过程、系统试运行过程、系统初运行过程。其中,“外部设计过程”和“内部设计过程”同属于大的设计过程,“联合测试过程”则合并了编码和开发人员的单体测试,单独增加了“系统试运行过程”这一个重要环节。正是由于精确软件开发过程对软件系统开发过程进行了合理化与优化处理,使得软件工程管理人员能够更加有效管理和控制软件系统开发的进程。同时需要说明的是,精确软件开发过程在每一个开发环节当中均有开发进度文档,该文档的主要作用就是用来进行阶段性任务的明确、任务完成人员和完成时间的严格定义,借助于开发进度文档,彻底实现了软件系统开发进程的精确化管理和控制。
第四,基本思想概述。通常以上三个方面的论述我们知道,精确软件开发过程是建立在统一软件开发过程(RUP)的基础之上的,并充分融入了CMM(CapabilityMaturityModelforSoftware,能力成熟度模型)理念,是一种具有很强针对性的软件开发过程。所以,精确软件开发过程中对中小型的B/S系统及其类似软件系统的开发过程具有非常好的适应性。精确软件开发过程的基本思想可以概述为以下几个方面:
(1)过程的细化分割。精确软件开发过程实现了对复杂问题的细化分割,将其划分成为多个简单的问题进行分析处理,不论是系统开发过程还是软件工程管理均更容易;
(2)软件开发团队当中增加了新成员——业务领域专家,他的阶段性介入对于增强整个软件系统开发团队业务能力方面是不言而喻的,提高了发现不合理业务的及时性,并能够给出专业化的解决方案,有效解决了软件系统开发资源;
(3)优化合理的软件系统开发过程,包括需求定义过程、外部设计过程、内部设计过程、编码测试过程、联合测试过程、系统试运行过程、系统初运行过程等七个过程,更加科学合理。精确软件开发过程要求计划具有非常高的细致程度,例如,以周为单位进行计划的制定,以天为单位确定开发计划,以小时为单位明确测试计划,等等。总体而言,精确软件开发过程能够为软件开发质量和开发进度提供更可靠的保证,对于软件工程水平较低的国内现状而言,其积极作用还是非常显著的。
二、基于精确软件开发过程的X系统开发实例
某企业需要开发一套物流中心仓库管理系统,要求对仓库进行严格的控制,即对仓库进行精确的入/出库管理,提供在库量的.实时监控,并且为财务用户提供准确的入/出库数据以及相关的财务数据。需求定义。在立项初期,首先确立系统开发的对应体制,包括开发商、用户系统课负责人、用户业务负责人。在开发商方面,有项目经理,项目组、开发人员以及技术支持人员。项目经理主要负责项目整体进度的把握已经项目合同的相关事宜。项目组长则全面的管理项目的开发进展,对各个开发阶段进行全程的跟踪,并且对项目中的相关技术方面的问题做出决策,还包括了与用户系统负责人进行联络。开发人员主要负责系统需求的获取,系统设计以及系统实现。在用户方面,系统负责人主要起联络开发商和用户的作用,协助开发商和用户对业务需求进行沟通。另外,还负责向系统课的领导汇报系统的开发进度情况以及开发遇到的重大课题。业务负责人主要由实际工作的操作者构成,是系统功能的提出者以及系统测试和确认的人员。外部设计。在需求定义阶段,己经对系统的功能需求进行了详细的讨论与确认,系统整体上可以分为8个大的功能模块,主要包括系统管理、Maste管理、集装箱堆场、仓库管理、溢出仓库管理、工厂侧管理、财务用户部分和Housekeeping。在每个人功能模块当中又划分了若干了个功能画面,分别对用户提出的需求进行实现。内部设计。详细描述了系统数据的数据结构,定义了各个数据表以及表中的数据字段的名称、类型、长度、含义等相关信息。系统实现。开发系统环境:MicrosoftWindowsServer2003SP2;开发平台:MicrosoftVisualStudio2003;开发语言:,C#,JavaScript;数据库服务:MicrosoftSQLServer2005;数据库客户端:Oracle9.2。
三、结束语
该系统的开发过程,完全按照精确软件开发过程的要求,明确系统的开发目的和预期目标,严格对开发过程中的各个阶段进行划分,完成必需的相关文档。与之前的项目开发相比,体现出较多的优势,例如,项目过程管理精确、阶段任务完成良好,项目开发工数降低、节省开发成本,项目完成质量较好,项目设计开发文档齐备、维护方便,等等。
【精确软件开发研讨及应用论文】相关文章: