没有合适的资源?快使用搜索试试~ 我知道了~
首页软件体系结构复习要点+复习内容
资源详情
资源评论
资源推荐

考试时间:100 分钟 第 18 周 星期二
1. 选择题 10 道 20 分
2. 填空题 10 道 10 分
5 道题 英文模式名填空
3 道题 根据需求确定对应的质量属性 其他内容 2 题
3. 名词解释 4 道 20 分
4. 论述与简答题 5 道 50 分
(1) 结合某个设计模式,谈谈对某个设计原则的理解(该设计原则
定义、类图并结合简单代码进行说明)
(2) 某个设计模式的类图、适用场景和优缺点。
(3) 根据场景选择合适的设计模式,包括该模式的名称和定义,绘
制场景所对应的类图。
(4) 简答题:来自前三章
(5) 根据场景绘制用例图或类图。
复习重点:
软件体系结构概念
软件体系结构风格定义和常见的体系结构风格
UML(用例图和类图)(15 分左右)
常见的软件质量属性
ATAM 软件体系结构评估方法
面向对象设计原则(10 分左右)
设计模式(40 分左右)
一、 软件体系结构概念
★软件体系结构的定义:软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元
素组合的模式,以及在这些模式中的约束。
★软件体系结构包括构件 (Component) 、连接件 (Connector) 和约束 (Constrain) 或配置 (Configuration) 三
大要素。
★优势:容易理解、重用、可发展性、可分析性
二、 软件需求
★需求的基本概念:宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整
的文档,该文档详细地说明了产品“必须或应当”做什么。(功能需求与非功能需求) 。
★“用户”(user)是一种泛称,它可细分为“客户”(customer)、“最终用户”(the end user)和“间接用
户”(或称为关系人)。
★需求工程:把所有与需求直接相关的活动通称为需求工程。需求工程中的活动可分为两大类,一
类属于需求开发,另一类属于需求管理。
★需求开发过程域:需求调查(产生《用户需求说明书》)、需求分析(常见的需求分析方法有“问答分
析法”和“建模分析法”两类)、需求定义(需求定义产生《软件需求规格说明书》)。
★需求管理过程域:需求确认(“需求评审”和“需求承诺”)、需求跟踪(正向跟踪、逆向跟踪、正向跟
踪和逆向跟踪合称为“双向跟踪”。不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵(即表格)。
)、需求变更控制。

