计算机软件体系结构知识点纲要
软件体系结构知识总结

第一部分-------填空,选择,判断1.软件工程三个要素:方法、工具和过程2.软件元素:程序代码、测试用例、设计文档、设计过程、需求分析文档3.构件分类:关键字分类刻画分类法和超文本组织法4.软件体系结构技术反战经历四个阶段(1)无体系结构设计阶段----以汇编语言进行小规模应用程序开发(2)萌芽阶段-----以控制流图和数据流图构成软件结构为特征(3)初期阶段-----出现了从不同侧面描述系统的结构模型,UML(4)高级阶段-----描述系统的高层抽象结构,出现“4+1”模型5.软件体系结构模型:结构模型、框架模型、动态模型、过程模型和功能模型。
6.“4+1”视图模型从五个不同的视角,包括逻辑试图,进程试图,物理视图,开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,是系统提供给最终用户的服务。
通过抽象,封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图;开发视图也称模块视图,主要侧重于软件模块的组织和管理,主要考虑软件内部的需求,如软件开发的容易性、软件的重用等,通过系统输入输出关系的模型图和子系统图来描述,提供给编程人员的;进程视图侧重于系统的运行特性,主要关注非功能性的需求,如系统的性能和可用性。
进程视图强调并发性、分布性、系统集成性和容错能力管道和过滤器风格、客户/服务器风格等适合进程视图,提供给系统集成人员的;物理视图主要考虑如何把软件映射到硬件上,它通常考虑系统性能、规模、可靠性等,解决系统拓扑结构、系统安装、通信问题,提供给系统工程人员的。
而场景是那些重要系统活动的抽象,它使四个视图有机联系起来,是最重要的需求抽象,它可以帮助设计者找到系统结构的构件和他们之间的作用关系。
总之,逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
软件体系结构的核心模型由五中元素组成:构件、连接件、配置、端口和角色。
7. 软件体系结构的核心模型由五中元素组成:构件、连接件、配置、端口和角色。
第三章 计算机软件(详细知识点总结)

第三章计算机软件(详细知识点总结)第三章计算机软件(详细知识点总结)计算机软件是计算机系统中不可或缺的一部分,它是指由计算机程序、数据和文档等组成的一系列电子信息。
一、软件的基本概念软件的概念较为广泛,可以理解为安装在计算机硬件上的指令集合。
软件分为系统软件和应用软件两大类。
1. 系统软件:系统软件是计算机操作系统及其附属程序的总称。
它主要起管理和控制计算机硬件的作用,如操作系统、驱动程序、编译器等。
2. 应用软件:应用软件是用于解决特定需求的程序。
它通过调用系统软件的功能来满足用户的操作需求,如办公软件、图形处理软件等。
二、软件的开发流程软件的开发流程通常包括需求分析、设计、编码、测试、部署和维护等阶段。
1. 需求分析:需求分析是软件开发的第一步,它的目的是明确用户的需求和目标,为后续的设计和开发提供指导。
2. 设计:软件设计是根据需求分析的结果,结合系统架构和设计原则,确定软件的结构和模块划分,以便于编码和测试。
3. 编码:编码阶段是将设计好的软件逻辑转化为计算机可执行的程序代码。
程序员根据设计文档编写代码,并进行调试和优化。
4. 测试:软件测试是为了检查软件在各种情况下的运行情况,以发现并修复潜在的问题。
测试通常包括单元测试、集成测试和系统测试等环节。
5. 部署:软件部署是将开发完成的软件安装到用户的计算机系统上,使其可以正常运行。
6. 维护:软件维护是在软件部署后,对软件进行改进、修复和更新的过程。
维护包括改进功能、提高性能、修复漏洞等工作。
三、软件开发的方法和模型软件开发的方法和模型有多种,常见的包括瀑布模型、迭代模型、敏捷开发等。
1. 瀑布模型:瀑布模型是软件开发中最常见的模型之一,它按照线性顺序执行各个开发阶段,每个阶段完成后才进入下一个阶段。
2. 迭代模型:迭代模型是通过多次迭代开发来不断完善软件。
每次迭代都包括需求分析、设计、编码、测试等阶段,每次迭代都会增加新的功能或修复问题。
软件体系结构知识点总结

