如何有效进行软件开发过程实践

admin3年前软件教程32

每个软件产品或者软件系统都会经历产品孕育、产品诞生、产品成长、产品成熟、产品衰亡等阶段,一般称为软件生存周期(软件生命周期)。如果把整个软件生存周期划分为若干阶段,使各个阶段都有明确的任务,让规模大、结构复杂、管理复杂的软件开发变的容易控制、容易管理。通常,软件产品生存周期包括:可行性分析、开发项目计划书、软件需求分析、软件设计(分概要设计、详细设计)、程序编码、软件测试与维护等活动同。这些活动要根据项目进度要求分配到不同的阶段去完成。

(一)传统的软件开发流程采用的是瀑布模型,什么是瀑布模型呢,瀑布模型是软件项目工作中,每到一个阶段就必须把这个阶段的合部工作完成才能进行下一阶段的工作,比如:在进入概要设计阶段时,必须把系统需求规格说明书完全确定后才可以。还比如:程序编码在软件系统设计完成后,才可以进行程序编码。所以在整个项目中所有的系统模块全部开发完成之后,才能进行系统集成,要把上百个模块组成复杂系统,是一个很艰巨的任务。

(二)随着我们开发的软件项目越来越复杂,瀑布模型已经很难满足现在的软件项目的开发工作。根据项目实际情况选择适合的软件生命周期原型及开发团队采用实用的软件开发流程对软件项目的成败起到至关重要的作业。

对软件过程的认识

(一)需求获取

1.在确定项目开始前,先了解客户对项目软件准确的需求。合同项目在前期的准备阶段中,在这方面会花费比较长的时间,这样对后期的工作是很有帮助的。

2.进行软件开发一般分:专用软件、通用软件两方面。

(1)专用软件:比如甲单位要开发一套根据本单位性质专用的软件系统,甲单位会对软件的功能要求有一个大概轮廓(一般在签定的软件开发合同中已注明,但只是合同项目框架),所以在之前必须与使用者进行详细沟通,知道客户到底想要一个什么样的软件系统,定好位,工作就很好做;如果前期工作做不好,到制作后期才发现问题,对软件开发来说是非常费时费力的事情。

(2)通用软件:在开发通用软件时,流程上相对要固定一些,首先,做市场调查,从经济效益、市场潜力、技术分析等,其次调查客户终端中硬件配置、网络情况、数据库情况,最后综上调查结果制定软件开发技术指标。

3.在制作过程中会经常与客户沟通,为了更好更便利的与客户进行沟通,使用一些像用VB,Delphi工具做的原型,针对发现的问题进行有效交流,对客户需求及时定位,为现好的完成合同项目软件开发工作打好坚实的基础。

4.软件的运行与流程上面:用UML的Use Case图做参考是非常有用的。

(二)需求分析

1.什么是需求分析,需求分析是在确认完项目客户对软件使用需求后,将需求用某种直观的文法表现出来。现在业内常用的分析方法有:面向对象法,分析项目目标客户的需求,再用类-—类之间的关系来体现全部软件系统。(具体方法,不予详解)

2.开发过程注意事项。强调问题域与系统责任的区别,开发的软件需要完成的所有应运功能称为系统责任,问题域包括项目软件开发时涉及到的所有问题。比如1:程控机计费程序(程控机现成的、数据输出是固定的,程序从程控机读取信息,程控机对系统来说属外部硬件设备,可以不用一类处理,一个类完成数据读取操作就可以了)。比如2:在现有的数据库上,进行再度开发与应用,数据库格式是固定的,后台程序是现成的,并正常运行,决定开发新的前台软件程序,这时服务器程序就属外部程序了,但是,新软件开发分析文档中必须有体现,以此约束外在的程序系统。

分析与设计过程的关联衔接

1.用类结构表示目标系统时,软件分析过程的全部内容,可以不用具体实现,(如:用那类操作系统平台,用何种程序语言等),这些在项目早期设计阶段,就已明确定位了,这时用面向对象法进行分析、设计、编码过程等表示法进行统一,能很好的进行分析与设计过程的关联与衔接。把设计、分析分开,是用瀑布式方法进行软件开发还是采用别的方法,要根据项目需求的具体情况来定。

2.像设计完成后,后续改动及变化不多的项目,建议用瀑布模型,这们的好处是:在后期软件开发当中,如改用别的编程语言、平台,早期设计阶段中备份的的分析文档就可以用上了。

3.在今后的工作中会涉及到经常变化的合同项目,要整理好运作流程,比如:少部分分析——少部分设计——少部分编码——最后测试的方法,这样可以避免要返回前一个步骤修改的麻烦,所以后续经常变化的软件开发没有一个完整的分析文档。

4.软件开发中分析与设计是不能区分的,虽然市面上很多CASE工具对分析和设计的阶段不区分,但是,不表示就可以不加区分。

设计编码过程

设计阶段:

1.分析模型:类结构在后期工作中会进行一定的修改,修改的原因不外呼有二种,一种是是:编程环境的要求部分,第二种是对原来的一些特定工作重用。

2.定义界面:数据访问(数据库)部分,现阶段很多编程语言都可以用可视化设计界面,所以界面部分的工作都会保留到编码阶段来进行,这样在项目设计阶段,总体工作量是不大的。

项目测试

测试人员需要在项目需求阶段就要安排介入到项目中,针对需求编写测试计划及测试用例。根据需求跟踪矩阵衡量测试用例对软件的覆盖率。另外在详细设计阶段,开发人员需要考虑代码的可测试性,编制单元测试用例并进行测试等。

结束语

针对一个企业的管理模式,需要在实践中找到一套适合自己企业的模式,成功的经验要借鉴,套搬是不行的,还会适得其反。很多项目,不管大也好,还是小也好,并没有本质的区别,很多事情去做的方法是有共性的。同样,在做一个软开发项目时,项目的合作运行方法虽然有区别。但是换一个角度来看,又会感受不同的现解方式。因此把别人的成功的经验及成果转变为自己所用,这个变是至关重要的。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

qq音乐付费包和会员有什么区别

qq音乐付费包和会员的区别:1、绿钻特权很多,最常用的是下载HQ(320K和SQ(无损)音乐,而普通用户只能听普通质星(128K),总的来说就是能听高音质。但是不能听付费歌曲,也就是说无法拓展能听到的...

3d删除快捷键是什么

以3dMax软件为例,3d删除快捷键是“Delete”,其实3dmax和很多软件的快捷键都是很好记的因为都是通用的,比如3dmax中的删除快捷键就是选中直接按delete键就可以了。3D MAX(3D...

qq音乐乐币怎么买绿钻

qq音乐不能使用乐币购买绿钻,但是qq音乐在开通绿钻的时候可以选择微信、qq、Q币、QQ卡、手机充值卡、手机话费等支付方式来进行支付。QQ音乐隶属于中国在线音乐服务领航者腾讯音乐娱乐集团,是国内领先的...

为什么钉钉点赞老师收不到

以钉钉5.1.26为例,学生在观看老师直播的时候点赞而老师收不到,这是网络延迟的问题,毕竟网络具有一定的延迟性,一段时间以后在老师的直播间就能看到了。如果点赞依旧没有数字变动,那么您可以重启钉钉App...

c语言可以开发安卓app吗

c语言不可以开发安卓app,安卓app是用Java语言开发,而苹果app是用C语言开发。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C...

服装批发App开发方案分析

服装批发App开发针对传统的商家和商家之间的批发环节,通过批发平台的打造,通过手机即可和批发商家进行商品的批发机沟通交流,提供方便的批发上的服务和良好的批发上的问题的处理。同时通过与互联网的连接,促进...