软件设计师下午考试题型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一大题——数据流图
1、实体:人、组织、设备、其它软件系统(名词)
2、过程:施加于数据的动作或行为(动词)
3、数据流:数据的运动,系统与环境之间、系统内两过程之间的通信形式(名词)
4、数据存储:系统需要在内部收集、保存、以供日后使用的数据集合。(名词)
5、
6、
上下文图:DFD最高层次的图,系统功能的最高抽象。
7、过程分解的平衡原则
父类中加工的输入输出流必须与子类的输入输出数据流在数量和名称上相同
如果父图额输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的一个数据流,那么它们仍然平衡。
第二大题——数据库设计
1、候选建(码):一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合(复合属性)才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键
All-key关系模型的所有属性组组成该关系模式的候选码,称为全码。即所有属性当作一个码。若关系中只有一个候选码,且这个候选码中包含全部属性,则该候选码为全码
2、E-R图
三要素:实体、属性、联系
实体:具体的对象;如学生、教室、课程、学校(矩形)
属性:实体具有的特征和性质;
联系:实体之间的关联关系。
如教师与学生之间为指导关系,学生与课程之间为选课关系(菱形)
3、局部E-R图
系统局部实体之间的关系,无法反映系统在整体上实体之间的相互联系。
为了解决局部E-R图的问题,必须清理系统在应用环境中的具体语义,进行综合统一,通过调整消除这些问题,的到全局E-R图。
4、全局E-R图优化
冗余数据:可由基本数据导出的数据
冗余联系:可由其它联系导出的联系。
冗余的存在破坏数据库的完整性,给数据库维护增加困难,应当消除。分析方法是主要的消除冗余的方法。
5、
复合属性(composite attribute):复合属性是指具有多个属性的组合,例如名字属性,它可以包含姓氏属性和名字属性,如下图:
多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性,用双线椭圆表示。
派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示,如下图。
可选属性(optional attribute):并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性,在椭圆的文字后用(O)来表示,如下图的地址就是一个可选属性。
联系属性:联系属于用户表示多个实体之间联系所具有的属性,一般来讲M:N的两个实体的联系具有联系属性,在1:1和1:M的实体联系中联系属性并不必要。
第三大题——UML类图
1、看图分析用例名、类名、状态名
2、多重度
0..1 0或1个实例.
0-*表示0个或多个对象。(可以不对应)
1-*表示一个或多个对象。(至少对应一个)
*表示多个的对象。
n..m符号表示有n到m个实例
0..*or*没有实例格数的限制(包括没有).
1只有一个实例
3、设计模式,采用的原因(即模式的作用)
4、关系类型
依赖关系(Dependence):是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
泛化关系(Generalization):也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。
关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单
聚合关系(Aggregation):表示的是整体和部分的关系,整体与部分可以分开.
组合关系(Composition):也是整体与部分的关系,但是整体与部分不可以分开.
实现关系(Implementation):是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。
第四大题——C编程
1、时间复杂度
(1)时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。
2、空间复杂度
一个程序的空间复杂度是指运行完一个程序所需内存的大小。
四大常用算法策略
1、回溯
概念:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。回溯法是对解空间的深度优先搜索,
2、分治
概念:分治法是一种很重要的算法。字面上的解释是“分而治之”,就是将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……
分解——解决——合并
3、动态规划
动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的。
初始状态→│决策1│→│决策2│→…→│决策n│→结束状态
例:背包问题。