软件设计师考试学习3

开发模型

软件设计师考试学习3_第1张图片

瀑布模型

现在基本被淘汰了

是一种结构化方法中的模型,一般用于结构化开发
问题在于需求阶段需求不可能一次搞清楚,很可能做完推翻重做
适用于需求明确或二次开发
软件设计师考试学习3_第2张图片

原型模型、演化模型、增量模型

原型是为了解决需求不明确的问题
原型在项目初期,构建一个简易的系统,例如简单的界面、系统,让用户直观的操作,如果有问题再改
原型法往往只应用于需求分析的阶段

增量模型是先将核心需求做出来,然后再在此基础上加其他模块或进行更改
增量模型风险比较小
软件设计师考试学习3_第3张图片

螺旋模型

由多个模型组合,引入了风险分析
软件设计师考试学习3_第4张图片

V模型

测试占到了更重要的地位,提早进行测试
分析和测试对应,在需求分析阶段就写验收测试和系统测试计划
概要设计阶段会做集成测试的计划
详细设计阶段会做单元测试的计划
软件设计师考试学习3_第5张图片

喷泉模型与RAD

是面向对象的模型
RAD是快速开发模型,是由瀑布模型和CBSD(构件化开发模型)组合形成的
如VB这种可视化模型就属于RAD模型
最大的特点就是能快速构建业务系统
软件设计师考试学习3_第6张图片

构件组装模型CBSD

把软件开发中的各个模块做成标准的构件,然后组装,就得到了需要的软件
极大提高了软件开发的复用性,是开发时间减少,节省成本,提高可靠性(用其他系统中的构件,用在新的系统中出错概率小)
软件设计师考试学习3_第7张图片
第一个标准是OMG组织提出的
第二个标准是微软家族的
第三个标准是JAVA体系用到的
软件设计师考试学习3_第8张图片

统一过程(UP)

缩写也可以为RUP(以前)
细化阶段,重点是建立架构
交付阶段,β测试,针对产品,在用户环境里,由用户发起测试;对应的α测试是在开发环境测试的
统一过程也会循环迭代
软件设计师考试学习3_第9张图片

敏捷开发方法

软件设计师考试学习3_第10张图片

信息系统开发方法

结构化方法最大的方法就是不灵活,不容易改变
面向对象就是对现实对象抽象,解决结构化方法的问题,有更好的复用性
原型法适合需求不明确的开发,做初步简易的系统来探明需求
软件设计师考试学习3_第11张图片

需求的分类

设计约束比如用户明确提出只能用某种数据库
QFD质量改善模型
期望需求是用户没说,但是隐晦的需求
兴奋需求是超越用户期望的需求,会让用户开心但是不提倡,会浪费成本,一般杜绝
软件设计师考试学习3_第12张图片

结构化设计

扇入表示别人调用自己比较多,服用程度比较高
扇出表示自己需要调用的其他模块比较多,不太好
软件设计师考试学习3_第13张图片

软件设计师考试学习3_第14张图片
从上往下内聚程度降低
耦合从上到下越来越高
软件设计师考试学习3_第15张图片
图B需要掌握
软件设计师考试学习3_第16张图片

测试原则与类型

必考
动态测试是利用到计算机的测试
静态测试是纯人工测试
代码走查是人工运行
代码审查是与别人交叉检查
软件设计师考试学习3_第17张图片

测试用例设计

黑盒测试是不知道里面的结构
白盒测试能看到系统的结构,将所有路径都能覆盖,往往效果比较好
边界值一般是取略小于或略大于边界,及边界值
例如0到150,取的是-1 0 150 151

错误推测强调经验灵感

语句覆盖/判定/条件/路径覆盖考的多
软件设计师考试学习3_第18张图片

测试阶段

确认测试和系统测试顺序不一定;对于软件项目来说,一般到确认测试就停止了;但是有软硬件的系统,会先做系统测试,然后再确认验收工作

系统测试主要考虑性能压力稳定性方面

冒烟测试就是最初步的测试
软件设计师考试学习3_第19张图片

McCabe复杂度计算

软件设计师考试学习3_第20张图片

系统运行与维护

软件设计师考试学习3_第21张图片

软件能力成熟度模型集成(CMMI)

软件开发的成熟度
阶段式:
第一级是混乱级
二级考虑项目级的问题
三级考虑组织级的问题(文档化/标准化)
第四级强调量化,管理量化
五级做持续优化

国内企业比较急功近利,为了能通过等级,但是实际会觉得浪费成本而不按这个标准做(论文里可以提)
软件设计师考试学习3_第22张图片

项目管理基础知识

一般考时间管理/风险管理
软件设计师考试学习3_第23张图片

甘特图不能直观的表达任务之间的逻辑关系
先计算最早开始时间,然后逆推得到每个事件的最晚开始时间
软件设计师考试学习3_第24张图片

