软件工程论第五版复习重点_第1页
软件工程论第五版复习重点_第2页
软件工程论第五版复习重点_第3页
软件工程论第五版复习重点_第4页
软件工程论第五版复习重点_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、1 软件工程学概述2 可行性研究3 需求分析4 形式化说明技术5 总体设计6 详细设计7 实现8 维护9 面向对象相关内容10 软件项目管理第第1 1章章 软件工程学概述软件工程学概述1 1、什么是软件危机?、什么是软件危机?p1p12 2、软件危机产生的原因有哪些?、软件危机产生的原因有哪些?p3p33 3、什么是软件工程?、什么是软件工程?p5p54 4、软件工程方法学包含哪些要素?、软件工程方法学包含哪些要素?p9p95 5、在软件过程中有哪些模型?他们各自的特点、在软件过程中有哪些模型?他们各自的特点是哪些?是哪些?p15p15p22p22第第2 2章章 可行性研究可行性研究1 1、可

2、行性研究的目的是什么?p252、应从哪些方面研究可行性?p253、如何画系统流程图?p27p304、如何画数据流图?p30p375、了解数据字典及成本效益分析。数据流图数据流图(data flow diagramdata flow diagram,dfddfd)是描述系统中数据流)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。及把逻辑输入转换为逻辑输出所需的加工处理。2.42.4数据流图数据流图数据存储数据存储数据源点数据源点或终点或终点处处 理理加工名数据流数据流数据流名

3、文件名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框还有一些辅助的图例还有一些辅助的图例: :一、数据流图的图符一、数据流图的图符四种基本图形符号:四种基本图形符号:tab*ctab*ctab+ctab+ctabc+tabc+* 与与 + 或或互斥+2.42.4数据流图数据流图举例:举例:储户储户1记录存款信息打印存款信息存款单存款信息存款存单3计算利息4打印利息清单存款信息利息值利息清单d1存款信息存款信息2第第3 3章章 需求分析需求分析1 1、需求分析的基本任务是什么?、需求分析的基本任务是什么?p46-p48p46-p482 2、分析建模、分析建模 2.1什么是模型?什么

4、是模型? 模型:就是为了理解事物而对事物做出的一种模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。符号和组织这些符号的规则组成。 2.22.2数据模型(数据模型(e-re-r)、)、 功能模型(功能模型(2.42.4节数据流图)、节数据流图)、 行为模型行为模型(状态转换图是行为模型的基础)(状态转换图是行为模型的基础)3 3、要从哪些方面验证软件需求?、要从哪些方面验证软件需求?p60p60第第4 4章章 形式化说明技术形式化说明技术软件工软件工程的使程的

5、使用方法用方法非形式化:用自然语言描述需求规格说明非形式化:用自然语言描述需求规格说明半形式化:用数据流图或实体半形式化:用数据流图或实体联系图联系图建立模型建立模型形式化:描述系统性质的基于数学的技术形式化:描述系统性质的基于数学的技术1、有穷状态机p67p722、petri网技术p72p751、在设计过程中,总体设计一般有哪两个主要阶段组成?p812、什么模块化?模块独立性包含哪些内容?度量准则是什么?p85p893、启发规则有哪些?p90p924、描绘软件结构的图形工具p92-p945、面向数据流的设计方法p95p1025.25.2设计原理设计原理u 模块是程序对象有名字的集合例如,过程

6、、函数、子程序、宏等,是构成软件系统结构的基本元素。u 模块化就是将系统划分为若干个模块,每个模块完成一个子功能模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。5.2.55.2.5模块独立模块独立 “模块模块”,又称,又称“构件构件”,一般指用一个名字可调用的一段程,一般指用一个名字可调用的一段程序。它一般具有如下序。它一般具有如下三个基本属性三个基本属性:功能功能 即指该模块实现什么功能,做什么事情。必须注意:模块即指该模块实现什么功能,做什么事情。必须注意:模块功能,应是该模块本身的功能加上它所调用