需求跟踪矩阵:
源追踪矩阵(需求与需求来源) 功能追踪矩阵(需求与功能) 依赖追踪矩阵(一个需求与另一个需
求)
★《用户需求说明书》与《软件需求规格说明书》的主要区别与联系:1.前者主要采用自然语言(和
应用域术语)来表达用户需求,其内容相对于后者而言比较粗略,不够详细。 2.后者是前者的细
化,更多地采用计算机语言和图形符号来刻画需求,产品需求是软件系统设计的直接依据。 3.两
者之间可能并不存在一一影射关系,因为软件开发商会根据产品发展战略、企业当前状况适当地
调整产品需求,例如用户需求可能被分配到软件的数个版本中。软件开发人员应当依据《软件需
求规格说明书》来开发当前产品。
★需求分析:“问答分析法”比较适合于用户需求调查阶段,“建模分析法”比较适合于产品需求定义阶
段(包括“结构化分析法”和“面向对象分析法”)
★ 什么是好的需求规格说明书:正确、清楚、无二义性、一致、必要、完备、可实现、可验证、
确定优先级、阐述“做什么”而不是“怎么做”。
三、 软件体系风格
★ 软件体系风格定义:软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式;
定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束;反映了领域中众多系统所
共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
★ 常见的体系结构风格:1.数据流风格: 批处理序列; 管道/过滤器。 2 调用/返回风格:主程序/
子程序;面向对象风格;层次结构。 3 独立构件风格:进程通讯;事件系统。 4 虚拟机风格:
解释器;基于规则的系统。 5 仓库风格:数据库系统;超文本系统;黑板系统。
6 过程控制环路 7C/S 风格 8B/S 风格
★ C/S 体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
★ B/S 体系结构有三个主要组成部分:浏览器/Web 服务器/数据库服务器。
★ CS 的优点:C/S 体系结构具有强大的数据操作和事务处理能力, 模型思想简单,易于人们理
解和接受。系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器
都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于
对系统进行扩充和缩小。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以
节约大量费用
★ BS 的优点:基于 B/S 体系结构的软件,系统安装、修改和维护全在服务器端解决。提供了异
种机、异种网、异种应用服务器的联机、联网、统一服务的最现实的开放性基础。
四、统一建模语言——UML
★UML:UML 是用于描绘软件蓝图的标准语言。是一种分析设计语言,也就是一种建模语言 。
UML 是由图形符号表达的建模语言。
★UML 五大视图:
★UML 2.0 的十三种图:用例图(用户视图) 类图(结构视图) 对象图(结构视图) 包图 (结构视图,
结构视图 实现视图
行为视图 环境视图
用户视图

UML2.0) 组合结构图 (结构视图,UML2.0) 时序图(行为视图) 通信图(行为视图,UML1.0 协作
图) 定时图 (行为视图,UML2.0) 状态图(行为视图) 活动图(行为视图)
交互概览图 (行为视图,UML2.0) 组件图(实现视图) 部署图(环境视图)
★用例建模:是使用用例的方法来描述系统的功能需求的过程,用例建模促进并鼓励了用户参与,这
是确保项目成功的关键因素之一。
★用例建模包括两部分:用例图(Use Case Diagram) 、用例描述文档 (Use Case Specification)
★用例建模的步骤:识别执行者、识别用例、绘制用例图、书写用例文档、检查用例模型
★执行者:在系统之外,透过系统边界与系统进行有意义交互的任何事物。
用例:用例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。
用例的要点:有意义的目标、价值结果由系统生成、业务语言用户观点(用户观点非系统观点)、
用例的命名、用例的“粒度”
粒度原则:用例要有路径,路径要有步骤。而这一切都是 “可观测”的。最常犯错误--把步骤当作
用例
★用例文档的内容:用例编号、用例名、执行者、前置条件、后置条件、涉众利益、基本路径、扩展
路径、字段列表、业务规则、非功能需求、设计约束
★基本路径要求:只书写“可观测”的(说人话)、使用主动语句、句子必须以执行者或系统作为主语
、每一句都要朝目标迈进、分支和循环、不要涉及界面细节
★检查用例模型:功能需求的完备性、模型是否易于理解、是否存在不一致性、避免语义二义性
★类:类(Class)包装了信息和行为,是面向对象的重要组成部分,类是具有相同属性、操作的对象集
合
★关联关系:关联是一种结构化的关系,指一种对象和另一种对象有联系。给定有关联的两个类,
其 中 一 个 类 的 对 象 包 含 另 一 个 类 的 对 象 , 关 联 有 单 向 关 联 和 双 向 关 联 。

★聚合关系:聚合关系指的是整体与部分的关系。在聚合关系中,类 A 是类 B 的一部分,但是类 A
可以独立存在,在 UML 中,聚合关系用带空心菱形的直线表示。
★组合关系:组合关系也表示类之间整体和部分的关系,但是组合关系中部分和整体具有相同的生存
期。一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之间具有共生死的关系。
在组合关系中,类 A 包含类 B,而且可以控制类 B 的生命周期。类 A 控制类 B 的生命周期意味着
类 B 的存在依赖于类 A。在 UML 中,组合关系用带实心菱形的直线表示

★依赖关系:依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,反
之不成立,在需要表示一个事物使用另一个事物时使用依赖关系。依赖关系用带箭头的虚线表示,
由依赖的一方指向被依赖的一方。
★泛化关系:泛化也就是继承关系,也称为“is-a-kind-of”关系,泛化关系描述了超类与子类之间的关
系,超类又叫做基类,子类又叫做派生类。在 UML 中,泛化关系用带空心三角形的直线来表示。
★接口与实现关系:口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间
还存在一种实现关系,在这种关系中,类实现了接口,类中的操作实现了接口中所定义的操作。在
UML 中,类与接口之间的实现关系用带空心三角形的虚线来表示
剩余27页未读,继续阅读

















songang199051
- 粉丝: 51
- 资源: 10
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论3