搜档网
当前位置:搜档网 › 软考笔记4-软件工程

软考笔记4-软件工程

软考笔记4-软件工程

考纲概要

●软件生存周期与软件生存周期模型

?瀑布模型、演化模型、螺旋模型、喷泉模型(Ⅱ)

●软件开发方法

?结构化方法、面向对象方法的基本概念(Ⅱ)

●软件工具与软件开发环境

?分析工具、设计工具、编程工具、测试工具、维护工具、CASE(Ⅰ)

●软件开发项目管理

?成本估算、风险分析、进度管理(Gantt图、PERT图)、人员管理(Ⅰ)

课时1:

软件危机:无组织无纪律的开发方式

软件工程:系统化的、严格约束的、可量化的方法应用于软件开发、运维,即将工程化应用于软件。

软件工程三要素:方法、工具、过程。

软件生命周期:

从生产直到报废的生命周期。

需要经历:

问题定义→可行性分析→需求分析→总体设计→详细设计→编码→测试→运行→维护

总共6个阶段:

计划、分析、

设计、编码、测试、

维护

适用范围:

需求明确且很少变更的项目。

瀑布模型和演化模型的结合,增加了

风险分析的环节。

每一圈都经过制定计划、风险分析、实施工程、客户评价等环节,每次得到新的模型,螺旋上升。

课时2:

软件开发方法:

1、结构化分析和设计

2、面向结构

3、面向对象

结构化分析和设计

1、结构化分析(SA)

面向数据流的需求分析方法,利用图形表达用户需求。

数据流图、数据字典

2、结构化设计

面向数据流的设计方法,以分析阶段产生的文档为基础,逐步求精和模块化。

面向数据结构的设计

根据输入/输出数据结构,导出程序结构

Jackson方法和Warnier方法是最著名的2个面向数据结构的设计方法。

面向对象的分析与设计

是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。

面向对象= 对象+ 类+ 继承+ 通信

1、对象

描述客观事物的一个实体,系统的基本单位

属性,也叫状态或数据,对象的静态特征

操作,也叫方法或服务,规定了对象的行为,动态特征。

封装,一种信息隐蔽技术,用户可以看见对象封装界面上的信息,内部实现对用户是隐蔽的

2、类(class)

一组具有相同属性和操作的对象的集合

类中的每一个对象称为这个类的一个实例(instance)。

类是创建对象的模板,每个类都具有相同的结构和行为。

3、继承(inheritance)

继承是指特殊类(子类)的对象拥有一般类(父类)的全部属性与服务。

父类中定义了所有子类的公共属性和操作,

子类中定义了自己特有的属性和操作,还可以继承父类的属性和操作,也还可以重写父类的实现方法。

单一继承、多重继承

4、多态性

同一个操作作用到不同的对象上,产生不同的执行结果。

5、消息

对象间通信的手段,包括:接收对象名、调用操作名、适当参数

只需要告诉接收对象需要完成什么操作,由接收者解释执行,消息的请求并不在意具体怎么实现。

面向对象的优点:

1、与人类习惯思维方法一致

2、稳定性好

3、可重用性好

4、较易开发大型软件产品

5、可维护性好

课时3:

软件测试(一)

目的:发现软件的错误和缺陷

概念:

测试用例

测试用例由测试数据和预期结果构成的。

(考选!)

●为了发现错误,应尽可能设计可以暴露错误的测试用例。

●好的测试用例是发现至今为止未发现的错误。

●一次成功的测试用例是发现了至今为止未发现的错误。

测试准则

(考选!)

应该尽早地、不断地进行测试,要贯穿于软件开发过程的始终。

所有的用户测试都应该追溯到用户需求。

测试从小规模开始,到大规模。

应该远在测试之前就制定出测试计划(测试计划书等)。

在规划测试的时候,不应该设想程序中不会查出错误。

80%的错误可能出现在20%的程序模块中(二八法则)。

测试应该有独立的第三方人员进行,但一般单元测试是由开发人员自己进行的。对非法的、非预期的输入数据,也要像合法的数据一样编写测试用例。

测试时,不仅要检查程序是否完成了要做的事,还要看是否做了不应该做的事。测试只能证明软件中有错误,不能证明软件中没有错误。

测试分类:

要借助驱动模块(相当于测试模拟的主程序)和桩模块(子模块)

(1)驱动模块:被测模块的主程序,接收测试数据,调用测试模块。

(2)桩模块:代替被测模块调用的子模块,可以做少量的数据操作,并不需要将子模块

的所有数据都加进来,并不等价于子模块,但也不允许什么也不做,

软件维护

衡量可维护性的因素:可理解性、可测试性、可修改性

影响维护工作量的因素(了解):

●系统大小

●程序设计语言

●系统年龄

●数据库技术的应用

●先进的开发技术

课时4:

见上

课时5:

软件质量保证

软件质量指软件与明确定义的和隐含的需求相一致的程度。

软件质量的3方面要求:

●用户需求是度量软件质量的基础,不满足用户需求和超越用户需求都是没有用的。

●制定的标准定义了一组指导软件开发的准则,行业标准

●没有显式描述的隐含需求(如软件易维护、易扩展等)

软件质量特征:

软件质量保证:

定义:

为了保证软件系统充分满足用户要求的质量,而进行有计划、有组织的活动,提高产品质量。

质量保证手段:

●开发初期制定质量保证计划

●开发前选定制定开发标准、开发规范

●选择分析方法和工具,形成高质量的分析模型、设计模型

●严格执行阶段评审,及时发现问题

●进行阶段测试

●严格执行变更流程,需求变更的管控,防止变更蔓延。

●有完整的阶段文档

课时6:

项目管理-第一节

风险管理

风险管理是从识别到分析乃至采取对应措施等一系列过程。风险有有利的,也有有害的,但基本上关注的是有害的风险。

风险识别过程:

课时7:

项目管理-第二节

附录:

例1:白盒测试中的覆盖准测的强弱顺序。

例2:求项目进度期望和方差

套用上方公式,

可以根据各个期望求总的期望,但是不能根据各个方差求总方差。

相关主题