谈谈软件开发方法

     软件工程主要讲述软件开发的道理,软件开发的基本策略,大致总结为以下3点:“复用”、“分而治之”、“优化与折衷”,也是运用于软件开发过程中基本的一些世界观和方法论。

1.软件工程框架

      软件工程聚焦于软件开发,软件开发本质实现问题域中的概念和处理逻辑到运行平台的概念和处理逻辑的映射,而实现映射的基本手段就是建模。为了控制开发的复杂度,我们会基于不同抽象层次对问题进行逐步求解,一个抽象层由一组确定的术语定义,对系统包括系统边界、系统内模型元素以及元素之间的关系进行描述,从而实现建模。

 

      软件工程主张用工程化的方法来进行软件开发,目标是生成具有正确性、可用性和开销合宜的产品。因此,软件项目的成功要以项目所消耗的时间、成本以及满足需求的程度来进行评判。软件工程的原则包括选取适宜的开发模型、提供高质量的工程支持、重视开发过程的管理;涉及到的主要内容,包括软件开发模型、软件开发方法、软件过程、以及为过程和方法提供的支持。

       软件开发模型,即软件生存周期模型,是软件过程、活动和任务的结构框架。软件活动包括需求、设计、实现、确认和支持活动;过程是活动的集合;活动可拆分成任务执行。

       软件开发方法,为建造软件提供技术上的解决方法,即解决“如何做”的问题,也就是提供问题域到处理逻辑域上各个抽象层面的建模方法。

       软件过程,为建造高质量的软件所需完成任务的框架,即软件生存周期过程。其中包括与软件生产直接相关的基本过程、相关方按其目标所从事的支持过程、与软件生产组织相关的组织过程。

      

 

        通过以上三个概念,我们要认识到:软件开发只是软件生存周期过程的一部分;软件是通过一系列的开发方法设计出来的,掌握并能正确运用开发方法,具有事半功倍的作用。 

 2.结构化的开发方法

     结构化方法是一种系统化的软件开发方法,也是迄今为止最传统、应用最广泛的一种开发方法。结构化方法看待世界的基本观点:一切系统都是有信息流构成的(其中包括一些必要的数据变换),每一个信息流都有自己的起点和归属,有驱动信息流程的加工,因此信息处理主要表现为信息的流动。从问题空间到解空间分为了需求分析层、设计层、实现层,分别对应结构化分析方法、结构化设计方法、结构化程序设计方法。

       结构化方法是一种系统化的软件系统建模方法,实现了从问题空间到解空间自顶向下的映射。结构化方法围绕“自顶向下功能分解,数据抽象、功能/过程抽象、模块化”基本原则,给出完备的符号,可操作的过程、易理解的表达工具,并提供了控制信息组织复杂性的机制,如逐层分解、数据打包等。

 

3. 面向对象的开发方法  

       面向对象方法是一种以对象和对象关系来构造软件系统模型的系统化方法。其世界观是:一切系统都是由对象构成的,他们之间的相互作用、相互影响,构成了客观世界各式各样的系统。

     面向对象方法的主要特点为:(1)从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单元,事物的静态特征用对象的属性表示,事物的动态特征(事物的行为)用对象的操作表示;(2)对象的属性和操作合为一体,对外屏蔽其内部细节,实现了封装;(3)对事物进行分类,具有相同属性和操作的对象归为一类,类就是对这些对象的抽象描述,对象就是类的一个实例;(4)通过在不同程度运用抽象的原则(事物之间或多或少的差异),可以得到一般类和特殊类,特殊类继承了一般类的属性和操作,这种继承关系的描述和实现,简化了系统的构造过程及其文档设计。(5)通过聚合关系,可以用简单对象来构成复杂的对象;(6)对象之间只能通过消息进行通信,实现对象之间的动态联系;(7)用关联表达类之间的静态关系。因此,面向对象方法强调运用人类在日常逻辑思维中经常采用的方法和原则,这使得软件开发者能更有效地思考问题,并能通过更加容易理解的方式来进行表达;强调直接以问题域中的事物来思考和认识问题,这也使得系统能够直接映射到问题域,保持问题域中事物及其相互关系的本来面貌。

 

4.敏捷开发方法

       敏捷软件开发又称敏捷开发,是一种新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。敏捷开发没有统一的过程和术语,相对于 “非敏捷”(结构化开发、面向对象开发),它更强调程序员团队和业务专家之间的紧密协作、面对面的沟通、频繁交付的软件版本、紧凑和自我组织型团队、适应需求变化的代码编写和团队组织方式,注重软件开发中人的作用。因此,敏捷软件工程是哲学理念和一系列开发指南的综合,其开发的指导方针强调超越分析和设计(但是并不排斥这类活动)的发布,以及开发人员和客户之间主动和持续的沟通。围绕敏捷软件工程的理念,敏捷联盟概括了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,其中包括4条宣言和12条原则,分别从软件质量、项目规划、态度、团队组成和精神、沟通、进度度量、持续发展、技能和设计、自我调整和适应等多方面给出了指导性说明。

 

5. 总结

       软件工程中提到的软件开发方法,基本都是在软件开发与实践中不断积累的成果总结。从早期以机器处理过程出发的结构化开发方法、到以人类认识世界视角的面向对象开发方法、再到以人的主观能动性持续改进的敏捷开发方法,软件开发方法也随着技术发展和应用场景在不断进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
软件开发项目管理是指对软件开发项目进行规划、组织、协调和控制,以确保项目能够按时、按质、按成本完成的一项管理技术和方法软件开发项目的复杂性和不确定性很高,因此项目管理在软件开发中尤为重要。 首先,软件开发项目管理需要明确项目目标,确定项目范围和需求,制定项目计划和进度安排。通过项目规划,可以合理安排各个开发阶段的工作内容和时间进度,确保项目按时完成。 其次,项目管理需要合理分配资源,包括人力、物力、财力等资源。项目经理需要根据项目需求和资源可用性,合理调配开发团队成员的工作任务和工作量,确保项目开发过程中资源的充分利用和协调配合。 同时,项目管理需要进行风险管理,识别和评估项目风险,并采取相应的应对措施。项目风险包括技术风险、进度风险、需求变更风险等,项目经理需要及时应对风险,减少项目风险对项目进展和质量的影响。 另外,软件开发项目管理还需要进行沟通与协调,确保项目各个相关方的有效沟通和协作。项目经理需要与开发团队、需求方和其他利益相关方保持良好的沟通,及时解决项目中的问题和冲突,以确保项目进展顺利。 最后,软件开发项目管理需要进行项目控制和监督,通过制定和执行项目计划、进度和质量控制,对项目的实施过程进行监督和评估,确保项目按质按量按时完成。 综上所述,软件开发项目管理是一项综合性的管理技术和方法,通过规划、组织、协调和控制等手段,确保软件开发项目能够达到预期目标,并提高项目的质量和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值