什么是软件设计呀?

2023-08-24 09:28:25 来源:网友发布 作者:网友发布

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

- 软件设计是一门技术

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

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

- 软件设计是一门艺术

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

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

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

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

关于软件设计的问题

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

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

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

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

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

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

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

a)我们需要考虑代码的扩展性是因为,到产品需要升级或者功能增加的时候,我们是否可以很快的吧功能添加上去?

b)当开发人员离职时,后面接手工作的人员是否可以很快的熟悉这份代码并且容易进行维护?

c)当有新项目需要开发时,我们是否可以重复使用这个项目的代码呢?

这些都需要在软件设计的时候考虑的要点。

软件设计的特点

软件设计是一个塑造模型(概念)的过程

软件设计是一个取舍的过程

软件设计是一个分而治之的过程

软件设计是一个在理性范围内追求完美的过程

软件设计是为一组或多组问题设想和定义软件解决方案的过程。软件设计的主要组成部分之一是软件需求分析(SRA)。 SRA是软件开发过程的一部分,列出了软件工程中使用的规范。如果软件是“半自动”或以用户为中心的,则软件设计可能涉及用户体验设计,从而产生情节提要以帮助确定那些规格。如果软件是完全自动化的(意味着没有用户或用户界面),则软件设计可能与流程图或描述计划中的事件序列的文本一样简单。还有一些半标准方法,例如统一建模语言和基本建模概念。无论哪种情况,计划的一些文档通常都是设计的产物。此外,取决于用于设计的技术的可用性,软件设计可以是独立于平台或特定于平台的。

软件分析和设计之间的主要区别在于,软件分析的输出包含要解决的较小问题。此外,在不同的团队成员或小组之间,分析的设计不应有太大差异。相反,设计侧重于功能,因此可以并且将存在针对同一问题的多个设计。根据环境的不同,设计通常是不同的,无论是从可靠的框架创建还是以适当的设计模式实施。设计示例包括操作系统,网页,移动设备,甚至是新的云计算范例。

同类最新

(c)2008-2023  Www.QNWTOP.Com All Rights Reserved