zoukankan      html  css  js  c++  java
  • 谈谈软件设计

       先看一下软件设计的四个案例:

       1.某项目要求在非常短时间内完毕,并且客户对系统的当前认识还是比較初步的,你还打算如何设计这个系统?

       2.某软件公司接了一个“网页+数据库”类型的项目,这类项目已经做过多个,但这次的业务却是新的,你如何考虑这个项目的设计?

       3.某软件公司已经成功的为n个医院做了管理系统,如今须要为一家新的大医院做类似这个系统,你会如何考虑这个系统的设计?

       4.你接到一个任务,要做一个即时战略游戏,目标是要在当前游戏市场找中杀出一条血路,你如何考虑这个游戏的设计?

     

       以上四个案例各种特点,分别代表4种“典型”:

       1.需求非常朦胧,工期非常紧,技术上基本上没有积累。

       2.需求是心的,但能够重用“网页+数据库”的技术架构。

       3.需求是类似的,技术架构也是类似的,相信你会直接重用之前的系统。

       4.这是一个需求创意和高技术含量的游戏,而游戏软件的需求和技术都是充满挑战的。

       上述4种情况,相信你採取的设计策略是不一样的,你可能会发现所谓的优秀设计没有固定的标准。

       通过你认为优秀设计的标准是什么?是“高效、可靠、易用、安全、可扩展、兼容性强、移植性强……“么,我认为软件设计应该随机应变,软件就应该设计出高性价比。

     

        优秀的设计应具备下面特点:

        1.优秀的设计都是需求驱动的,不熟悉需求就做出来的设计是不靠谱的

        2.优秀的设计应该是当前团队能理解能实现的,太超前的设计项目团队做不出来,这个设计仅仅能是摆设;

        3.优秀的设计应充分考虑当前各种限制条件,适当做出平衡,能保证达成项目的目标;

        4.优秀的设计能尽量减少项目的总体工作量,让整个项目更加可控。

     

       优秀的设计是须要从分析需求開始的;架构设计是全面考虑各种需求、项目的工期限制预算限制,还有项目组人员水平后综合做出来的一种平衡。

     

  • 相关阅读:
    磁盘分区对齐的重要性
    linux命令详解:jobs命令
    linux命令详解:df命令
    linux命令详解:cat命令
    <mvc:annotation-driven />注解意义
    maven install 时提示“程序包 javax.crypto不存在”
    Java 字典排序
    Linux查看用户登陆历史记录
    警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ..
    Eclipse启动tomcat 报“ A child container failed during start”
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4004739.html
Copyright © 2011-2022 走看看