您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 从需求定义到软件体系结构
火龙果整理uml.org.cn2020/1/2712.2从需求定义到软件体系结构火龙果整理uml.org.cn2020/1/272什么是“工程”?定义有很多,通常来说:用最少的代价解决问题......目的是处理实际的难题......以科学知识为手段......建造工具......服务于人类目标:使普通人能做以前只有专家圣手才能做的事情火龙果整理uml.org.cn2020/1/273工程的进化火龙果整理uml.org.cn2020/1/274工程化的步伐手工(Craft)商业(Commerical)工程(ProfessionalEngineering)行家里手和业余天才熟练的工匠受过系统教育的专业人员直觉与强力既定程序分析与理论偶然的进步注重实效地优化以科学为指导地升级换代不经意的推广言传身教专业教育课程奢侈地使用原料注重成本与原料利用原料多次利用生产是为了使用而不是出售为销售而生产市场份额火龙果整理uml.org.cn2020/1/275规范化循环专门的解决方法土方法规范化模型与理论新的问题实践提高火龙果整理uml.org.cn2020/1/276•构建一个小狗屋火龙果整理uml.org.cn2020/1/277•构造一栋房屋火龙果整理uml.org.cn2020/1/278•构建一个高层建筑火龙果整理uml.org.cn2020/1/279•软件中的影响因素•技术混合•性能•吞吐量•容量•可用性•失败安全•出错容忍程度•功能•成本•兼容性•恢复能力火龙果整理uml.org.cn2020/1/2710软件设计的目标和目的软件需求:解决“做什么”软件设计:解决“怎么做”软件结构设计的任务问题结构(软件需求)软件结构映射火龙果整理uml.org.cn2020/1/27112.2.1什么叫软件的体系结构软件体系结构,又常被称为架构。“软件体系结构”你早就知道Client/ServerThree-tierP2PDistributed……火龙果整理uml.org.cn2020/1/2712架构不是框框—应用架构的基本思想一个架构是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程。火龙果整理uml.org.cn2020/1/2713“建筑体系结构”火龙果整理uml.org.cn2020/1/2714“建筑体系结构”火龙果整理uml.org.cn2020/1/2715SA的定义后人精简GarlanandShaw的定义为:体系结构=组件+连接件+约束Architecture=Components+Connectors+Constrains火龙果整理uml.org.cn2020/1/2716除了构件,连接件和约束3个最基本的组成元素,软件体系结构还包括端口(port)和角色(role)两种元素。构件的接口由一组端口组成,每个端口表示了构件和外部环境的交互点。连接件作为建模软件体系结构的主要实体,同样也有接口。连接件的接口由一组角色组成,连接的每个角色定义了该连接表示的交互的参与者。火龙果整理uml.org.cn2020/1/2717SA之重要最早指出SA的重要性的是大师EdsgerDijkstra(1930-2002)“..thelargertheproject,themoreessentialthestructuring!”(1968)火龙果整理uml.org.cn2020/1/2718程序=?程序=算法+数据结构(1960’s)程序=子程序+子程序(1970’s)对象=算法+数据结构程序=对象+对象(1980’s)程序=组件+连接件(1990’s)火龙果整理uml.org.cn2020/1/2719软件体系结构学习主要内容•软件体系结构的有关概念•软件体系结构的层次性•软件体系结构的设计原理火龙果整理uml.org.cn2020/1/2720什么是软件体系结构•软件体系结构定义了软件局部和总体部件的构成,以及这些部件之间的相互作用关系。火龙果整理uml.org.cn2020/1/2721技术进步每个新的体系结构的诞生,都给技术的进步带来深远影响三层结构CORBAJ2EE.NET火龙果整理uml.org.cn软件体系结构软件体系结构包括两部分:(1)过程构件(模块)的层次结构(2)数据构件火龙果整理uml.org.cn2020/1/2723软件的架构主要回答的问题•软件的组成部分•软件的层次关系•模块的内部处理逻辑•模块之间的界面软件体系结构可分为四种不同的体系:•概念结构包括部件、互连、原则和性能等•代码结构包括软件的配置管理、系统建造等•模块结构包括模块界面、模块管理、模块控制和一致性等•执行结构包括性能分析、调度分析、动态配置和不同的执行系统之间的接口等与软件体系结构有关的研究:•体系结构风格(ArchitectureStyles)表示软件系统的一种特别的基本结构,以及相关的构造方法•设计模式(DesignPatterns)构造型模式、结构型模式、行为型模式•框架(Framework)另一种研究和构造软件体系结构的方法,更多的是关于应用领域问题的已建立的系统结构。框架和设计模式构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。有三种级别的重用:(1)内部重用,即在同一应用中能公共使用的抽象块;(2)代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;(3)应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;架构可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比架构更小的元素,一个架构中往往含有一个或多个设计模式,架构总是针对某一特定应用领域,但同一模式却可适用于各种应用。火龙果整理uml.org.cn2020/1/2728成功的架构开发需要确定领域专用的“热点”(Hotspot)。应用开发者在框架的基础上进行开发,只须扩展架构的某些部分,“热点”就是在应用领域的一种扩展槽,开发者根据自己的需要填充这些扩展槽“食谱”(Cookbook)就是描述如何使用架构方法的文档。在“食谱”中包含了许多“烹饪”方法,这些“烹饪”方法相当于一些具体的操作步骤,描述了为解决某一专门问题如何使用架构的详细方法。架构的内部设计和实现细节通常不出现在“食谱”中。火龙果整理uml.org.cn2020/1/2729为什么要进行体系结构开发?领域内的软件结构一致性好;建立更加开放的系统;重用代码大大增加;软件设计人员要专注于对领域的了解,使需求分析更充分;存储了经验;允许采用快速原型技术;有利于在一个项目内多人协同工作;大粒度的重用使得平均开发费用降低;火龙果整理uml.org.cn2020/1/2730好的开始相当于成功一半设计模式是支撑架构的重要组件架构设计是骨架,设计模式就是肉时刻牢记架构设计的目标1.最大化的重用:2.尽可能的简单明了:3.最灵活的拓展性:火龙果整理uml.org.cn2020/1/2731好的体系结构与大多数好的设计一样是一系列相容的原理和技术的产物,在项目的各个阶段保持一致在各种变化面前表现出弹性在产品的整个生命周期中充当向导重用成熟的工程知识火龙果整理uml.org.cn2020/1/27322.3软件体系结构的风格软件体系结构风格主要分为两类。⑴固定术语类:包括全局组织结构,如分层系统,管道过滤器系统,客户/服务系统,黑板系统等,还包括局部化的模式,如模型-视图-控制等其他面向对象开发的模式。全局化的模式是在软件全局上提供设计方式;而局部化的模式则侧重于软件系统的一小部分,是针对特定问题提供解决方案。火龙果整理uml.org.cn2020/1/2733⑵参数化模型类:这一类别的风格包括对特定应用领域的特定系统组织,它指定了构件及其交互的配置,如词法分析器,类型分析器,优化器和代码生产器,还有一些参考模型,如人机交互框架,通信参考模型,以及在航空、移动机器人等领域的大量特定领域方法。火龙果整理uml.org.cn2020/1/2734体系结构风格的最关键四个要素提供一个设计的词汇表定义一套配置规则定义一套解释原则定义基于这种风格的系统所进行的分析火龙果整理uml.org.cn2020/1/27352.3.2常用的软件体系结构风格1、管道和过滤器风格在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。管道管道管道管道过滤器过滤器过滤器过滤器过滤器过滤器火龙果整理uml.org.cn2020/1/27372、仓库风格和黑板风格仓库(Repositories)风格的体系结构有两种不同的构件组成:(1)中央数据结构,它说明当前状态;(2)独立构件的集合,它对中央数据结构进行操作。火龙果整理uml.org.cn2020/1/2738对于系统中数据和状态的控制方法有两种。(1)输入事务选择进行某种处理,并把执行结果作为当前状态存储到中央数据结构中,这时,仓库是一个传统的数据库体系结构(2)另一种方法是,由中央数据结构的当前状态决定进行某种处理,这时,仓库是一个黑板(blackboard)体系结构。火龙果整理uml.org.cn2020/1/2739存储器直接存取黑板(共享数据)知识源知识源知识源知识源知识源知识源计算火龙果整理uml.org.cn2020/1/2740仓库和黑板仓库在计算机应用中几乎无处不在信息共享系统在很多领域有相似的发展趋势,因为有相似的技术和商业压力的激励黑板是一种特别的仓库,主要用于需要对凌乱的信息进行处理的领域,其控制策略必须是机会主义的火龙果整理uml.org.cn2020/1/27413、数据抽象和面向对象风格面向对象的风格主要是利用对象的3个特性,即封装特性、继承和多态特性,建立构件对象。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。抽象数据类型过程调用对象对象对象对象对象火龙果整理uml.org.cn2020/1/27434、客户/服务器风格(C/S结构)三部分组成:中心服务数据系统客户应用程序网络客户端通过网络直接连接到数据库服务器,由二者分担业务处理。火龙果整理uml.org.cn2020/1/2744用户1用户2用户3用户4用户5PrintServerLink/RxLPT1LPT2COMPower/TXPWROKWIC0ACT/CH0ACT/CH1WIC0ACT/CH0ACT/CH1ETHACTCOL其他公用设备打印机调制解调器InternetIntranet数据库服务器客户机/服务器体系结构火龙果整理uml.org.cn2020/1/2745C/S体系结构的处理流程输入数据输出数据请求按钮表示层业务处理开始SQL请求结束SQL请求开始业务处理结束数据存取请求业务处理程序业务处理请求和业务处理所需的全部输入数据全部处理结束DBMS执行SQL数据层业务处理开始数据存取请求业务处理结束数据存取程序数据登录/更新/读取的请求数据登录/更新/读取的结果客户机/服务器体系结构应用系统的组成:•显示逻辑部分(表示层):实现与用户交互•应用处理部分(功能层):进行具体运算和数据处理•数据管理部分(数据层):对数据库中数据进行查询、修改、更新等任务应用分层表示层功能层数据层三层明确分割,逻辑上独立胖客户机和瘦客户机客户机“胖”客户机应用处理逻辑显示逻辑服务器数据管理逻辑数据库“瘦”客户机表示显示逻辑数据管理逻辑数据库表示应用处理应用处理逻辑客户机服务器三层C/S的基本硬件结构将三层功能装载到硬件的三种基本方法表示层表示
本文标题:从需求定义到软件体系结构
链接地址:https://www.777doc.com/doc-3347279 .html