I 软件工程技术复习纲要
第1章软件工程概述
1.软件工程?软件工程学的主要内容?
IEEE“软件工程是计算机软件开发、运行、维护和隐退的系统方法”。
1、软件开发技术
1)软件工程方法学:传统方法(结构化)和面向对象方法
三要素:方法,工具,过程(ISO9000,CMM)
2)软件工具 :需求、编码、测试各阶段使用的软件
3) 软件开发环境:是方法和工具的结合。
2. 软件工程管理:
包含软件工程经济学和软件管理学
- 目的是为了能按预定的时间和费用,成功地生产软件产品。
- 内容:费用管理、人员组织、工程计划管理、软件配置管理。
2.软件过程模型都有哪些?原型化方法、瀑布、喷泉
- 瀑布模型
- 特点:
- 阶段性和顺序性
- 推迟编码
- 保证质量
- 缺点:无法解决软件
- 需求不明确
快速原型模型
- 许多用户不能准确的叙述他们的需要
- 软件开发人员无法准确了解用户的需求
- 使用了目标系统以后,通过对系统的执行、评价,使之明确需求
喷泉模型
- 适用于面向对象方法。
- 特征:
- 迭代(重复、演进):反复经过分析、设计、测试、集成,再分析、设计、测试、集成。
- 无间隙:各阶段没有明显界限
3.软件危机的概念
4.软件与程序
软件:程序+数据+文档
5、软件的生命周期
软件生命周期定义
- 从设计软件产品开始到产品不能使用为止的时间周期。包括:定义,开发,使用,维护,淘汰
2. 软件生命周期各阶段的任务
- 软件计划、软件开发和软件运行维护三个时期。
- 软件计划时期:问题定义、可行性研究、需求分析
- 软件开发时期:软件概要设计、软件详细设计、软件实现、综合测试等阶段。
- 软件运行维护时期:需要不断地进行维护,使软件持久满足用户需要
第2章 可行性研究
1可行性研究的目的?从哪些方面进行可行性研究?
可行性分析是要决定“做还是不做”
n 可行性分析的四大要素:经济、技术、社会环境
2.需求分析的基本任务是什么?
¨ 1.确定目标系统的具体要求
¨ 2.建立目标系统的逻辑模型
¨ 3.书写“软件需求规格说明”
¨ 4.修正系统的开发计划
¨ 5.制定初步的系统测试计划
¨ 6.编写初步的用户手册
¨ 7.编写数据要求说明书
3.在需求分析的工具有哪些?
E_R实体关系图的概念
为理解和表示数据域的信息,建立数据模型
实体
属性
关系
数据流图(应用)
n 1.先找系统的数据的源点和终点,输入数据流与输出数据流,系统加工处理过程作为整体,即0层数据流图
n 2.从外部实体的输出数据流出发,按照系统的业务流程,逐步画出一系列活动--逻辑加工,直到找到外部实体所需的输入数据流,即转换过程
n 3.按照上述步骤,从处理出发,画出所需子图。
4.数据字典的概念
n 数据字典是对数据流图中出现的所有数据元素、数据流、文件、处理定义的集合
5.软件结构图:体现模块之间的调用关系
第3章系统设计
1.总体设计(概要设计)的主要任务是什么?完成的规格说明书?
概要设计阶段的主要任务是确定设计方案和软件结构设计。在概要设计阶段还要在需求分析的阶段的基础上,进行数据文件设计,制定测试计划,制定详细的软件工程进度计划,修改用户手册
2.什么是模块化(大型软件设计的基本策略)?模块化的效果?模块设计的启发原则
模块化是指把系统分割成能完成独立功能的模块,明确规定各模块以及输入输出规格,使模块的界面不会发生任何混乱。
效果:1减少复杂性,2提高软件的可靠性,3提高可维护性,4有助于软件工程的组织管理,5有利于信息屏蔽
模块化的过程是自顶向下,由概括到具体的过程。一个模块可分为7个左右的子模块,遵循Miller法则
什么是耦合?有哪些类型(数据耦合和公共耦合)?强弱关系
模块之间的相互依赖的程度
数据耦合(低耦合),控制耦合(中等耦合),特征耦合,公共环境耦合,内容耦合(耦合程度最高)
什么是内聚?有哪些类型(时间内聚和过程内聚)?强弱关系
各个元素彼此结合的紧密程度
偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚(最高)
实现高内聚,低耦合、
3.详细设计的主要任务?详细设计有哪些工具?(应用)
详细设计阶段的基本任务:进行接口设计和过程设计,同时为每个模块设计测试用例(包括模块功能,输入数据和预期的输出效果)
盒图(N-S)
PAD图
判定表
判定树
4.Jackson法结构设计的概念
Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向 数据结构 的设计方法。
5.系统设计阶段复审的重心是什么?
从软件的正确性和可维护性两个方面,对它的逻辑,数据结构和界面等进行审查
第4章 测试
1.在代码中加注释的作用是什么?
注释是程序员和程序读者之间通信的重要手段。
2.测试的目标是什么有哪些测试方法?测试关键?
软件测试的目的是,通过人工或计算机执行程序来有意识地发现程序中的设计错误和编码错误的过程
3.黑盒法的概念?有哪些方法?
又称功能测试,其测试用例完全是根据程序的功能说明来设计的
等价类划分,边界值分析
4.白盒法的概念?有哪些方法?
又称结构测试,其测试用例是根据程序内部的逻辑结构和执行路径来设计的
5.集成测试的概念;集成的策略有哪些以及相关概念。
集成测试是测试和组装软件的系统化技术,在把模块按照设计要求组装起来的同时进行测试,主要目标是发现与接口有关的问题。
集成的策略:(渐增式)
A自顶而下的集成
从主控模块开始。把附属的模块组装到软件结构中去,可使用深度优先的策略,或使用宽度优先的策略
B自低而上的集成
从软件结构的最底层的模块开始组装和测试
6、等价类划分和边界值的概念
等价类划分,黑盒测试方案的一种。把所有可能的输入数据划分为若干个等价类,每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同,因而在每个等价类中只用一组数据作为代表进行测试来发现程序中的错误。
边界值:输入与输出等价雷直接在边界值上及稍大于边界值和稍小于边界值的数据
7.逻辑覆盖:语句、判断、条件的测试用例的设计(应用)
8、因果图法设计测试用例(应用)
CH 6.7 面向对象方法学
1.面向对象程序设计语言的特征以及典型的面向对象语言?
一种是纯面向对象语言,如Smalltalk、EIFFEL等;另一种是混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如C++、Objective-C等。
2.面向对象方法以及四个要点?
- 1.描述数据和对数据的操作结合起来
- 2.分析与设计的概念和表示法是相同的,两个阶段的工作区分不严格
- 3.分析OOA:对象模型、动态模型和功能模型
- 4.设计OOD:考虑与实现有关的因素,对分析的模型关系进行调 整并补充与实现有关的部分
3.面向对象的基本概念:对象、继承、封装、多态
4.类图的概念、表示的泛化、聚集、属性和操作的可见性
在UML中,类是用一个矩形表示的,矩形由3部分组成:名称部分、属性部分和操作部
6.UML中用例图的概念、关系(泛化、包含、扩展)(应用)
7.动态模型有哪些图?顺序图和活动图的概念?
UML顺序图,活动图,状态图
顺序图,又称事件跟踪图,有两个方向:一条竖线代表应用领域中的一个对象,时间从上向下递增:对象之间的每个交互事件用一条水平的箭头线表示,箭头方向从事件的发送对象指向接收对象
活动图描述一个活动到另一活动的控制流,
- 是内部驱动完成的。
- 主要元素有活动、控制流、分支与合并
- 、分叉与汇合
8.面向对象设计的步骤(面向对象设计的包含的内容)?
系统设计
A把系统分解成子系统
B设计问题域子系统
C设计人机交互子系统
D设计任务管理子系统
E设计数据管理子系统
对象设计
A对象描述
B设计类中的服务
C设计类的关联
D链属性的实现
E设计的优化
6个设计准则
1.模块化,2抽象,3信息隐藏,4低耦合,5高内聚,6重用性
6个启发规则
1.设计结果应该清晰易理解,2一般-特殊结构的深度应适当,3设计简单的类
4,使用简单的协议,5使用简单的服务,6把设计变动减到最小
9.面向对象达到模块信息隐蔽的方法
封装是面向对象的一个重要概念。封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。也就是说,用户只知道某对象是“做什么”的,不知道“怎么做”。封装将外部接口与内部实现分离开来,用户不必知道行为实现的细节,只须用消息来访问该对象。
10.面向对象分析的完成的模型
11.面象对象测试的最小单元
封装起来的类或者对象
回复自“软件工程期末复习纲要”
发表回复