软件设计师下午题笔记
上午题
4、【软件工程】常见七种过程模型介绍
喷泉 一词本身体现了迭代(不断重复)和无间隙(不存在明显边界)
瀑布(明确)演化(逐步演化)原型(快速,抛弃)螺旋(风险分析)
5、集线器、网桥、交换机、路由器
6、霍夫曼编码计算图片压缩率
7、排序算法
不稳定排序:快选希堆(快速排序,选择排序,希尔排序,堆排序)
面向对象的设计原则:对修改封闭,对拓展开放。
创建型模式
工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例(Singleton)、构建器(Builder)、原型(Prototype)模式;
结构型模式
适配器(Adapter)、组合(Composite)、装饰(Decorator)、代理(Proxy)、享元(Flyweight)、外观(Façade)、桥接(Bridge)模式;
行为型模式
策略(Strategy)、模板方法(Template Method)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、状态(State)、访问者(Visitor)、解释器((Interpreter)、中介者(Mediator)、观察者(Observer)模式。
下午题
第一大题(数据流图)
第一小题
填实体到下面多的零层图直接找对应加工
第二小题
数据存储加“表”或“文件”
第三小题
格式
第四小题
第二大题(E-R图)
第一小题
1、弱实体和超类
第二小题
1对多
1、1方的主键要归并到多方
2、一个空可以填多个关系
3、外键、候选码
4、联系转换
第四小题
第三大题(UML)
UML中的关系
1、依赖
2、关联
关联包括聚合和组合
公司和员工,班级和学生,鸟群和鸟;
鸟和翅膀,公司和部门。
3、泛化
子类继承父类,父类泛化子类。
4、实现
考的很少
UML中的图
1、类图
2、用例图
包含关系
A所执行的事件有B的存在,比如删除图书前要查找书
扩展关系
泛化关系
第四大题(算法)
要想直接解决一个较大的问题,有时是相当困难的,分治法的设计思想是将一个难以解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之。
动态规划法与分治法类似,其基本思想也是将待求解问题分解为若干个子问题,先求解子问题,再从这些子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法求解的问题,经分解得到的子问题往往不是独立的。若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。此时用一个中间表记录重复子问题的解,可以避免大量的重复计算。这就是动态规划法的基本思路。动态规划法的应用场景股会出现“最优子结构”的描述,并目针对重复子问题的计算通过记录.查表,可以提高效率。
贪心法也经常用于解决最优化问题,与之不同的是,贪心法在解决问题的策略上是仅根据当前已有的信息做出选择,而且一旦做出选择,无论未来如何都不会改变。也就是只考虑当前最优,不考虑全局最优。一般不涉及划分和求解重复子问题。
回溯法可以系统地搜索一个问题的所有解或任意解。它在包含问题的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。
分支限界法类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法,但在一般情况下,分支限界法与回溯法的求解目标不同。分支限界法的求解目标是找出满足约束条件的一个解即可。由于求解目标不同,其探索方式与回湖法也不同,分支限界法以广度优先或以最小耗费优先的方式得索解空间树。
算法
分治:分而治之,先解决子问题,再将子问题的解合并求出原问题。
时间复杂度:O(nlogn)
空间复杂度:O(n)
贪心:一条路走到黑,选择当下局部最优的路线,没有后悔药。
回溯:一条路走到黑,手握后悔药,可以无数次重来。(英雄联盟艾克大招无冷却)。
动态规划:上帝视角,手握无数平行宇宙的历史存档,同时发展出无数个未来。
第六大题(JAVA)
+表示public,-表示private,#表示protected
学是不想从头学了,直接简单粗暴,上真题找感觉
1、2012年下半年
父类接口定义方法,子类实现方法
interface 接口
implements 实现接口(与接口配套使用)
接口里要是有方法定义,子类就会实现。
2、2017年上半年
abstract 抽象类
第一个空根据类图可以得出。(抽象类不一定有抽象方法,有抽象方法的一定是抽象类)
第二空设置构建器,让类定义的对象值等于方法的参数值,this用于区分他俩。
第三空的上一句创建了一个pizza,下一句是给这个pizza加一个口味(就是看第一空的函数里面还有哪个方法没用)。
第四空前两句是创建了一个新员工,创建了一个口味的pizza,所以这一句新员工要对这该口味的pizza构建一个生成器
第五空构建这个pizza。
3、2018年上半年
第一二两空看到接口去找实现;
第三四空看上面用到了哪个函数,然后这个函数的方法还用了字符串
第五个空构建,找构建的方法。