7、的所有子模块的功能。功能,应是该模块本身的功能加上它所调用的所有子模块的功能。逻辑逻辑 即描述模块内部怎么做。即描述模块内部怎么做。状态状态 即该模块使用时的环境和条件。即该模块使用时的环境和条件。所谓模块的独立性,所谓模块的独立性,是指软件系统中每个模块只涉及软件要是指软件系统中每个模块只涉及软件要求的具体的子功能求的具体的子功能,而,而和软件系统中其他模块的接口是简单的和软件系统中其他模块的接口是简单的。即功能专一即功能专一,模块之间无过多的相互作用的模块模块之间无过多的相互作用的模块。这种类型的模块可以并行开发,模块独立性越强,开发越容这种类型的模块可以并行开发,模块独立性越强,开发越容

8、易。独立性强的模块,还能减少错误的影响,使模块容易组合、易。独立性强的模块,还能减少错误的影响,使模块容易组合、修改及测试。修改及测试。5.2.5 5.2.5 模块独立性模块独立性模块独立性的度量标准是两个定性准则模块独立性的度量标准是两个定性准则: 用于描述模块之间联系的紧密程度。用于描述模块之间联系的紧密程度。 用于描述模块内部联系的紧密程度。用于描述模块内部联系的紧密程度。 模块独立性比较强的模块应该是具有高内聚性和的低耦模块独立性比较强的模块应该是具有高内聚性和的低耦合度。合度。 变换中心变换输入输出图图5.8 变换型数据流图的基本模型变换型数据流图的基本模型 图 事务型数据流图的基本

9、模型事务中心输入流接收路径加工路径l变换分析设计:把具有变换流特点的数据流图按预先确定的模变换分析设计:把具有变换流特点的数据流图按预先确定的模式映射成软件结构式映射成软件结构。不具有显著的事务特点不具有显著的事务特点。l虽然在任何情况下都可以使用变换分析方法设计软件结构,但虽然在任何情况下都可以使用变换分析方法设计软件结构,但是在是在数据流具有明显的事务特点数据流具有明显的事务特点时,也就是有一个明显的时,也就是有一个明显的“发发射中心射中心”(事务中心事务中心)时,还是以采用事务分析方法为宜。时,还是以采用事务分析方法为宜。l两者的主要差别仅在于由数据流图到软件结构的映射方法不同。两者的主

