《软件工程导论》第五版-张海藩-编著-总结_第1页
《软件工程导论》第五版-张海藩-编著-总结_第2页
《软件工程导论》第五版-张海藩-编著-总结_第3页
《软件工程导论》第五版-张海藩-编著-总结_第4页
《软件工程导论》第五版-张海藩-编著-总结_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程导论》第五版张海藩编著总结

分类:ComputerSys:em2011-01-0410:146417人阅读评论(10)收藏举报

测试数据结构工具任务文档软件测试

总结重点:

❖•Unitl

。・软件危机包含两方面(7)问题:一是如何开发软件,怎样满足人们对软件日益增长(7)需求?二是如何维护软件.

使它们持久地满足人们要求。

。・软件工程学定义:把软件当作一种工业产品,采用工程学。1原理来管理和组织软件开发和维护,称为软件

工程。

♦:♦•软件是指程序、数据和文档三者共同构成(Z)配置。

♦:♦•包含与数据处理系统操作有关(7)程序、规程、规则以及相关文档(Z)智力创作称为软件。文档是描述程序开发

过程(Z),是智力创作真实记录:是创作活动内历史档案和结晶。

。•软件内描述性定义:软件由计算机程序,数据结构和文档组成。

♦:♦■软件质量定义为“与软件产品满足规定内和隐含需求能力有关内特征和特性0)全体”

具体来说:1)软件产品中能满足给定需求(7)性质和特性O1总体;

2)软件具有所期望0)各种属性(7)组合程度。

♦>将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向

用户内观点一面向管理。)观点:且是定性描述内。

。・软件质量度量体系:内部度量可用于开发阶段O非执行软件产品,外部度量只能在生存周期过程中O测试阶

段和任何运行阶段使用。

♦:♦■软件工程项目。海本目标:(I)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。

如软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。

♦:♦・软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。

♦:♦•结构程序设计是进行以模块功能和处理过程设计为主(Z)详细设计基本原则。它(Z)主要观点是采用自顶向下、

逐步求精0)程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制

结构构造。

。・用来辅助软件开发、运行、维护、管理、支持等过程中活动CD软件称为软件工具(CASE)。

软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用0)整个过程。各

阶段O任务彼此间尽可能相对独立,同一阶段内各项任务0)性质尽可能(Z)相同。软件0)开发就是“按软件顺

时间发展过程分阶段进行"00

♦:♦•软件生存周期模型:

瀑布模型(阶段间具有顺序型和依赖性,清楚地区分逻辑设计与物理设计、尽可能推迟程序内物理实

现,是文档驱动模型,遵循结构化设计);

原型模型(软件产品(Z)开发是线性顺序进行本质是快速,用途是获知用户真正需求,一旦需求

确定,原型将被抛弃)。

其核心都是将软件开发划分为:分析、设计、编码、都试和维护。

。・软件生存周期划分为以下几个阶段:可行性研究与计划、需求分析、总体设计、详细设计、实现、组装测试、

确认测试、使用和维护。

如软件过程:是为了获得高质量软件所需要完成(Z)一系列任务CD框架,它规定了完成各项任务工作步骤

♦:♦,软件工程方法学:通常把在软件生命周期全过程中使用整套技术方法(Z)集合称为方法学,也称范型

如软件工程过程是软件生存周期中各个可能(Z)过程,这些过程可进一步划分成为了提供或获得软件产品或服务,

或是为了完成软件工程项目需要完成有关软件工程活动,每一项活动又可分解为一些软件工程任务。标准定

义了21个过程分属三类:基本过程(include获取、供应、开发、运作、维护过程)、支持过程和组织过程。

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

如软件工程管理

目。•:为了按照进度及预算完成软件计划,实现预期G经济和社会效益。

内容:成本估算、进度安排、人员组织、质量保证、配置管理等等。

怎么强调软件工程管理极其重要性都不会过分

>-Unit2

A•可行性研究

任务和目用最小代价在尽可能短(7)时间内确定问题是否能够在一定规模之内解决。(确定这一问题

是否存在值得去做(Z)解)

过程和步骤:

同・

