为了账号安全,请及时绑定邮箱和手机立即绑定

软件开发方法基础大剖析

常用的软件开发方法主要分为结构化方法、面向对象方法、原型化方法、面向服务的方法等,下面我们来介绍下这几种开发方法。

结构化方法

结构化方法也称为生命周期法,是一种传统的软件开发方法,它是由结构化分析(Structured Analysis,简称SA)、结构化设计(Structured Design,简称SD)和结构化程序设计(Structured Program Design,简称SP)三部分组合而成的。结构化方法的基本单位是“模块”,它是一个面向数据流而展开自顶向下、逐层分解和模块化的过程,主要以软件需求规格说明书(SRS)和结构化分析(SA)阶段所产生的数据流程图(DFD)和数据字典等文档为基础。数据流程图的基本组成包括了数据流、加工、数据存储和外部实体。

结构化方法是瀑布模型适用的开发方法,一般是先把系统功能视为一个大的模块,再跟进系统分析与设计的要求对其进行进一步的模块分解或组合。结构化分析(SA)采用功能分解的方式来描述系统功能,在这种表达方式中,系统功能被分解到各个功能模块中,通过描述细分的系统模块的功能来达到描述整个系统功能的目的。结构化设计(SD)主要完成概要设计阶段的任务,确定软件的体系结构、给出各模块的功能和模块间的接口。在结构化设计(SD)中遵循高内聚、低耦合原则,内聚表示模块内部各成分之间的联系程度,耦合表示模块之间联系的程度。结构化程序设计(SP)在结构化设计(SD)方法结果的基础上完成详细设计阶段的主要任务。

结构化方法的主要特点:开发目标清晰、开发工作阶段化、开发文档规范化、设计方法结构化。结构化方法的不足和局限性:开发周期长、难以适应需求变化、很少考虑数据结构。

面向对象方法

面向对象方法把面向对象的思想应用于软件开发中,建立在“对象”概念上来指导软件开发的方法(简称OO),认为客观世界由各种对象组成,任何事物都是对象。面向对象方法(OO)包括面向对象分析(Object-Oriented Analysis,简称OOA)、面向对象设计(Object—Oriented Design,简称OOD)和面向对象程序语言(Object-Oriented Program Design,简称OOP),与结构化方法类似,可划分为典型的分析、设计和实现三个阶段,但是阶段的界限变得不明确。

面向对象分析(OOA)的核心工作是建立系统的用例模型与分析模型,独立于具体实现,即不考虑与系统实现有关的因素。面向对象设计(OOD)是面向对象分析(OOA)的延续,主要确定实现用户需求的方法,定义子系统接口参数。也就是说面向对象分析(OOA)的任务是“做什么”,面向对象设计(OOD)的任务是“怎么做”。而面向对象程序语言(OOP)主要工作为编写代码、改进系统的性能。

为了将面向对象的分析模型转化为设计模型,设计人员必须完成设计用例实现方案、设计技术支撑方案、设计用户界面、精化设计模型

图片描述
面向对象的基本概念主要有对象、类、抽象、封装、继承、多态、接口、消息、组件、模式、复用。面向对象设计(OOD)的基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态实现的。

图片描述

原型化方法

原型化方法不同与结构化方法和面向对象方法那样,在系统开发初期必须明确系统的功能要求,确定系统边界,它是一种根据用户初步需求,利用系统开发工具,快速建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统的快速开发方法。

从原型是否实现功能可分为水平原型和垂直原型两种。水平原型也称为行为原型,用来探索预期系统的一些特定行为,并达到细化需求的目的。水平原型通常只是功能的导航,但并未真实实现功能。水平原型主要用于界面上,垂直原型也称为结构化原型,实现了一部分功能,垂直原型主要用在复杂的算法实现上。
从原型最终结果可分为抛弃式原型和演化式原型。抛弃式原型为称为探索式原型,指达到预期目的后原型本身被抛弃,主要用在解决需求不确定性、二义性、不完整性、含糊性等。演化式原型为开发增量式产品提供基础,逐步将原型演化成最终系统,主要用在必须易于升级和优化的场合,特别适用于Web项目。

原型法的特点:可以使系统开发的周期缩短、成本和风险降低、速度加快,获得较高的综合开发效益;以用户为中心来开发系统,用户参与的程度大大提高,开发的系统符合用户的需求,因而增加了用户的满意度,提高了系统开发的成功率;由于用户参与了系统开发的全过程,对系统的功能和结构容易理解和接受,有利于系统的移交,有利于系统的运行与维护。

原型法的优点主要在于能够更有效地确认用户需求,从直观上来看,原型法适用于那些需求不明确的系统开发。事实上,对于分析层面难度大、技术层面难度不大的系统,适合于原型法开发,而对于技术层面困难远大于其分析层面的系统,则不宜用原型法。

面向服务方法

对于跨构件的功能调用,则采用接口的形式暴露出来。进一步将接口的定义与实现进行解耦,则催生了服务和面向服务(SO)的开发方法。

如何使信息系统快速响应需求与环境变化,提供系统可复用性、信息资源共享和系统之间的互操作性,称为影响信息化建设效率的关键问题,而面向服务(SO)的思维方式恰好满足了这种需求。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
1.8万
获赞与收藏
1565

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消