软件体系结构知识点总结软件体系结构公式体系架构=组件+连接件+约束SoftwareArchitecture=Components+Connectors+Constrains风格决定因素组件类型(例如:数据容器,过程,对象)连接件类型/交互机制(例如:过程调⽤,事件,管道)组件的拓扑分布拓扑和⾏为的约束(例如:数据容器不能⾃⼰改变数据,管道不能是循环的)风格的代价和益处(优缺点)异质的风格 Heterogeneous style):⼀个系统是由不⽌⼀种风格构建的⼏种软件体系结构风格数据流 Data Flow:实例:流⽔改卷两种⽅法:⽅式1:⼀位⽼师改完1份卷⼦,就传给下⼀位⽼师⽅式2:⼀位⽼师改完整班卷⼦,再传给下⼀位⽼师特点由数据控制计算系统结构由数据在处理之间的有序移动决定数据流系统的结构是⽐较明显的在纯数据流系统中,处理之间除了数据交换,没有任何其他的交互风格组件:数据处理的步骤组件的接⼝是输⼊端⼝还是输出端⼝计算模型:从输⼊中读取数据,计算,然后写到出⼝连接件:数据单向,通常是异步有缓冲的系统:任意的拓扑结构不同组件完成不同的功能模式:我们主要研究近似线性数据流或者是在限度内的循环数据流如果⼀个软件系统的数据流的流向⽆序很可能说明该系统不应采⽤数据流的体系结构例⼦:批处理每个处理步骤是⼀个独⽴的程序每⼀步必须在前⼀步结束后才能开始(有次序)数据必须是完整的,以整体的⽅式传递批处理可以做,管道过滤器做不了:对数据的整体访问,因为管道过滤器的数据分布在不同的组件上管道过滤器特性:每个组件都有⼀组输⼊和输出,组件读取输⼊的数据流,经过内部处理,产⽣输出数据流。
这个过程通常通过对输⼊流的变换及增量计算来完成。
这⾥的组件称为过滤器,连接件像是对输⼊流传输的管道,将⼀个过滤器的输出传到另⼀个过滤器的输⼊。
管道过滤器的通⽤结构:管道:限制了系统的拓扑结构,只能是过滤器的线性序列有界管道:限制了在管道中能够容纳的数据量类型定义管道:要求定义在两个过滤器间传出的数据类型过滤器的⾓⾊:读取数据流,输出处理后的数据流执⾏流式的转换递增地转换数据,数据边到来边处理,不是先收集好,再处理不同过滤器之间是独⽴的管道的⾓⾊移动数据,从⼀个过滤器的输出到另⼀个过滤器的输⼊全部的操作数据传送引起系统动作当没有数据可⽤,没有更多的计算的时候,管道过滤器系统停⽌⼯作读取与处理数据流的⽅式递增地读取和消费数据流在输⼊被完全处理之前,输出便产⽣了优点使软件具有良好的隐蔽性和⾼内聚,低耦合的特点(过滤器可以看做是⿊盒)可将整个系统的I/O特性,理解为各个过滤器功能的简单合成。
计算机体系结构必考知识点

计算机体系结构必考知识点一、知识概述《计算机体系结构必考知识点》①基本定义:计算机体系结构呢,简单说就是计算机的各个组成部分,像处理器、内存、输入输出设备等,它们之间是怎么连接的,还有各自的功能怎么协同工作。
就好比一个足球队,每个球员(硬件组件)都有自己的位置(功能),教练(操作系统等软件)怎么安排他们配合踢球(协同工作),这就是大致的概念。
②重要程度:在计算机这个学科里,这可太重要了。
要是不懂体系结构,就好比你盖房子不知道怎么搭框架,那接下来的装修(软件开发之类的)就无从下手。
计算机系统的性能、功能等都和它有很大关系。
③前置知识:得有基本的数字电路知识,像什么是逻辑门之类的。
还有对计算机各个硬件部件有个简单了解,就像你得知道有CPU这个东西,它大致是干啥的。
如果之前学过计算机组成原理那就更好了,就像你是个盖房子的小工,盖了几次小房子(了解简单的硬件组合),再来盖大楼(学习体系结构)就容易些。
④应用价值:实际应用可多了。
比如说设计新的计算机芯片,要考虑体系结构。
像手机厂商想让手机运行得更快,还不那么耗电,那就得优化手机芯片的体系结构。
再比如说云计算中心设计大型服务器集群,也得按照合理的体系结构来,这样才能高效处理海量的数据。
二、知识体系①知识图谱:在计算机学科的大地图里,计算机体系结构是重要的一块。
它连接着计算机硬件底层,向上又影响着操作系统、软件应用的开发。
就好比它是城市里的交通规划(对计算机里的数据等流动起规划作用),其他的建筑物(软件等)得按照这个交通规划来建设。
②关联知识:和计算机组成原理关联紧密,组成原理就像是讲每个部件的详细构造,体系结构就是把这些部件组合起来看。
和操作系统也有很大关系,操作系统的运行依赖于计算机体系结构提供的环境。
就好像演员(操作系统)得在舞台(体系结构)上表演。
③重难点分析:掌握难度在于概念比较抽象,像多级存储体系结构,什么缓存、主存、外存的关系不好理解。
关键点在于要理解各个部件的交互原理。
软件体系结构知识点完整