确定系统规模和目标HUM和妁束

一做什么

物理横型

包(WIHDD)

研究现行系统<快第

费用

一接口

rMFD

建立新系统的高层逻辑模型

《初步)DD

评价新系统评价新系统的遗羯模型

建立新系统的®瞠模型从技术角度栩端决同■的不同方巢

研究可行性

「推特・住力•案

给H避议性建议L成本/效做分析

「项目先曲度的电X

翎项目开

一列月各阶段的藤本

可行注酬先报皆

原目开发计划

就件版・保俄计划

实质:进行一次大大压缩简化了0)系统分析和设计过程,也就是在较高层次上以抽象方式进行(Z)系统分析

和设计过程。

技术和工具:DFD+DD

»•主要内容

(1)澄清问题定义——规模、约束和限制

(2)导出新系统O逻辑模型

(3)导出若干个供选择(7)物理解法(物理模型),并分别研究它们(7)可能行:

A•数据流图符号

数据的谶点/终点

变换数树的处理

或数据少储

数据流

Example:

D1库存清单

库存清单

》•数据流图0)基本目(Z)是利用它作为交流信息。»工具,另一个主要目是作为分析和设计内工具,

A•数据字典是关于数据信息集合,也就是对数据流图中包含O所有元素定义集合,它是通过对数据元素和数

据结构O定义,来描述数据流和数据存储0)逻辑内容

A•数据流和数据字典共同构成系统。>1辑携型。

》•数据字典CZ)内容:

数据流、数据元素、数据存储、处理

A•数据字典最重要用途是作为分析阶段工具。

❖•Unit3

♦:••需求分析:

目内:精确地定义系统必须做什么,也就是对目标系统提出完整、准确、清晰、具体内要求。一一为目标系统提出

精确(D逻辑模型。

任务:潴定对系统O综合要求,包括功能需求、性能需求、可靠性和可用性需求、运行要求、将来可能提出要求。

过程:处理逻辑(Z)分解:自顶向下逐步分解直到每个处理逻辑已是不可再分(Z)“功能单元”为止。

书写文档:软件需求规格说明

工具:状态图、IPO图、层次方框图、Womiei•图

♦:♦■结构化分析设计技术是70年代中期由E.Yourdon等人提出来内一种面向数据流内方法;要求系统O开发工作在

结构化和模块化0)基础上进行,它系统(7)运用了描述模型内概念,按照软件内部数据传递和变换(Z)关系,自顶

向下逐层分解,直到找出满足要求可实现内软件。

在这个方法里,“抽象”,“分解”,“模块化”,“结构化”是它O主要手段;面向数据传递、变换所形成内数

据流(Dotoflow)和数据流程图(DFD)是它O主要依据。

这个方法O关键工作是:画分层DFD和确定数据定义与加工策略。

❖•You^don方法(对应O瀑布模型)0:缺陷:

其实Yourdon方法是建立在三个假设之上(D:

假设1:所有需求都是可以预先定义0);

假设2:需求在较长一段时间内是不变G(相对稳定G);

假设3:运用所提供工具可以做到项目参与者之间清晰、准确、有效沟通。

这三个假设往往是很难成立CD

“逻辑模型”精确描述依赖于“自顶向下内求精过程”,而“自顶向下(7)求精过程”O顺利进行又依赖于精确

0“逻辑模型”,这二个问题互相缠绕依赖而构成方法学上内“死锁”。

♦:♦■原型法(原型模型):