10、要差别仅在于由数据流图到软件结构的映射方法不同。第第6 6章章 详细设计详细设计1 1、结构程序设计中有哪几种基本控制结构?、结构程序设计中有哪几种基本控制结构?p108p1082 2、了解人机界面的设计。、了解人机界面的设计。3 3、掌握过程设计的工具(程序流程图、盒图、掌握过程设计的工具(程序流程图、盒图、padpad图,图,判定树)判定树)p114p119p114p1194 4、面向数据结构的设计方法(、面向数据结构的设计方法(jacksonjackson图)图)5 5、程序复杂度的定量度量(、程序复杂度的定量度量(mccabemccabe)6.16.1结构程序设计结构程序设计图图6.1

11、 3种基本的控制结构种基本的控制结构6.16.1结构程序设计结构程序设计图图6.2 其他常用的控制结构其他常用的控制结构6.3.1 6.3.1 程序流程图程序流程图 程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号如图6.3所示。图图6.3 程序流程图中使用的符号程序流程图中使用的符号uns图又称为盒图,它是为了保证结构化程序设计而由nassi和shneiderman共同提出的一种图形工具。u在ns图中,所有的程序结构均使用矩形框表示,它可以清晰地表达结构中的嵌套及模块的层次关系。uns图中,基本控制结构的表示符号

12、如图6.4所示。6.3.2 n-s6.3.2 n-s图图6.3.2 n-s6.3.2 n-s图图图图6.4 盒图的基本符号盒图的基本符号图图6.5 pad6.5 pad中基本符号中基本符号(a)(a)顺序结构;顺序结构;(b) (b) 分支结构;分支结构;(c) (c) 多分支多分支casecase结构;结构;(d) (d) 当型循环;当型循环;(e)(e);直到型循环;直到型循环;(f) (f) 语句标号;(语句标号;(g g)定义)定义6.3.3 pad6.3.3 pad图图6.3.3 pad6.3.3 pad图图图图6.6 使用使用pad图提供的定义功能来逐步求精的例子图提供的定义功能来

13、逐步求精的例子6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法 jackson方法和方法和warnier方法是最著名的两个面方法是最著名的两个面向数据结构的设计方法向数据结构的设计方法ujackson方法是由英国的m.a.jackson在1975年首先提出的,他同时还提出了与这种方法配套使用的、用于描述系统数据结构和程序结构的图形工具,被称为jackson图。ujackson方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。u这一方法对输入、输出数据结构明确的中、小型系统特别有效,如商业应用中的文件、表格处理。该方法也可与其他方法结

14、合,用于模块的详细设计。6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法图6.8 三种基本结构在jackson图中的表示符号(a) 顺序结构;(b) 选择结构;(c);循环结构6.4.1 jackson6.4.1 jackson图图(a)(c)(b)6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法图图6.9 改进的改进的jackson图图6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量 定量度量程序复杂程度的方法很有价值:把程序的定量度量程序复杂程度的方法很有价值:把程序的复杂程度复杂程度乘以乘以适当常数适当常数即可即可估算出软件中错误的数量估算出软件中错误

15、的数量以以及及软件开发需要用的工作量软件开发需要用的工作量,定量度量的结果可以用来,定量度量的结果可以用来比较两个不同的设计比较两个不同的设计或或两个不同算法的优劣两个不同算法的优劣;程序的定;程序的定量的复杂程度可以作为模块规模的精确限度。量的复杂程度可以作为模块规模的精确限度。6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量u mccabe方法根据程序控制流的复杂程度定量度量程方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂序的复杂程度,这样度量出的结果称为程序的环形复杂度。度。u 为了突出表示程序的控制流,人们通常使用流图为了突出表示程序

16、的控制流,人们通常使用流图(也称也称为程序图为程序图)。所谓流图实质上是。所谓流图实质上是“退化了的退化了的”程序流程图,程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。操作以及分支或循环的具体条件。6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量图图6.16 把程序流程图影射成流图把程序流程图影射成流图6.5.1 6.5.1 计算环形复杂度的方法计算环形复杂度的方法第第7 7章章 实现实现1、编码2、测试技术p139p1693、调试的途径有哪些?p1684、软件可靠性和可用性的基本概念p16

17、9u 编码:把软件设计结果翻译成用某种程序语言书写的程序。u 测试:软件测试的目的是在软件投入生产性运行前,尽可能多的发现软件中的错误。 实现实现编码和测试编码和测试7.27.2软件测试基础软件测试基础u 软件测试:为发现程序中的错误而执行程序的过程。软件测试:为发现程序中的错误而执行程序的过程。u 软件测试的准则(尽早和不断的测试、彻底测试的不软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码

18、、追溯至用户需求)检查自己的代码、追溯至用户需求)u 测试方法(黑盒测试和白盒测试)测试方法(黑盒测试和白盒测试)u 测试步骤(模块测试、子系统测试、系统测试、验收测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)测试、平行运行)模块模块模块接口测试模块接口测试局部数据结构测试局部数据结构测试重要路径测试重要路径测试错误处理测试错误处理测试边界条件测试边界条件测试i/o i/o 参数值的个数、类参数值的个数、类型、次序、格式是否正型、次序、格式是否正确,确,i/oi/o文件属性、操作文件属性、操作是否正确等。是否正确等。数据说明是否正确、数据说明是否正确、一致,变量及其初一致,变量

19、及其初值定义是否正确等。值定义是否正确等。检查检查“错误处错误处理程序理程序”本身本身的错误。的错误。边界条件常包括循环边边界条件常包括循环边界,最大最小值、控制界,最大最小值、控制流中等于、大于、小于流中等于、大于、小于的比较值等。的比较值等。重要重要路径通常是指完成路径通常是指完成模块功能的主要路径,模块功能的主要路径,一般是控制结构。一般是控制结构。也称模块测试(也称模块测试(modulemodule testing testing ) )7.3.1 7.3.1 单元测试重点单元测试重点语语句句覆覆盖盖判判定定覆覆盖盖条条件件覆覆盖盖判判定定条条件件覆覆盖盖条条件件组组合合覆覆盖盖弱弱强

