软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的
代码
,形成软件的具体设计方案。软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,
分解
的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。而软件设计模式作为当代计算机软件开发而形成的一种全新的设计理念,软件设计模式在
计算机
的应用中显得越来越重要了。
软件设计是把许多事物和问题抽象起来,应用各种各样的
技术
和原理,并用它们足够详细的
定义
一个设备、一个程序或
系统
的物理实现的过程。这个步骤是由多方面的直觉与判断力来
共同决定
的。一个对软件的
全局观点
。
系统
通过逐步求精使得设计陈述逐渐接近
源代码
。这里有两个基本步骤,第一步是
初步设计
(Preliminary design) ,关注于如何将需求转换成
数据
和软件框架。
第二步是详细设计(Detail design),关注于将框架逐步求
精细化
为具体的
数据结构
和软件的算法表达。发生中的设计行为、
数据
、算法和程序设计都
需要
由现代程序所需的界面设计这一清晰的
行为
来结合起来。界面设计(Interface design) 建立程序布局和
人机交互
机制
。贯穿
设计过程
的
质量
由一系列的正式技术评定(formal technical reviews)或设计排演(design walkthroughs)来评价。
-
软件设计包括软件的结构设计,数据设计,接口设计和过程设计。
-
结构设计:定义软件系统各主要部件之间的关系。
-
数据设计:将
模型
转换成数据结构的定义。
-
接口设计:软件内部,软件和操作系统间以及软件和人之间如何
通信
。
-
过程设计:系统结构部件转换成软件的过程描述。
-
设计对于分析模型应该是可跟踪的:软件的模块可能被映射到多个
需求
上。
-
设计结构
应该
尽可能的
模拟
实际问题。
-
设计应该表现出一致性。
-
不要把设计当成编写代码。
-
在创建设计时就
应该
能够评估质量。
-
评审设计以减少语义性的错误。
-
设计应该
模块化
,将软件逻辑地划分为元素或子系统,并包含数据、体系结构、接口和构件的清晰表示。
软件设计的任务是从
软件需求
规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的
代码
,形成软件的具体设计方案。软件设计是一种在设计者计划中通过诸如软件如何满足
客户
的需要,如何才能容易地实现和如何才能方便地扩展功能以适应新的
需求
等不同的考虑的
创造性
活动
。软件设计有很多设计方法或技巧,通过借鉴他人的经验让这件事完成得更好。同时,设计者们也可以利用成熟的标记法将他们的想法和
计划
传达给开发者以及其他
相关
人员,使他们更好地了解这个系统。