南京邮电大学通达学院2012年软件工程复习资料
发布时间:2024-10-11
发布时间:2024-10-11
复习课件
王传栋
南京邮电大学计算机学院 考试安排 考前答疑
时间
12月24日(周1,下午2:00~3:00) 地点
教2 - 316 考试 时间
12月27日(周4,晚上18:30 ~20:20 ) 地点 教4-101
考试题型
一、单项选择题(1分×15) 二、判断题(1分×15) 三、简答题(5分×6) 四、设计和分析(10分×4) 要求掌握
对象模型(类图)
数据流图(包括数据流图到体系结构图的变换) 状态图 顺序图 用例图
白盒测试用例(语句覆盖和路径覆盖)
第1章
软件角色的演化 软件的概念
软件的定义
软件与硬件的区别? 逻辑的与物理的
磨损与退化(退化的原因) 工业化与顾客需求 遗留软件
特点(业务关键性) 软件神话
各种错误的观点
第2章
软件工程
IEEE的定义?
软件工程三个要素?
方法、工具、过程
根基:质量关注点(软件工程的目标) 过程框架
框架活动(5个)
沟通、策划、建模、构建、部署 普适性活动(8个) 关注
共利益者? P18 、P93 能力成熟度模型集成 过程元模型 成熟度级别? 6个 过程模式 过程技术
产品与过程
产品不能过于依赖过程
第3章
惯例过程模型 过程:活动集合 软件生命周期 瀑布模型
特点:文档驱动 优点
消除非结构化软件;
降低软件的复杂度,促进软件开发工程化 缺点
实际的项目很少遵守瀑布模型提出的顺序 客户通常难以清楚地描述所有的需求 客户必须要有耐心 增量过程模型 增量模型
迭代地运用瀑布模型 RAD模型 演化过程模型 原型开发 需求不明确 原型开发的问题 螺旋模型 特点:风险驱动 协同开发模型
更适合于不同的工程团队共同开发的系统工程项目 专用过程模型 基于构件的开发
步骤?
形式化方法模型
面向方面的软件开发 统一过程模型 5个阶段?
起始阶段、细化阶段、构建阶段、转化阶段、
生产阶段
第4章 敏捷
宣言(理念):4条 基本动力 实现要点? 敏捷过程
敏捷团队的成员特点?
敏捷理念的4个关键问题?
具有控制力的自我组织团队对所开展工作的重要性 团队成员之间、开发参与者与客户之间的交流与合作
与“变更代表机遇”的认识
强调快速软件交付以让客户满意 敏捷过程模型 极限编程
4个框架活动:策划、设计、编码和测试 设计原则:KIS
结对编程?优点?
自适应的软件开发(ASD) ASD生命周期 ASD的学习方式 动态系统开发方法
Scrum的原则(冲刺sprint ) Crystal 敏捷建模 第5章
基于计算机的系统 系统与系统工程
基于计算机的系统的系统要素
软件、硬件、人员、数据库、文档、规程 宏要素
系统工程的层次结构 全局视图 领域视图 要素视图 详细视图
第5章
业务过程工程 目标 架构 3个?
技术基础设施为数据架构和应用架构提供基础 产品工程 目标
系统建模
系统工程的不同层次结构上,建模细节和手段不同 第6章
需求工程的任务 任务? 7个活动
起始 1)手段:询问问题 2)目的: 导出
导出需求遇到的问题?
精化
形成分析模型,定义问题的信息域、功能域和行为域 由用户场景精炼分析类:属性、服务、和类间的关联和协作
需求工程的任务 任务? 7个活动 协商
规格说明
文档、模型、形式化的数学模型、场景、原型 确认
评估机制:使用分析模型保证需求说明的一致性 需求管理:跟踪表
启动需求工程
步骤:确认共利益者;识别多种观点;协同合作;首次提问。 导出需求 步骤
协同需求收集
协同需求收集会议的基本原则? 质量功能部署(QFD) 用户场景 导出工作产品 工作产品类别? 开发用例
第7章
需求分析
明确What,不是How? 分析目标? 3个 经验原则? 6条
域分析的输入和输出? 5个输入 4个输出 分析建模的方法 结构化方法
核心:算法和数据结构
对象建模,操作数据对象的处理建模
OO方法
核心:objects + classes + inheritance + communication with messages 补充课件
数据分析模型的4个建模元素 基于场景的模型 流模型 基于类的模型 行为模型
数据建模概念 ER图
数据对象、数据属性、关系、基数和形态 数据对象和OO类?
面向对象分析
目的:定义与问题相关的所有类 工作:
基于场景建模
场景、用例、用户故事、参与者(定义) 用例图
活动图与泳道图 用例图示例
学生选课系统用例图 教务系统的用例图 电信计费用例图 面向流的建模
数据流图(数据流、控制流) 控制规格说明和处理规格说明 Eg:
库存管理系统 超市订货与销售
医院药品订购与销售 基于类的建模 识别分析类
潜在的分析类的外在表现? 分析模型中类的特征? 描述属性、定义操作
CRC建模:明确类的职责 实体类、边界类、控制类? 类分配职责的指导原则? 关联和依赖 类图
Eg:交通工具概念体系、计算机系统组成、电梯系统组成
足球比赛的管理、某单位的部门员工的分类与工作关系 类图与代码 第7章
基于类的建模 类图
击球 () 球帽 冰鞋
前锋 前卫 后卫 守门员 1 6 1 1 1 1 1 2 手持 戴 穿 第7章
类图与代码
class Bird extends Animal implements Fly { private String name; private Worm worm; … …
public Friends makeFriend(Cat cat) { Dog dog; … … } … … }
Animal
<<Interface>> Fly Worm Bird
- name: String; - worm: Worm;
+ makeFriend(Cat cat): Friends; + running(): void; Dog Friends Cat
第7章
生成行为模型
行为模型:表现系统的动态行为 步骤? 手段
状态图
系统执行其功能时,每个类对象的状态
Eg:电水壶、复印机、打印机、图书管理系统中书的状态图 顺序图
系统执行其功能时,从外部观察到的系统状态 一组类对象的交互 Eg:饮料自动销售系统、ATM机取款等等 第7章
生成行为模型 状态图
An a ly s is Mo d e l use-cases - text use-case diagrams activity diagrams swim lane diagrams data flow diagrams control-flow diagrams proces s ing narratives flow-oriented elements behavioral elements class-base d elements
scenario-based elements
class diagrams analysis packages CRC models
collaboration diagrams state diagrams sequence diagrams Data/ Class Design Architectural Design Interface Design Co m p o n e n t - Le v e l De s ig n De s ig n Mo d e l 第8章
软件工程中的设计
分析模型到设计模型的转化 How:给出解决方案 设计工程和设计质量
评价优秀设计演化的3个特征? 设计质量的指导原则? 评估优秀设计的指导原则? 软件设计的目标? FURPS 第8章
设计概念(重要) 抽象
体系结构(扇入、扇出、宽度、深度:腰鼓形) 模式(设计模式)
模块化:分而治之的策略(高内聚低耦合) 信息隐蔽
原则:每个模块都对其他模块隐藏自己的设计决策 功能独立:两个标准(内聚和耦合,其概念) 求精
重构(定义)
设计类:分类(5个)和特征(4个:评价设计类)?第8章 设计模型 4个主要元素
数据、体系结构、构件和接口 设计模型的维度图8-4
数据设计元素、体系结构设计元素、接口设计元素、构件级
设计元素、部署级设计元素
注意:
体系结构级别和构件级别的设计中,数据设计的关注点不 同
基于模式的软件设计
框架
设计过程是从软件的宏观视图向微观视图转移的过程
第9章
软件体系结构
分析模型的3个重要域
体系结构设计表达的设计思想? 3条
体系结构的重要性? 数据设计
构件级数据规格说明原则? 体系结构的风格和模式 体系结构风格的评估? 体系结构风格的分类?
体系结构模式的问题?(并发性、持久性、分布性) 第9章
体系结构设计过程 系统的环境表示 定义原始模型
原始模型是体系结构设计中抽象的构造块 体系结构精华为构件 构件来源
描述系统实例
评估可选的体系结构设计
权衡分析方法?(迭代的分析活动) data flow model a b t d e f g h i j k l m
n Mapping b a x1 t x2 d ef x3 g h x3.1 ij k
x4 lmn 第9章
映射数据流到软件体系结构 数据流类型 变换流 事务流
数据流类型决定映射方法 变换映射
事务映射 目标
高内聚、低耦合
(衡量模块独立性标准) data flow model
"Transform" mapping a b c d e f g h i j x1
x2 x3 x4 b c a defgi h j
第9章
体系结构的4种风格
一组完成系统所需功能的构件
一组使功能构件间通信、协调及合作的连接器 定义如何集成构件以构成系统的约束条件
以及使得设计者能够理解系统整体性质的语义模型 体系结构设计的4个步骤 ?
系统必须表示在相应的环境中;
设计人员应该确定一系列的顶层抽象,称为原始模型
设计向实现移动,在支持构件的体系结构环境中标识和描述这 些构件
开发体系结构的特定实例,在现实世界中验证所得设计 第10章 构件
OO观点 传统观点
模块:3个角色
过程相关的观点
构件级的设计过程由一个慢慢降低软件描述抽象层次的活动 序列组成
设计基于类的构件
基于类的构件设计基本原则?
OO的构件级设计是以类(不是模块)为基础的 构件级设计的指导方针?
内聚与耦合(分类、概念、排序) 第10章
基于类的构件设计基本原则 开关原则
Liskov替换原则 依赖倒置原则 接口分离原则 发布复用等价性原则 共同封装原则 共同复用原则 第10章 内聚
功能内聚、分层内聚、通信内聚、顺序内聚、过程内聚、暂时
内聚、实用内聚 耦合
内容耦合、共用耦合、控制耦合、印记耦合、数据
耦合、例程
调用耦合、类型使用耦合、包含或者导入耦合、外部耦合
第10章
实施构件级设计的步骤
对象约束语言
以形式化的语法和文法描述设计模型元素 模型元素:类、对象、事件、消息、接口 OCL语句的4个组成? 语境、特性、操作、关键字
设计传统构件:结构化编程的3种构造 图形化设计:流程图
表格化设计:决策表(何时用) 开发决策表的4个步骤 语言:伪码 第11章
接口设计的3个方面 ? 软件构件间的接口设计
软件与除人之外的其他非人类信息生产者和消费者的接口设计
人(用户)与计算机间的界面设计 界面设计的黄金规则 置用户于控制之下 减少用户的记忆负担 保持界面一致
用户界面的分析和设计 用户模型 4个框架活动 界面分析 第11章
界面设计步骤
用户界面设计时,常遇到的问题? 系统响应时间(两个属性) 用户帮助设施 错误信息处理 命令标记 设计评估
第12章
软件测试的策略性方法
验证确认和组织
传统测试策略和OO测试策略(软件测试步骤): 软件测试的总体策略?
单元测试(模块内的错误) 集成测试(接口之间的错误)
自顶向下(桩模块)和自底向上(驱动程序模块) 回归测试和冒烟测试 冒烟测试的3个活动? 第12章
传统测试策略和OO测试策略: 确认测试: α测试
受控环境下的测试
在开发者的场所进行,用户操作,开发者记录 β测试
不为开发者控制的环境
在用户场所进行,开发者不在场,用户记录 系统测试
恢复测试、安全测试、压力测试、性能测试 调试技巧与策略
调试过程、心里因素、调试策略(都可以手工完成) 第13章
软件测试基础
测试的目的:发现错误 黑盒测试与方法 概念
侧重于软件功能的测试:接口测试 试图发现的错误类型? 测试用例的组织 等价划分法 边界值分析 第13章
白盒测试与方法
概念(玻璃盒测试) 侧重于内部逻辑的测试 穷举测试是不可能的 基本路径测试 语句覆盖和路径覆盖 控制结构测试
条件测试、数据流测试、循环测试 面向对象的测试方法 测试用例与类层次 类级可应用的测试方法 类间测试用例设计 第13章
白盒测试示例
设计下面给出伪码的语句覆盖和路径覆盖的测试用例,要求给
出输入的(A ,B ,C )值和相应的预期输出(X,Y,
Z)值。
START
INPUT (A,B ,C )
IF A >6 THEN X =15 ELSE X =1 END IF
IF B >12 THEN Y =30 ELSE Y =2 END IF
IF C >18 THEN Z =45 ELSE Z =3 END IF
PRINT (X,Y,Z) STOP 第13章
白盒测试示例 1、语句覆盖的测试用例
因为每个判定表达式为真或为假时均有赋值语句,为了使每
个语句都至少执行一次,总共需要两组测试数据,以便使得
每个判定表达式取指为真或为假各一次。 1) 使3个判定表达式之值全为假 输入:A =1,B =1 ,C=1; 预期输出:X=1,Y =2,Z=3 2) 使3个判定表达式之值全为真 输入:A =20,B =40,C=60; 预期输出:X=15,Y=30,Z=45 第13章
白盒测试示例
2、路径覆盖的测试用例:本程序共有8条可能的执行通路,为
做到路径覆盖需要8组测试数据。 1) 3 个判定表达式之值全为假 输入:A =1,B =1 ,C=1; 预期输出:X=1,Y =2,Z=3
2) 3 个判定表达式之值依次为假、假、真 输入:A =1,B =1 ,C=60; 预期输出:X=1,Y =2,Z=45 3) 3 个判定表达式之值依次为假、真、假 输入:A =1,B =40,C =1; 预期输出:X=1,Y =30,Z=3 第13章
白盒测试示例
2、路径覆盖的测试用例:本程序共有8条可能的执行通路,为
做到路径覆盖需要8组测试数据。
4) 3 个判定表达式之值依次为假、真、真 输入:A =1,B =40,C =60; 预期输出:X=1,Y =20,Z=45
5) 3 个判定表达式之值依次为真、假、假 输入:A =20,B =1,C =1 ; 预期输出:X=15,Y=2,Z=3
6) 3 个判定表达式之值依次为真、假、真 输入:A =20,B =1,C =60; 预期输出:X=15,Y=2,Z=45 第13章 白盒测试示例
2、路径覆盖的测试用例:本程序共有8条可能的执行通路,为
做到路径覆盖需要8组测试数据。
7) 3 个判定表达式之值依次为真、真、假 输入:A =20,B =40,C=1; 预期输出:X=15,Y=30,Z=3 8) 3 个判定表达式之值全为真
输入:A =20,B =40,C=60; 预期输出:X=15,Y=30,Z=45
下一篇:电线电缆用氟塑料