zoukankan      html  css  js  c++  java
  • 架构设计之拥抱着变化而设计(部分讲义分享)

    http://blog.itpub.net/29178179/viewspace-772508/

    防止软件退化最重要的工作就是要有良好的设计,那么什么是好的设计?所谓“合适的就是最好的”,那么什么是“合适”?合适,就需要对客户需求作更深入的分析,通过挖掘潜在的需求,找到设计中的关键点,特别是对于面向对象的分析和设计(OOAD)来说尤其重要。

    一、面向对象分析与设计的本质

        1,结构化设计思维及其缺陷

        软件设计思维的早期是以结构化为核心的。结构化思维最本质的东西就是功能分解:这是一种处理复杂问题的自然方法,其原因在于解决更小的问题,比解决整个问题更简单,它通常形成的结构,是让一个“主”程序(模块)负责控制子程序(模块),但这样一来,就造成了如下缺点:

    l  主模块所承受的责任太多、太集中,承受的压力相当大;

    l  经常会产生非常复杂的代码,而且互相间的耦合很严重。

    正是由于这样的特征,结构化应对变化的能力很差。但是在现实世界中,变化总是无法避免的,例如,要为已有的主题增加新的变体,需要新的业务方法等。如果将实现业务各步骤的所有逻辑代码,按照自然方式放在一个模块中的话,那么这些业务任何实质性的变化,都会造成对这些模块进行大面积修改。

    2,需求总是会发生变化

    1)需求变更不可避免

    问问软件开发人员,对于从用户那里获取的需求,他们认为有哪些说法正确的?我相信经常得到的回答是这样的:

    l 需求是不完整的。

    l 需求经常是错误的。

    l 需求(和用户)容易让人误解。

    l 需求并不会告诉你全部情况。

    只有一种问答是听不到的:“我们的需求不仅完整、清晰、易于理解,而且还说明了我们今后五年需要的所有功能!”即使前期我们确实耗费了极大的努力来收集需求,这样的需求还是会发生变化。

    2)需求变化的原因

    需求变更的根源,除了需求获取和分析的能力之外,关键之处还有如下几个简单原因:

    l 用户对自己需求的看法,会因为后期获取信息越来越多,特别是在开发过程中与开发人员的讨论,以及看到软件新的可能性而发生变化。

    l 开发人员自己对用户问题领域的看法,会在开发这个领域的软件过程中,因为对它更加熟悉而发生变化。

    l 最重要的原因:我们是人,只要有可能,我们总是希望做到最好,或者得到更好的东西。

    在多年编写软件的经历中,我认为应该教会我们最主要的一点就是:需求总在变化。大多数开发人员都认为需求变化是一件坏事。但是很少有人去认真设计可以很好处理需求变更的结构,这就使问题变得越来越严重。

    现实情况确实是需求总是在变化,但这并不意味着我们可以不去收集好的需求。良好的需求可以保证不至于由于当初需求的缺失而发生不应有的变化。但是,我们也不应该不正视那些自然而然会发生的事情。与其抱怨需求总是变化,还不如适应这种变化,这就是“拥抱着变化而设计”。

  • 相关阅读:
    LVDS汇总
    smtp模块+Gmail搭建邮件发送功能
    网站建立(杂)
    xampp部署elgg
    转xampp 访问出现New XAMPP security concept
    FPGA参考电源
    android开发环境搭建问题
    cadence仿真前电路板设置(转)
    cadence串扰仿真 (转)
    cadence约束管理器总体设置 (转)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/5595039.html
Copyright © 2011-2022 走看看