20、强7.6 7.6 白盒测试技术白盒测试技术 语句覆盖语句覆盖: 选择足够的测试用例,使得程序中每个语选择足够的测试用例,使得程序中每个语句至少都能被执行一次。句至少都能被执行一次。 判定覆盖判定覆盖: 执行足够的测试用例,使得程序中每个判执行足够的测试用例,使得程序中每个判定至少都获得一次定至少都获得一次“真真”值和值和“假假”值。值。 条件覆盖条件覆盖:执行足够的测试用例,使得判定中的每个:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。条件获得各种可能的结果。 判定判定/ /条件覆盖条件覆盖: 执行足够的测试用例,使得判定中执行足够的测试用例,使得判定中每个条件取到各种可能的值

21、,并使每个判定取到各种可能每个条件取到各种可能的值,并使每个判定取到各种可能的结果。的结果。 条件组合覆盖条件组合覆盖: 执行足够的例子,使得每个判定中条执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。件的各种可能组合都至少出现一次。白盒法白盒法常用的覆盖标准常用的覆盖标准等等价价分分类类法法边边值值分分析析法法错错误误推推测测法法黑盒法黑盒法 不考虑程序的内部结构与特性,不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性只根据程序功能或程序的外部特性设计测试用例。设计测试用例。7.7 7.7 黑盒测试技术黑盒测试技术l 调试调试(也称为纠错)作为成功测试的后果出现,也

22、就是说,(也称为纠错)作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。调试是在测试发现错误之后排除错误的过程。l 调试过程调试过程如下图所示:如下图所示:7.8 7.8 调试调试7.8 7.8 调试途径调试途径l 软件可靠性的定义:软件可靠性的定义:对于软件可靠性有许多不同的定义,对于软件可靠性有许多不同的定义,其中多数人承认的一个定义是:其中多数人承认的一个定义是:软件可靠性是程序在给定软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率的时间间隔内,按照规格说明书的规定成功地运行的概率l 软件可用性的一个定义:软件可用性的一个定义: 软件可用性

23、是程序在软件可用性是程序在给定的时给定的时间点间点,按照规格说明书的规定,成功地运行的概率。,按照规格说明书的规定,成功地运行的概率。7.9 7.9 调试调试1、软件维护的定义p1792、了解软件维护的特点3、软件维护过程中维护组织包括哪些人员?p1828.4 决定软件的可维护性的因素有哪些?p185p1868.5 软件再工程过程8.18.1软件维护的定义软件维护的定义l 软件维护软件维护是指软件系统交付使用以后,为了改正错误或满足是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。按照不同的维护目的,维护工作新的需求而修改软件的过程。按照不同的维护目的,维护工作可分成可分成

24、4类。类。u完善性维护完善性维护(perfective maintenance):扩充原有系统的):扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要。功能,提高原有系统的性能,满足用户的实际需要。u纠错性维护纠错性维护(corrective maintenance):对在测试阶段未):对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。试、诊断、定位、纠错以及验证、修改的回归测试过程。u适应性维护适应性维护(adaptive maintenance):): 要使运行的软件要

25、使运行的软件能适应运行环境的变动而修改软件的过程。能适应运行环境的变动而修改软件的过程。u预防性维护预防性维护(preventive maintenance):为了进一步改善):为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。(基础而对软件进行修改。(8.5节)节)8.38.3软件维护过程软件维护过程图图8.1 维护组织维护组织8.48.4软件的可维护性软件的可维护性l软件的可维护性定性地定义为: 维护人员理解、改正、改动或改进这个软件的难易程度。l重用:同一事物不做修改或稍加改动就在不同环境中多次重复使用