软件设计师考试学习3_第25张图片
软件设计师考试学习3_第26张图片

需求工程

面向对象的需求分析

实体类,跟数据相关的
边界类,跟外界系统交互的类
类与类之间的衔接的类

多态:做同样的操作,控制的是不同的对象

接口是一种特殊的类,只有方法的定义,没有方法的实现

消息是对象之间通信的方式,消息是异步的
软件设计师考试学习3_第27张图片

面向对象设计(设计原则)

当子类方法有重载时,可能不能替换父类
所以子类应该尽可能少的重载
而接口就是为了解决这个问题

计算机硬件其实就是针对接口编程,都是插槽;而电视机都是焊接的,不容易更换

继承是紧耦合关系,所以应该尽量少
最少知识法则一般通过封装实现
软件设计师考试学习3_第28张图片

UML

主要了解一系列图
图为结构图(静态图)、行为图(动态图)
用例图有分歧(考试时看情况,大部分情况是动态)

静态图一般表示之间的关系
部署图:软件的部件应该部署在哪个硬件节点之上

行为图各有特征
用例图表示系统和外部的交互关系
通信图和顺序图区别就在于前者没有强调时间关系
状态图表示状态变迁转移情况
活动图和流程图的结构是一致的
其他不用管
软件设计师考试学习3_第29张图片

设计模式的概念

设计模式与语言无关,构建设计
软件设计师考试学习3_第30张图片

设计模式的分类

创建型模式指用于创建对象的模式,为设计类实例化、新对象提供指南
结构型模式主要处理类或对象的组合问题,形成更大的结构提供指导
行为型模式,主要描述类或对象交互的模式,以及职责分配的问题

创建型模式

原型模式又称为克隆模式
软件设计师考试学习3_第31张图片

结构型模式

软件设计师考试学习3_第32张图片

行为型模式

软件设计师考试学习3_第33张图片

模板方法模式和访问者模式了解概念即可

数据流图

必考(15分)
软件设计师考试学习3_第34张图片
软件设计师考试学习3_第35张图片

数据流图基本概念

区分数据流图和ER图,数据流图没有联系
软件设计师考试学习3_第36张图片

软件设计师考试学习3_第37张图片

数据流图的分层(DFD)

数据流图又称为分层数据流图
顶层中间椭圆表示要开发的系统,两边的方块表示外部实体
将顶层图细化,将中间的系统分为几个节点,代表处理职能部件
下面再细化

分层的思路和结构化的开发方法是完全匹配的,所以数据流图是结构化开发方法最为主流的工具
绘制的时候要注意父图和子图要保持平衡
软件设计师考试学习3_第38张图片

数据字典

配合数据流图使用
软件设计师考试学习3_第39张图片
软件设计师考试学习3_第40张图片

数据流图的平衡原则

对于一个加工节点,应该有输入也有输出
软件设计师考试学习3_第41张图片

软件设计师考试学习3_第42张图片

数据流试题解题技巧

  1. 详细分析试题说明,从需求中提取关键点
  2. 利用数据平衡的原则进行判断

案例分析1


绘制加工时,数据流不平衡:黑洞、奇迹、数据流命名问题(输入流和输出流一样、输入流不可能产生输出流)
软件设计师考试学习3_第43张图片
软件设计师考试学习3_第44张图片

软件设计师考试学习3_第45张图片

软件设计师考试学习3_第46张图片

案例分析2

软件设计师考试学习3_第47张图片
软件设计师考试学习3_第48张图片


软件设计师考试学习3_第49张图片

软件设计师考试学习3_第50张图片

数据库设计

重点ER模型、关系模式
软件设计师考试学习3_第51张图片

数据库设计过程

关系模式是对ER模型进行转化得到的
每个阶段的产物要掌握
软件设计师考试学习3_第52张图片

ER模型

软件设计师考试学习3_第53张图片

软件设计师考试学习3_第54张图片

数据库设计例题1

ER模型补充,ER模型转关系模式,关系模式补充,一些概念
软件设计师考试学习3_第55张图片

客房和客户之间也是多对多,一个客房可以被多个客户分时段预定(???)
软件设计师考试学习3_第56张图片
软件设计师考试学习3_第57张图片

第二题
软件设计师考试学习3_第58张图片
4:员工号 部门号
5:客房号
6:身份证号
7:岗位
8:身份证号 客房号
软件设计师考试学习3_第59张图片
第四题,逆规范化,权限存储多次,造成了数据冗余;但是减少了一次链接操作,查询数据快

例题2

软件设计师考试学习3_第60张图片
软件设计师考试学习3_第61张图片
软件设计师考试学习3_第62张图片
a:商场编号
b:部分编号
c:员工编号
软件设计师考试学习3_第63张图片
软件设计师考试学习3_第64张图片

经理也是员工,属于一种特殊的关系,用一根线加一个圈表示
软件设计师考试学习3_第65张图片

第四题:
紧急联系人(员工编号 紧急联系人姓名 电话)
软件设计师考试学习3_第66张图片

UML建模

用例图和类图+其他类型的图
软件设计师考试学习3_第67张图片

用例图

软件设计师考试学习3_第68张图片

类图与对象图

软件设计师考试学习3_第69张图片

0…*和*是对应的
软件设计师考试学习3_第70张图片

泛化是对类的,实现是对接口,要注意线的形状
软件设计师考试学习3_第71张图片

顺序图

每个对象引出一条生命线,用虚线画
整体流程执行是从上往下走
每个箭头表示消失
顺序图特点就是按顺序来,表现对象之间的交互关系,是动态图
考察重点是消息或对象名
软件设计师考试学习3_第72张图片

活动图

表现流程情况,分支状态
粗横线表示从这里产生了多少个并行的线程
软件设计师考试学习3_第73张图片
带泳道的活动图,指示了不同的对象,表示哪个活动的责任人是谁
一个流程和图的对应
软件设计师考试学习3_第74张图片

状态图

状态图表现状态的变迁,所以是动态图
箭线表示事件,节点表示状态
软件设计师考试学习3_第75张图片

通信图

和顺序图差不多,时间上没有那么明晰
软件设计师考试学习3_第76张图片

例题1

软件设计师考试学习3_第77张图片
软件设计师考试学习3_第78张图片
软件设计师考试学习3_第79张图片

问题3,音轨和音轨存在联系,0到1
软件设计师考试学习3_第80张图片
软件设计师考试学习3_第81张图片

例题2

软件设计师考试学习3_第82张图片
软件设计师考试学习3_第83张图片
软件设计师考试学习3_第84张图片
软件设计师考试学习3_第85张图片
设计模式是状态模式
必须有的属性是CLavel
软件设计师考试学习3_第86张图片

数据结构与算法应用

分治法

用到递归
软件设计师考试学习3_第87张图片

递归技术

软件设计师考试学习3_第88张图片

二分查找

软件设计师考试学习3_第89张图片

回溯法

软件设计师考试学习3_第90张图片

贪心法

软件设计师考试学习3_第91张图片

动态规划

子问题不是独立的,最后需要查表
软件设计师考试学习3_第92张图片

例题1

软件设计师考试学习3_第93张图片
软件设计师考试学习3_第94张图片
(1) j = 0
(2) b[j] = b[j] + s[i]
(3) min = temp
(4) b[m] = b[m] + s[i]
软件设计师考试学习3_第95张图片
软件设计师考试学习3_第96张图片

两种方法都是贪心,时间复杂度都是O(n^2)
软件设计师考试学习3_第97张图片

例题2

软件设计师考试学习3_第98张图片
软件设计师考试学习3_第99张图片
软件设计师考试学习3_第100张图片
软件设计师考试学习3_第101张图片

分治法
软件设计师考试学习3_第102张图片

时间复杂度的递归式,
比较次数是n1+n2
软件设计师考试学习3_第103张图片

面向对象程序设计

软件设计师考试学习3_第104张图片
软件设计师考试学习3_第105张图片
软件设计师考试学习3_第106张图片
软件设计师考试学习3_第107张图片
软件设计师考试学习3_第108张图片
软件设计师考试学习3_第109张图片
在这里插入图片描述
软件设计师考试学习3_第110张图片
软件设计师考试学习3_第111张图片
软件设计师考试学习3_第112张图片
软件设计师考试学习3_第113张图片

例题1

创建型模式
软件设计师考试学习3_第114张图片
软件设计师考试学习3_第115张图片
软件设计师考试学习3_第116张图片
软件设计师考试学习3_第117张图片
软件设计师考试学习3_第118张图片

例题2

软件设计师考试学习3_第119张图片
在这里插入图片描述

软件设计师考试学习3_第120张图片

软件设计师考试学习3_第121张图片

专业英语词汇

软件设计师考试学习3_第122张图片
软件设计师考试学习3_第123张图片
软件设计师考试学习3_第124张图片
软件设计师考试学习3_第125张图片
软件设计师考试学习3_第126张图片
软件设计师考试学习3_第127张图片
软件设计师考试学习3_第128张图片
软件设计师考试学习3_第129张图片
软件设计师考试学习3_第130张图片
软件设计师考试学习3_第131张图片
软件设计师考试学习3_第132张图片
软件设计师考试学习3_第133张图片
软件设计师考试学习3_第134张图片
软件设计师考试学习3_第135张图片
软件设计师考试学习3_第136张图片
软件设计师考试学习3_第137张图片
软件设计师考试学习3_第138张图片
软件设计师考试学习3_第139张图片
软件设计师考试学习3_第140张图片

你可能感兴趣的:(软考,学习,软件设计师,软考)