第一章 概述
- 软件的定义和特性
- 定义:
Software
=Instruction
(指令/程序) +Data Structure
(数据) +Document
(文档) - 软件特性:
1)复杂性(Complexity) 2)不可见性(Invisibility) 3)易变性(Changeability) 4)服从性(Conformity) 5)非连续性(Discontinuity)
- 软件工程的定义
将
系统化的、规范的、可度量
的方法应用于软件开发、运行和可维护
的过程,即将工程化应用于软件中
- 软件质量定义及质量指标
- 软件质量的定义:
反映实体满足明确的和隐含的需求的能力的特性的总和
- 5 个常用的软件质量指标
-
质量指标:
1)功能性指标 a.完备性 b.正确性
2)可靠性指标 a.成熟性 b. 稳定性 c.易恢复性 等
3)易用性指标 a.易理解性 b.易学习性 c.易操作性
- 软件质量的McCall模型
- CMM(Capability Maturity Model for software)软件能力成熟度模型
ROI( Return On Investment)投资回报率:
通过投资而应返回的价值,即企业从一项投资活动中得到的经济回报。-
Customers - User - Developer
Communication System P15
第二章 过程和生命周期
- 过程、模型、生命周期
- 软件过程模式(瀑布、V、螺旋、原型)的异同点
- 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品.瀑布模型是由文档驱动的,对于经常变化的项目而言,瀑布模型毫无价值.
优点:
1)可强迫开发人员采用规范化的方法
2)严格地规定了每个阶段必须提交的文档
3)要求每个阶段交出的所有产品都必须是经过验证的
缺点:
1)由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出来的软件产品不能真正满足用户的需求
2)只适用于项目开始时需求已经确定的情况
原型模型 基本思想是确定需求策略,对用户需求进行抽取、描述和求精。它快速地、选代地建立最终系统工作模型,对问题定义采用启发的方式,由用户作出响应。
增量模型
优点:
1)能在较短的时间内向用户提交可完成一些有用功能的产品
2)逐步增加产品功能可以使用户有充裕的时间学习和适应新产品
3)项目失败的风险较低
4)优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来,这意味着最重要的部分将接受最多的测试
缺点:
1)与其他模型相比,需要更精心的设计
第三章 项目管理
- 项目范围的WBS表示
- 项目进度的GATT图表示
- 关键路径的定义及其求解方法
第四章 需求分析
- 需求的定义
- 需求的类型
- 需求的特征
- 需求的表示方法及其应用
1)用例图
2)实体关系图
3) 数据流图
4)代数规格说明
5) 判定表(不作为考试内容) - 需求文档
第五章 系统设计
- 设计的定义
- 软件体系结构的定义和要素
- 体系结构风格和策略(7种)
- 设计特性
1)独立性
2)内聚component cohesive(7种)
- 构件内聚:一个构建功能强度的度量
- 类型:巧合内聚 逻辑内聚 时态内聚 过程内聚 通信内聚 顺序内聚 功能内聚
3)耦合component coupling(6种) - 构件耦合:两个构建之间相互依赖或者相互作用的程度的度量.
- 类型:非耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合
第七章 软件实现
- 标准文档
2、文档化方法(内部文档、外部文档) 内部文档是指在代码中书写的注释,其余的为外部文档.
- 内部文档
内部文档包含的信息直接面向读程序源代码的人。 因此提供概述信息描述数据结构算法和控制流。通常,这些信息被放在部件开始部分的名为头注释区注释内。
- Head Comment Block
- Other Program Comment
- Meaningful Variable Names and Statement Labels
- Formatting to Enhance Understanding
- Documenting Data
- 外部文档
鉴于内部文档是简洁而且是为相应水平的程序员写的, 所以外部文档是为那些甚至是没有读过代码的读者而写的。
- Describing The Problem
- Describing The Algorithm
- Describing The Data
第八章 单元测试
- 黑盒法与白盒法的适用范围
- 集成测试的两种策略(自底向上、自顶向下)
- 语句测试、分支测试、路径测试方法及其应用
第九章 系统测试
软件配置的定义
系统测试过程
1) 功能测试:检查集成的系统是否按照需求中指定的那样执行它的功能
2) 性能测试:将集成的构件与非功能需求进行比较
3) 验收测试:客户参与的测试,目标是确保系统符合他们对需求的理解
4)安装测试:在实际运行环境中进行的测试功能测试的主要方法(因果图法)
性能测试(13种测试及举例)
1)回归测试(Regression Test):用于新的版本或发布的一种测试,以验证与旧版本或发布相比,它是否仍然以同样的方式执行相同的功能.由于在测试过程中可能在修复已有故障的同时引入新的故障,故需要进行回归测试
2)。。。可靠性、可用性、可维护性的定义及度量方法(*)
- 可靠性是指一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率
- 可维护性是指在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率
- 可用性是指在给定的时间点上,一个系统能够按照规格说明正确运作的概率
- 验收测试的基本方法
第十章 系统交付
1.文档的定义和类型
- 定义:某种媒体(载体)上存贮取信息 永久性;人机可读性
- 类型:需求文档,设计文档,测试文档,用户手册等 (*)
2.培训对象和类型
3.培训辅助方法
第十一章 系统维护
- 维护的四种基本类型
- 可维护的两种度量方法(外部方法:记录时间;内部方法:环路数)