原型就是模型(Z)意思(原型=模型),它指0)是模拟某种产品(D原始模型。

运用原型(D策略:抛弃策略&附加策略

对原型(Z)逐步求精过程是一个迭代过程

相对于Yourdon方法来说原型法是一个非线性系统开发方法。

不再强调高质量CD阶段性文档。

♦:♦•螺旋模型:沿螺线自内向外每旋转一圈便开发出一个更为完善(7)软件版本

❖■Yourdon方法适合于“预先指定(7)系统”;

如原型法适合于“用户驱动系统”。

♦:♦•通常用“范式”定义消除数据冗余程度。第一范式数据冗余程度最大,第五范式数据冗余程度最小。

♦:♦■状态转换图:

状态时可以被现察到(7)系统行为模式,一个状态代表系统(7)一种行为模式,它规宇了系统对事件(7)响应方

式,一张状态图有一个初态和0至多个终态。

事件:在某个特定时刻引起系统做动作和(或)状态转换G控制信息。

♦:♦■验证软件需求(7)正确性:

一致性、完整性、现实性、有效性

>-Unit4

A•总体设计:

目O:确定系统具体物理实现方案(系统结构设计),确定组成每一个程序O模块,以及模块间(Z)关系(软件结

构设计)o

任务:软件结构设计(过程设计是详细设计阶段内任务)

过程:

设想供选择O方案

选取合理方案(每份方案有系统流程图、组成系统(7)物理元素清单、成本/效益分析、实现这个系统(7)进

度计划4份资料)等9步(P92)

》•在软件开发早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件(Z)可测试性。

》•总体设计阶段书写内文档:系统说明、用户手册、测试计划、详细实现计划、数据库设计结果。

A•总体设计过程中,推荐最佳方案后进入“软件结构”设计:设计已组成这个系统所有程序、文件和数据库,以

及它们之间(7)联系。软件结构:由模块组成层次系统。模块:数据说明、可执行语句等程序。

X/S(Client/server)结构是软件系统体系结构

>•“结构化设计”概括地说就是:用一组标准工具和准则来确定系统应该由哪些模块、用什么方式联结在一起,

才能构成一个最好O软件结构。

A•模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成

指定(7)功能满足用户需求。

A•模块:具有四种属性0)一组程序语句称为一个模块,这四种属性分别是:输入和输出、逻辑功能、运行程序、内

部数据。(前两个是模块外部属性,后两个是内部属性,总体设计完成外部属性设计、详细设计完成内部属性

设计)

软件结构图中,模块用一矩形表示。

》•模块问调用:用一连接

A•开发具有独立功能而且和其它模块之间没有过多相互作用(Z)模块,可以做到模块独立。

、•影响模块独立(Z)因素:

耦合(不同模块间互联程度:

内聚(同一模块内各元素紧密程度)

力争高内聚、低耦合。

>5种耦合形式:

数据耦合、控制耦合、特征耦合、公共耦合、内容耦合(从左到右耦合程度诧增)

最弱内耦合是非直接耦合

上7种内聚形式:

功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚(从左到右程度依次递减)

»・模块扇出与扇入:

模块内扇出是指一个模块拥有(Z)直接下级模块个数。

模块内扇人是指一个模块直接上级模块内个数。

模块扇出系数应控制在7以内,尽可能加大模块。)扇入系数。

A•作用域应该是控制域子集;

A•模块控制域和作用域:

模块唾制域(控制范围):是指这个模块本身以及所有直接或间接从属于它模块内集合。

模块(7)作用域(判断作用范围):是指受该模块内一个判断影响0)所有模块0)集合。(也就是该模块内存在着判断

调用语句,而所有受到该判断逻辑影响内模块,就是该模块作用域。)

作用域应该是控制域(7)子集;理想(Z)是作用域都是直接下属模块。

》•数据流类型——数据在DFD中流径特征

变换流:进入系统中O数据所流经路径几乎是一样内。

事务流:进入系统中0)数据所流经(Z)路径不完全是一样0)。

》•事务中心往往包含多个处理逻辑。

>•“事务”是指一组输入数据。

跟踪

反跟踪

闭环——变换中心

「交换中心找一

本多

最高层模块L速一个

第二层模块一三部分[黎念签爰

L输出处理

优化:软件结杓设计的基样造

蝴:按二叉树形式分解

❖•Unit5

♦:♦•详细设计:

目(D:完成模块(Z)过程设计(为SC中每个模块确定采用算法和块内数据结构,用某种选定O>表达工具给

出详细清晰(D描述。)

模块(Z)逻辑设计(模块S>过程描述)

主要内容:

1)为每个模块确定采用算法

2)确定每个模块使用(Z)内部数据结构

3)确定模块(Z)接口细节