软件体系结构知识点完整首先,软件体系结构的设计目标是确保软件系统具有良好的可维护性、可扩展性、可重用性和可演化性。
为了达到这些目标,需要考虑以下几个重要的知识点:1.架构风格和模式:软件体系结构可以采用不同的架构风格和模式,如客户/服务器架构、分层架构、微服务架构等。
每种架构风格和模式都有其适用的场景和优缺点,开发人员需要根据具体需求选择适合的架构。
2.组件和接口:软件系统通常由多个组件构成,每个组件负责特定的功能。
组件之间通过接口进行通信和交互。
设计良好的组件和接口可以提高系统的模块化程度,便于测试、维护和重用。
3.数据管理:软件系统通常需要对一定量的数据进行管理和存储。
在软件体系结构设计中,需要考虑数据的组织方式、访问方式和持久化方式。
常见的数据管理技术包括关系型数据库、非关系型数据库和缓存等。
4.并发和分布式处理:现代软件系统通常需要处理大量的并发请求,并且可能分布在不同的机器上。
软件体系结构设计需要考虑如何有效地处理并发请求和如何进行分布式部署,以提高系统的性能和可扩展性。
5.安全和可靠性:软件系统面临各种安全和可靠性风险,如数据丢失、数据泄露和系统故障等。
软件体系结构设计需要考虑如何采取措施保障系统的安全和可靠性,如进行数据备份、访问控制和错误处理等。
6.软件系统的分层:软件体系结构通常采用分层的结构,将系统划分为不同的层次,每个层次负责不同的功能。
常见的分层结构有表示层、业务逻辑层和数据访问层等。
分层结构可以提高系统的可维护性和可扩展性。
7.影响因素和约束:软件体系结构设计还需要考虑相关的影响因素和约束,如成本、时间、技术限制等。
这些因素和约束将直接影响软件体系结构的设计和实施。
总结起来,软件体系结构是软件设计的重要组成部分,它涉及到架构风格和模式的选择、组件和接口的设计、数据管理、并发和分布式处理、安全和可靠性等多个方面。
了解这些知识点对于设计出高质量、可维护和可扩展的软件系统至关重要。
软件体系结构知识点完整

1、构件就是核心与基础,重用就是必需得手段。
2、软件重用就是指在两次或多次不同得软件软件开发过程中重复使用相同或相近软件元素得过程。
3、软件元素包括程序代码、设计文档、设计过程、需求分析文档甚至领域知识。
4、把可重用得元素称作软构件,简称为软构件。
5、可重用软件元素越大,就说重用得粒度越大。
6、构件就是指语义完整、语法正确与有可重用价值得单位软件,就是软件重用过程中可以明确辨识得系统;结构上,它就是语义描述、通信接口与代码实现得复合体。
7、面向对象技术达到类级重用,以类为封装得单位。
8、构件模型就是对构件本质特征得抽象描述。
三个主要流派,分别就是OMG(对象管理组织)得CORBA(通用对象请求代理结构)、Sun得EJB与Microsoft得DOM(分布式构件对象模型)。
9、获取构件得四个途径:(1)从现有构件中获得符合要求得构件,直接使用或作适应性修改,得到可重用构件。
(2)通过遗留工程,将具有潜在重用价值得构件提取出来,得到可重用构件。
(3)从市场上购买现成得商业构件,即COTS构件。
(4)开发符合要求得构件。
10、构件分类方法三大类:关键字分类、刻面分类法、超文本组织方法11、构件检索方法:基于关键字得检索、刻面检索法、超文本检索法与其她检索方法。
12、减少构件修改得工作量,要求工作人员尽量使构件得功能、行为与接口设计更为抽象画、通用化与参数化。
13、构件组装技术:基于功能得组装技术、基于数据得组装技术与面向对象得组装技术。
14、软件体系结构得定义:软件体系结构为软件系统提供了一个结构、行为与属性得高级抽象,由构成系统得元素得描述、这些元素得相互作用、指导元素集成得模式以及这些模式得约束组成。
软件体系结构不仅指定了系统得组织结构与拓扑结构,并且显示了系统需求与构成系统得元素之间得对应关系,提供了一些设计决策得基本原理。
软件体系结构得意义:(1)体系结构就是风险承担者进行交流得手段;(2)体系结构就是早期设计决策得体现--①软件体系结构明确了对系统实现得约束条件②软件体系结构决定了开发与维护组织得组织结构③软件体系结构制约着系统得质量属性④通过研究软件体系结构可能预测软件得质量⑤软件体系结构使推理与控制更改更简单⑥软件体系结构有助于循序渐进得原型设计⑦软件体系结构可以作为培训得基础;(3)软件体系结构就是可传递与可重用得模型。
软件设计与体系结构知识点

