软考-软件设计师-下午题

下午试题 5道试题(15分*5)75分

一、数据流图
  概要:本题主要考察的数据流图的知识,主要是让写出实体、数据存储、缺失数据流。做好这个题,要利用父图子图平衡,数据流有输入必定有输出,加工的分解。
  答题技巧:
   1)读题。阅读一遍说明,宏观把控整道题描述的是一个什么样的系统,然后用数据流图中的符号画出说明中的外部实体、加工、数据存储,例如看到一个学生实体,用长方形圈出来,问题1和问题2迎刃而解。
   2)对比和标记。找缺失数据流,首先看父图子图的数据项是否对应,然后再去说明中找对应关系。尽量把找到的实体、数据存储名称标记在图中,这样就不用每次看都要解释一遍。只要细心认真,一定能找出来。
  注意:一定要使用文章中给的词,数据流起点和终点如果可以写编号的就不要写文字。
  结构化分析设计
考点:
补充和完善数据流:

  1. 首先要想到分层数据流图的平衡原则,即父图和子图的输入/输出流一致,这是找出遗漏数据流非常重要的技巧。
  2. 每个加工至少有一个输入和一个输出数据流。
  3. 找出遗漏的数据流,最根本的依据还是说明。

   

二、E-R图                                  
概要:主要考察从需求里面抽象出概念模型,转换成逻辑结构模型的过程。一般就是让补充E-R图,补充逻辑结构模型,找主外键。
  答题技巧:
   1)读题、图、表。画出实体名称,实体属性与逻辑结构字段对比,将漏掉的字段标记出来,为以后补充逻辑结构做准备。查看实体联系图和逻辑结构,看看哪个实体对应上了,哪个没有对应上,为以后找主键做准备。
   2)做题。补充E-R图的关系,参照实体间的对应关系,例如一个学生有多个老师,一个老师有多个学生,那学生和老师的关系比为*:*。三元关系尤其要注意。
主键是唯一能标识这个元组的键,一般在说明中会给出。外键是其他关系模式的主键。联合主键分开后是外键。
  注意:找主外键可能会比较容易错,一定要静下来多分析几套题,多总结。
  重识数据库设计——【软考】这里有我总结的详细知识点。

三、UML图

  概要:主要考察从需求中抽象出UML图,虽然常考用例图、类图,但是其它的图也要准备。
  答题技巧:
  1)读题。标识出参与者、明白整个系统分主功能,次要功能。
  2)对比。让写类名,就从说明或者给定的表格中的英文单词中找。通过类与类之间的关系(实现、继承、聚合)判断类名。多重度要根据说明中给定的关系来判断,不要主观臆断,要从原文中找依据。
  注意:多重度是易错点。重点在分析关系。比如聚合,一个是另一个的一部分,但是生存周期结束后仍可以单独存在。找类属性也易错。不要看到英文单词就往上写,要和实际结合。我们不仅仅是在做题,也是在通过UML工具描述生活中的问题。

用例图:

四、算法
  概要:大体分两部分。1.填写程序段 2.采用了什么算法、时间复杂度 3.给一个该算法的具体应用,求结果
  答题技巧:
   1)读题。题里面一般会告诉你该算法要怎样做,分几步,一般与代码段对应。认真看注释,联系上下文可能会带给你思路
   2)算法设计策略需要明确这几个算法的核心。时间复杂度要依据for循环的个数。比如贪心算法,就是只顾当下。
   3)如果懂了这个算法的思想,即使代码空填不出来,后面的应用也能填出来。
  注意:算法并不难,但是一定要塌下心来去认真分析,首先书上的典型例子要分析透彻。

五、设计模式
  概要:23个设计模式的应用,主要是给代码段填空。主要考察Java设计模式的关键字abstract /extends/implements,如何定义成员变量,构造函数填写,实例化,类与类之间的调用关系
  答题技巧:
   1)读题真的很重要!知道这个代码有几个类,要实现什么功能,过程中用到什么参数。
   2)明确关系在代码中如何体现的。比如组合,一个类包含另一个类的引用和实例化。
   3)熟悉Java语法。比如static,如果类里面含有static,可以直接调用该类内部的方法。否则就必须实例化后再使用。
  注意:设计模式也是根据生活抽象出来的,只要明确了需求,认真分析,设计模式并不难。

总结:
  下午题就是一个阅读理解。把需求翻译成数据流图、E-R图、UML图,然后把需求转化成代码进行算法优化和设计模式架构优化。