千年首页 招生简章 学习园地 学生作品 认证考试 就业信息 论坛 电脑救援 IT资讯 学员主页 学员查询
 
 
 
 首页 > 认证考试 > 当前文章
国家计算机等级考试二级基础知识学习提纲(三)
 时间:2006年10月31日
 

 

第三章 软件工程基础
3.1 软件工程的基本概念
一、软件定义:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
二、软件危机与软件工程
1、软件危机是指在计算机软件开发和维护过程中所遇到的一系列严重的问题。
2、软件工程:试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。
包括三个要素:方法、工具及过程。
核心思想是把软件产品看作是一个工程产品来处理。
三、软件工程过程与软件生命周期
1、软件工程过程:是把输入转化为输出的一组彼此相关的资源活动。包括四个基本活动:P(plan)——软件规格说明、D(do)——软件开发、C(check)——软件确认、A(action)——软件演进。
2、软件生命周期:指软件产品从提出、实现、使用维护到停止使用退役的过程。包括软件定义、软件开发及软件运行维护三个阶段。
四、软件工程的目标与原则
1、软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性和可互操作性且满足用户需求的产品。包括软件开发技术和软件工程管理两方面内容。
2、软件工程的原则:包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
五、软件开发工具与软件开发环境
1、软件开发工具:从单项工具的开发向集成工具发展。
2、软件开发环境:全面支持软件开发全过程的软件工具集合。计算机辅助软件工程(CASE)。
3.2 结构化分析方法
软件开发方法包括分析方法、设计方法和程序设计方法。结构化方法的核心和基础是结构化程序设计理论。
一、需求分析与需求分析方法
1、需求分析:需求是指用户对目标软件在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析将创建所需的数据模型、功能模型和控制模型。
需求分析阶段的工作是:需求获取、需求分析、编写需求规格说明书、需求评审。
2、需求分析方法:结构化分析方法、面向对象的分析方法。
二、结构化分析方法
1、结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
2、结构化分析的常用工具
数据流图DFD(加工、数据流、存储文件、源或潭)
数据字典
判定树
判定表
3.3 结构化设计方法
一、软件设计的基本概念
1、软件设计的基础:软件设计的目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型。
从技术观点看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
从工程管理角度看,软件设计分概要设计和详细设计。
2、软件设计的基本原理
(1)抽象
(2)模块化
(3)信息隐蔽
(4)模块独立性
内聚性:一个模块内部各个元素间彼此结合的紧密程度的度量。
耦合性:模块间相互连接的紧密程度的度量。
要做到高内聚,低耦合。
二、概要设计
1、概要设计的任务:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。
概要设计使用的图形工具是结构图,它用矩形表示模块、用箭头表示模块间的调用关系用带注释的箭头表示模块间传递的信息,用带空心圆的箭头表示数据信息,用带实心圆的箭头表示控制信息。
结构图中的术语:
深度:表示控制的层数。
宽度:整体控制跨度
扇入:调用一个模块的模块个数。
扇出:一个模块直接调用的其它模块数。
原子模块:树中位于叶子结点的模块。
2、面向数据流的设计方法
(1)数据流的类型
变换型:指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变成外部形式离开软件系统。
事务型:在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成作业要求的功能,这种数据流就叫事务。事务型数据流的特点是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
3、设计的准则:提高模块独立性,模块规模适中,深度、宽度、扇出和扇入适当,使模块的作用域在该模块的控制域内,应减少模块的接口和界面的复杂性,设计成单入口、单出口的模块、设计功能可预测的模块。
三、详细设计:为软件结构图中的每一个模块确定实现算法的局部数据结构。工具有
1、程序流程图:用箭头表示控制流,方框表示加工处理,凌形表示逻辑条件。
2、N-S图:一种方框图。
3、PAD图:问题分析图。
4、PDL:过程设计语言(结构化英语或伪码)。
3.4软件测试
一、软件测试的目的:为发现错误而招待程序。
二、软件测试的准则
1、所有测试都应追溯到需求。
2、严格执行测试计划。
3、充分注意测试中的群集现象。
4、程序员应避免检查自己的程序。
5、穷举测试不可能。
6、妥善保存测试计划、测试用例、出错统计和最终分析报告。
三、软件测试技术与方法综述
1、静态测试与动态测试
静态测试包括代码检查、代码走查、桌面检查、静态分析,这些方法多由人工完成。
动态测试通过计算计算机执行程序,来检查错误。分白盒测试与黑盒测试两种方法。
2、白盒测试是指根据软件产品内部的工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。主要有逻辑覆盖、基本路径测试两种方法。
逻辑覆盖有语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断-条件覆盖方法。
基本路径测试是根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。
3、黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。有等价类划分法、边界值分析法、错误推测法等。