1.软件设计的特征(1)软件设计的开端是出现某些新的问题需要软件来解决,这些需要促使设计工作的开始,并成为整个设计工作最初的基础(2)软件设计的结果是给出一个方案,它能够用来实现所需的、可以解决问题的软件,方案的描述可能是文字、图表,甚至数学符号、公式等组成的文档或模型(3)软件设计包含一系列的转换过程,即把一种描述或模型转换为另一种描述或模型,转换后的形态可能更加具体,或更接近于实现(4)产生新的想法或思路对软件设计非常重要,因为设计也是一个创造性的过程,不同的问题或需求总会存在各自的特点,即使同样的问题在不同时期和环境下也会存在区别,因此设计不会是一成不变的(5)软件设计的过程是不断解决问题和实施决策的过程,因为整个设计是解决一个大的问题,在设计过程中将会分解成众多小问题,涉及真需要一次解决这些小的问题,并在出现多种方案或策略时进行决策,选择其中最合适的(6)软件设计也是一个满足各种约束的过程,因为软件可能在性能、运行环境、开发时间、成本、人员技术水平等各个方面存在约束,设计必须在满足这些约束的情况下给出最佳的设计方案(7)大多数的软件实际是一个不断演化的过程,因为需求在一开始很可能是不完整或不精确的,在设计过程中还会不断发生变化并逐步稳定下来,因此设计需要根据需求的变化而不断演化。
2.软件设计的要素( 1 ) 目标描述 ( 2 ) 设计约束 ( 3 ) 产品描述 ( 4 ) 设计原理 ( 5 ) 开发规划 ( 6 ) 使用描述3.软件设计体系的定义( 1 )软件设计体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系( 2 )软件体系结构是软件系统的基本组织,包含构建、构件之间、构件与环境之间的关系,以及相关的设计与演化原则4.软件设计的主要活动( 1 ) 软件设计计划 ( 2 ) 体系结构设计 ( 3 ) 界面设计 ( 4 ) 模块/子系统设计 ( 5 ) 过程/算法设计( 6)数据模型设计5.体系结构“4+1 ”多视图建模( 1 )逻辑视图:该视图关注功能需求,即系统应该为最终用户提供什么服务,它与应用领域精密相关( 2 )进程视图:该视图捕获设计中关于并发和同步的内容,重视一些非功能需求,例如性能、可扩展性等,定义了运行实体和它们的属性。
软件体系结构知识点

构件:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
构件管理:1构件描述2构件分类与构件库组织:关键字分类法刻面分类法(青鸟)超文本组织方法(基本单位是结点)3人员及权限管理构件重用步骤:检索与提取构件(检索方法同上3种加其他)理解与评价构件修改构件(实参)构件组装(功能数据面向对象)软件体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构的意义:体系结构是风险承担者进行交流的手段体系结构是早期设计决策的体现软件体系结构是可传递和可重用的模型软件体系结构建模的种类:结构模型框架模型动态模型过程模型功能模型4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
开发视图也称模块视图,主要侧重于软件模块的组织和管理。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。
场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
体系结构风格反映了领域中众多系统所共有的结构和语义特性经典的体系结构风格数据流风格:批处理序列;管道/过滤器。
调用/返回风格:主程序/子程序;面向对象风格;层次结构。
独立构件风格:进程通讯;事件系统。
虚拟机风格:解释器;基于规则的系统。
仓库风格:数据库系统;超文本系统;黑板系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机软件体系结构》课程知识纲要目录1、课程安排 (1)2、软件体系结构的基础知识 (2)2.1 软件体系结构概论 (2)2.2 软件体系的定义 (2)2.3 软件体系的建模 (2)2.4 软件体系的生命周期 (3)2.5 软件体系结构的核心元素 (3)2.6 风格与模式 (3)2.7经典体系结构风格: (4)3、面向对象编程的基础知识 (5)4、UML建模 (5)4.1 用例图 (5)4.2活动图 (6)4.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、用例图包括的内容:用例(USER CASE);参与者(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、时序图(Sequence Diagram):描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。
时序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换,也就是说,时序图描述了类以及类间相互交换以完成期望行为的消息。