4)制定模块(Z)测试计划

完成模块“内部属性”设计,即给出系统中各个模块(Z)“运行程序”和“内部数据”;由此可见详细设

计7)结果基本上决定了最终软件(D质量。

详细设计目标更重要(Z)是便于维护。

工具:

1.程序流程图(流程图)

2.N-S图(盒图)

3FAD图(问题分析图)

4.伪代码和PDL语言

♦:♦•逻辑设计应遵循内理念:

1.从效率第一到清晰第一

2.结构化(7)控制结构:结构化程序设计=仅使用单入口单出口三种基本控制结构

3.逐步细化实现方法

[例]在一组数中找出其中最大数分别用程序流程图、N-S图和PAD图描述

用“结构化”保证程序(7)清晰易读,用“逐步细化”实现程序(Z)正确可靠,它们导致了一条自然0)结论:

模块内逻辑设计必须用结构化程序设计原理来指导。(结构化分析设计在详细设计阶段)

❖•Yourdon方法嫩术途径:DFD-DFD+DD-SC-PDL

♦:♦•Yocrdon方法在分析阶段,我们用DFD来表示软件逻辑模型;在设计阶段,又按照数据流类型,分别用变换

分析或事务分析将它们转换成相应(Z)软件结构。

♦:♦・面向数据结构设计方法根据和基本思想:

算法和数据结构是程序设计中不可分割(Z)侧面,算法(Z)结构依赖于它要处理(D数据结构。只要事先知道一

个问题数据结构,就可以由此导出它(Z)程序结构。

♦:♦■基于数据流还是基于数据结构0)出发点不同,最终目标也不同。SADT(结构化分析设计工具)方法(7)目标是得

出软件0)最终SC图,它把注意力集中在模块内合理划分上;面向数据结构(?)设计则要求得出程序过程性描

述,并不明确也提出软件应该先分成模块等概念。

♦:「SADT方法:DFD->SC(软件结构图)->模块(Z)过程性描述(PDL等)

I<——总体设计——>II<——详细设计——>I

Jackson方法(面向数据结构):数据结构,程序结构->程序过程性描述(伪代码等)

1<一一总体设计一I1<----------详细设计------>I

♦:♦■程序复杂程度(Z)定量度量:

1.程序图(流图)(用任何方法表示G详细设计结果都可以变换成程序图)

流程图中各种处理框均简化成一个结点

2.环域复杂度

程序结构复杂度可用强连通内有向图中线性无关环G个数来度量

V(G)=判定结点数+1

>-Unit6

编码(也称实现)

任务:把模块过程性描述翻译为用该语言书写源程序(或源代码)。

》•编码O风格

1.程序要清晰直观,不要过于巧妙

2.用一定(Z)原则指导控制结构内使用(避免使用容易引起混淆(Z)结构和语句)

3.有规律地使用GOTO语句

不得不把效率考虑放在首位0)时候,而结构化程序又不能满足时间要求时,就可用GOT。语句来减少重复

(Z)代码段;

4.实现源程序(Z)文档化(软件:程序+文档)〈有意义CD变量名称、适当注释、标准(Z)书写格式,

❖-Unit7:

♦:♦•软件测试:

定义:程序测试是为了发现错误而执行程序(Z)过程。

纠错(调试)是为了确定错误(Z)性质,并且加以纠正。

♦:♦•软件测试包括机器测试(动态测试)(黑盒测试&白盒测试)和人工测试(代码复审)(代码走查+会审+办公桌检查)

程序编译通过后,应该先人工测试(发现逻辑错误)后机器测试(在设定测试数据上执行被测程序).

♦:♦・动态测试是一个包括:①设计“测试用例”f②执行被测程序f③分析测试结果并发现错误过程。(①设计“测

试用例”是最关键)

测试用例={输入数据+期望结果}

按照在设计“测试用例”时,是否涉及程序(Z)内部结构,把动态测试分为:

白盒测试:从程序(Z)内部逻辑入手,按照一定原则设计测试用例。

黑盒测试:仅以程序外部功能为依据来设计测试用例。检查程序是否完成应做和是否做了不该做(按规

格说明书内规定)

