计算机软件体系结构知识点纲要_第1页
计算机软件体系结构知识点纲要_第2页
计算机软件体系结构知识点纲要_第3页
计算机软件体系结构知识点纲要_第4页
计算机软件体系结构知识点纲要_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《计算机软件体系结构》课程知识纲要目录1、课程安排 22、软件体系结构的基础知识 22.1软件体系结构概论 22.2软件体系的定义 22.3软件体系的建模 32.4软件体系的生命周期 32.5软件体系结构的核心元素 32.6风格与模式 42.7经典体系结构风格: 43、面向对象编程的基础知识 54、UML建模 64.1用例图 64.2活动图 64.3时序图与协作图 7软件体系结构考试题型:填空,30,判断正误10,名词解释12,简答22,建模26,请大家认真学习知识点提纲,认真备考,尤其是平时成绩较低的同学,请端正态度1、课程安排课程内容安排:本课程的知识安排分为三个部分,一部分是软件体系结构的基础知识,一部分为面向对象编程的基础知识,一部分软件体系结构建模,包括四+1模型的建模,与UML软件建模方法相关知识。课程考核安排:本课程的考核分为三个部分:平时分(平时上机实验作业、课堂作业)占20%,上机实验分(第18周上机实验)占10%,期末考试占70%;2、软件体系结构的基础知识2.1软件体系结构概论1、软件危机:软件应用需求的发展,致使软件复杂化,造成软件成本、开发进度、质量、维护难以控制,总而言之,软件开发越来越复杂困难。危机产生的原因:缺乏正确的软件开发理论是根本,此外,软件需求不明确、软件规模与复杂度也是造成的重要原因。2、软件工程:克服软件危机的办法,以工程的方法来进行软件生产的开发、生产与管理。核心就是标准化,实现软件生产全流程的标准化。3、可重用性与构件:标准化的软件开发流程,使应对特定问题的软件代码重用成为可能,当可重用的代码被抽取出来,并配以标准化的接口与应用文档,形成构件。4、构件:语义完整、语法正确和可重用价值的单元软件,其中最核心的是可重用性。在结构上,这是语义描述(针对构件的说明)、通信接口(构件调用与装配的接口)与实现代码(软件的功能实现)三部分组成。5、领域:一组具有相似或相近软件需求的应用系统的覆盖的功能区域。具有内聚性(问题的特定性)和稳定性(特定问题在较长的问题多次出现)。6、商业化构件的分类:用户界面类、数据库类、商务应用类、工具类、网络通讯类、核心技术类。2.2软件体系的定义1、软件体系结构定义:软件体系结构为软件系统提供了一个结构(构件组装的结构)、行为(构件的功能)、属性(构件的约束)的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束的组成。2.3软件体系的建模1、建模的本质:从软件开发不同角度看问题、隐含在软件工程不同阶段,不同的参与人员对于工程的视角。2、现有的模型:结构模型:注重构件与连接件,试图以结构来反映系统,哲学:结构与功能的关系框架模型:注重更高层次的可重用性,对于构件则不太关注,试图在构件及功能可替换情况下,重用框架。动态模型:反映系统动态行为,对前二者静态描述的补充。过程模型:试图反映系统构造的过程,典型的增量开发过程,也是期望能在主框架重用的情况下,开发系统。功能模型:试图按功能模块组件来描述系统,易于理解,极为常用。3、4+1视图模型逻辑视图:支持系统的功能需求,注意是支持,不是表述,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。逻辑视图解释系统功能的实现,建模人员一般为开发人员。开发视图:又称为模块视图,主要侧重于软件模块的组织和管理,建模人员一般为项目经理。进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求,如系统的性能和可用性,建模人员一般为测试人员。物理视图:主要考虑如何把软件映射到硬件上,考虑系统性能、规模、可靠性等,一般建模人员为项目部署人员。场景:可以看作是那些重要系统活动的抽象,有机联系以上四个视图,某种意义上说场景是最重要的需求抽象。一般建模人员为项目主管。2.4软件体系的生命周期1、需求-〉建立-〉设计-〉实现,以及各阶段的大致内容了解。2.5软件体系结构的核心元素构件:具有某种功能的可重用的软件单元连接件:构件之间的交互,数据交互的中间件,如数据库JDBC、ODBC之类配置:构件与连接件之间的拓扑逻辑与约束端口:也就是构件的接口,接口可与构件相分离,形成独立的要素角色:本质为场景,构件在场景中发挥的作用2.6风格与模式1、风格的定义:某一特定应用领域中系统组织方式的惯用模式,即定义某一领域的术语表和一组指导构件系统的规则,其中:术语表:构件的通常表述方式2、模式:包括模块与模块组织的约束3、体系结构重用:模块+架构:体系统结构能不能重用,或者如何重用?由问题说了算,也就是领域,领域问题的相似性促成风格的形成2.7经典体系结构风格:1、管道与过滤器:经典的过程编程视角:视程序为数据处理流程,一个构件的输入为上一个构件的输出,同时该构件的输出又作为下一个构件的输入,其典型的应用:DOS下的管道命令符。优点:模块的高内聚、低耦合。缺点:太理想化了,信息世界是多样化的,逻辑不是那么简单的主要的应用场景:如,大数据量的科学计算,批任务处理,数据库维护与倒库方面的工作。极为清晰的数据处理流程数据处理时序是简单,不需要考虑过多的彼此依赖、并发性。管道与过滤器接口可以标准化2、数据抽象与面向对象:另一种经典的编程视角:面向对象,数据抽象:数据与其操作方法封装在一起。这种风格的构件就是:对象优点:高内聚、低耦合:数据与其操作在一起,对现实世界的更真实建模缺点:各人观点不一,事实上面向对象的编程风格是不完全排除面向过程的,通常为两者的结合3、基于事件的隐式调用:构件彼此独立,消息与事件:消息引发事件,事件引发注册的模块,模块执行功能。如:WINDOWS的编程基本模式、WINDOWS内核的基本模式、黑客与钩子的实现方式。优点:扩展性很强,软件重用性也很强。缺点:同一消息处理的次序不太好确定,模块之间的依赖关系难以体现出来,系统对于全局逻辑的控制性不强4、分层系统:系统的架构风格:视信息世界为抽象程度不同的层次组成。优点:系统结构清晰,扩展性强,功能模块可重用程度高。缺点:客观世界的复杂性很难通过统一的分层结构来予以实现。3、面向对象编程的基础知识1、面向对象技术的基本观点:客观世界由独立的对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。客观世界中具有相同特性与行为动作的对象可以抽象成类,如学生类,具有到某个学生,如张三,则为学生类的某个名为张三的特定对象。因此,类是抽象,是同类对象的模板,对象是类的具体特例。类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。对象之间的联系通过消息传递来维系。2、类与对象:客观世界里的任何实体都可以被抽象为问题空间中的类。客观世界实际存在的都是对象,而不是类。类是问题域或实现域中某些概念的一个抽象。类是一个封装数据属性和操作行为的模板,而对象是其实体。3、类的继承:继承是指子类可以自动拥有父类的全部属性与操作的机制。父类(超类)、子类(派生类)。继承性又分为单重继承和多重继承两类。4、多态:是指同一个消息为不同的对象接收时,可以有不同的解释,可产生不同的动作或执行结果。5、多态性的实现方式:通过接口实现多态性:一个接口的指定动作由不同类来实现,而这些类的对象既可以看成其所属的类,且从接口的角度来看又可以看成它实现的接口类;通过继承实现多态性:一个子类的对象,既可以看成本身类,又可以看成其父类;通过抽象类实现的多态性:实现某个抽象类行为的类,其对象既可以看成抽象类的对象,又可以看成其本身类的对象。4、UML建模4.1用例图1、用例图包括的内容:用例(USERCASE);参与者(Actor);依赖、泛化以及关联关系(用例之间的关系)2、参与者:系统外部的实体,事物或人,也就是使用系统,触发系统活动的人。3、系统边界:划分参与者与系统的界线,参与者不属于系统。4、建模者应提出的问题:谁或什么使用系统?它们各自扮演什么角色?谁安装、启动、关闭、维护系统;谁从系统获得信息?谁提供信息给系统?有什么事发生在固定事件中?5、用例:系统在参与者请求或触发的时候完成某个事件,使用椭圆形表示,用例的名字可以写在其下或其中。6、用例与参与者的关系:谁来做?参与者,做什么?用例7、用例之间的关系:泛化关系:用例与用例、参与者与参与者之间具有的继承关系包含关系:用例表示的是做一件事,而具体的事可能会分成多个步骤,每个步骤又是一个子事件;包含关系指不同的用例可能会包含同一个步骤形成的用例,那么把同一步骤抽出来作为子用例可以被这些用例包含扩展关系:把新的行为插入到已有用例中的方法。用于某个事件中可能会有一些不同的行为,扩展关系为该事件代表的用例添加行为时提供扩展点4.2活动图1、活动图:是一种用于描述系统行为的模型视图,它可用来描述过程(业务过程、工作流、事件流等)中的活动及其迁移。简单地讲,活动图是“OO流程图”。2、活动图的主要应用:描述用例的行为、理解工作流程、描述复杂过程的算法。3、活动图的构成:活动:在活动图中,用来指示要完成某项工作的动作或表示工作流的步骤。其UML标记符是一个带有圆角的矩形。可以用操作在活动中增加更多详细的步骤。操作是活动中执行的小步骤。在下列情况下发生:进入活动时发生的操作,标有entry字样。活动进行时发生的操作,直到离开活动,标有do字样。离开活动时发生的操作,标有exit字样。特定事件发生时的操作,标有event字样和事件名。操作是可选的,但提供的详细信息有助于后面完成系统设计。状态:标记符与活动类似,也是带圆角的矩形,但状态的圆角比较小,如下图所示。状态通常使用一个指示系统当前状态的单词或者短语来标识。例如,Stopped是一个状态,而stop则是一个活动。UML包含两个特殊状态,即开始状态和结束状态。开始状态以实心黑点表示,结束状态以带有圆圈的实心黑点表示。注意:每一个活动图只能有一个开始状态,但是可以有无数个结束状态。决策:是基于判断条件选择控制流继续的方向。决策的UML符号是一个小菱形标记符,然后从这里再按条件控制分支转移到满足条件的活动。4.3时序图与协作图1、UML的交互图:是用户系统动态方面的建模,交互图可分为时序图和协作图。2、时序图(SequenceDiagram):描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。时序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换,也就是说,时序图描述了类以及类间相互交换以完成期望行为的消息。3、时序图包括了4个元素,分别是对象(Object)、生命线(Lifeline)、激活(Activation)和消息(Message)。4、时序图强调按时间展开的消息传送,这在一个用例脚本的语境中对动态行为的可视化非常有效。5、时序图有别于协作图的特性:(1)时序图有生命线(2)时序图有激活期4.4类图1、类的结构:属性与行为,属性用来刻划类所描述的事件的特性,如人的身高,姓名等,在计算机语言中采用数据类型来定义,而行为则是刻划类可以执行的动作,在计算机语言中采用函数来定义。2、类的属性与行为的可见性:类的封装性定义了一个类的属性与行为不能为其它类轻易的访问,也即类的属性不能被其它类随意赋值与取值,或类的方法不能随意被调用。这个控制机制称之为可见性。3、可见性的种类:公开、私有、保护,公开的意思是某个属性与行为可被随意其它类的对象访问,私有即属性或行为不对外开放,除自己以外的任何类都不可以访问,保护是某个属性或行为,要么自己类对象访问,要么是自己类的子类才可以访问。4、类之间的关系:关联关系:关联(association)是模型元素间的一种语义联系,它是对具有共同的结构特性、行为特性、关系和语义的链(Link)的描述。UML表示法:实线+箭头,,英文的表述即是:"...hasa..."关联名:关联关系的名称,用于指定关联关系的性质。关联角色:关联双方类在关联关系中的各自担任的角色。如雇用者,被雇用者;角色的多重性:关联双方的对应关系,如一个雇用者可以对应多个被雇用者。关联类:复杂的关联关系采用专门的类进行描述。关联的约束:指关联关系之间的约束关系。聚合与组合:聚合表示一个对象由其它对象组成,是整体与部分的关系,而组合除了聚合的含义之外,还具体同生命周期的含义,即对象与其组成部分的生命周期是一致的。其中聚合关系的UML表示法:空心菱形+实线+箭头英文的表述即是:"...ownsa...".而组合关系UML表示法:实心菱形+实线+箭头英文的表述即是:"...isapartof..."泛化关系:即继承关系。UML表示为:空心三角箭头,英文的表述即是:“…isa”依赖关系:一个类的实现依赖另一个类提供的方法,或实例。UML表示法:虚线+箭头,英文的表述即是:"...usesa...",UML图形表示为:主要有以下依赖关系:调用,一个类调用另一个类的方法参数,一个类的方法使用另一个类作为形式参数发送,消息的发送者与接收者之间的关系实例化,一个类的方法创建了另一个的实例派生属性与派生关系:一个类的属性可由其它属性得到,或一个关联关系可由其它关联关系推理得到。5、MVC模型及其对应的类的划分:M(Model),指的是数据模型,一般是数据库的表与数据结构设计,V(View)指的是视图,指用户与系统的界面,C(Control)指的是控制逻辑,一般指的是业务控制模型。这三者分别对应:边界类(V),实体类(M),控制类(V)。6、寻找与确定类的方法:根据用例描述中的名词确定候选类.使用CRC分析法寻找类,CRC指:类(class)、职责(responsibility)、协作(collaboration).根据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论