网上有很多关于软件设计原则的说法,很精确,很官方,但是对于有些初学者来说可能是不知所云,到最后把自己给郁闷到了,学习软件应该是一件愉快的事情。

那么软件设计原则有哪些呢?

(1)可靠性

做出一个可靠的软件,跟女人找一个可靠的男人一样,女人找男人,需要男人品质好,人品好,靠谱,可信赖,可依靠,身材高大,等等。软件设计也是一样,在软件的设计阶段就要非常注意软件的可靠性,不要等到最后用的时候发现软件这里不行那里不行,或者说在使用软件过程中一旦发现问题还是可以恢复使用,不能直接崩溃。

(2)健壮性

这个健壮性其实有个英文叫做 robustness,这也是在建筑行业、土木工程行业通常用于描述一个建筑容错、容灾能力的一个词,映射到软件里面来意思也是一样,比如我们使用搜狗输入法的时候乱七八糟一通输入,还是照样能保持稳定,又例如在一些信息系统的输入框中输入系统不能接受的字段,系统能给出相应的提示,诸如此类,其实健壮性无法用语言精准表述,但是一个软件是否健壮,非常取决于软考开发和测试人员的水平。

(3)可修改性

这个比较好理解,意思就是不要写出一些乱七八糟的代码,没有注释,或者说功能模块之间交互错综复杂,逻辑不清,这样在软件版本升级变更的时候恐怕连本人都不知道怎么改了,何况是他人!

(4)容易理解

软件具备了可靠性和可修改性,才能谈得上容易理解,比如软件本身有比较简明的结构,设计人员可以把复杂的业务模型抽象成简单的软件模型实现,这都是需要很深的功力的,也是码农和工程师的区别。

(5)效率性

软件的效率性一般用程序的执行时间和所占用的内存容量来度量。在达到原理要求功能指标的前提下,程序运行所需时间愈短和占用存储容量愈小,则效率愈高。资源有限的情况下,软件运行的效率非常考验一个人的水平。

(8)标准化原则 

在结构上实现开放,基于业界开放式标准,符合国家和信息产业部的规范。说白了就是不要自己整一套接口或者规范,或者使用一些偏门的技术或者标准,到时候在系统集成或者功能扩展的时候就痛苦。

(9)先进性

满足客户需求,系统性能可靠,易于维护。

(10)可扩展性

软件设计完要留有升级接口和升级空间。对扩展开放,对修改关闭,意思是在不修改原有功能的情况下可以扩展新的功能。

转载于:https://blog.51cto.com/rudypine/1782675

软件设计原则和方法通俗理解相关推荐

  1. 软件设计原则(一)开闭原则(Open-Closed Principle, OCP)

    狭义理解:对扩展开发,对修改封闭 在学习设计模式之前,应该先对软件设计原则有一定的了解,设计模式在一定程度上是迎合软件设计原则而产生的,脱离了软件设计原则,设计模式是没有意义的. 开-闭原则(Open ...

  2. java 设计模式:软件设计原则、面向对象理论、23 种设计模式

    文章目录 软件设计原则 1.单一职责原则(Single Responsibility Principle) 2.开闭原则(Open Closed Principle) 3.里氏代换原则(Liskov ...

  3. Java设计模式第一章(软件设计原则)(学习笔记)

    3.1软件设计原则 为什么要有软件设计原则:在软件开发过程中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率,节约软件开发成 ...

  4. 面向对象软件设计原则【JAVA】(开闭原则、里氏代换、依赖倒转、接口隔离、迪米特法则、合成复用原则)

    软件设计原则[JAVA](开闭原则.里氏代换.依赖倒转.接口隔离.迪米特法则.合成复用原则) 1.开闭原则 2.里氏代换原则 3.依赖倒转原则 4.接口隔离原则 5.迪米特法则 6.合成复用原则 1. ...

  5. 设计模式-03(软件设计原则)

    软件设计原则                                                                                               ...

  6. 设计模式01 UML图,软件设计原则,创建型模式

    概述 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1995年,由 Erich Gamma.Richard Helm.Ralph Johnson 和 Joh ...

  7. 从零开始学习Java设计模式 | 软件设计原则篇:里氏代换原则

    在本讲中,我来为大家介绍一下软件设计原则里面的第二个原则,即里氏代换原则. 概述 首先,大家应该知道,里氏代换原则是面向对象设计的基本原则之一.那什么是里氏代换原则呢?里氏代换原则是指任何基类可以出现 ...

  8. UML图和软件设计原则

    笔记来源于黑马程序员但不仅仅是黑马 UML图和软件设计原则 UML图 2.1 类图概述 2.2 类图的作用 2.3 类图表示法 2.3.1 类的表示方式 2.3.2 类与类之间关系的表示方式 2.3. ...

  9. UML图及软件设计原则详解

    1.UML图 统一建模语言(Unified Modeling Language,UML)是用设计软件的可视化建模语言.它的特点是简单.统一.图形化.能表达软件设计中的动态与静态信息. UML从目标系统 ...

最新文章

  1. 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
  2. 如何让vm虚拟机和主机同时上网
  3. 用 Flask 来写个轻博客 (12) — M(V)C_编写和继承 Jinja 模板
  4. 深刻理解:反向代理服务器
  5. 史上最简单MySQL教程详解(进阶篇)之存储引擎介绍及默认引擎设置
  6. bootsrap 外边距_Bootstrap CSS 概览
  7. FireEye:GreedyWonk行动针对经济和外交政策网站
  8. ElasticSearch suggester
  9. linux 进程的 5 大段
  10. php能不能用MyBatis,mybatis的简单使用
  11. 程序员如何选择外包平台
  12. 腾讯bugly的使用,以及全局抓包配置
  13. ACT托管的CRM软件开发您的业务
  14. UI设计师和美工有哪些区别?
  15. 点餐推荐系统_自助点餐、自助收银…智慧餐厅的下一步又会是什么?
  16. 详解:S锁(读锁)和X锁(写锁)
  17. vue阻止浏览器默认事件
  18. html字符串导出word
  19. hexo 博客next主题集成gitment或者gitalk评论系统
  20. Downloading from maven-default-http-blocker的解决办法

热门文章

  1. ROS的学习(二十一)使用时间和TF
  2. IoC 容器和 Dependency Injection 模式[转]
  3. 初识 Proxysql
  4. Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口
  5. Python3基本数据类型(一、数字类型)
  6. matplotlib常用绘图方法【转】
  7. 配置 MVC3 时,403 404 错误
  8. Ubuntu下安装VirtualBox和Android 安装到虚拟机中
  9. python从语音生成MFCC特征
  10. 问题:anaconda 中 tensorflow 与tensorflow-gpu 在tf.image.resize_images()上的区别