08级——软件架构考试提纲
软件工程师考试大纲
软件工程师考试大纲第一篇:软件工程师考试大纲是指为了指导软件工程师在考试中的学习和备考,考试大纲明确了考试的内容和要求。
通过参考考试大纲,软件工程师可以更好地了解考试的范围和重点,有针对性地进行复习和准备,提高考试的通过率。
接下来,我们将详细介绍软件工程师考试大纲的相关内容。
软件工程师考试大纲主要包括以下几个方面:软件工程基础知识、需求分析与设计、软件构建、软件测试与维护、软件工程管理、软件工程实践等。
首先,软件工程基础知识是软件工程师考试的基础,它包括计算机基础知识、编程语言、数据结构与算法等。
这些基础知识是软件工程师必备的技能,能够帮助他们理解软件工程的概念和原理,应用到实际的工作中。
其次,需求分析与设计是软件工程师考试大纲中的重要内容之一。
需求分析与设计是软件开发过程中的关键步骤,它涉及到对用户需求的分析和理解,以及将需求转化为可执行的设计方案。
软件工程师需要掌握需求分析与设计的方法和技巧,能够高效地完成软件需求的分析和设计工作。
软件构建是考试大纲中的另一个重点内容。
软件构建是将需求分析和设计的结果转化为实际的可执行代码的过程,它包括编码、调试、单元测试等。
在软件构建过程中,软件工程师需要熟练掌握编程语言和开发工具,能够编写出高质量的代码。
另外,软件测试与维护也是考试大纲中需要关注的内容之一。
软件测试是确保软件质量的重要手段,它包括功能测试、性能测试、安全测试等。
软件维护是在软件交付后对其进行修复和改进的过程。
软件工程师需要了解测试方法和技术,以及维护的基本原则和方法。
此外,软件工程管理也是考试大纲中的重要内容之一。
软件工程管理涉及到项目管理、进度控制、团队协作等方面的知识和技能。
软件工程师需要具备良好的团队合作能力和项目管理能力,能够高效地组织和管理软件开发项目。
最后,考试大纲中还强调了软件工程实践的重要性。
软件工程实践是将软件工程的理论知识应用到实际项目中的过程,它包括软件工程的方法和过程。
2008软件技术基础总复习
复习内容:教材,教材作业,实验手册(上机实验、选择填空题),算法(要求的)●算法的概念:解题方案的准确而完整的描述。
●算法应具备的特性(详细解释)(1)可行性(2)确定性(3)有穷性(4)拥有足够的情报●算法设计基本方法(举例说明):1. 列举法(穷举法、枚举法)(百钱买百鸡,水仙花数)2. 枚举归纳法(波利亚归纳模式,通过观察得出规律,证明规律)3. 递推(Fibonacci数列,牛顿迭代法求一个数的平方根)4. 递归(典型问题:汉诺塔Tower of Hannoi)5. 减半递推(二分法求方程的根,折半查找,矩阵相乘)6. 回溯法(八皇后问题)会按照算法,手工摆出n皇后问题的若干个解,如5皇后问题的第1个解是1,3,5,2,4 ……●算法的复杂度分析:时间的复杂度和空间的复杂度的概念时间的复杂度:用算法在执行过程中所需基本运算(即主要运算)的次数来度量算法的工作量。
空间的复杂度:计算时所需内存容量。
掌握平均性态和最坏情况复杂度的分析方法,对以下两个问题会分析:(1)顺序查找(2)求三个数的中间值●数据结构的定义:描述一组数据元素及元素之间的相互关系。
数据结构的两个要素:数据元素的集合,数据集合上的关系。
关系的表示:二元组、图●逻辑结构:线性结构和非线性结构●物理存储结构:顺序存储结构和链式存储结构(实际使用时,往往两种结合使用,如图的邻接表表示,外链hash表,索引查找表)●逻辑上的线性结构可以采用的顺序存储结构和链式存储结构(举例:线性表)逻辑上的非线性结构可以采用链式存储结构,也可以采用的顺序存储结构和链式存储结构(举例:完全二叉树)逻辑结构:线性非线性存储结构:顺序链接如:完全二叉树是非线性结构,但可以使用顺序存储●线性表:实验1.1线性表的插入、删除算法(自然语言描述也可以)●堆栈的概念及特点: 入栈,出栈操作堆栈的物理实现:数组,链表。
应用: (1)函数递归及嵌套调用的实现(2)简单表达式的处理,会画出处理表达式各步OPS 栈和OVS 栈的变化。
系统架构设计师 考试大纲
系统架构设计师考试大纲
系统架构设计师考试大纲包括以下内容:
1.系统建模。
包括定义问题与归结模型、结构化系统建模、面向对象系统建模、数据库建模。
2.软件架构设计。
包括特定领域软件架构、基于架构的软件开发方法、软件演化。
3.系统设计。
包括处理流程设计、系统人机界面设计、文件设计、存储设计、数据库设计、网络应用系统的设计、系统运行环境的集成与设计、系统性能设计、中间件、应用服务器。
4.分布式系统设计。
包括分布式通信协议的设计、基于对象的分布式系统设计、基于Web的分布式系统设计、基于消息和协同的分布式系统设计、异构分布式系统的互操作性设计。
5.系统的可靠性分析与设计。
包括系统的故障模型和可靠性模型、提高系统可靠性的措施、系统的故障对策和系统的备份与恢复。
6.系统的安全性和保密性设计。
包括系统的访问控制技术、数据的完整性、数据与文件的加密、通信的安全性。
级软件体系结构复习资料及考试试卷
软件架构的定义:(1)计算系统的软件架构是解释该系统所需的结构体的集合,其中包括软件元素,元素之间的相互关系和二者各自的属性。
(2)Bass:软件架构包括一个或一组软件构件,软件构件的外部的可见特性(指软件构件提供的服务,性能,特性,错误处理,共享资源使用等)及其相互关系。
(3)软件架构师关注的首先不是功能,而是品质关注点(非功能性需求),涉众关注的是那些品质,如性能.安全.可伸缩性.可变性.可维护性.可用性等。
理解涉众的品质关注点后,考虑折中.分解,分而治之.保持概念完整性。
(4)软件架构具有一定形式的结构化元素,即构件的集合包括:处理构件:负责对数据进行加工;数据构件:是被加工的信息;连接构件:把架构的不同部分组合连接起来.软件架构从四个角度,对系统进行描述:概念:描述系统的主要构件及它们之间的关系模块:包含功能分解和层次结构;运行:描述系统的动态结构;代码:描述代码和库函数在开发环境中的组织(5)张友生:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述,这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件架构不仅指定了系统的组织和拓步结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件架构的意义:架构是风险承担者(涉众)进行交流的手段架构是早期设计决策的体现软件架构是可传递和可重用的模型软件架构的应用现状(1)软件架构描述语言:ADL是一种形式化语言。
(2)架构描述构造与表示:按照一定的描述方法,用架构描述语言(ADL)对架构进行说明的结果则称为架构的表示,将描述架构的过程称为架构构造。
(3)架构分析、设计与验证:架构分析的内容:结构、功能和非功能分析//架构设计本质:将系统分解成相应的组成成分并将这些成分重新组装成一个系统//架构设计两大类方法:过程驱劢和问题列表驱劢. 架构测试着重于仿真系统模型,解决架构层的主要问题.架构测试策略可分为单元/子系统/集成/验收测试等阶段的测试策略。
软件体系结构复习提纲
1- 软件危机的原因?表现?原因: 1、用户需求不明确2、缺乏正确的理论指导3、软件规模越来越大4、软件复杂度越来越高表现: 1、软件成本日益增加2、开发进度难以控制3、软件质量差4、软件维护困难 构件?构件库的组织方式?构件重用的四个阶段?(过程)构件: 具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。
构件库的组织方式:关键字分类法、刻面分类法、超文本组织方法构件重用的四个阶段:1、检索与提取构件2、理解与评价构件3、修改构件4、构件组装 软件重用是什么?一般包括哪些重用?软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
包括:程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。
1-"4+1"试图模型?“4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。
每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。
如图:逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。
逻辑视图设计中要注意的主要问题是要保持一个单一的、内聚的对象模型贯穿整个系统。
开发视图:也称模块视图,主要侧重于软件模块的组织和管理。
开发视图通过系统输入输出关系的模型图和子系统图来描述。
在开发视图中,最好采用4~6层子系统,而且每个子系统仅能与同层或更低的子系统通信,这样可以使每个层次的接口既完备又精练,避免了各个模块之间很复杂的依赖关系,设计时要充分考虑,对于各个层次,层次越低,通用性越强,这样,可以保证应用程序的需求发生变化时,所做的改动最小。
进程视图:也称并发视图,侧重于系统的运行特性,主要关注一些非功能性的需求,进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适应进程结构。
进程视图可以描述成多层抽象,每个级别分别关注不同的方面。
0808笔试
6)在 C#编程中,访问修饰符控制程序对类中成员的访问,如果不写访问修饰符,类成员的
默认访问类型是()。(选择一项)注:类的默认访问修饰符是 internael A)public
B)private
C)internal
D)prctected
7)给定如下所示的 Java 代码,则运行时,会产生()类型的异常。(选择一项)
常见的异常类型
异常
说明
Exception
异常结构的根类
ArithmeticException
算术错误情形,如零做除数
ArrayIndexOutOfBoundsException
数组小于或大于实际的数组大小
NullPointerEEception
尝试访问 null 对象成员
ClassNotFoundException
A) pstmt.setInt(2,800); B) pstmt.setInt(1,800); C) pstmt.setString(2,”800”); D) pstmt.setString(1,”800”);
17) 在 SQL Server2005 中,当执行多条 sql 语句时,我们经常采用批处理方式,那么批处理 结束的标志是()。(选择一项)
10)在.NET 框架下开发三层结构的数据库应用系统时,实体类可以在以下()中使用。(选
择一项)
A)表示层
B)业务逻辑层
C)数据访问层
D)以上都可以
11)在 Java 中,关于构造方法,下列说法错误的是()。(选择一项)
注:构造方法必须满足一下语法规则:方法名与类名相同,没有返回类型
A)构造方法的名称必须与类名相同
方法
InnerException
软件架构复习资料五
软件架构复习资料五Chapter 1. What is Software Architecture?理解:软件体系结构(软件架构)的定义系统的软件体系结构是建立一个对系统来说所需要的结构,包括软件元素,它们之间的关系,以及两者的性质。
架构模式的概念。
架构模式,也叫架构风格,一个架构模式描述软件系统里的基本的结构组织或纲要。
架构模式提供一些呈先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。
掌握:软件系统有哪几类结构?模块、组件和连接器、配置。
模块分配具体的职责,是工作的基础;我们调用运行时结构组件和连接器结构,在我们的使用中,组件始终是运行时实体;分配结构描述从软件结构映射到系统的环境,组织、发展、安装、执行;在每类结构里,元素及其之间的关系是什么?元素是一类模块(类、层或功能的划分等),模块与其他模块相关联通过概括化或专业化的关系;元素运行组件如服务、同行、客户、服务器、过滤器等,连接器是组件间的通信工具;每类结构各有哪些常见的结构?其特点是什么?模块:分解结构:分解结构决定了系统的可修改性,以确保可能的变化是局部的;使用结构:使用关系是一种专门的依赖关系,用来拓展或缩小系统,创建子系统,进行增量开发;层结构:通过接口提供一个有凝聚力的服务集合;类结构:允许重载和增量增加的功能;数据模型:描述了数据实体及其关系的静态信息结构;组件和连接器:服务结构:单位服务与其他服务的协调机制;并发结构:确定机会的并行性和资源争夺可能发生的位置;配置:部署结构:显示软件如何被分配给硬件处理和通信元素,特别感兴趣分布式和并行系统;实施结构:显示了软件元素如何在系统的开发、集成和配置控制环境中映射到文件结构。
分配责任,实施和整合模块给将要执行它的团队;了解:结构与视图是什么关系?好的结构的一些经验法则。
Chapter 2. Why is Software Architecture Important?理解:13个理由。
08年软件工程考试范围
考试范围:第一章:软件危机软件工程的目标、内容、原则、面临的问题请举例说明软件危机的一些表现,以及按照软件工程方法开发软件的意义第二章:软件生命周期瀑布模型、原型模型、增量模型结构化开发方法,面向对象的开发方法:题目示例:开发一个制衣厂的生产管理系统,你会选择什么样的模型?为什么?第三章:可行性研究的主要任务和步骤。
第四章:需求分析的任务和方法需求分析阶段使用的工具。
需求分析难点:数据流图数据字典。
请写出学生证的数据流条目。
给出一段文字说明,画出流程图。
第五章:耦合、内聚变换分析和事务分析设计。
要求能根据流程图画出模块结构图。
第六章:无第七章:了解对象、类、属性、服务、继承、多态性、主动对象的概念。
要求:能举例说明这些概念。
第八章:了解建立模型在软件开发中的意义或作用。
第九章:了解面向对象的分析的主要工作步骤。
有哪些方法可以帮助我们发现对象?第十章:能举例说明整体-部分结构、一般特殊结构、实例连接、消息连接关系,以及如何在面向对象的语言中实现这些关系。
能从工作步骤、目的、最后的要建立的模型、工作中的难点等方面对面向对象的需求分析和面向结构的需求分析做一个比较。
第十一章:无第十二章无第十三章根据书中的人机界面设计准则,提出对某一个具体问题界面设计说明。
比如教学管理系统中的学生成绩录入。
第十四章:无第十五章:无第十六章:要求能对MCCALL的质量模型做一个简单的介绍。
如果你是一个经理,负责提高一个较大型的软件公司的软件开发质量(考试的时候具体提出有哪些问题,不如总是不能做好需求,或者不能按照进度完成等),可以做哪些工作?第十七章:软件测试的目的。
使用白盒或者黑盒设计测试用例。
能够从测试的阶段、测试用例的设计方法、测试的错误类型等方面对单元测试、集成测试、确认测试做一个比较。
第十八章:了解软件维护的流程分类和流程。
了解软件维护一般会碰到什么样的困难?第十九章:举例说明风险分析对软件项目成功的重要性。
软件技术基础提纲
例如:A—B AB 一 (A—B)*C+D AB—C*D+ A*(B+C/D)一 E*F ABCD/+*EF*一 (B+C)/(A—D) BC+AD 一/ 26. 队列的术语:所谓队列,就是允许在一端进行插入、而在另一端进行删除的线性表, 排 头:允许删除的一端称为排头,通常用一个头指针(front)指向排头元素的前面队尾: 允许插入的一端称为队尾, 通常用一个称为尾指针的指针指向队尾元素, 即尾指针 (rear) 总是指向最后被插入的元素,队列规则(先进先出,后进后出)。 27. 队列的假溢出及其避免方法。(了解) 28. 循环队列 将队列存储空间的最后一个位置绕到第一个位置, 形成逻辑上的环状空间,供队列循环 使用。有效解决了“假溢出”的问题。 29. 线性链表 线性链表(Linked List)是线性表的链式存储结构。 数据元素的表示: 由两部分信息组成:一是数据元素的值,二是数据元素在线性表中的逻辑位置。这两部 分信息构成线性链表中的一个结点。 线性链表是由若干个结点组成,每个结点有两个域:一个是数据域,用以存放数据元素 的值;另一个是指针域,用以存放后件的存储地址,即后件结点的存储序号。 30. 线性链表插入,删除后指针的变化。 指针 p 所指的结点后插入指针 s 所指的结点 算法:s->next = p->next; p->next = s; 删除:p->next = p->next ->next;或 s=p->next;p->next=s->next; 31. 单链表:每个结点只有一个指针域。要找到某个结点的前件,必须从头指针开始,沿着 指针方向扫描。 33.双向链表 :每个结点有两个指针域,一个称为左指针,指向其前件结点;另一个称为 右指针, 指向其后件。 从表的任意结点出发可以通过正向环 (或反向环) 找到表中其它结点。 插入: p a1 a3
软件架构设计师考试内容
软件架构设计师考试内容
1. 软件架构设计师考试中,系统设计那可是相当重要啊!就好比盖房子,你得先设计好整个框架不是?比如设计一个电商平台的系统,怎样能让用户购物体验超棒,又能保证系统稳定高效,这就是要好好琢磨的呀!
2. 架构模式这一块也不能小瞧啊!这就像是搭积木,有各种不同的模式可以选择,找到最合适的才能搭出漂亮的作品呀!像开发一个社交软件,选择哪种架构模式才能适应大量用户的互动呢,这不得好好研究一下!
3. 性能优化在考试中可占了不小的比重哟!这就像给汽车改装,让它跑得更快更稳。
想想看,一个软件运行起来慢吞吞的,谁会喜欢呀!比如优化一个视频播放软件,让它播放不卡顿,这多重要哇!
4. 安全性问题更是重中之重哇!这就如同给家门上锁,得保证不被坏人入侵呀!在软件里,怎样保护用户的信息不泄露,可不是开玩笑的事儿,对吧!
5. 软件架构文档也很关键呀!这就像是一份详细的地图,让人能清楚知道怎么走。
比如在大型项目中,文档写得好,大家都能明白该干啥,多重要哇!
6. 组件设计那可是大有讲究的!就好比组装一台机器,每个组件都得合适呀!像设计一个游戏里的角色系统,怎么让各个组件完美配合,好玩又有趣,这得费心思吧!
7. 分布式系统也是考试要点呢!这就像一个大型乐队演奏,得各个部分默契配合。
像打造一个分布式存储系统,让数据能快速可靠地存储和读取,得多不容易呀!
8. 技术选型也不能马虎呀!这就像挑衣服,得选适合的才行。
在面对各种技术的时候,选对了才能让软件如虎添翼,难道不是吗!
我的观点结论就是:软件架构设计师考试的内容真的非常丰富和具有挑战性,每一部分都很重要,都需要认真对待和深入学习呀!。
软件架构复习题纲version1
第九章构架编档
9.4视图编档
视图编档中的文档有都哪些内容,这些内容构成了描述构架的文档视图。
第十一ห้องสมุดไป่ตู้ATAM
(1)11.1节,ATAM评估小组的角色及各角色的相应职责?评估小组负责人与评估负责人的区别。
(2)敏感点,权衡点,有风险决策,无风险决策,质量属性效用树等的定义。
第十二章 CBAM
(2)5.4.2资源管理的战术有哪些?
(3)5.3.2 什么是连锁反应,如何避免连锁反应。
(4)虚拟机(VM)支持什么质量属性?如何支持。
(5)战术的定义。
(6)CS结构支持什么质量属性,(可修改性和性能),用什么战术支持这些质量属性。
*/
第六章:
(1)在本章实例中,所有的构架解决方案中用到的战术的名称是什么?需要分析,比如,ISSS物理视图中的各种冗余都是哪种可用性战术?哪些是主动冗余?哪些是被动冗余?还有什么战术?在其它视图(进程视图,模块分解视图等)中,各种战术都哪些?
第四章:
(1)每种质量属性的定义是什么,所关注的方面有哪些,度量标准一般是什么?
(2)4.6商业质量属性有哪些?
(3)什么是质量属性场景(定义)
/* VERY IMPORTANT
第五章:
(1)每种质量属性的所有战术的具体内容和方法。(也可能反过来考,告诉你内容,然后问你战术的名字)
(1)CBAM方法的定义。
(2)CBAM方法简述。
(3)12.2 各基本概念。
第十四章 软件产品线:重用构架资产
(1)构架产品线的成本远远高于开发一个产品,如果用构建的产品线开发产品一般构建三个产品就可使投资得到回报
大学_软件体系结构试题及参考答案
软件体系结构试题及参考答案软件体系结构试题及参考答案(一)1. 什么是软件工程?构成软件工程的要素是什么?软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。
软件工程的要素由方法、工具和过程组成。
方法支撑过程和工具,而过程和工具促进方法学的研究。
2. 什么是软件生存周期?软件开发过程模型与软件生存周期之间是何关系?软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。
软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为软件开发过程提供原则和方法,其包括有以软件需求完全确定为前提的瀑布模型,以渐进式开发模型的原型和螺旋模型,以形式化开发方法为基础的变换模型。
3. 叙述软件设计在软件工程中所处的位置和重要性位置:软件需求分析--------需求规格说明------软件设计------设计文档------------软件编码总要性:(1)、是对软件需求的直接体现。
(2)、为软件实现提供直接依据(3)、将综合考虑软件系统的各种约束条件并给出相应方案(4)、软件设计的质量将决定最终软件系统的质量。
(5)、及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
4. 软件设计应该包含哪些要素?软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
5. 简述UML的特点和用途。
、答:为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的.需求模型、设计模型和设计模型。
提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
提供于实现语言和支持所有的方法学,覆盖了面向对象分析和设计的相关概念和方法学。
独立于任何开发过程,但支持软件开发全过程。
2023年软考架构设计师 考试大纲
2023年软考架构设计师考试大纲
2023年软考架构设计师考试大纲主要包括以下内容:
1. 系统架构设计师和软件架构师的基本概念和职责。
2. 计算机与网络知识,包括计算机系统、操作系统、网络技术等方面的知识。
3. 信息系统知识,包括信息系统的规划、设计、开发、测试、运行和维护等方面的知识。
4. 系统设计与管理,包括系统需求分析、系统设计、系统实现、系统测试、系统部署等方面的知识。
5. 软件工程,包括软件需求分析、软件设计、软件实现、软件测试、软件维护等方面的知识。
6. 信息安全,包括信息安全策略、网络安全、数据保护等方面的知识。
7. 标准化与知识产权,包括标准化知识、知识产权保护等方面的知识。
需要注意的是,2023年软考架构设计师考试大纲可能会根据实际情况有所调整,建议考生关注官方网站或考试机构发布的最新信息。
软件架构复习资料
软件架构课外练习1-5试卷共有3大题,34小题,总计50分教材1.1小节练习:是非题10题教材1.2小节练习:单选题10题教材1.3小节练习:多选题14题一、是非题(共10小题,共计10分)是非题得分:判断正确得计分,判断错误不得分。
1、(1分)流程质量指的是软件产品在流通过程中所表现出来的质量。
F2、(1分)软件属性中的可移植性属于外部质量。
F3、(1分)软件质量属性中的可用性指的是软件产品正确地实现了所需的功能。
F4、(1分)软件系统质量属性中的可伸缩性指的是软件代码行的多少可以根据需要调节。
F5、(1分)服务视点是RM-ODP模型引入的5个视点之一。
F6、(1分)B-S系统的主要好处是不需要在客户端作应用软件维护。
T7、(1分)B-S系统指的是“事务(Business)-服务(Service)”系统.F8、(1分)C-S系统的主要特征是有客户端程序分布在不同的计算机上运行。
T9、(1分)软件架构不是在分布式计算机系统出现后才有的;在集中式计算机系统中,软件子系统也有架构。
T10、(1分)系统的总体属性是其元素的简单总合。
F二、单选题(共10小题,共计10分)单选题得分:选择正确得计分,选择错误不得分1、(1分)模块化与泛化的区别在哪里?B(A) 模块化通过抽象实现关注点分离,泛化通过平行分割系统实现关注点分离(B) 模块化通过平行分割系统实现关注点分离,泛化通过抽象实现关注点分离(C) 模块化通过平行分割系统实现关注点分离,泛化通过平行分割系统实现关注点集成(D) 模块化通过抽象实现关注点分离,泛化通过抽象实现关注点集成2、(1分)软件配置管理的作用是什么?D(A) 版本控制(B) 发布控制(C) 开发协调(D) 以上全部3、(1分)落实关注点分离思想的两个准则是什么?A(A) 模块化和泛化(B) 模块化和递增(C) 信息隐藏和泛化(D) 形式化和前瞻性4、(1分)下面哪些是软件工程中的准则?D(A) 形式化、前瞻性、递增和模块化(B) 泛化(C) 信息隐藏(D) 以上全部5、(1分)教材作者的软件工程的工具模型分几层?D----------专业最好文档,专业为你服务,急你所急,供你所需-------------(A) 一层(B) 二层(C) 三层(D) 四层6、(1分)软件系统的生命周期模型是什么?D(A) 是软件工程流程(过程)的一种模型(B) 是软件开发流程(过程)的一种模型(C) 是系统工程理论的一个应用(D) 是对软件系统的一种客观描述7、(1分)能力成熟度模型(CMM)的作用是什么?A(A) 对企业的软件开发能力作评估(B) 改进软件工程流程(过程)(C) 软件工程流程(过程)的一个参考模型(D) 定义软件开发最佳实践8、(1分)软件工程流程(过程)的作用是什么?B(A) 定义软件生命周期(B) 通过一系列的活动,把用户需求转化为软件产品(C) 识别用户需求(D) 评定软件开发技术9、(1分)软件工程的要素有下列几个C(A) 代码、数据和文档(B) 代码、数据、文档、架构和流程(过程)(C) 方法、工具和流程(过程)(D) 需求分析、系统设计、子系统开发、系统集成和系统维护10、(1分)软件工程的起因是由于下述原因D(A) 系统工程理论的应用结果(B) 管理工程的推动(C) 软件开发不再依赖于硬件的发展(D) 软件危机三、多选题(共14小题,共计30分)多选题得分:选择正确得计分,选择错误减计分,最低得分为0。
08级——软件架构考试提纲
软件体系结构重点以及考点重点一CHAPTER 1 2软件体系结构概念及ABC(1)SA的定义//可能会类似上课时根据判断2.2 other Points of view 正确与否SA的定义:The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.一个程序的软件体系结构或者一个计算机系统是一个架构或者是一个系统的架构。
它包括软件元素、这些元素的外观,以及它们之间的关系。
体系结构= 组件+ 连接件+ 约束Architecture = Components + Connectors + Constrains(2) SA的重要性:1.架构是涉众之间进行交流的手段2.架构是早期设计决策的体现3.架构是可传递、可重用的系统抽象(3)ABC The Architecture Business Cycle (ABC)(1)Business goal(2)ABC is cycle of influences, from the environment to thearchitecture and back to the environment.ABC是一个来自环境对架构以及反馈回环境的影响的循环。
(3)The business/organizational environment necessarily affects architectural design decisions.事物/组织环境必定会影响架构设计决定。
(4)The software architecture in turn changes the business environment.Architectural design is part of every step of the development process.These influences strongly affect the organization’s bottom line. 软件架构反过来改变事物环境。
软考复习提纲
软考复习资料一、计算机系统组成运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。
控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。
CPU的功能:程序控制、操作控制、时间控制、数据处理(最根本的)。
相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟存储器中用来作段表页表或快表存储器、在数据库和知识库中。
CACHE高速缓存的地址映像方法:直接地址映像(主存分区,区分块)、全相联映像(主存分块)、组相联映像(主存分区,区分块、块成组,CACHE分块成组)。
替换算法:随机、先进先出、近期最少用、优化替换算法。
性能分析:H为CACHE命中率,tc为Cache存取时间、tm为主存访问时间,Cache等效访问时间ta=H tc +(1-H) tm 提高了tm/ta倍。
虚拟存储器由主存、辅存、存储管理单元和操作系统软件组成。
RISC精简指令集:指令种类少、长度固定、寻址方式少、最少的访内指令、CPU内有大量寄存器、适合流水线操作。
内存与接口统一编址:都在一个公共的地址空间里,独立使用各自的地址空间。
优点是内存指令可用于接口,缺点内存地址不连续,读程序要根据参数判断访内还是访接口。
廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传输率N倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的阵列,用一个检测盘、5级无专门检测盘。
中断方式处理方法:多中断信号线法、中断软件查询法、菊花链法(硬件)、总线仲裁法、中断向量表法(保存各中断源的中断服务程序的入口地址)。
直接存储器存取DMA:内存与IO设备直接成块传送,无需CPU干涉。
根据占据总线方法不同分为CPU停止法、总线周期分时法、总线周期挪用法。
输入输出处理机用于大型机:数据传送方式有字节多路方式、选择传送方式、数组多路方式。
指令流水线:操作周期是最慢的操作的时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件体系结构重点以及考点重点一CHAPTER 1 2软件体系结构概念及ABC(1)SA的定义//可能会类似上课时根据判断2.2 other Points of view 正确与否SA的定义:The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.一个程序的软件体系结构或者一个计算机系统是一个架构或者是一个系统的架构。
它包括软件元素、这些元素的外观,以及它们之间的关系。
体系结构= 组件+ 连接件+ 约束Architecture = Components + Connectors + Constrains(2) SA的重要性:1.架构是涉众之间进行交流的手段2.架构是早期设计决策的体现3.架构是可传递、可重用的系统抽象(3)ABC The Architecture Business Cycle (ABC)(1)Business goal(2)ABC is cycle of influences, from the environment to thearchitecture and back to the environment.ABC是一个来自环境对架构以及反馈回环境的影响的循环。
(3)The business/organizational environment necessarily affects architectural design decisions.事物/组织环境必定会影响架构设计决定。
(4)The software architecture in turn changes the business environment.Architectural design is part of every step of the development process.These influences strongly affect the organization’s bottom line. 软件架构反过来改变事物环境。
架构设计是开发过程的每一步的部分。
这些会强烈影响组织的底线。
(3)什么是好的SA关于过程的建议1、架构的设计应该由一位设计师或者在某设计师领导下的小组完成//概念一致性2、设计师应全面掌握系统的功能需求,并且应有一份所设计架构应满足的划分了优先级的质量属性列表。
3、架构的文档应该完备。
4、应该让各种涉众积极参与设计方案的评审。
5、对架构人身进行分析,得出可应用的量化度量指标。
6、架构的设计应有助于增量式实现。
//骨架系统7、允许架构带来一定的资源争用,但应清楚地给出这些资源争用的解决方案。
关于结构的建议:1、架构应采用定义良好的模块。
2、应该使用特定于每个属性的众所周知的架构战术来实现质量属性。
3、架构不可以依赖于某个版本的商业产品或者工具。
4、产生数据的模块与使用数据的模块分开。
//信息隐藏可修改性5、对于并行处理系统,应采取订立良好的进程或任务。
6、每个任务或进程的编写都要考虑与特定处理器的关系。
7、采用少量的、简单的交互模式。
重点二Chapter 2 软件体系结构的视图和描述&& CHAPTER 5 (5.9)架构模式与样式(F 5.14)(1)4+1视图理论,The design or logical view: the classes, interfaces, and collaborations forming the vocabulary of the problem and its solution.The interaction or process view: how control flows across the static classes at run time.The implementation view: the organization of the software modules in the development environment.The deployment view: A mapping of elements onto processing and communication nodes.Uses cases cut across the views. They capture the system’s functional requirements for the system and help find conflicts.(2)Architectural Structures(FIGURE 2-3 教材作者的多重结构理论)&& TALBLE 2.1(3)常见软件模式和样式及其特点-数据流、调用/返回、层次、仓库/黑板(F 5.14)考点:(1)ADD 后面过程的VIEW 表示(2)给你一个构架模式,分析用到的战术。
重点三Chapter 4, 5 软件体系结构的质量属性及其战术(重点!)(0)三类质量属性:(a)系统的质量属性(可用性,可修改性,性能,安全性,可测试性,易用性)(b)受构架影响的商业属性(上市时间、成本和收益、所希望的系统生命期的长短、目标市场推出计划、与老系统的集成)(c)与构架本身相关的一些质量属性(概念完整性、正确性和完整性、可构建性)(1)常见质量属性,(可用性,可修改性,性能,安全性,可测试性,易用性)定义(2)质量属性场景,chapter 4 中所有的场景表格TABLE 4.1-4.6(3)保障质量属性的常用战术(可用性,可修改性,性能为重点)1. 可用性战术错误检测命令响应心跳异常恢复:检测和修复表决主动冗余(仅用第一个反应)//热重启被动冗余(主响应,其他更新)//温重启备件//冷重启恢复:重新引入Shadow 状态再同步回滚预防从服务中删除事务进程监视器2. 可修复性战术局部化变更语义一致性预期期望的变更(特别是前两者之间的区别)泛化模型限制可能的选择抽象通用的服务防止连锁反应隐藏信息维持现有的接口限制通信路径使用仲裁者推迟绑定时间运行时注册配置文件多态组件更换遵守已定义的协议3. 性能战术资源需求提高计算效率减少计算开销管理事件率资源管理引入并发维持多个副本增加可用资源资源仲裁调度策略4. 安全性战术抵抗攻击对用户进行身份验证对用户进行授权维护数据的机密性维护完整性限制暴露信息限制访问检测攻击入侵检测从攻击中恢复恢复——查看可用性识别——审计追踪5. 可测试性战术管理输入输出记录回放将接口与实现分离特化访问路线接口内部监视内置监视器6. 易用性战术分离用户接口支持用户主动取消撤销聚合用户模型用户模型系统模型任务模型软件体系结构设计的ADD方法(1)架构设计的重要性和时机,把架构作为软件开发过程基础的人和组织都需要理解构架在其生命中的位置。
何时开始设计:在生命期模型中,构架设计就是从初步的需求分析开始逐步进行迭代(2)ADD方法的步骤,1、选择要分解的模块2、根据这些步骤对模块进行求精2.1、从具体的质量场景和功能需求集合中选择构架驱动因素2.2、选择满足构架驱动因素的构架模式。
2.3、实例化模块并根据用例分配功能。
2.4、定义子模块的接口。
2.5、验证用例和质量场景并对其求精。
3、对需求进一步分解的每一个模块重复上述步骤下面这幅图有些粗糙,但是也算简明。
(3)如何创建骨架系统CHAPTER 7.4重点四软件体系结构评审及其常用方法(ATAM)重点:架构评审的重要性,成本收益,时机,前提条件,人员组成,过程,常用技术手段,评审结果;ATAM方法的这些方面知识考点(1) ATAM 输出(2)Business driver//business goal, architecture driver, Business driver(3)效用树考题类型选择题(30%)简答题(30%)分析论述题(40%)选择题All of the following roles are stakeholder except:=》开发组织管理层涉众、市场营销涉众、最终用户、维护组织涉众、客户All of the following are important system attributes except: attractivity=》availability、modifiability、testability、performance、security、usabilityWhich of the following are elements of a SA: All特征损失模型(MODP)、回响模型(MODR)、噪音模型(MODN)、控制处理(CP)Which of the following is not a precondition for architectural review? finished design=》表述清楚的构架目标和需求;可控制的范围;经济高效;关键人员的可用性;称职的评估小组;可管理的期望。
ATAM outputs include:=》一个简洁的架构表述;表述清楚的业务目标;由场景集合捕获的质量需求;架构模式到质量需求的映射;敏感点和权衡点的集合;有风险决策和无风险决策;风险主题的集合。
简答题1、What is The Architecture Business Cycle (ABC)?ABC is cycle of influences, from the environment to the architecture and back to the environment=》ABC是一个从环境到架构又到环境的相互影响的周期。
2、List 5 architecture patterns/styles.=》独立组件,数据流(批顺序,管道-过滤器),以数据为中心(存储库,黑板),虚拟机,调用/返回。
3、How is an architectural pattern/style determined.a set of component types一组组件类型a set of connector types/interaction mechanisms一组连接件类型/交互机制a topological layout of these components这些组件的拓扑分布a set of constraints on topology and behavior一组对拓扑和行为的约束an informal description of the costs and benefits of the style一些对风格的成本和效益的非正式的描述4、Bass et al's classify all architecture structures into 3 main categories, what are them?Model-based(Decomposition, Users-Layered, Class)Component-and-connector(Client-Server, Concurrency, Process, Shared Data) structuresAllocation(Work Assignment, Deployment, Implementation)5、List 5 architecture structures according to Bass et al.=》分层、使用、分解、类、客户机/服务器、进程、并发、共享数据、部署、工作分配、实现。