面向对象与结构化分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化分析方法和面向对象方法的比较
对于结构化方法来说
结构化方法首先关心的是功能,强调以模块(即过程)为中心,采用模块化、自顶向下、逐步求精设计过程,系统是实现模块功能的函数和过程的集合,结构清晰、可读性好,的确是提高软件开发质量的一种有效手段。而且结构分析相对于面向对象也更加容易入手,当你无从下手时,可以用结构化分析很快入手,而面向对象则需要你对系统需求有更加深入的理解。
结构化设计从系统的功能入手,按照工程标准和严格规范将系统分解为若干功能模块。然而,由于用户的需求和软、硬件技术的不断发展变化,作为系统基本成分的功能模块很容易受到影响,局部修改甚至会引起系统的根本性变化。开发过程前期入手快而后期频繁改动的现象比较常见。结构化设计中模块和模块之间的关系,被紧紧局限于信息流,这限制了对模块之间众多关系的表达,也无法体现模块和模块之间其他的众多关系,包含各种各样的结构、行为、依赖、包含(在结构化设计中这种关系隐含在分层中)、继承、关联关系等等。它仅仅解决了模块在封装和信息隐藏方面的问题。。
对于面向对象方法来说
面向对象方法则从所处理的数据入手,以数据为中心来描述系统,数据相对于功能而言,具有更强的稳定性,这样设计出的系统模型往往能较好地映射问题域模型。对象、类,、继承性、多态性、动态定连概念和设施的引入使用,显然令面向对象的设计方法具有一定的优势,能为生产可重用的软件构件和解决软件的复杂性问题提供一条有效的途径。并且一旦出现用户需求变更,也不至于付出太大的代价,这显然相对于结构化分析说是一个优势。此外,面向对象充分挖掘了“关系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现,而这些关系是实现设计的关键
面向对象的设计过程就是指通过建立一些类以及它们之间的关系来解决实际问题,这就需要对问题域中的对象作整体分析,类和类间关系的设计要求较高,否则设计出的并不是真正意义上的面向对象的软件系统,而只是一些类的堆砌而已,不能体现出面向对象设计方法的优势之处,而且并不能满足用户的真正需求,从而功亏一篑。
综合来说
综上所述,两者各有利弊,但是要想设计一个好的系统,并不仅仅依赖于一整套核心的概念与原理,而是应该根据实际情况去选择,去灵活的运用,或者两者相结合,利用它们各自的优势最终满足客户所需。