案例题型分析
第一题必做,后面的是4选2做。
1. 2019----2022年,第一题都是软件架构;第一问都是关于架构风格的,给出几种架构风格然后让对比;第二问给一些题目描述然后填写质量属性效用树。所以每种架构风格必须了然于胸,质量属性的判断(架构的8个质量属性)
2.后面的4选2,推荐选系统开发,系统开发考的是软件工程的知识、面向对象、结构化系统分析、面向对象的系统分析
3.还有一个案例就看自己擅长哪个方面了,建议数据库和web方向的。
软件架构设计:主要涉及到质量属性、软件架构风格、软件架构评估、MVC架构、面向服务SOA、ESB、J2EE架构等,还有架构领域知识DSSA、ABSD等也是
系统开发基础:从需求分析到系统运维过程以及建模等,涉及UML的图、关系的识别,尤其是类图、用例图、活动图、状态图;设计模式识别,数据流图、E-R图等简单识别;信息安全相关技术;项目管理-进度管理-关键路径。
数据库系统:主要考一些新技术的比较,如关系型数据库、内存数据库及NoSQL等,还会包括反规范化技术、主从复制、负载均衡等
嵌入式系统:多为实时性和可靠性及容错,大概率陌生技术,不建议选
Web应用开发:考察Web相关技术,一些结合架构进行考察。偶尔会考到新技术,遇到完全没听说过的技术就不选。
要点:完全陌生的架构和技术没必要去看,因为不会考第二次。
选题技巧
历年出题规律总结:
1. 2019----2022年,第一题都是软件架构;
第一问都是关于架构风格的,给出几种架构风格然后让对比;
第二问给一些题目描述然后填写质量属性效用树。所以每种架构风格必须了然于胸,质量属性的判断(架构的8个质量属性)
2.后面的4选2,推荐选系统开发,系统开发考的是软件工程的知识、面向对象、结构化系统分析、面向对象的系统分析
3.还有一个案例就看自己擅长哪个方面了,建议数据库和web方向的。
第一题必做直接做,后面的4选2,要先看题目描述的问题,然后带着问题去读题目,如果题目中出现了很多没听过的技术一般不能选。总体来说看看能不能拿到12分以上,能就选。
还有300字左右不能太多。按点给分,多写不扣分,少写扣分。
涉及的知识点:
软件架构设计:主要涉及到质量属性、软件架构风格、软件架构评估、MVC架构、面向服务SOA、ESB、J2EE架构等,还有架构领域知识DSSA、ABSD等也是
系统开发基础:从需求分析到运维,涉及UML的图、关系的识别,尤其是类图、用例图、活动图、状态图;设计模式识别,数据流图、E-R图等简单识别;信息安全相关技术;项目管理-进度管理-关键路径。
数据库系统:主要考一些新技术的比较,如关系型数据库、内存数据库及NoSQL等,还会包括反规范化技术、主从复制、负载均衡等
嵌入式系统:多为实时性和可靠性及容错,大概率陌生技术,不建议选
Web应用开发:考察Web相关技术,一些结合架构进行考察。偶尔会考到新技术,遇到完全没听说过的技术就不选。
要点:完全陌生的架构和技术没必要去看,因为不会考第二次。
常考知识点回顾:
一、软件架构设计
一)、.质量属性效用树、质量属性判断
一般是给了描述让判断是什么质量属性,除了质量属性外还有风险点权衡点等等。
三点:定义、优化策略、典型代表参数
- 1.性能:响应能力,多久才能做出反应,或者单位时间内处理的个数;优化策略:增加计算资源、引入并发、减少开销、优先级、资源调度;典型:1秒内.....
- 2.可靠性:在错误面前维持基本功能的能力;优化策略:心跳、冗余、选举、ping/Echo;
- 3.可用性:系统正常运行的比例;优化策略:心跳、冗余、选举、ping/Echo;
- 4.安全性:为正常用户提供服务并拒绝非法用户的能力;优化策略:审计追踪、日志、防火墙、用户认证和授权、加密,入侵检测
- 5.可修改性:修改的容易程度,是否容易测试,高性价,有限时间内;优化策略:代码写的怎么样,设计做的如何,面向对象以及结构化的设计规则:接口-实现分类、信息隐藏、抽象
- 6.功能性:功能的描述;
补充:
1.性能是带有时间控制的功能,性能和功能的区分:要求通过超链接打开一个网站,这是功能;要求3秒内通过超链接打开一个网站,这是性能;
2.带数字的不一定是性能:比如系统发生故障后要求一天内恢复正常:可用可靠;要求3人/月完成变更:可修改性
- 7.可变性:体系结构经扩充或变更成为新体系结构的能力
补充:
可变性和可修改性区别:可修改性一般指系统内的某个功能;可变性一般指架构上的修改使之成为新的系统或架构,作用于产品线上,复用
- 8.互操作性:与其他系统或环境交互的能力
经常考的质量属性:
性能、安全性、可用性、可修改性---比较好举例,质量属性效用树等
二)、必须背过的概念:考试会考原话
1.软件架构风格
软件架构风格是对设计、软件、甚至是代码的分类------------描述特定软件系统的惯用模式;组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式反应众多系统共有的结构和语义。
2.架构风险
风险,是问题,可能发生也可能不发生-----架构设计中潜在的、存在问题的架构决策所带来的隐患
3.风险点于非风险点
风险点:可能存在问题的点,可能会影响什么、产生什么后果等等的这些因素;
非风险点:某个功能增加是可行的,没什么风险或者风险在可接受范围内,就是非风险点
4.敏感点
只提到一个质量属性,就是敏感点
5.权衡点
影响多个质量属性,权衡点
二、架构风格
5大风格:分类、简介、特征、代表系统或软件-----有个表
1.数据流:每阶段产生的输出是下一阶段的输入,区别在于是否整体
1).管道过滤器:一个接一个,前一个输出是后一个输入,数据不以整体传输
2).批处理:一个接一个,数据以整体为单位传输
典型应用:早期的编译器都是采用这种数据流风格
2.调用返回风格:构件之间的调用
1).主程序--子程序:显示调用,主程序直接调用子程序,主程序的正确取决于子程序,放弃了部分控制权
2).面向对象:对象是构件,通过对象调用封装的属性和方法。
3).层次结构:分层,每层最多影响上下两层(多为上层),层间有调用关系
典型应用:MVC、J2EE都是层次结构
3.独立构件风格:事件触发推动动作
1).隐式调用:不直接调用通过事件驱动
2).进程通信:进程间消息的传递,同步异步;共享内存啊,有名管道啊等等
典型应用:隐式调用:程序语言的语法高亮、语法提示错误,中断
4.仓库风格/数据共享风格:
1).数据库
2).超文本
3).黑板
典型应用:
5.虚拟机:自定义流程规则,按流程执行,规则随时变,灵活定义,业务灵活组合
1).解释器
2).规则系统
典型应用:机器人就是虚拟机风格
6.闭环--过程控制
典型应用:
7.C2
典型应用: