现在基本被淘汰了
是一种结构化方法中的模型,一般用于结构化开发
问题在于需求阶段需求不可能一次搞清楚,很可能做完推翻重做
适用于需求明确或二次开发
原型是为了解决需求不明确的问题
原型在项目初期,构建一个简易的系统,例如简单的界面、系统,让用户直观的操作,如果有问题再改
原型法往往只应用于需求分析的阶段
增量模型是先将核心需求做出来,然后再在此基础上加其他模块或进行更改
增量模型风险比较小
测试占到了更重要的地位,提早进行测试
分析和测试对应,在需求分析阶段就写验收测试和系统测试计划
概要设计阶段会做集成测试的计划
详细设计阶段会做单元测试的计划
是面向对象的模型
RAD是快速开发模型,是由瀑布模型和CBSD(构件化开发模型)组合形成的
如VB这种可视化模型就属于RAD模型
最大的特点就是能快速构建业务系统
把软件开发中的各个模块做成标准的构件,然后组装,就得到了需要的软件
极大提高了软件开发的复用性,是开发时间减少,节省成本,提高可靠性(用其他系统中的构件,用在新的系统中出错概率小)
第一个标准是OMG组织提出的
第二个标准是微软家族的
第三个标准是JAVA体系用到的
缩写也可以为RUP(以前)
细化阶段,重点是建立架构
交付阶段,β测试,针对产品,在用户环境里,由用户发起测试;对应的α测试是在开发环境测试的
统一过程也会循环迭代
结构化方法最大的方法就是不灵活,不容易改变
面向对象就是对现实对象抽象,解决结构化方法的问题,有更好的复用性
原型法适合需求不明确的开发,做初步简易的系统来探明需求
设计约束比如用户明确提出只能用某种数据库
QFD质量改善模型
期望需求是用户没说,但是隐晦的需求
兴奋需求是超越用户期望的需求,会让用户开心但是不提倡,会浪费成本,一般杜绝
扇入表示别人调用自己比较多,服用程度比较高
扇出表示自己需要调用的其他模块比较多,不太好
必考
动态测试是利用到计算机的测试
静态测试是纯人工测试
代码走查是人工运行
代码审查是与别人交叉检查
黑盒测试是不知道里面的结构
白盒测试能看到系统的结构,将所有路径都能覆盖,往往效果比较好
边界值一般是取略小于或略大于边界,及边界值
例如0到150,取的是-1 0 150 151
错误推测强调经验灵感
确认测试和系统测试顺序不一定;对于软件项目来说,一般到确认测试就停止了;但是有软硬件的系统,会先做系统测试,然后再确认验收工作
系统测试主要考虑性能压力稳定性方面
软件开发的成熟度
阶段式:
第一级是混乱级
二级考虑项目级的问题
三级考虑组织级的问题(文档化/标准化)
第四级强调量化,管理量化
五级做持续优化
国内企业比较急功近利,为了能通过等级,但是实际会觉得浪费成本而不按这个标准做(论文里可以提)
甘特图不能直观的表达任务之间的逻辑关系
先计算最早开始时间,然后逆推得到每个事件的最晚开始时间
实体类,跟数据相关的
边界类,跟外界系统交互的类
类与类之间的衔接的类
多态:做同样的操作,控制的是不同的对象
接口是一种特殊的类,只有方法的定义,没有方法的实现
当子类方法有重载时,可能不能替换父类
所以子类应该尽可能少的重载
而接口就是为了解决这个问题
计算机硬件其实就是针对接口编程,都是插槽;而电视机都是焊接的,不容易更换
继承是紧耦合关系,所以应该尽量少
最少知识法则一般通过封装实现
主要了解一系列图
图为结构图(静态图)、行为图(动态图)
用例图有分歧(考试时看情况,大部分情况是动态)
静态图一般表示之间的关系
部署图:软件的部件应该部署在哪个硬件节点之上
行为图各有特征
用例图表示系统和外部的交互关系
通信图和顺序图区别就在于前者没有强调时间关系
状态图表示状态变迁转移情况
活动图和流程图的结构是一致的
其他不用管
创建型模式指用于创建对象的模式,为设计类实例化、新对象提供指南
结构型模式主要处理类或对象的组合问题,形成更大的结构提供指导
行为型模式,主要描述类或对象交互的模式,以及职责分配的问题
模板方法模式和访问者模式了解概念即可
数据流图又称为分层数据流图
顶层中间椭圆表示要开发的系统,两边的方块表示外部实体
将顶层图细化,将中间的系统分为几个节点,代表处理职能部件
下面再细化
分层的思路和结构化的开发方法是完全匹配的,所以数据流图是结构化开发方法最为主流的工具
绘制的时候要注意父图和子图要保持平衡
绘制加工时,数据流不平衡:黑洞、奇迹、数据流命名问题(输入流和输出流一样、输入流不可能产生输出流)
客房和客户之间也是多对多,一个客房可以被多个客户分时段预定(???)
第二题
4:员工号 部门号
5:客房号
6:身份证号
7:岗位
8:身份证号 客房号
第四题,逆规范化,权限存储多次,造成了数据冗余;但是减少了一次链接操作,查询数据快
每个对象引出一条生命线,用虚线画
整体流程执行是从上往下走
每个箭头表示消失
顺序图特点就是按顺序来,表现对象之间的交互关系,是动态图
考察重点是消息或对象名
表现流程情况,分支状态
粗横线表示从这里产生了多少个并行的线程
带泳道的活动图,指示了不同的对象,表示哪个活动的责任人是谁
一个流程和图的对应
状态图表现状态的变迁,所以是动态图
箭线表示事件,节点表示状态
(1) j = 0
(2) b[j] = b[j] + s[i]
(3) min = temp
(4) b[m] = b[m] + s[i]