软件设计与体系结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计与体系结构
数据结构
数据结构指的是数据之间的相互关系,即数据的组织形式。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
我们把数据结构设计、数据库设计、甚至数据文件设计等统一称为数据模型设计。
在数据模型设计中有一个重要概念:持久数据操作,它包括写入、查询、更新和删除四类基本操作以及由它们复合而成的业务数据操作。
在很多软件系统中,数据是其核心,因此,对数据元素的格式、结构、访存、表示等机制进行良好建模和优化,是提高软件设计质量和系统性能的基础,对软件系统的应用具有重要意义。
面向组件设计
面向组件思想是在软件规模扩大,复杂度上升的背景下,以面向对象为基础而提出的一种软件设计思想。可以把它理解为一种更粗粒度的面
向对象,其粒度一般大于对象,但具体要到什么程度,又可以根据实际情况来决定。这种思想以组件为基础,强调“服务”的概念。
在面向组件开发中,应用程序是由一系列可以互相交互的二进制模块组合而成的。
一个具体的二进制组件可能并不能完成什么工作。有些组件是为了提供一些常规服务而编写的,例如通信的封装或者文件访问组件。也有一些是为了某些特定应用而专门开发的。一个应用程序的设计者可以通过把这些不同的组件提供的功能粘合在一起来实现他们需要的商业逻辑。很多面向组件的技术——例如: COM 、
J2EE 、 CORBA 和 .NET 都为二进制组件提供了的无缝链接的机制。而唯一的不同就是你需要在组件通信上花费的力气。一般的多用于对
dll,lib的处理上。
简单说,就是QQ、迅雷和IE捆绑起来就叫面向组件。
面向组件具有以下特点:低耦合性,高重用性,高互操作性,进程的透明性,语言和开发环境的独立性
软件体系结构风格
软件体系结构风格是软件设计人员在长期的软件设计过程中总结出来的一些规律性的东西,经过提炼总结而成。软件体系结构风格是软件体系结构设计上的模式,因此可以看作是一种广义的软件设计模式,但一般不认为是侠义的软件设计模式。
定义:在构件和连接子的层次描述的可重复使用的软件设计问题解决方案。
管道/过滤器风格:一个显著特征是:系统中构件之间通过数据流松散耦合。也就是说,构件之间的依赖仅仅是数据流,而不是通常的接口函数调用火消息传递。编译器采用的也是管道/过滤器风格
层次风格:这种设计风格便于将复杂的系统进行分解;同时也便于构件替换:只要保持接口一致,就可以将某一层的软件替换,而不会影响到系统的其它部分。层次风格的优点是结构清晰、可替换性好、便于控制复杂性;但也有缺点,如效率低。
客户/服务器风格:从向外提供服务的构件出发,沿着连接关系递次搜索各构件和连接子,如果形成的拓扑结构是一棵倒置的树,那么这个系
统的体系结构就是客户/服务器风格的,这种风格使得服务功能的实现很集中,便于系统实现,因而得到广泛使用。
软件开发过程模型
软件生存周期包含了软件从概念形成到最终退役的所有活动,而对于一个具有的软件项目,开发人员更加关注的是开发过程中包含的活动以及其具体安排。软件开发是一个复杂的过程,尤其是在多数项目开发中,不能一次就全部、精确地生成需求规格说明,因此软件开发各个阶段之间的关系极少是严格线性顺序的,相反应该是带有反馈的迭代过程。这种对软件开发中对所含活动的安排方式,可以用软件开发过程模型表示。它给出了软件开发中各个活动之间的关系,它是软件开发过程的概括,是软件工程的重要内容。它能为软件工程管理提供里程碑和进度表,为软件开发过程提供原则和方法。
经典的软件开发模型大体可分为三种类型:第一种是以软件需求完全确定为前提的瀑布模型;第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如原型模型、螺
旋模型等;第三种是以形式化开发方法为基础的变换模型。
软件体系结构与算法结构区别与联系
软件体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系。
软件体系结构是软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则。
软件体系结构的风格(style)描述某一特定领域中系统组织方式的惯用模式,反映了领域中众多系统所共有的结构和语义特性。
算法结构的三种结构
顺序结构:按从上到下的顺序进行。
选择结构:先根据条件作出判断,再决定执行哪一种操作,必须包含判断框。
循环结构:从某处开始,按照一定条件,反复执行某一处理步骤,有两类:直到和当型循环结构。
软件开发过程模型与软件文档模型区别与联系
软件生命周期包含了软件从概念形成到最终退役的所有活动,而对于一个具体的软件项目,开发人员更加关注的是开发过程中包含的活动以及其具体安排。
软件开发过程模型给出了软件开发中各个活动之间的关系,它是软件开发过程的概括,是软件工程的重要内容。
能为软件工程管理提供里程碑和进度表,为软件开发过程提供原则和方法
软件开发过程模型主要有:瀑布模型(V 模型、喷泉模型)、螺旋模型、原型模型(锯齿模型、快速原型)、构件组装模型(增量模型)、统一软件过程RUP模型
软件体系结构风格与设计模式区别与联系软件体系结构风格是软件设计人员在长期的软件设计过程中总结出来的一些规律性的东西,经过提炼总结而成。软件体系结构风格是软件体系结构设计上的模式,因此可以看作是一种广义的软件设计模式,但一般不认为是侠义的软件设计模式。主要区别在于:软件体系结构风格描述系统整体结构框架上的特点,粒度更大;而软件
设计模式则更加面向具体问题,指出的是一个在更小的粒度上的设计特点。
软件设计模式和软件体系结构风格都是可重复使用的软件设计问题解决方案,只不过前者描述的是类和对象层次的问题、粒度大小,而后者描述的是构件和连接子层次的问题、粒度更大。
设计模式是对通用设计问题的重复解决方案。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。软件框架是整个或部分系统的可重用设计
模式比框架更加抽象框架是模式的特例化
设计模式被实现成为框架后,可以极大的减轻从设计到实现的鸿沟
利用了模式的框架比没有利用模式的框架更容易理解、更能被设计与实现重用通常成熟的框架包含了多种设计模式
一个框架不仅可以具体实现一个模式,还可以具体的实现多个模式设计模式与风格两者为近义词,通常情况下可以互相通用
风格主要是指大的,宏观的设计。模式既可宏