软件设计方案与体系结构

上传人:s****a 文档编号:182638920 上传时间:2023-01-26 格式:DOCX 页数:4 大小:13.01KB
返回 下载 相关 举报
软件设计方案与体系结构_第1页
第1页 / 共4页
软件设计方案与体系结构_第2页
第2页 / 共4页
软件设计方案与体系结构_第3页
第3页 / 共4页
点击查看更多>>
资源描述
数据结构数据结构指的是数据之间的相互关系,即数据的组织形式。数据结构是计算机存储、组 织数据的 方式。数据结构是指相互之间存在一 种或多种特定关系的数据元素的集合 。通 常情况下,精心选择的数据结构 可以带来更高的运行或者存储效率。 数据结构往往同高效 的检索算法和索 引技术有关。我们把数据结构设计、数据库设计、甚至数据文件设计等统一称为数据模型设计。 在数据模型设计中有一个重要概念:持久数据操作,它包括写入、查询、更新和删除四 类基本操作以及由它们复合而成的业务数据操作。在很多软件系统中,数据是其核心,因此,对数据元素的格式、结构、访存、表示等机 制进行良好建模和优化,是提高软件设计质量和系统性能的基础,对软件系统的应用具有重 要意义。面向组件设计面向组件思想是在软件规模扩大,复杂度上升的背景下,以面向对象为基础而提出的一 种软件设计思想。可以把它理解为一种更粗粒度的面向对象,其粒度一般大于对象,但具体 要到什么程度,又可以根据实际情况来决定。这种思想以组件为基础,强调“服务”的概念。在面向组件开发中,应用程序是由一系列可以互相交互的二进制模块组合而成的。一个具体的二进制组件可能并不能完成什么工作。有些组件是为了提供一些常规服务而 编写的,例如通信的封装或者文件访问组件。也有一些是为了某些特定应用而专门开发的。 一个应用程序的设计者可以通过把这些不同的组件提供的功能粘合在一起来实现他们需要 的商业逻辑。很多面向组件的技术例如:COM、J2EE、CORBA和.NET都为二进制 组件提供了的无缝链接的机制。而唯一的不同就是你需要在组件通信上花费的力气。一般的 多用于对dll,lib的处理上。简单说,就是QQ、迅雷和IE捆绑起来就叫面向组件。面向组件具有以下特点:低耦合性,高重用性,高互操作性,进程的透明性,语言和开发环 境的独立性软件体系结构风格软件体系结构风格是软件设计人员在长期的软件设计过程中总结出来的一些规律性的 东西,经过提炼总结而成。软件体系结构风格是软件体系结构设计上的模式,因此可以看作 是一种广义的软件设计模式,但一般不认为是侠义的软件设计模式。定义:在构件和连接子的层次描述的可重复使用的软件设计问题解决方案。管道/过滤器风格:一个显著特征是:系统中构件之间通过数据流松散耦合。也就是说, 构件之间的依赖仅仅是数据流,而不是通常的接口函数调用火消息传递。编译器采用的也是 管道/过滤器风格层次风格:这种设计风格便于将复杂的系统进行分解;同时也便于构件替换:只要保持 接口一致,就可以将某一层的软件替换,而不会影响到系统的其它部分。层次风格的优点是 结构清晰、可替换性好、便于控制复杂性;但也有缺点,如效率低。客户/服务器风格:从向外提供服务的构件出发,沿着连接关系递次搜索各构件和连接 子,如果形成的拓扑结构是一棵倒置的树,那么这个系统的体系结构就是客户/服务器风格 的,这种风格使得服务功能的实现很集中,便于系统实现,因而得到广泛使用。软件开发过程模型软件生存周期包含了软件从概念形成到最终退役的所有活动,而对于一个具有的软件工 程,开发人员更加关注的是开发过程中包含的活动以及其具体安排。软件开发是一个复杂的 过程,尤其是在多数工程开发中,不能一次就全部、精确地生成需求规格说明,因此软件开 发各个阶段之间的关系极少是严格线性顺序的,相反应该是带有反馈的迭代过程。这种对软 件开发中对所含活动的安排方式,可以用软件开发过程模型表示。它给出了软件开发中各个 活动之间的关系,它是软件开发过程的概括,是软件工程的重要内容。它能为软件工程管理 提供里程碑和进度表,为软件开发过程提供原则和方法。经典的软件开发模型大体可分为三种类型:第一种是以软件需求完全确定为前提的瀑布 模型;第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如原型模 型、螺旋模型等;第三种是以形式化开发方法为基础的变换模型。软件体系结构与算法结构区别与联系软件体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软 件元素之间的关系。软件体系结构是软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系, 以及相关的设计与演化原则。软件体系结构的风格(style)描述某一特定领域中系统组织方式的惯用模式,反映了领 域中众多系统所共有的结构和语义特性。算法结构的三种结构顺序结构:按从上到下的顺序进行。选择结构:先根据条件作出判断,再决定执行哪一种操作,必须包含判断框。 循环结构:从某处开始,按照一定条件,反复执行某一处理步骤,有两类:直到和当型 循环结构。软件开发过程模型与软件文档模型区别与联系 软件生命周期包含了软件从概念形成到最终退役的所有活动,而对于一个具体的软件工 程,开发人员更加关注的是开发过程中包含的活动以及其具体安排。软件开发过程模型给出了软件开发中各个活动之间的关系,它是软件开发过程的概括, 是软件工程的重要内容。能为软件工程管理提供里程碑和进度表,为软件开发过程提供原则和方法软件开发过程模型主要有:瀑布模型(V模型、喷泉模型)、螺旋模型、原型模型(锯 齿模型、快速原型)、构件组装模型(增量模型)、统一软件过程RUP模型软件体系结构风格与设计模式区别与联系软件体系结构风格是软件设计人员在长期的软件设计过程中总结出来的一些规律性的 东西,经过提炼总结而成。软件体系结构风格是软件体系结构设计上的模式,因此可以看作 是一种广义的软件设计模式,但一般不认为是侠义的软件设计模式。主要区别在于:软件体 系结构风格描述系统整体结构框架上的特点,粒度更大;而软件设计模式则更加面向具体问 题,指出的是一个在更小的粒度上的设计特点。软件设计模式和软件体系结构风格都是可重复使用的软件设计问题解决方案,只不过前 者描述的是类和对象层次的问题、粒度大小,而后者描述的是构件和连接子层次的问题、粒 度更大。设计模式是对通用设计问题的重复解决方案。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。 软件框架是 整个或部分系统的可重用设计模式比框架更加抽象 框架是模式的特例化设计模式被实现成为框架后,可以极大的减轻从设计到实现的鸿沟 利用了模式的框架比没有利用模式的框架更容易理解、更能被设计与实现重用 通常成 熟的框架包含了多种设计模式一个框架不仅可以具体实现一个模式,还可以具体的实现多个模式 设计模式与风格两 者为近义词,通常情况下可以互相通用风格主要是指大的,宏观的设计。模式既可宏观,又可微观。抽象的概念抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。要抽象, 就必须进行比较,没有比较就无法找到共同的部分。共同特征是指那些能把一类事物与他类事物区分开来的特征,这些具有区分作用的特征 又称本质特征。因此抽取事物的共同特征就是抽取事物的本质特征,舍弃不同特征。所以抽 象的过程也是一个裁剪的过程,不同的、非本质性的特征全部裁剪掉了。所谓的共同特征,是相对的,是指从某一个刻面看是共同的。所以在抽象时,同与不同, 决定于从什么角度上来抽象。抽象的角度取决于分析问题的目的。 软件工程过程中的每一步部可以看作是对软件解决方法的抽象层次的一次细化。在进行软件 设计时,抽象与逐步求精、模块化密切相关,帮助我们定义软件结构中模块的实体,由抽象 到具体地分析和构造出软件的层次结构,提高软件的可理解性“抽象”是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,而忽略 那些低层次的细节。“逐步求精” 可视为一种早期的自顶向下设计策略,其主要思想是,针对某个功能的 宏观描述用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能用程序语言描述的 算法实现为止。在软件设计过程中,抽象与逐步求精是一般都是结合起来进行应用。列举抽象实例假如我们开发一个系统时需要对员工进行建模,员工包含3 个属性: 姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另外还有一个员工的属性。 请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。 员工类: name id pay经理类:继承了员工,并有自己特有的bonus.abstract class Employeeprivate String name。private String id。private double pay。Employee(String name,String id,double pay)this.name=name。this.id=id。this.pay=pay。public abstract void work()。class Manager extends Employeeprivate double bonus。Manager(String name,String id,double pay,double bonus)super(name,id,pay)。注意这里调用父类的构造函数;this.bonus=bonus。public void work()System.out.println(manager work)。class emplo extends Employeeemplo(String name,String id,double pay)super(name,id,pay)。public void work()System.out.println(employ work)。class AbDemopublic static void main(String args)Manager manager=new Manager(zhang,JL01,5000,10000)。manager.work()。内聚与耦合内聚是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密 程度。耦合是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂性 进入或调用模块的位置以及通过接口传送数据的多少等。追求高内聚、低耦合。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!