软件设计软件设计概述

件设计是一个过程,通过这个过程,创建一个软件工件的规范,目的是实现目标,使用一组原始组件并受到约束。[1]软件设计可以指“所有涉及概念化、框架化、实现、调试的活动,最终修改复杂系统“或”遵循需求规范和编程之前的活动,如一个程式化的软件工程过程.

软件设计通常涉及解决问题和规划软件解决方案。这包括底层组件和算法设计以及高层架构设计。

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

软件分析和设计的主要区别在于,软件分析的输出包含要解决的较小问题。此外,在不同的团队成员或小组中,分析的设计不应该有很大的不同。相比之下,设计的重点是能力,因此同一问题的多个设计可以也将存在。根据环境的不同,设计通常会有所不同,无论是从可靠的框架创建的,还是使用合适的设计模式实现的。设计实例包括操作系统、网页、移动设备甚至新的云计算模式。

软件设计既是一个过程又是一个模型。设计过程是一系列的步骤,使设计者能够描述软件的各个方面。创造性的技能,过去的经验,对“好”软件的理解,以及对质量的全面承诺,都是成功设计的关键因素。然而,需要注意的是,设计过程并不总是一个简单的过程;设计模型可以与建筑师的房屋规划相比较。它首先表现出要建造的东西的整体性(例如,房子的三维效果图);慢慢地,这个东西被提炼出来,为建造每个细节(例如,管道铺设)提供指导。同样,为软件创建的设计模型提供了计算机软件的各种不同视图。基本设计原则使软件工程师能够在设计过程中导航。Davis[3]提出了一套软件设计原则,这些原则在下面的列表中进行了修改和扩展:

设计概念为软件设计者提供了一个可以应用更复杂方法的基础。一套基本的设计概念已经形成。具体如下:

在他的对象模型中,GradyBooch提到抽象、封装、模块化和层次结构是软件设计的基本原则。[4]缩写PHAME(层次结构、抽象、模块化和封装的原则)有时被用来指代这四个基本原则。[5]

在一个软件的设计中有许多方面需要考虑。每一个考虑因素的重要性都应该反映出软件所要达到的目标和期望。其中一些方面是:

建模语言是一种人工语言,可以用来表达由一组一致的规则定义的结构中的信息、知识或系统。这些规则用于解释结构中的组件。建模语言可以是图形语言或文本语言。软件设计的图形建模语言示例如下:

软件设计师或架构师可能会发现一个设计问题,这个问题过去曾被其他人访问过,甚至可能被其他人解决过。描述常见问题解决方案的模板或模式称为设计模式。这种模式的重用有助于加快软件开发过程

在软件中使用“设计”一词的困难在于,在某种意义上,程序的源代码就是它所生成的程序的设计。在一定程度上,这是真的,“软件设计”是指设计的设计。EdsgerW.Dijkstra将这种语义层次的分层称为计算机编程的“根本新奇之处”[9],DonaldKnuth用他编写TeX的经验来描述在实现之前试图设计程序的徒劳:

如果我仅仅指定了TEX,而没有完全参与它的初始实现,它将是一个彻底的失败。实施过程不断地让我产生意想不到的问题,并对如何改进原始规范有了新的见解

软件设计文档可以在计算机编程之前进行审查或呈现,以允许对约束、规范甚至需求进行调整。重新设计可能发生在程序模拟或原型审查之后。可以在编程过程中设计软件,而无需进行计划或需求分析,[11],但对于更复杂的项目,这将被认为是不可行的。编程前的独立设计允许多学科设计师和主题专家(SME)与高技能程序员协作,开发既有用又技术可靠的软件。

THE END
1.什么是软件设计软件设计简介软件设计的优势以及应用嘲软件设计是指在软件开发过程中,根据软件需求和规格说明书,制定软件系统的设计方案,包括软件架构、模块设计、接口设计、数据结构设计等,为后续的编码、测试和维护工作提供指导和支持。 什么是软件设计? 软件设计是指在软件开发过程中,根据软件需求和规格说明书,制定软件系统的设计方案,包括软件架构、模块设计、接口设计、https://cloud.tencent.com/developer/techpedia/1892
2.软件工程知识点总结(4):概要设计软件概要设计1 设计的定义:软件设计解决的是“怎么做”的问题。软件设计是将需求描述的“做 什么”问题变为一个实施方案的创造性的过程。 概要设计从需求出发,从总体上描述系统架构以及应该包含的组成要素(模块), 同时描述各个模块之间的关联。 主要包括体系结构设计、构件(模块)设计、接口(界面)设计、数据设计 体系结构设计:确https://blog.csdn.net/cxx0316/article/details/142052088
3.软件设计包括哪些方面主要包括以下方面:1、结构设计:定义软件系统各主要部件之间的关系。2、数据设计:将模型转换成数据结构的定义。3、接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信。4、过程设计:系统结构部件https://edu.iask.sina.com.cn/jy/2vHzrAsCbbh.html
4.软件设计包括软件架构设计和软件详细设计在软件开发过程中,软件设计是至关重要的一环,它承上启下,将需求转化为实际的系统结构和功能实现。软件设计又可以细分为软件架构设计和软件详细设计两大部分,这两部分共同构成了软件设计的骨架和灵魂。 一、软件架构设计 软件架构设计是软件设计的宏观层面,它主要关注的是系统的整体结构、组件之间的关系以及系统与外部https://blog.51cto.com/u_16236585/11251996
5.软件概要设计包括哪些方面的内容?软件概要设计主要包括系统架构设计、数据结构设计、模块设计、接口设计、算法设计、用户界面设计、安全设计和性能设计。https://www.mbalib.com/ask/question-86a4886a7aa1412df93cd37805829d71.html
6.软件界面设计的主要内容包括哪些?IT资讯软件界面设计的主要内容包括哪些? 一款完整的软件界面设计主要包括软件启动界面设计、软件主界面设计、软件框架设计、菜单栏设计、界面按钮设计、界面图标设计和安装包装完成。 1、软件启动界面设计 软件启动界面设计也叫软件启动封面设计,在设计时应使软件启动封面最终为高清晰度的图像,如软件启动封面需在不同的平台、http://www.zpedupx.com/kc_desc/8617.html
7.软件设计规范包含了哪些内容?软件设计规范包含了命名规范、代码风格规范、模块化设计规范、性能优化规范、安全性规范、文档设计规范。在这个数字化的时代,软件已经贯穿了我们生活的每一处角落。无论是社交娱乐、工作办公还是生产制造,都离不开软件的帮助。因此,制定和遵守严格的软件设计规范,对于我们打造安全、稳定、高效的软件产品,为用户提供优质的https://js.design/special/article/software-design-specifications.html