西门子TP1500代理商
列相互关联的活动,将输入转化为输出。对于软件开发来说,用户需求是软件开发的基础,也是整个开发过程的一个输入;开发人员通过一系列软件开发活动,*终交付出用户需要的产品。
要实现对软件开发过程的有效控制,要规定过程实现的方法和步骤。把整个开发过程进行细分,详细地定义出过程里面的每一个环节以及各个环节之间的执行顺序。要对过程进行监控。这个监控并不只是对*终产品进行质量检验,而是要对过程的开始、每一个活动的执行、一直到结束,进行全方位的监测,以保证每一个活动能够达到应有的质量。
从某个待开发软件的目的被提出并着手实现,直到*后停止使用生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,逐步完成每个阶段的任务。
把软件生存周期划分成若干个阶段,每个阶段的任务相对独立,比较简单,便于不同人员分工协作,从而可以降低整个软件开发工程的困难程度;在软件生存周么。即软件开发人员必须确定处理的是什么信息,要达到哪些功能和性能,建立什么样的界面,存在什么样的设计限制,以及要求一个什么样的标准来确定系统开发是否成功;还要弄清系统的关键需求;确定该软件。软件定义阶段大致分三个步骤。
(1)系统分析
在这个步骤,系统分析员通过对实际用户的调查,提出关于软件系统的性质、工程目标和规模的书面报告,同用户协商,达成共识。
(2)制定软件项目计划
需求进行分析并给出详细的定义。开发人员与用户共同讨论决定哪些需求是可以满足的,并对其加以确切的描述。要收集用户的需求,对所收集的需求进行分析、整理和提炼,来理解和建模系统的行为。在这个过程,可能还要返回去继续收集更多的需求。在对系统的行为进行明确之后,还要使用文档的形式,把待开发系统的行为定义出来,并且检查和确认这个文档是否满足用户的要求。在确认的过程中,还要反复收集、分析、再补充这样的一个过程。确认通过之后,形成一个正式的软件需求规格说明书。这个需求规格说明将作为后续开发的一个基础。
2.开发阶段
主要是要确定待开发的软件应怎样做,即软件开发人员必须确定对所开发的软件采用怎样的数据结构和体系结构、怎样的过程细节、怎样把设计语言转换成编程语言以及怎样进行测试等。开发阶段大致分为三个步骤。
(1)软件设计
有了需求规格说明之后,需要对软件进行设计以形成软件设计说明书。软件设计主要是把软件的需求翻译为一系列的表达式(如图形、表格、伪码等)来描述数据结构、体系结构、算法过程以及界面特征等。软件设计一般又可分为总体设计和详细设计。其中总体设计主要进行软件体系结构的设计,详细设计主要进行算法过程的实现。具体的设计活动包括:要对软件的整体结构进行设计;定义出每个模块的接口,并且地设计每一个组件的实现算法和数据结构;还要对整个系统的数
用后还会进行不断的修改,以适应不断变化的需求。维护阶段主要是进行各种修改,使系统能持久地满足用户的需要。
维护阶段还要进行再定义和再开发,所不同的是在软件已经存在的基础上进行。应该说,完全从头开发的系统是很少的,整个开发和维护其实是一个连续交叉的过程。当新的需求出现之后,需要定义这个需求,查看现有的系统是不是能够满足当前这个新的需求。如果现有的系统不能满足需求,就要进行的开发,提出系统的变更;针对这个系统的变更,对现有的系统进行修改,形成一个新的系统。整个过程是一个循环往复的过程。
通常有四类维护活动。改正性维护,即诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件使之能适应环境的变化;完善性维护,即根据用户的新要求扩充功能和改进性能;预防性维护,即修改软件为将来的维护活动进行准备。
4.软件开发管理
为了保证软件开发过程能够按照预定的成本、进度、质量顺利完成,还需要进行诸如项目管理、配置管理、质量保证等一系列开发管理活动,通过建立整个组织的质量管理体系,实现对软件开发活动的有效控制和质量保证。
(1)软件项目管理
是为了软件项目能够按照预定的成本、进度和质量顺利地完成,对人员、进度、质量、成本、风险进行控制和管理的活动。项目管理主要体现在以下四个方面。
要明确项目的目标,制定项目的计划,明确项目需要的资源。
要组建开发团队,要明确每一个成员的分工和责任。软件过程模型就是对软件过程的一个抽象描述,是软件开发的全部过程、活动和任务的结构框架。软件过程模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要
基本活动看成是一系列界利用瀑布模型开发软件系统时,每一阶段完成确定的任务后,如果工作得到确认,就将产生的文档及成果交给下一个阶段;否则返回前一阶段甚至更前面的阶段进行返工。而不同阶段的任务,一般来说是由不同级别的软件开发人员承担的。
这种软件开发方法的特点是:阶段间具有顺序性和依赖性,便于分工合作;强调软件文档的作用,要求每个阶段都要仔细地进行验证;文档便于修改,并有复审质量保证。
瀑布模型看似美丽,却不现实,目前已经很少在业界使用。它的主要问题在于:各个阶段的划分完全固定,阶段之间产生大量的文档,增加了开发工作量;由于开发过程是线性的,用户只有在整个过程结束时,才能看到开发成果;开发过程中间,很难响应用户的变更要求;早期的错误,也要等到开发后期的测试阶段才能发现,这样会产生严重的后果。
瀑布模型仅适合于在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用。
2.2.2 原型法模型
一般来说,软件需要解决以前从未解决的问题,或者当前的解决方案需要不断更新,以适应业务环境的不断变化。软件开发具有迭代性,需要不断地反复尝试,通过比较和选择不同的设计,*终确定令人满意的问题解决方案。