♦:♦•软件测试步骤:[见笔记木上图]

单元测试:在编码阶段完成;以模块为单位,(主要白盒)发现(Z)往往是编码和详细设计(Z)错误

综合测试:(模块组装测试、集成测试)以软件(Z)设计信息为依据,主要用黑盒,发现设计错误,也可能发现

需求说明错误。

确认测试(验收测试):以软件需求信息为依据,用黑盒,发现需求说明书中(D错误,验证软件(Z)有效性

系统测试:指整个计算机系统(包括软件与硬件)测试。

。•代码复审

1.代码会审:开会逐句朗读和讲解程序,精力集中于发现错误,会后改正错误

2.走查:与会者扮演“计算机”O角色

3.办公桌检查:一个人参加内代码会审

。■黑盒测试方法:

♦:♦•等价分类法:

按测试结果“等价”把被测程序(7)输入域划分为若干个等价类,每一个等价类都选择一例“测法用例”,与“应

做(7)事情”相对应内是“有效等价类',而与“不应该做(Z)事情”相对应(Z)称之为“无效等价类”。

设计等价类。•测试用例分为两步:

1.划分等价类并给出定义;

2.选择测试用例0)原则:有效等价类(Z)测试用例尽量公用;无效等价类必须每类一例。

[例]某城市0)电话号码……【看笔汜】

♦:♦・边界值分析法(边值法)

如错误猜测法(猜错法)

。•因果图法

♦:♦•白盒测试方法:[见笔记]

合理O白盒测试,就是要选取足够测试用例,以实现对源程序比较充分覆盖。

如逻辑覆盖法:(按照由低到高对程序逻辑覆盖程度内顺序)

语句覆盖:每条语句至少执行一次;

判定覆盖:不仅每条语句至少执行一次,而且每一分支至少执行一次;

条件覆盖:不仅语句覆盖,而且每个条件均按“真”、“假”两种结果至少执行一次;

条件组合覆盖:不仅语句覆盖,而且每个条件(Z)所有可能组合都至少执行一次。

如路径覆盖法:(按照由低到高对程序逻辑覆盖程度)

结点覆盖:每个结点走一次;相当于语句覆盖

边覆盖:每条边走一次;相当于判定覆盖

路径覆盖:每条路径走一次;(不需要考虑程序循环)

>-Unit8

A•面向对象基本原理:使描述问题(Z)词题空间和在计算机上解决问题(Z)解空间在结构上尽可能一致。

》•基木概念:

(1)对象:由数据以及可以施加在这些数据上礴作(或服务、方法、处理)所构成统一体,它是面向对

象软件④基本模块。

(2)类:对具有相同数据和相同操作(Z)一组相似对象G定义(抽象)。

(3)不同G对象彼此之间只能通过消息相互作用、相互联系

(4)继承:处于下一层次上内派生类自动继承了位于上一层次基类属性(数据)和行为(操作)

A•面向对象就是既使用对象又使用类和继承等机制,而对象之间仅能通过传递消息实现彼此间通信。

>-UML用视图来表示被建模系统(7)各个方面,它把软件模型分成5个视图,每一个视图代表完整系统(7)一个特东

方面。每一个视图又由一种或多种模型图构成。

1.用例视图:用来支持需求分析,也就是说系统将提供(Z)功能是在用例视图中描述内。

2.逻辑视图:定义系统O实现逻辑,重点关注(Z)是系统内静态结构(类、对象及它们之间关系),也描述系

统内部0)动态协作关系。它G模型图包括类图、对象图、状态图、顺序图、协作图及活动图等。

3.组件视图:描述系统(7)实现模块及它们之间(Z)依赖关系。组件是不同类型00代码模块,通过代码模块CD结

构和依赖关系来表示。

4.部署视图:描述软件系统在计算机硬件系统和网络上内安装、分发和分布情况。

5.实现视图:描述组成软件系统0)各个物理部件。

AUML由三部分组成:基本构造块、规则和公用机制

AUML定义了二类模型元素(;)图形表示:一类模型元素用于表示模型中(Z)某个概念,一类模型元素用于表示模型

元素之间(Z)关系

A•面向对象建模:

对象模型一“谁做?”(类图)

动态模型——“什么时候做?”(状态图)

功能模型——“做什么?”(用例图)

这三种模型都是必不可少对象模型是最核心0)。

在面向对象分析中,构造出完全独立于实现应用域模型;在面向对象设计中,把求解域(Z)结构逐渐加入

到模型中;在实现阶段,把应用域和求解域内结构进行编码和验证。

方法:OOAfOODfOOPTOOT是一个逐渐扩充模型(;)过程,其间无需转换概念和表示,开发活动之间

基本做到了平滑无缝过渡;

A•对象槿型:

类与类之间一般有四种关系:关联、泛化(继承)、依赖和细化。

1.关联:表示两个类“对象”之间存在某种语义上(7)联系。

2.聚集:聚集是关联内特例,它表示类与类之间(Z)关系是整体与部分(Z)关系。

3.泛化(继承):泛化关系指(Z)是类与类之间是“一般一特殊”(Z)关系。

4.依赖和细化:依赖关系是指一个模型元素依赖于另一个独立(Z)模型元素,细化关系是指一个模型元素细化成了另

一个模型元素。

》•动态模型:

描述了对象模型中对象(Z)生命周期过程,即对象状态,我们把一个触发行为称为一个事件。动态模型就是通

过描述对象状态触发状态转换事件、以及对象。)行为来描述软件系统动态行为(行为模型)。

A♦功能模型:

UML提供用例图来表示功能模型,并称之为用例模型。

功能模型也可用SADT中。)一组DFD来表示。(也是需求分析阶段)

一幅用例图包含内模型元素有:系统、行为者、用例和用例之间。)关系。

一个用例是系统。》一个完整功能,通过关联与行为者连接,关联指出一个用例与哪些行为者交互,这种交互

是双向7)。

用例是一个类,用例O实例是系统(7)一种实际使用方法,我们称自为脚本。

用例之间内关系主要有二种:扩展关系和使用关系。

创建用例模型内工作包括:定义系统、寻找行为者和用例、描述用例、定义用例之间(Z)关系,并确认用例模型。

❖•Unit?:

。•面向对象分析(Object-OrientedAnalysis,简称OOA)内关键就是识别出对象与类,并分析之们之间内关系,

最突建立对象模型、动态模型和功能模型。

表达需求

图:参照当前系统建立目标系统

。•通过划分“主题”把一个复杂系统G对象模型分解成几个不同G概念范畴。

A•软件维护就是在软件已经交付使用之后,为了改正错误或满足新(Z)需要而修改软件。»过程。

》•维护过程本质上是修改和压缩了(D软件定义和开发过程,而且事实上远在提出一项维护要求之前,与软件维护有

关7)工作已经开始了。

进行维护内原因:改正程序中内错误和缺陷;改进设计以适应新(Z)软、硬件环境;增加新应用范围;为了将来

维护工作。

》•维护分为以下几类:改正性维护;适应性维护;完善性维护;预防性维护

》•未涵盖讲来(D内容:

》•需求分析目内:确定目标系统必须具备哪些功能

》•总体设计内主要任务:一.制定几种可能CD实现方案;二.设计程序体系结构

A•详细设计(模块设计)任务:设计出程序(Z)详细规格说明

»•集成测试和验收测试:

集成测试(组装测试):根据设计(Z)软件结构

验收测试:按照规格说明书内规定,由用户参与下对目标系统进行验收内测试

》•通过对软件测试结果内分析可以预测软件0)可靠性。

、・传统软件工程方法学(7)软件过程,可以用瀑布模型来描述

》•瀑布模型0)特点:阶段间具有顺序性和依赖性、推迟实现(Z)观点

清楚地区分逻辑设计与物理设计,尽可能推迟程序物理实现。

瀑布模型带反馈环,发现前面阶段।力错误时,沿反馈线回头修改

快速原型模型不带反馈环,软件产品开发是线性顺序进行内,用途是获知用户。1需求

A•增量模型(渐增模型):把软件产品分解成增量构件。原则:当把新构件集成到原有构件时,所形成G产品必须

是可测试(D。它能在较短时间内向用户提交可完成部分工作产品。

要求开始实现各个构件前就全部完成(7)需求分析、规格说明、总体设计。

A螺旋模型内基本思想:使用原形及其他方法来尽量降低风险。可以看作每个阶段前都加了风险分析内快速原型模

型,螺旋模型是风险驱动型0>。

A•喷泉模型体现了面向对象开发过程迭代和无缝(Z)特性。

》•采用先行顺序(Z)开发方法不可能开发出当今客户需要大型复杂系统。

构件:功能清晰。)模块或子系统。

模型:对事物(Z)无歧义内书面描述。

RUP强调采用迭代和渐增方式来开发软件,重复一系列组成软件生命周期(Z)循环。

»•面向对象方法=对象+类+继承+用消息通信

》•可行性分析中导出供选择解法内最简单途径,是从技术角度出发考虑解决问题CD不同方案。

》•系统流程图是概括地描绘物理系统,力工具,表达数据在系统各部件之间流动情况,而非对数据加工处理。

》•数据流图(DFD)描绘信息流和数据从输入移动到输出O过程中所经受变换。(描绘数据在软件中流动和被处

理7)逻辑过程),设计时只考虑系统必须完成(D基本逻辑功能。

画数据流图。•基本目利用它作为交流信息0)工具;作为分析和设计工具。

符号:数据源点/终点,变换数据(Z)处理,数据存储,数据流

》•数据存储是处于静止状态数据流,数据流是处于运动中。«数据,

》•数据字典是关于数据O信息(7)集合,即对数据流图中包含O所有元素定义O1集合。

数据字典包含内容:数据流,数据流分量,数据存储,处理

数据字典用途:分析阶段0)工具。

A逆向需求说明软件系统不应该做什么

A分析系统常用图形工具:层次方框图、Womier图

A•需求分析时要把数据结构规范化。

A•结构化分析方法就是面向数据流自顶向下逐步求精讲行需求分析G方法。

把分析过程中得到(Z)有关数据元素记录在数据字典中,对算法(Z)简明描述记录在IPO图中c

快速建立软件原型是最好内需求分析技术。为快速构建和修改原型,使用三种工具和方法:

第四代技术

可重用(D软件构件

形式化规格说明和原型环境

A•概念性数据模型是一种面向问题。•数据模型,是按照用户O观点对数据建立模型。

A•数据对象是软件必须理解内复合信息内抽象。

》•用“范式”定义消除数据冗余程度,第一范式冗余最大。

》•状态是任何可被观察到(Z)系统行为模式,一个状态代表系统(Z)一种行为模式。

A•状态图(Z)活动表中经常使用entry,exit,do三种标准事件。

AIP。图是输入、处理、输出图,处理框中列出处理次序暗示了执行(Z)顺序。

A•验证软件需求(Z)正确性:一致性、完整性、现实性、有效性

》•结构设计是总体设计阶段(Z)任务,过程设计是详细设计阶段O任务

A•软件结构(即由模块组成(Z)层次系统)可以用层次图或结构图描绘。

》•在软件开发(Z)早期阶段考虑测试问题,可以促使软件开发者设计时注意提高软件内可测试性。

>•随着模块数增加,设计模块间接口所需工作量也增加。

》•逐步求精是规格说明技术、设计和实现技术(Z)基础。

逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节2)考虑。

》•模块独立概念是模块化、抽象、信息隐藏和局部化概念CD直接结果。

A耦合强弱取决于模块接口0)复杂程度,进入或访问一个模块点,以及通过接口CD数据。

下模块间(7)耦合程度影响系统O可理解性、可测试性、可靠性和可维护性

》•内聚比耦合更重要。

A•深度表示软件结构中控制(7)层数,能粗略标识系统大小。

宽度是软件结构内同一层次上内模块总数G最大值。

扇出过大意味着模块过分复杂,扇入越大则共享该模块。)上级模块越多(好)。

好7)软件结构通常顶层扇出高,中层扇出较少,底层模块有高扇入。

》•面向数据流(Z)设计方法把信息流映射成软件结构,信息流(Z)类型(变换流、事务流)决定映射万法。

A•经典程序设计:只允许使用顺序、IF_THEN_ELSE、DO_WHILE

扩展(Z)结构程序设计:外力口DCLCASE、DO_UNTIL

修改结构程序设计:外加BREAK

》•系统响应时间(Z)两个属性:长度、易变性

》•用户界面设计是一个迭代过程。

》•过程涉及工具:程序流程图、盒图、PAD图、判定表、判定树、过程设计语言PDL

A程序复杂度定量度量:

l.McCQbe方法(流图,也叫程序图):流图中(Z)区域数二环形复杂度二判定节点数+1

程序环形复杂度取决于程序控制流O复杂程度,即取决于程序结构(7)复杂程度。所以它是对测试难度定量

度量.也能对软件可靠性检测。

2.Halstead方法(根据程序中运算符和操作数总数来度量)

》•编码和测试统称为实现。

》•程序(7)质量主要取决于软件设计O质量。

A•测试(Z)目O:发现软件中(Z)错误,根本任务:保证软件质量

A•调试目(7):诊断并改正测试中发现CD错误

A•效率主要指处理机时间和存储器容量两方面。

A用户角度:最严重。•错误是导致程序不能满足用户需求错误。

》•一旦完成了需求模型就可以着手制定测试计划,建立了设计模型之后就可以立即开始设计详细测试方案。

A•最佳测试效果:有最大可能性发现错误(7)测试

A•模块组装测试两种方法:非渐增式测试(分别测试每个模块)&渐增式测试(把下一个要测试0)同已经测好(Z)结

合起来测试)

A•渐增方式分自顶向下集成和自底向上集成

》•为了保证加入模块没有引进新内错误,可能需要进行回归测试

沁自顶向下测试方法主要优点:不需要测试驱动程序,能够在测试阶段早期发现接口错误。

》•回归测试:重新执行已经做过测试内某个子集。它用于保证由二调试或其他原因引起内变化,不会导致非预期

(Z)软件行为或额外错误。

》•确认测试目(Z):验证软件。)有效性。

A•如果软件O功能和性能如同用户期望CD,就是有效O

》•确认测试以用户为主,重要内容是复查软件配置。

》•条件测试0)目内不仅是检测程序条件中(?)错误,而且是检测程序中(Z)其他错误。

》•在一段程序中已经发现(Z)错误数往往和尚未发现错误数成正比,

A等价划分法和边界值分析法都只孤立地考虑各个输入数据O测试功效,而未考虑多个输入数据。•组合效应。

》•软件可靠性:程序在给定时间间隔内,按照规格说明书<?>规定成功运行概率

》•错误:由开发人员造成(7)bug;故障:由错误引起(Z)软件内不正确行为

》•软件可用性:程序在给定时间点,按照规格说明书上。•规定,成功地运行概率。

》•预防性维护:为了改进未来可维护性或可靠性……

》•软件维护分为非结构化维护和结构化维护

》•维护事件流(Z)最后一个事件是复审,它再次检验软件配置有效性,并保证事实上满足了维护要求表中(Z)要求。

A•软件可维护性:维护人员理解、改正、改动或改进这个软件内难易程度。提高软件维护性是支配软件工程方法

学所有步骤G关键目标。

》•决定软件可维护性因素:可理解性、可测试性、可修改性、可移植性、可重用性

》•用户文档包括:功能描述、安装文档、使用手册、参考手册、操作员指南

》•面向对象方法用对象分解取代了传统方法(Z)功能分解。

A对象彼此之间仅通过消息传递相互联系。

》•面向对象二对象+类+继承+消息传递通信

如果仅用对象和消息,则称为基于对象方法,而非面向对象O方法。

如果讲一步要求把所有对象都划分成类,则称为基于类(7)方法,仍非面向对象(7)方法。

只有同时使用以上4点,才是面向对象(7)。

AOOD不同于面向过程设计,其思想是:使用现实世界O概念抽象地思考问题而自然G解决问题。(重要O是应

用模型)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论