全国计算机二级教案 联系客服

发布时间 : 星期三 文章全国计算机二级教案更新完毕开始阅读

4:类和实例

类是具有共同属性、共同方法的对象的集合,类是对象的抽象,它描述了属于该对象型的所有对象的性质,而一个对象则是其对应类的一个实例。

5:消息

消息是指对象间的相互合作的协助机制

消息的组成:消息是由接收消息的对象名称、消息标识符、零个或多个参数组成。

6:继承

继承是使用已有的类定义作为基础建立新类的定义技术。 继承分为单继承和多继承。

单继承中一个类只允许有一个父类。 多继承中一个类允许有多个父类

7:多态性

多态性是指同样的消息被不同的对象接受时可导致完全不同的动作的现象。

第三章:软件工程基础 1:软件的定义与软件的特点

A:软件的定义:计算机软件是计算机系统中与硬件相互储存的另一部分,是包括程序、数据及相关文档的集合。

程序:是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行指令序列 数据是使程序能正常操纵信息的数据结构。

文档是与程序开发、维护和使用有关的文资料。 因此软件由两部分构成:

一是:机器可执行的程序和数据

二是:机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 B:软件三要素:

程序、数据、文档 C:软件的特点:

? 软件是一种逻辑实体,具有抽象性 ? 软件没有明显的制作过程

? 软件在运行、使用期间不存在磨损、老化问题

? 软件的开、运行对计算机系统具有依赖性,这导致了软件的移植性 ? 软件的复杂性高,成本高

? 软件开发涉及诸多的社会因素

D:软件的分类

软件按功能可分为应用软件、系统软件、支撑软件(工具软件)三大类。 2:软件危机与软件工程

A:软件危机的含义:软件危机泛指在计算机软件的开发和维护中所遇到的一系列严重问题。 B:软件危机主要表现如下:

? 软件需求的增长得不到满足

? 软件开发的成本和进度无法控制 ? 软件质量难以保证

? ? ?

软件不可维护或维护程度非常低

软件的成本不断提高

软件开发生产率的提高跟不上硬件的发展和应用需要的增长

C:软件危机产生的原因

宏观方面是由于软件日益深入社会生活的各个层面,对软件需求的增长速度大大超过了技术进步所能带来的软件生产率的提高。而就每一项具体的工程任务来看,软件危机许多困难来源于软件工程所面临的任务和其他工程之间的差异以及软件和其他工业产品的不同。 D:软件工程的定义

软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 软件工程的三要素:

方法、工具和过程

软件工程的核心思想是把软件当作一个工程产品来处理。

3:软件工程过程与软件生命周期。

定义:软件生命周期就是软件产品从提出、实现、使用维护到停止使用退役的全过程。 三个阶段:软件生命周期包括软件定义、软件开发及软件维护三个阶段。

主要活动阶段:可行性研究与计划制定、需求分析、软件设计、软件实现、软件测试、运行和维护。 (4)软件工程的目标与原则

1、软件工程的目标

软件工程的目标是,在给定成本、进度的前提下,开发出具有时效、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足需求的产品。 软件工程的理论和技术性研究的内容: ? ?

软件开发技术:软件开发技术包括软件开发方法学、开发过程、开发工具、软件工程环境等内容。 软件工程管理:软件工程管理包括软件管理学、软件工程经济学、软件心理学等内容

2、软件工程原则

软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 (5)软件开发工具与软件开发环境

1、软件开发工具

软件工具的发展是从单项工具的开发逐步向集成工具发展的,软件工具为软件工程的方法提供了自动的或半自动的软件支撑环境 2、软件开发环境

软件开发环境是全面支持软件开发过程的软件工具集合。计算机辅助软件工程(CASE)是当前软件开发环境中富有特色研究工作和发展方向。

2、结构化分析方法

(1) 需求分析与需求分析方法

a) 需求分析

需求分析的定义:软件需求分析是发现需求、求精、建模和定义需求的过程。需求分析阶段的工作是需求获取、需求分析、编写需求规格说明书和需求评审。

b) 需求分析方法 需求分析有结构化分析方法和面向对象分析方法两种。 (2) 结构化分析方法

结构化分析工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。其中最重要的工具是数据流图。数据流图。数据流图中的主要图形元素有加工、数据流、存储文件以及源和潭。 建立数据流图的步骤是:

? 由外向里:先画系统的输入和输出,然后画系统系统内部 ? 由顶向下:顺序完成顶层、中间层、底层数据流图 ? 逐层分解。

数据流图的构造要遵循如下一些规则: ? ? ?

对加工处理建立唯一、层次性的编号,且每个加工处理通常要求输入又有输出 数据存储之间不应该有数据流

数据流图的一致性:数据流图中数据要守恒,数据存储文件的使用要有写入也要有读出。

? 父图、子图关系与平衡规则:子图个数不大于父图中的处理个数。所有子图的输入、输出和父图中相应的输入、

输出数据流必须一致。 (3) 软件需求规格说明书

软件需求规则说明书有以下几个作用:

? 便于用户、开发人员进行理解和交流。 ?

反映出用户问题的结构,可以作为软件开发工作的基础和依据。 ? 作为确认测试和验收有依据。 软件需求规格说明书的特点:

软件需求规则格说明书具有正确性、无歧异性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等特点。

3.结构化设计方法 (1)软件设计的概念

① 软件设计的重要性和地位

软件设计在软件工程里有着重要的地位作用,这是因为:(一)软件开发阶段占软件项目开发总成本绝大部分,是在软件开发种形成质量的关键环节。(二)软件设计是开发阶段最重要的步骤,是将需求准确的转化为完整的软件产品或系统唯一途径。(三)软件设计作出的决策,最终影响软件实现的成败。(四)设计是软件工程和软件维护的基础。

②软件设计的内容

从技术观点看,软件设计包括结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系。数据设计是将分析时创建的模型转化为数据结构的定义。接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信。过程设计是把系统结构部件转换成软件的过程描述。从工程管理角度看,软件设计包括概要设计和详细设计。概要设计的任务是将软件需求转化成软件体系结构、确定系统级接口,全局数据结构或数据库模式。详细设计的任务是确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。

?软件设计的基本原理

软件设计的基本原理就是抽象、模块化、信息隐蔽和模块独立性。其中度量模块独立性的两个定性的标准是模块内部的内聚性和模块间的耦合性。

模块的内聚性是指一个模块内部各处元素之间彼此结合的紧密程度的度量。内聚有如下种类,它们之间的内聚性由弱到强的排列为:

? 偶然内聚:偶然内聚指一个模块内的各处理元素之间没有任何联系。 ? ? ? ? ? ?

逻辑内聚:逻辑内聚指模块内执行几个逻辑上相关的功能,通过参数确定该模块完成哪一个功能。 时间内聚:把需要同时或顺序执行的动作组合在一起形成的模块为时间内聚模块。

过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定的次序执行则称为过程内聚。

通信内聚:通信内聚指模块内所有处理功能都通过使用公用数据而发生关系。

顺序内聚:顺序内聚指一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常前一个元素的输出就是下一个处理元素的输入。

功能内聚:功能内聚是最强的一种内聚,它是指模块内所有元素共同完成一个功能,缺一不可,模块已不能再分。

模块的耦合性是模块间互相连接的紧密程度的度量。模块间的耦合有以下几种,它们由强到弱排列为: 内容耦合:内容耦合中一个模块能直接访问另一模块的内容。 公共耦合:公共耦合中一组模块都访问同一全局数据结构。 外部耦合:外部耦合中一组模块都访问同一全局简单变量。

控制耦合:若一模块明显地把开产关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。 标记耦合:若两个以上的模块都需要其余某一数据结构子结构时,通过记录传递的方式交换信息,则称这两个模块为数据耦合。

数据耦合:若一个模块访问另一个模块,被访问模块 的输入和输出都是数据项参数,则称这两个模块为数据耦合。

非直接耦合:若两个模块没有直接关系,它们之间的联系完全时通过主模块的控制和调用来实现的,则称这两个模块为非直接耦合。

结构化设计方法的基本思想:将软件设计成由相对独立,单一功能的模块组成的结构。为了提高模块的独立性,应该尽量提高模块的内聚性,降低模块间的耦合性。

? ? ? ? ? ? ?

⑵.概要设计

①. 概要设计的任务

概要设计阶段的任务是将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模

式。主要步骤如下: ? 设计软件系统结构 ? ? ?

数据结构及数据库设计 编写概要设计文档 概要设计文档评审

②. 软件结构设计工具—结构图(SC)

经常使用的结构图有四种模块类型:传入模块类型、传出模块类型和协调模块类型。 ③. 面向数据流的设计方法

数据流类型:典型的数据流类型有两种,变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经过加工处理后再沿输出通路变换成外部形式离开软件系统。在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成作业要求的功能,这种数据流叫做事务。

面向数据流设计方法的实施要点和步骤:

? 分析、确定数据流图的类型,区分是事务型还是变换型

? 说明数据流的边界

? 把数据流图映射为程序结构

? 根据设计准则对产生的结构进行细化和求精

在软件设计中应该遵循以上准则:

? ? ? ? ? ? ?

提高模块独立性 模块规模适中

深度、宽度、扇出和扇入适当

使模块的作用域在该模块的控制结域内 应减少模块的接口和界面的复杂性 设计成单入口、单出口的模块 设计功能可预测的模块

(3)详细设计

①详细设计的任务:为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。

②过程设计的任务:对每个模块规定的功能以及算法的设计,给出适当的算法描述。

③过程设计的工具:过程设计的常用工具有程序流程图、N-S图、PAD图(问题分析图)和PDL(过程设计语言)

4、软件测试

(1) 软件测试的目的

软件测试是为了发现错误而执行程序的过程。 (2) 软件测试的准则

软件测试过程中应遵循以下准则:

? 所有测试都应追溯到需求

? 严格执行测试的计划,排除测试的随意性

?

充分注意测试中的群集现象

? 程序员应避免检查自己的程序 ? 穷举测试不可能

? 妥善保存测试计划、测试用例、出错统计和最终分析报告 (3) 软件测试技术与方法综述、

软件测试从是否要执行被测试软件的角度可以分为静态测试和动态测试。 ① 静态测试和动态测试 ?

静态测试:静态测试包括代码检查静态结构分析、