26、。l提高可维护性是支配软件工程方法学所有步骤的关键目标。1、面向对象方法学概述p193p2002、面向对象建模(涵盖第9章和第10章)3、面向对象分析的基本过程4、面向对象的设计准则9.1 概述l 面向对象方法学的面向对象方法学的出发点和基本原则出发点和基本原则,是,是尽可能模拟人类习尽可能模拟人类习惯的思维方式,惯的思维方式,使开发软件的方法与过程使开发软件的方法与过程尽可能接近人类认识尽可能接近人类认识世界解决问题的方法与过程世界解决问题的方法与过程,也就是使描述问题的问题空间,也就是使描述问题的问题空间(也也称为问题域称为问题域)与实现解法的解空间与实现解法的解空间(也称为求解域也称为求

27、解域)在结构上尽可在结构上尽可能一致。能一致。u认为客观世界是由各种对象组成的,任何事物都是对象,认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。复杂的对象可以由比较简单的对象以某种方式组合而成。u把所有对象都划分成各种对象类把所有对象都划分成各种对象类(简称为类,简称为类,class),每个,每个对象类都定义了一组数据和一组方法。对象类都定义了一组数据和一组方法。u按照子类按照子类(或称为派生类或称为派生类)与父类与父类(或称为基类或称为基类)的关系,把的关系,把若干个对象类组成一个层次结构的系统若干个对象类组成一个层次结构的系统(也称为类

28、等级也称为类等级)。u对象彼此之间仅能通过传递消息互相联系。对象彼此之间仅能通过传递消息互相联系。类类又称又称对象类对象类一组具有相同属性和一组具有相同属性和相同操作的对象的集合相同操作的对象的集合。在一个类中,每个对象都是类的在一个类中,每个对象都是类的实例实例(instance) ,它们都可以使用类中提供的函数。,它们都可以使用类中提供的函数。类具有属性类具有属性,用数据结构来描述类的属性,用数据结构来描述类的属性,类具有操作,类具有操作,它 是 对 象 的 行 为 的 抽 象 , 操 作 实 现 的 过 程 称 为 方 法它 是 对 象 的 行 为 的 抽 象 , 操 作 实 现 的 过

29、 程 称 为 方 法(method) ,方法有方法名,方法体和参数。,方法有方法名,方法体和参数。 由于对象是类的由于对象是类的实例实例,在进行分析和设计时,通常把注,在进行分析和设计时,通常把注意力集中在类上,而不是具体的对象上意力集中在类上,而不是具体的对象上。 实例:实例:实际上类是建立对象时使用的实际上类是建立对象时使用的“样板样板”,按照,按照这个样板所建立的一个个具体的对象,就是类的实际例子,这个样板所建立的一个个具体的对象,就是类的实际例子,通常称为通常称为实例实例。当使用。当使用“对象对象”这个术语时,既可以指一这个术语时,既可以指一个具体的对象,也可以泛指一般的对象,但是,当

30、使用个具体的对象,也可以泛指一般的对象,但是,当使用“实例实例”这个术语时,必然是指一个具体的对象。这个术语时,必然是指一个具体的对象。几何对象几何对象颜色颜色位置位置移动(移动(delta:矢量):矢量)选择(选择(p:指针型)指针型):布尔型布尔型旋转旋转(角度角度)人人姓姓 名名:字符串字符串年年 龄龄: 整整 型型改换工作改换工作改换地址改换地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)里斯里斯28绘图员绘图员人民路人民路8号号(人人)张山张山24程序员程序员无无类名类名属性属性运算运算 对象图对象图 类图类图 互相联系、协同工互相联系、协同工作等作等

31、对象之间的联系可表示为对象间的消息传递,即对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。对象间的通讯机制。 一个消息应该包含以下信息:消息名、接收消息对象一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识的标识、服务标识 、消息和方法、输入信息、回答信息。、消息和方法、输入信息、回答信息。在对象的操作中当一个消息发送给某个对象时,消息在对象的操作中当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的消息。包含接收对象去执行某种操作的消息。属性:姓名属性:姓名 年龄年龄 单位单位 职称职称 工资工资状态:李立状态:李立 25 计算机系计算机系 讲师讲师 900属

