软件设计是什么?

软件设计时一系列创造活动,是借助编程语言以简单和优雅的方式表达并解决现实需求的一门科学和艺术。
- 软件设计是一门技术

数据结构,组成原理,操作系统,编程语言…

科学的特点是有规律可循,因此软件设计者需要掌握相关的专业知识。而这些科学知识通常容易被量化和评估。
- 软件设计是一门艺术

并不是技术知识的简单堆砌,而是分析,抽象,取舍…

一个好的设计必然给人带来没敢,也让人值得欣赏。

软件设计的意义(架构的意义)

如下图所示,现代软件设计包含了功能实现、部署、代码扩展性、代码维护性、代码复用性、用户交互。那么为什么需要考虑那么多呢?

这里写图片描述

关于软件设计的问题

1.是不是开发前一定需要进行软件设计?不能马上编写代码吗?

当软件结构复杂的时候,如果直接编写代码的话,会造成后期一系列的问题,而这个时候软件产品的维护和扩展举步维艰、难以测试和差错,从而直接影响项目的开发效率和产品的最终指令,以及工程师的生活质量。

2.用户需求,需要实现什么功能?使用什么用户交互方式?

软件开发时根据用户所需的功能进行设计开发的。我们需要以用户为中心来思考设计功能的实现。

3.如何部署到用户的设备上去呢?

我们需要考虑软件的部署是因为我们开发使用的设备与最终用户使用的设备可能不一样。所以我们需要考虑软件部署的问题。不能出现开发和测试过程时候软件可以正常运行,到了用户设备时不能正常运行的现象。

4.为什么要考虑扩展性、维护性、复用性?

a)我们需要考虑代码的扩展性是因为,到产品需要升级或者功能增加的时候,我们是否可以很快的吧功能添加上去?
b)当开发人员离职时,后面接手工作的人员是否可以很快的熟悉这份代码并且容易进行维护?
c)当有新项目需要开发时,我们是否可以重复使用这个项目的代码呢?
这些都需要在软件设计的时候考虑的要点。

软件设计的特点

  • 软件设计是一个塑造模型(概念)的过程
  • 软件设计是一个取舍的过程
  • 软件设计是一个分而治之的过程
  • 软件设计时一个在理性范围内追求完美的过程

猜你喜欢

转载自blog.csdn.net/small_prince_/article/details/80646217