软件工程基础——个人复习向

软件工程基础 —— 个人复习向

—— 供本人复习用,如有错误,欢迎指正


第一章 —— 软件工程概述

/ / 软件生命周期
①问题定义 ②可行性分析 ③需求分析 ④概要设计 ⑤详细设计 ⑥编码与单元测试 ⑦综合测试 ⑧运行和维护

/ / 软件程序、数据相关文档的完整集合


第二章 —— 软件过程

/ / 软件生命周期的基本任务
软件定义时期:问题定义、可行性分析和需求分析
软件开发时期:概要设计(总体设计)、详细设计、编码与单元测试、综合测试
(前两个为系统设计,后两个为系统实现,而综合测试 = 系统 + 集成 + 验收)
运行维护时期:改正性维护、适应性维护、完善性维护

/ / 瀑布模型
前后阶段间顺序性和依赖性较强,并带有反馈环,适应无重大变化的软件系统开发

/ / 快速原型
产品开发顺序基本按线性顺序进行,不带有反馈环,能保证用户的真实需求得到满足

/ / 增量模型
分批次地逐步向用户提交产品,每次提交一个在上次提交产品的基础上进一步满足用户需求子集的可运行产品

/ / 螺旋模型
将瀑布模型和快速原型结合起来的开发方法,重点引入了风险分析阶段

/ / 喷泉模型
一种以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型

/ / 能力成熟度等级
1、初始级:无序的,有时甚至混乱的。缺乏健全的总体管理与详细计划。
2、可重复级:有些基本的软件项目管理行为、设计和管理技术,是基于相似产品中的经验确定的,也因此称为可重复级。
3、已定义级:用于管理和工程活动的软件过程已经文档化和标准化,并且已经集成到整个组织的软件过程中。所有项目都是使用文档化的、组织批准的过程来开发和维护软件。+ +软件过程的管理方面和技术方面都明确地做了定义,并按需要不断地改进过程,而且采用评审的办法来保证软件的质量。+ +
4、已管理级:收集软件过程和产品质量的详细度量数据,使用这些数据来定量地理解和控制软件过程和产品。+ +公司为每个项目都设定质量和生产目标,并不断地测量这两个量,当偏移太多就采取行动来修正。+ +
5、优化级:通过定量的反馈能够实现持续的过程改进,这些反馈是从过程及对新想法和技术的测试中获得的。+ +目标是持续地改进软件过程。这样的组织使用统计质量和过程控制技术作为指导。从各个方面获得的知识将运用在未来的项目中,从而使软件过程进入良性循环,使生产率和质量稳步提高。+ +


第三章 —— 结构化分析

/ / 传统的软件工程方法学采用结构化分析(structured analysis,SA)技术完成需求分析工作。

/ / 需求分析是发现求精建模规格说明复审的过程。

/ / 结构化分析就是一种建立模型的活动,通常建立数据模型 (ER)、功能模型 (数据流图) 和行为模型 (状态转换图) 3种模型。


第四章 —— 结构化设计

/ / 传统的软件工程方法学采用结构化设计(structured design,SD)技术,完成软件设计工作。通常把软件设计工作划分为概要设计详细设计这两个阶段。

/ / 软件设计必须依据对软件的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息。

/ / 模块化

/ / 模块独立:模块独立的概念是模块化、抽象、逐步求精、信息隐藏等概念的直接结果,也是完成有效地模块设计的基本标准。
++ ++ 模块独立程度可以由两个定性标准来度量:内聚耦合。力求做到高内聚低耦合
++ ++ 内聚:内聚标志一个模块内各个元素彼此结合的紧密程度,是信息隐藏和局部化概念的自然扩展。理想内聚的模块只做一件事情。
++ ++ 耦合:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

/ / 表示软件结构的图形工具
++ ++ 层次图:描绘软件的层次结构。
++ ++ HIPO图:层次图+输入/处理/输出,同时除了顶层方框外,其他方框都加了编号。

/ / 面向数据流的设计方法:面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。信息流的类型:
++ ++ 变换流:做信息处理,外部形式的数据流进入内部后转变为内部形式,出去时再转换为外部形式。
++ ++ 事务流:系统控制,根据输入的数据类型在若干个动作序列中选出一个来执行。

/ / 过程设计的工具描述程序处理过程的工具称为过程设计的工具,有图形、表格和语言3类。
++ ++ PAD图 ( Problem Analysis Diagram,问题分析图 )
++ ++ 判定表
++ ++ 判定树
++ ++ 过程设计语言(Procedure Design Language,PDL)。也称伪码。

/ / 面向数据结构的设计方法:即根据数据结构设计程序处理过程的方法。
++ ++ Jackson图
++ ++ Jackson方法


第五章 —— 结构化实现

/ / 软件测试基础
++ ++ 黑盒测试:功能测试
++ ++ 白盒测试:结构测试
++ ++ alpha测试:把用户请到开发方的场所来测试
++ ++ beta测试:用户在实际使用环境下进行测试

++ ++ 单元测试:主要使用白盒测试
++ ++ 综合测试:系统测试 + 集成测试 + 验收测试(确认测试)
++ ++ 系统测试:主要使用黑盒测试
++ ++ 集成测试:主要使用黑盒测试 + 白盒测试 ( 注意回归测试 )
++ ++ 验收测试:主要使用黑盒测试(使用SRS–需求规格说明书)

/ / 白盒测试技术
++ ++ 逻辑覆盖:语句覆盖,判定覆盖(分支覆盖),条件覆盖,判定/条件覆盖,条件组合覆盖。
++ ++ 控制结构测试:基本路径测试,条件测试,数据流测试,循环测试

/ / 黑盒测试技术
++ ++ 等价划分
++ ++ 边界值分析
++ ++ 错误推断


第六章 —— 面向对象方法学导论

/ / 在用面向对象方法学开发软件的过程中,通常建立三种模型 —— 对象模型动态模型功能模型


第七章 —— 面向对象分析

/ / 面向对象建模得到的模型包含系统的3个要素,即静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)。

/ / 复杂问题(大型系统)的对象模型通常由五个层次(主题层、类与对象层、结构层、属性层、服务层)组成



第13章 —— 控制

/ / 分险识别的方法:①文件审查 ②信息手机技术 ③检查表 ④假设分析 ⑤图解技术


第14章 —— 软件维护与软件文档

/ / 软件维护的分类:纠错性维护(改正性维护)、适应性维护、完善性维护、预防性维护

/ / 影响软件可维护性的因素:可理解性、可测试性、可修改性、可移植性

你可能感兴趣的:(软件工程基础——个人复习向)