32、性:调工资属性:调工资 评职称评职称 受受 聘聘方法:调工资方法:调工资 (计算公式)(计算公式) 评职称评职称 (步骤、条件)(步骤、条件)属性:调工资属性:调工资 评职称评职称 受受 聘聘李立,调工资(李立,调工资( )数数据据结结构构数数据据值值人事处向对象发消息人事处向对象发消息执行执行的的操作操作方方法法体体类:教师类:教师对象:李立对象:李立抽象抽象实例实例抽象抽象实例实例抽象抽象方法名(参数)方法名(参数)图9.7 对象、类和消息传递l 方法:方法:就是对象所能执行的操作,也就是类中所定义的就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方

33、法。服务。方法描述了对象执行操作的算法,响应消息的方法。在在c+语言中把方法称为成员函数。语言中把方法称为成员函数。l 属性:属性:就是类中所定义的数据,它是对客观世界实体所就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。具有的性质的抽象。类的每个实例都有自己特有的属性值。在在c+语言中把属性称为数据成员。语言中把属性称为数据成员。 继承是使用现存的定义作为基础,建立新定义的技术。继承是使用现存的定义作为基础,建立新定义的技术。是是父类和子类之间共享数据结构和方法的机制,这是类之间的一父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。在

34、定义和实现一个类的时候,可以在一个已经存在的种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容做为自类的基础上来进行,把这个已经存在的类所定义的内容做为自己的内容,并加入若干新内容。己的内容,并加入若干新内容。 继承性分:继承性分: 单重继承:一个子类只有一个父类。即单重继承:一个子类只有一个父类。即子类只继承一个父类子类只继承一个父类 的数据结构和方法。的数据结构和方法。 多重继承:一个子类可有多个父类。继承多个多重继承:一个子类可有多个父类。继承多个父类的数据结父类的数据结 构和方法。构和方法。基类基类子类子类a子类子类b图 9.9 继承

35、性描述现存类定义现存类定义父类父类( (基类基类) )新类定义新类定义子类子类( (派生类派生类) )继继 承承图 9.8 继承性图图9.8 实现继承机制的原理实现继承机制的原理功能模型指明了系统应功能模型指明了系统应该该“做什么做什么”;动态模型明确规定了什么时候;动态模型明确规定了什么时候(即在何种状即在何种状态下接受了什么事件的触发态下接受了什么事件的触发)做;对象模型则定义了做事情做;对象模型则定义了做事情的实体。的实体。对象模型是最基本最重要对象模型是最基本最重要3 3种模型之间的关系种模型之间的关系 (1) 面向对象分析的三个模型u 面向对象建模是面向对象分析的关键。u 面向对象的

36、模型包括:对象模型、动态模型和功能模型。对对象模型象模型描述了系统的静态结构;动态模型动态模型描述了系统的互交次序;功能模型功能模型描述了系统的数据变换。不同的问题,三个子模型的侧重程度不同,但是,对象模型是最基础的、最核心的、对象模型是最基础的、最核心的、最重要的最重要的。u 无论解决什么问题,首先要在问题域中提取和定义出对象模型。当问题涉及用户界与过程控制问题涉及用户界与过程控制时,动态模型是重点动态模型是重点。如果问题涉及大量数据变换问题涉及大量数据变换,则功能模型非常重要功能模型非常重要。对象模型中的操作(服务)可以出现在动态模型和功能模型内。面向对象分析的基本过程9.3 39.3 3

37、个子模型与个子模型与5 5个层次个层次 (2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成:主题层、类与对象层、结构层、属性层和服务层,见图9.2。 主题层 subject level类-对象层object结构层 structure属性层 attribute服务层 serves图图 对象模型的五个层次对象模型的五个层次3个子模型和5个层次1.1. 模块化模块化2.2. 抽象抽象3.3. 信息隐藏信息隐藏4.4. 弱耦合弱耦合5.5. 强内聚强内聚6.6. 可重用可重用 面向对象设计的准则面向对象设计的准则面向对象设计的准则面向对象设计的准则软件重用软件重用第第1010章章 软件项目

38、管理软件项目管理1、了解如何估算软件规模,如何进行工作量的估算?2、制定进度计划的工具有哪些?p302p3093、了解人员如何组织? 4、软件质量的保证措施有哪些?p316p3175、软件配置管理p319p3216、能力成熟度模型分为哪几级?p322p324 13.313.3进度计划进度计划软件开发进度计划安排是一件困难的任务,既要考虑各个子任务之间软件开发进度计划安排是一件困难的任务,既要考虑各个子任务之间的相互联系,尽可能并行地安排任务,又要预见潜在的问题,提供意外事的相互联系,尽可能并行地安排任务,又要预见潜在的问题,提供意外事件的处理意见。件的处理意见。 描述计划进度的主要工具有:一般的表格工具、甘特图、描述计划进度的主要工具有:一般的表格工

温馨提示

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

评论

0/150

提交评论