`
freej
  • 浏览: 16339 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
摘要:软件开发模式是为了解决频繁的软件需求变更和软件技术更新而形成的解决方案总结。软件开发模式可以根据软件开发阶段被划分为多种类型,每种类型的模式的意义和用途也是不同的。本文试图对软件开发模式及其性质进行剖析,并简单阐述其在软件开发过程中所起到的作用。

    一、什么是软件开发模式
    软件开发模式是个意义很广泛的感念。从技术方面来讲,软件开发模式是设计软件的基本思想和套路;从工程方面来讲,软件开发模式也是满足商业信息化和电子化的首选的手段和方法。通俗的讲,软件开发模式就是为开发出满足业务需要的软件而选择的一种实现方式。一般情况下,人们会参考公认的最佳实践并根据当前的具体情况,借助先进的辅助技术手段,形成符合项目所需的模式体系。
    二、软件开发模式也在不断变化
    软件开发模式与软件本身一样,是会随时间不断变化的。人们在创造出软件开发模式这个概念的时候,就已经预示着它并不是一成不变的了。原因是,软件开发模式是因软件而生的,是依附于软件的开发过程的。软件开发模式最初被创造出来的目的是,以不变的模式来应对多变的软件需求。可惜,事实证明,这是不可能的。当下,计算机软件技术在以每一到两年的周期翻新着。几乎每个月甚至每天,软件需要应对的问题都是不同的。需求的层出不穷和软件技术的推陈出新让软件开发者们应接不暇。于是,人们从以往的经验和问题求解过程中提取出了所谓模式的东西,使得在再遇到类似问题或情景的时候能够有可以参考甚至现成的最优解决方案。可惜,这种最优的解决方案是相对的。世界上也许存在着对一般问题的通解,但绝对不会存在针对所有类似问题的特解。更何况,在软件领域中,解决方案所依托的技术基础和思想原则本身就是在不断演化和变革。这也就意味着,软件开发模式也是需要随着时间的推移,随着软件技术的更新,不断的进行演化或者被完全淘汰。
    三、软件开发模式的分类
    那么软件开发模式多包括什么呢?人们从软件开发过程中总结出了固有模式,以求获得解决或者决策通用问题的通解。从开发阶段的不同来对软件开发模式进行划分是比较通用的一种方法。
    在软件需求调研阶段,人们根据软件使用者的需求设计出软件的整体框架和总体技术要求,并在不断的改进中形成了针对某种系统需求或者软件体系结构的通用方案。这种方案在日后可能会成为软件产品的一部分,也可能被作为通用解决方案的基石。这种对软件整体进行设计的模式就叫做架构模式。
    在软件设计阶段,人们开始用先进的软件设计思想(如面向对象设计思想)来定义软件各功能的名称、接口和交互方式。人们根据对以往经验的总结逐渐形成了所谓的最佳设计方法。依据这种设计方法,人们可以在处理类似问题的时候充分借鉴之前的思想和套路以获得公认的设计优势和好处,并可以根据具体需要进行演进和更新。这种通用的设计方式即为设计模式。
    在软件实现阶段,开发人员经常会遇到与具体实现方式有关的大大小小的决策,比如:这个地方该用循环语句还是条件语句?我该把这些东西塞到一个类里吗?等等。每个人都会在开发过程中不断的自问并试图尽量快速的得到答案。那么,在实现中的很多方式都是非常通用的,是具有普遍意义的。人们把这些可以通用的实现方式叫做实现模式。在软件开发模式中,实现模式最为稳定,但同时它也是很重要的。
    四、软件开发模式的用途
    软件开发模式为了解决通用问题而生的,下面来说说主要的几个层次的软件开发模式都能够解决那些问题。
    先说说实现模式。所谓实现模式,就是我们在编程过程中的一些习惯和较好的实现方式的总结。这种模式或多或少的会体现在团队的一些编码规范中。实现模式比较注重细节,它的核心思想是符合良好的编码习惯和较佳的实现规范。目的是使得团队中的代码风格开起来整齐划一。
    更好的贯彻实现模式有五点好处:
    1、使得团队成员能够很容易的阅读另一位成员的代码,成员之间很容易进行交叉测试,Leader很容易review代码;
    2、在后期维护时会很容易领会原有代码的意图,并可以很容易的对原有代码加以修改和重构;
    3、可以让新进入的开发者尽快了解团队编码风格并迅速融入其中;
    4、可以使团队看上去更专业,而不是一群无组织无纪律的散兵。
    5、有了这么一套带有良好实现模式的编码规范,就可以是团队在最基本的技术层面上达成一致,可以大大地提高工作效率,避免了无谓的争论。
    良好的或者趋向良好的团队都应该有自己的编码规范,在书写编码规范时应注意因地制宜的吸收一些参考资料中的公认条款,而且可以根据具体情况加入一些团队内部需要共享的原则。
    下面来说说设计模式。希望提高自身技能的软件开发人员都会主动地去接触设计模式,因为那是许多前辈们总结出的软件设计的最佳实践参考。我相信真正的高级开发人员都至少读过一本关于设计模式的书。当然软件是多变的,设计模式也是如此。在真正理解和熟练运用设计模式之后,就可以根据自己的需要将原有模式进行演变,甚至创造出更好或更适合当时需要的模式来。设计是灵活的,设计模式只能作为实践参考。所以,我在这里不想过多地说怎样去用模式来设计软件。因为软件设计是业务需求的跟随者,是业务的技术级支持者。没有了业务依托的代码,最多也只能算是个demo程序而已。现在越多越多的软件和框架的目标都在向更好地实现特定业务转移。这是一个趋势,也是人们对软件设计的观念的进步。计算机是服务于人的,软件理所当然也是。所以在学习设计模式的时候并不需要恪守陈规,要学会为了目的而设计,而不是为了设计而设计。软件是有生命的,至少我坚信这一点。既然有生命就需要成长,从呱呱落地到成熟稳健是需要有一个过程的。所以,不要在一开始就试图去想象软件以前应该需要怎样的灵活性或者什么样的功能。因为在软件行当里,盲目的想象往往都不会成为现实。因而,与其费劲脑汁去过度设计,还不如集中精力优化现有的代码。然后再根据需求的变化而动,只作足够的,不做多余的。
    架构模式是更高级的话题。现有主流架构思想和框架,思想路线都是一样的,即:把软件功能的粒度变小,以提高软件本身的灵活性,增加软件功能的可重用特性。最近流行的Web服务和面向服务架构模式都是为了更好的解决这方面问题而推出的。可见,软件的多变给软件开发者们带来了多大的麻烦,以至于不断会有新的、更好的架构体系和模式来试图解决这一问题。当然,同样随着时间的推移,就得架构模式渐渐显得力不从心,新的架构模式应运而生。这个过程同样体现在了从Web服务模式向面向服务架构模式的演化过程中。架构模式之所以不断的进行着自我演进或者更新换代,它的最终目的还是欲使软件的生命周期更长,更能适应将来的未知变化。虽然目标很难达到,但是主流架构模式的每次更新,都在向着目标大踏步前进。
    五、写在最后
    软件开发模式的内容有很多,可以做的工作也很多。另外,软件开发模式与软件项目管理与开发团队管理也有着千丝万缕的联系。综合运用、合理运用软件开发模式才能更好的为快速、得当的解决业务需要和软件问题带来福音。
分享到:
评论
1 楼 c6499557 2010-09-07  
[b][/b]

相关推荐

    软件开发模式(繁体)

    “软件开发模式”是指一系列用于指导软件开发过程的步骤和执行顺序的框架。这种模式有助于系统化、逻辑化地进行开发,确保标准化、规范化,并提高效率,保证质量,便于管理。不同的软件开发模式适用于不同的系统开发...

    软件开发模式软件开发模式

    ### 软件开发模式详解 #### 一、引言 软件开发模式是软件工程领域中的重要组成部分,它不仅影响着软件的质量,还关系到项目的成功率。本文将详细介绍CMMI(能力成熟度模型集成)、RUP(统一软件开发过程)、MSF...

    Visual FoxPro 软件开发模式与应用案例

    《Visual FoxPro软件开发模式与应用案例》是张洪举编著的一本指导软件工程师们使用Visual FoxPro软件进行开发的专业参考书籍。该书涵盖了多种使用Visual FoxPro开发应用程序的方法,包括单用户应用程序模式、多用户...

    模型驱动的软件开发模式研究.pdf

    模型驱动的软件开发模式研究 模型驱动的软件开发模式是指在软件开发过程中,使用模型来描述软件系统的结构、行为和功能,通过模型转换和代码生成来自动产生软件代码的开发模式。该模式的研究旨在探讨模型驱动的软件...

    软件开发模式图文详解

    你所熟悉的过程…… 一、定位?时间?资源?...=>开发 五、书都摆上书架吗?PAD有装错吗?出个竣工报告吧!=>测试 六、喂,真爱梦想吗?梦想中心电脑坏了,能帮忙重装下系统吗?成立个VOT吧!=>运维

    JavaEE软件开发模式

    JavaEE软件开发模式

    《微软公司软件开发模式简介》

    《微软公司软件开发模式简介》是一本深入探讨微软在软件开发过程中所采用的模式和实践的书籍。书中可能涵盖了微软如何高效地管理大型项目、如何利用先进的开发工具和技术,以及如何构建可扩展、可维护的软件系统。...

    软件开发模式ppt课件.ppt

    软件开发模式是软件工程中的一种重要概念,它指的是在开发软件的过程中遵循的一系列步骤和方法。这些模式旨在提高效率,确保质量,使开发过程更加系统化和可管理。本课件详细介绍了多种软件开发模式,包括编码与修正...

    适合ChatGPT的水母式软件开发模式-陈斌.pdf

    ### 适合ChatGPT的水母式软件开发模式 #### 概述 在当前快速发展的信息技术领域中,人工智能(AI)技术尤其是以ChatGPT为代表的自然语言处理技术正在深刻地改变着软件开发的方式与流程。《适合ChatGPT的水母式软件...

    微软公司软件开发模式简介.pdf

    ### 微软公司软件开发模式解析 #### 一、引言 微软公司在软件开发领域有着丰富的经验和独到的方法论。其独特的开发模式不仅确保了产品的高质量,还极大地提高了开发效率。这种模式的核心在于将大型项目划分为多个小...

    GIS应用软件开发模式分析

    :对当前GIS应用软件开发模式进行分析,针对单纯二次开发、高级语言独立开发与集成二次开发分别展开论述,对 比分析其不同的开发特点。

    模型驱动下的软件开发模式

    模型驱动下的软件开发模式 模型驱动开发(MDD)是一种新的软件开发模式,它将应用程序指定为一个高层次的抽象模型,通过对模型的解释/执行或产生的代码,抽象模型会自动转化为可工作的软件应用。这种开发模式有很多...

    软件开发模式有哪些.pdf

    软件开发模式是软件工程中用来组织和指导软件开发过程的不同策略和方法。这些模式或模型旨在提高效率,减少风险,并确保软件产品满足用户需求。以下是几种常见的软件开发模式及其特点: 1. **快速原型模型**: ...

Global site tag (gtag.js) - Google Analytics