• R.S. Pressman, 5th ed., 教材第 1-19 章,除第 4 章、5 章、6 章、15 章、 17 章、 19.8
节、19.9 节、19.10 节、19.11 节以外;
• 形式:选题题(30%),判断改错题 (20%), 名词解释(20%),简要问答问题(20%),
应用题(10%)
第 1 章:软件工程介绍
• 软件的定义和软件的特征
• 软件与硬件的区别
• 遗留软件与软件的演化
第 2 章:过程综述
• 软件工程定义
• 软件工程的层次:工具、方法、过程和质量关注点
• 通用过程框架的框架活动:沟通 、策划、建模、构建和部署
• 软件工程的目标
第 3 章 过程模型
• 过程模型的作用
• 传统过程模型:瀑布模型、RAD 模型、原型(开发)模型;
• 面向对象过程模型:增量模型、螺旋模型、基于构件的开发、 Unified Process model;
• 了解模型的特点,适用范围。
第 7 章 需求工程
• 需求工程的定义
• 需求工程的任务:启始、导出、求精、协商、规格说明、确认和管理
• 用户场景的概念
• UML 中使用用例建模:用例图/活动图/状态图/类图
第 8 章构建分析模型
• 分析建模的 3 个目标
• 分析建模的方法(结构化分析和面向对象)
• 数据字典
• 决策表的运用条件
• 分析模型的元素:基于场景/面向信息流/基于类/行为
• ERD(实体+关系+基数和形态)
• 基于用例图的分析类的抽象方法
• 分析模型的概念及其组成
• 构建 object-behavior model 的一般步骤
第 9 章 设计工程
• 设计的概念:抽象、体系结构、模式、模块化、信息隐蔽、功能独立、求精、重构
• 组织良好的设计类的 4 个特征:完整性和充分性、原始性、高内聚和低耦合性
• 模式和框架
• 完整设计的 4 个模型和作用:数据、体系结构、接口和构件级设计
第 10 章 体系结构设计
• 体系结构定义及重要性
• 数据设计目标
• 体系结构风格的组成要素(一组构件,一组连接器、约束和语义模型),风格分类
(以数据为中心、数据流、调用返回、面向对象、层次)
• 模式:并发性、持久性、分布性
• 体系结构的复杂性(依赖关系:共享依赖、流依赖、约束依赖)
第 11 章 构件级设计建模
• 构件的定义( 面向对象和传统的观点)
• 基于类的构件的基本设计原则(开关原则、替换原则、依赖倒置原则,接口分离原
则….)
• 构件的内聚性:功能、分层、通信、顺序、过程、暂时和实用内聚
• 构件件的耦合:公用、控制、印记、数据、例程调用….,与内聚的区别
• 面向对象的构件级设计步骤
• 传统构件级设计的图形表示:流程图、决策表、PDL
第 12 章 实现用户界面设计
• 黄金原则
• 界面分析和设计过程: 用户、任务和环境分析,界面设计、实现、界面确认
13 章 测试策略
• 验证和确认的概念和区别
• 测试的过程和策略:单元测试、集成测试、确认测试和系统测试概念
• 集成测试的策略
• 回归测试
• 系统测试
• 调试与策略
14 章 测试手段
• 软件可测试性的定义及其特征
• 白盒测试方法和黑盒测试方法
• 基于控制结构的测试
• 基于场景的测试
16 章 Web 工程
• Web 应用工程层次
• Web 工程过程
18 章 Web 应用分析
• Web 应用分析模型:内容、交互、功能和配置
19 章 Web 应用设计
• Web 应用质量:
• Web 界面设计模型:美工设计、内容设计、架构设计、导航设计、构件层设计、超
媒体设计
为什么软件不是理想失效曲线, idealized curve 极度!!p6
During the software’s life, software will undergo change. As changes are made, it is likely that
errors will be introduced,
causing the failure rate curve
to spike as shown in figure. Before the curve can return
to the
original steady-state
failure
rate,
another
change
causing
the
curve
to
spike
again. Slowly,
必考!!!!
is
rate
requested,
level
begins
the minimum failure
to
rise---the software is deteriorating due to change.
Definition of Software Engineering: p21
Software
in
principles
engineering
is
order ot obtain
establishment
the
economically
and
use
of
sound
engineering
software that is reliable and works efficiently on real machines.[by Fritz Bauer]
Software engineering:
1. The application of a systematic, disciplined, quantifiable approach to the development,
operation, and maintenance
of software; that is, the application of engineering to software.
2. The study of approaches as in 1.
Software engineering layers: p22 figure 2.1 必考!!!!!!!!!!
Tools
Methods
Process
A quality focus
The generic process framework: p24 通用过程的框架 必考!!!!!!!!
communication, planning, modeling, construction, deployment.
Personal Software Process (PSP): p36 极度!!!!
Activities:
Planning
High-level design
High-level design review
Development
Postmortem
Team Software Process (TSP): p38 极度!!!
Objectives:
Build self-directed teams that plan and track their work, establish goals and own their
processes and plans. These
can
be pure software teams or integrated product teams of 3 to about 20 engineers.
Show managers how to coach and motivate their teams and how to help them sustain peak
performance.
Accelerate software process improvement by making CMM level 5 behaviors normal and
expected.
Provide improvement guidance to high-maturity organizations
Facilitate university teaching of industrial-grade team skills.
Phase of the Unified Process
Inception: customer communication & planning activities
Elaboration:
Construction
Transition
Production
*Five phases do not occur in a sequence, but rather with staggered concurrency.
用例图,类图,状态图的作图!!!!!必考!!
Domain Analysis 相当会考!!!!!!!! p178
Definition:
of
specification
software
common
domain
requirements
analysis
is
from a
the
identification,
analysis,
and
specific application domain, typically for reuse on multiple projects within that application
domain.
Analysis modeling approaches:
必考!!!!! p178
1. Structured analysis: considers data and the processes that transform the data as separate
entities.
2. Object-oriented analysis: focuses on the definition of classes and the manner in which they
collaborate with one another
to effect customer requirements.
Data Dictionary: 必考!!!p181
Data objects,
Data attributes
Relationships
Cardinality and modality
Flow-oriented modeling 必考 p194
Design Model 必考!!!!!
FIGURE p328
Information hiding (必考!!!) p236
WHAT: Modules should be specified and designed so that information (algorithms and
data) contained within a
module is inaccessible to other modules that have no need for such information.
WHY: Provides the greatest benefits when modifications are required during testing and
later, during software
maintenance. Because
information hiding,
inadvertent
errors
introduced during
modification are less likely to
propagate to other locations within the software.
Design classes (必考!!!) p239
Types of classes:
Interface classes, business classes, process classes, persistent classes, system classes.
Mapping data flow into a software architecture 必考!!! p276
Transform flow 绘图方法
Transaction flow 绘图方法
What is a component?
When needs a tabular design notation p317 (decision table) 必考!!!
很可能 p293~p295
In many software applications, a module may be required to evaluate a complex
combination of conditions and select
appropriate actions based on these conditions.
White-box testing
described as
Definition: a
test
part of
derive test cases.
必考!! p392
case
design
philosophy
that
uses
the
control
structure
component-level design
to
Testing method:
Basis path testing p393
Control structure testing p400
Black-box testing 必考!!!
Definition: focuses on the functional requirem
Attempts to find errors in the following categ
1. incorrect or missing functions
2. interface errors
3. errors in data structures or external da
4. behavior or performance errors
5. initialization and termination errors.
Object-oriented testing methods
极度!!
Object-oriented testing focuses on designing appropriate sequences of operations to exercise
the stats of a class.
Applicability of conventional test case design methods
Use-cases can provide useful input in the design of black-box and state-based tests.