软件设计:关于软件设计的几点思考

本文探讨了软件设计的本质,提出了源代码就是设计的观点,解释了编程与软件设计的关系。文章还涉及软件危机和软件质量,引用了ISO/IEC 9126软件质量模型,并介绍了面向对象设计的5个基本原则:单一职责原则、开放-封闭原则、里氏替换原则、依赖倒置原则和接口隔离原则,旨在促进软件设计的理解与实践。
摘要由CSDN通过智能技术生成

平时我们常讲“软件设计”,这个词好像成了一个习惯用语。但是什么是软件设计,这样一个本质问题,要说出所以然来还真的是有点不容易。就好比这样一个问题:软件开发者就是工程师吗?如果没有弄清什么是软件设计,回答起来同样令人头痛。

但是在这篇文章中我并不计划就“什么是软件设计”这一问题作深入的讨论,我打算在下文中介绍以下三个方面的内容:1、什么是软件设计?2、软件危机与软件质量。3、面向对象软件设计原则。

一、什么是软件设计?

关于“什么是软件设计”这样一个问题,Jack W.Reeves 于14年前(1992年),就在其撰写的论文——《What is Software Design》中给出了其个人观点——“源代码就是设计”。这一思想将软件工程活动与传统的工程活动区分开来,传统的工程活动中设计过程中产生的仅仅只是设计文档,构建过程完全依赖于设计文档;而软件的设计活动将源代码的编写也包含了进来,其不仅仅只是生产文档。

这一理论听起来似乎有些抽象,不妨来个类比:建筑设计行业中,建筑设计图的最终完成标识了设计过程的终结,但是软件设计过程能够用软件设计文档的完成作为其结束标识吗?显然这是一个不可能的答案。软件设计的复杂性与不确定性我想大家都深有体会,很多时候文档与代码之间的修改是一个反复的过程。因为需求分析阶段中我们不可能全部得到客户心里真正想要的是什么东西。即使知道客户想要的是什么,同时也得随时准备应付客户不断变化的新的要求。这是一场残酷的战争,战争没有结束的时候谁也不能确信他就是真正的赢者。

这一理论回答了“软件开发者就是工程师吗?”这一问题,揭示了编程与程序之间的关系:编程不是构建软件,而是软件设计。它将编码这一阶段包含在软件设计过程中࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值