软件构造Word文件下载.docx

上传人:b****2 文档编号:14264572 上传时间:2022-10-21 格式:DOCX 页数:45 大小:1.69MB
下载 相关 举报
软件构造Word文件下载.docx_第1页
第1页 / 共45页
软件构造Word文件下载.docx_第2页
第2页 / 共45页
软件构造Word文件下载.docx_第3页
第3页 / 共45页
软件构造Word文件下载.docx_第4页
第4页 / 共45页
软件构造Word文件下载.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

软件构造Word文件下载.docx

《软件构造Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件构造Word文件下载.docx(45页珍藏版)》请在冰豆网上搜索。

软件构造Word文件下载.docx

•单元测试

•系统测试

•校正性的维护

•功能强化

5)软件构造活动主要是其中哪些部分?

6)

1.验证基础工作已经完成,可以进行创建工作;

3.设计和编写子程序与模块

4.

5.创立数据类型并命名变量

6.

7.选择控制结构并组织语句块

8.

9.找出并修正错误

10.

11.评审其它小组的细节设计和代码,同时接受其它小组评审

12.

13.通过仔细地格式化和征集意见改进编码

14.

15.对分别完成的软件单元进行综合

16.

17.调整编码使其更小、更快

18.

编码和调试,部分的详细设计和单元测试

7)软件构造的重要性

8)

⏹构造活动是开发软件的重要组成部分

⏹构造活动在开发软件中处于枢纽地位

⏹把主要精力集中于创建活动,可以极大地提高程序员的生产效率

⏹创建活动的产品,源代码,往往是软件的唯一精确描述

⏹创建活动是唯一一项必不可少的工作

9)隐喻(SoftwareMetaphors)

10)

•常见的软件隐喻(简单了解)

●软件书写:

写代码(WritingCode)

●软件播种:

生成系统(GrowingaSystem)

●软件珍珠培植法:

系统积累(SystemAccretion)

●软件创建:

建造软件(buildingsoftware)

●实用软件技术:

智能工具箱(TheIntellectualToolbox)

●复合隐喻(CombingMetaphors)

隐喻可以帮助开发人员借助类比的力量加深对编程的理解

事实上,借助隐喻加深理解是各个研究领域都常用的方法

3.软件构造的前期准备工作

1)软件构造的前期准备工作有哪些

前期准备工作并非一成不变

⏹构建活动的准备工作要根据项目特点调整

⏹具体细节随项目的不同会有很大变化

构造开始前的准备工作有哪些

⏹辨明软件项目的类型

⏹明确问题定义

⏹明确需求规约

明确软件架构的个组成部分

什么是软件构造的前期准备工作

⏹软件构造的前期准备工作是复查性的活动

❑明确前导性的工作结果有哪些

❑重新审视前导性工作是否完成

❑明确前导性工作完成的程度如何

⏹准备工作的中心目标是降低风险

❑糟糕的需求分析

❑糟糕的项目计划

根据CC2Page59核对表上的内容复习(只涉及ppt中有的内容)

1)问题定义先决条件

3)需求定义先决条件

5)软件架构先决条件

5.构造技术

1)模块化设计(简单了解相关概念)………………………………

这一部分的复习参阅CC2书上的第5章

3)模块和子程序的区别

❑子程序是具有一定功能的,可以调用的函数或过程

❑模块是指数据及作用于数据的子程序的集合,或者

❑模块也可能是指,可以提供一系列互相联系功能的子程序集合,而这些子程序之间不一定有公共的数据

5)模块化:

内聚性与耦合性(重要)

pptpage55-page73

可以参阅CC2-7章子程序内聚性的相关内容

❑耦合性(Coupling):

对一个软件结构内不同模块间互连程度的度量。

❑内聚性(Cohesion):

标志一个模块内各个处理元素彼此结合的紧密程度,理想的内聚模块只做一件事情。

模块化

⏹模块化设计的目标是使每个子程序都成为一个“黑盒子”

❑你知道进入盒子和从盒子里出来的是什么,却不知道里边发生什么

❑通过接口的定义明确其功能

⏹“模块化”同时涉及到子程序设计和模块设计

❑单独的子程序无法实现“黑盒子”的目标,因而需要模块

❑但通过对子程序的控制可以达到模块化的效果

通过对一组子程序定义统一对外的接口,也完全有可能达到高度模块化这一目标

模块化:

内聚性与耦合性

⏹模块独立程度的衡量标准

模块内聚性

⏹模块的内聚性

❑内聚性表示了在一个模块中,各种操作及数据之间互相联系的紧密程度

❑内聚性的强弱程度用“强度”表示

❑应尽量提高内聚程度

⏹强调“强内聚”的目的

❑每一个模块只需作好一项工作,而不必过分考虑其它任务

模块内聚性分类

⏹偶然内聚:

一组任务关系松散(低)

⏹逻辑内聚:

