三九宝宝网宝宝教育智力培养

什么是软件设计

12月23日 编辑 39baobao.com

[重构与模式敏捷软件开发领域驱动设计企业应用架构模式应当]上述这些东西基本上都是提取内核的精华,王怀民,需在工程师职位干上5年+1,先把代码写对,俗话说.《敏捷软件开发》Robert C,周斌 译 不解释 至于学习方法.《重构与模式》Joshua Ker...+阅读

软件设计出现的较早。由于早期程序变得越来越大,那么模块化程序,让不同的开发人员相互配合就形成了一个主题。多个程序员之间要遵从一定的规范进行编程,然后相互调用,最终使用各个模块进行组合。这种最早的形式也伴随着新的面向过程语言的出现。

软件设计的原始目的是非常简单的,就是我们要去理解一个完成的功能(软件的雏形),然后把不同的功能分化成细节的模块,然后使用一个团队进行协同开发。在这个设计活动中又找出了诸多的开发方法论(如面向过程,面向对象及现在的面向切片等等),同时也发现了诸多开发的模型(如瀑布模型,原型模型,极限编程及敏捷开发等等)。进而形成一个涉及到管理、设计等方面的细化工作,形成统一的软件工程学。同时对于软件设计也相当细化和规范(如算法、时空代价——占用空间及占用运算时间的代价)。所以现在基本上软件设计就是根据系统分师所指派的横块内进行细分(更小的模块),不同的方法论下,不同的开发模型下将功能块分为更细致的小模块(如面向对象的类,结构等)完成更细致的功能。

基本上来说,软件设计与程序设计被混为一谈,狭义的软件设计指就是程序设计,重点在于算法上的设计;广义上的软件设计其实就是对系统进行的设计,要考虑到将来软件的部署及要部署的硬件(包括软件方面与硬件方面)。也就是说,程序员不管是在算法设计上还是程序设计上都是称自己软件设计,而系统分师也在设计整个系统也称为软件设计。这是由于习惯的问题而出现的两种理解——系统设计师与分析师设计的是整个软件系统,涉及内容巨大,从部署到软件性能功能移植性等各个方面的考虑,其目的就是构造一个当前适用并具有一定前瞻性、扩展性的软件系统来支撑整个或大部分公司运行的系统。他们再把系统细分为子系统以对应公司或系统中某个相对独立的系统功能。软件设计师把自身分派到的子系统任务再进行细分,实现不同的层与模块的调用(子系统可以理解为可以相互配合的一个完整的某个方面的功能),其目的就是将理解系统进而设计为可以开发的或进行开发准备的工作;而高程与程序员则对模块功能进行分析,然后进入到开发,开发出相应的功能模块。他们所谓的软件设计设计模块内调用层次(如分层开发等),设计算法与程序以达到指定的功能要求或非功能要求。

所以软件设计在不同的范围内有不同的理解,出现这种混淆的原因也是由于软件规模的差别——让你构造一个系统时考虑的内容与构造一个工具软件所考虑的内容显然是不同的。而有些需求是一个公司的整个系统或子系统,而有些只是让你开发一个工具或一个简单的网站而已。所以各层次对于软件设计的理解也不尽相同。

基于上来说软件设计从大角度出发,其目的就是把理解变为可编程的文档。或者可以认为包括在需求分析之内的。也正是因为如此,虽然我们把软件设计挂在嘴上,但软件工程的流程中其实并不包括名词的严格定义。

软件工程中,我们按需求分析阶段、设计阶段、开发编程阶段与部署维护四个大的阶段。需求分析阶段包含可行性分析,需求采集,需求分析(包含功能需求与非功能需求)几个过程,设计阶段包含概要设计、详细设计几个过程,而编码开发阶段就编码、测试(包含单元测试,集成测试等),而部署方面包含部署、验证、维护、迁移等各个过程,事实上对于软件设计的这个不太好的定义规避掉了。所以软件设计方面的广义已逐渐被软件程所取代。

以下为关联文档:

论述中国传统设计思想的美学价值你好,这个问题我有回答过! 首先就要说一下中国传统美学的价值,从美学视角论中国传统心理护理思想及其现代价值 从美学视角看,中国传统心理护理思想具有美学的特征,表现在儒家"下学...

win8系统有些软件不兼容怎么办方法/步骤 1、选择不兼容软件的exe运行文件或者是快捷方式。(我以VC++6.0为例,相信很多朋友在win7上面都没有成功的运行过VC++6.0吧) 2、右键选择——兼容性疑难解答。 3、选择...

Win8软件不兼容怎么办1、在无法兼容运行的程序上点击右键,选择“兼容性疑难解答”。如下图所示: 2、选择“尝试建议的设置”。如下图所示: 3、选择“测试程序”如果已经可以正常安装或使用,点击“...

幼儿园大班数学汇报课教案设计大嘴巴比多少大嘴巴比多少 活动目标: 1.第一层次:能正确判断10以内数量的多少,并会用“〈”“〉”表示其关系; 第二层次:尝试用“〈”“〉”表示10以内数量的多少; 第三层次:在成人指导下,学习判...

什么方法或软件能查出隐藏软件隐藏的游戏或程序不懂注册表就按以下方法慢慢找。 1,C:\Documents and Settings\用户名\Recent 文件夹里面最近使用的文件有没有游戏程序。如果有,可以右键 属性 查看具体位置。 2,如果按1做没...

构件化的软件开发方法是什么与传统的软件开发方式相比,基于构件的软件开发方法有什么突破呢? 一、体系结构 软件体系结构代表了系统公共的高层次的抽象,它是系统设计成败的关键。其设计的核心是能否使用重...

软件设计设计方法论设计过程中用以促成模块化设计的四个区域:模块(Module)、数据(Data)、体系(Architectural)和程序(Procedural)设计。 模块设计(Modular design) 降低了复杂性、便于修改、且使得支持 系...

三维设计软件中的映射是什么意思1.软件开发的本质就是要实现“高层概念”到“低层概念”的映射 2.统一过程的突出特点体现在如下三个方面:用况驱动、以构架为中心、迭代和增量 3.面向对象的原则:抽象、多态、...

详细介绍软件工程将来的方向和从事的行业如做web开发是干什么软件就是控制硬件的代码,所有需要控制的硬件都是软件的行业。然后按照硬件的难度来划分,最最最简单的硬件就单片机了,比如遥控器、电子表、遥控玩具这些,控制单片机的软件往往也...

推荐阅读
图文推荐