一组任务在逻辑上同属一类,例如均为输出(低)

⏹时间内聚:

一组任务必须在同一段时间内执行(低)

子程序的内聚性

⏹模块的强内聚性并不说明子程序内聚性强

⏹子程序的内聚性影响到模块的实现质量

⏹子程序内聚性分类

❑可取的内聚性

不可取的内聚性

可取的内聚性

⏹功能内聚性(最高)

⏹顺序内聚性(较高)

⏹通讯内聚性(中)

⏹临时内聚性(低)

功能内聚性:

⏹功能内聚性是最强也是最好的一种内聚

当程序执行一项并且仅仅是一项工作时,属于功能内聚

顺序内聚性

子程序内包含需要按特定顺序进行的、逐步分享数据而又不形成一个完整功能的操作

通讯内聚性

⏹在一个子程序中,两个操作只是使用相同数据,而不存在其它任何联系时产生的

临时内聚性

⏹因为同时执行的原因才被放入同一个子程序里,这时产生临时内聚性

⏹不可取的内聚性往往导致一些组织混乱而又难以调试和改进的代码

⏹应尽量避免不可取的内聚性的出现

❑过程内聚性

❑逻辑内聚性

偶然内聚性

过程内聚性

⏹当子程序中的操作是按某一特定顺序进行的,就是过程内聚性

⏹过程内聚性和顺序内聚性的区别

❑顺序内聚性中的顺序操作使用的是相同数据

❑过程内聚性中的操作使用的并不是相同数据

逻辑内聚性

⏹当一个子程序中同时含有几个操作,而其中一个操作又被传进来的控制标志所选择时,就产生了逻辑内聚性

⏹其内部操作仅仅是因为控制流,或者说“逻辑”的原因才联系到一起

⏹当同一个子程序中的操作之间无任何联系时,为偶然内聚性

⏹偶然内聚性也叫作“无内聚性”

模块耦合性

⏹模块耦合性

❑耦合性表示相互作用的模块之间的互连程度

❑应尽量降低模块之间的耦合性

⏹强调“松耦合”的目的

❑模块应被设计成可以提供一整套功能,以便程序的其它部分与它清楚地相互作用

耦合分类

⏹无任何连接:

两个模块中的每一个都能独立地工作而不需要另一个的存在(最低耦合)。

⏹数据耦合:

两个模块彼此通过参数交换信息,且交换的仅仅是数据(低耦合)。

⏹控制耦合:

两个模块之间传递的信息有控制成分(中耦合)。

⏹公共环境耦合:

两个或多个模块通过公共环境相互作用

❑一个存数据,一个取数据(低耦合)

❑都存取数据(低--中之间)

⏹内容耦合

❑一个模块访问另一个模块的内部数据

❑两个模块有一部分程序代码重叠

常见的OO耦合

⏹简单数据参数耦合

❑两个对象之间通过参数传递数据,并且为简单数据类型

⏹简单对象耦合

❑一个对象实例化另一个对象所形成的耦合关系

⏹对象参数耦合

❑两个对象之间通过对象参数传递数据

⏹语义上的耦合

信息隐蔽

⏹信息隐蔽有称为“封装”

❑使外部的可见部分和内部的不可见部分相互隔离

⏹信息封装是设计模块和子程序的一种重要方法

❑对于模块而言,封装的部分称为内部信息

公开的部分称为模块的公开信息或接口

7)结构化设计vs.面向对象设计

从模块的角度理解结构化设计和OO设计的区别

❑面向对象设计中的模块与结构化设计中模块的含义是一致的

–数据和功能的封装

–满足信息隐蔽的要求

–追求高内聚低耦合

❑结构化设计中模块和模块之间的关系,被紧紧局限于信息流(结构化设计是面向功能)

❑面向对象设计方法,充分挖掘了“关系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现

9)抽象数据类型(ADT)

了解基本概念,能够构造出简单的ADTCC2–6.1节

⏹类的基础:

抽象数据类型

❑类是一组数据和子程序构成的集合,这些数据和子程序共同拥有一组内聚的、明确定义的职责。

❑ADT是指一组数据以及对这些数据所进行的操作的集合

⏹以上两段描述有何本质区别?

❑从数据的角度来看类和ADT没有区别

❑从OO的角度来看,类还涉及到面向对象中的概念

ADT中的数据

⏹抽象数据类型中的“数据”

❑ADT中“数据”的概念很随意

❑ADT中的“数据”可以指任意类(Class)所能描述的实体

需要用到ADT的例子:

文本编辑程序中对字体控制的部分

11)ADT与类的区别

12)

体会ADT和类在概念上有什么区别。

(主要根据ppt上的介绍)

给你一个ADT,构造出相应的类(Java或C++)?

?

体会ADT与类的区别

⏹使用ADT的益处

❑可以隐藏实现细节

❑改动不会影响到整个程序

❑让接口提供更多信息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1