工程导论第四章第五章

第四章 形式化说明技术
按形式化程度分为三类:
非形式化,如用自然语言描述规格说明
半形式化,如用数据流图或实体-联系图建立模型
形式化,如描述系统性质是基于数学的技术
非形式化的缺点
矛盾性:在需求规格说明书中对同一问题前后存在不同的描述
二义性:读者可以用不同的方式理解的陈述
含糊性:需求规格说明书对某一问题描述不清晰,不可理解
不完整性:需求规格说明书对某一问题只说明了局部,没说明整体
抽象层次混乱:指在非常抽象的陈述中混入了关于低层次的细节陈述
形式化的优点:
能够简洁准确的描述物理现象、对象或动作的结果
在不同的软件工程活动之间平滑过渡
提供了高层确认的手段
应用形式化准则
选用适当的表示方法
应该形式化,但不要过分形式化
应该估算成本
应该有形式化顾问随时提供咨询
不应该放弃传统的开发方法
应该建立详尽的文档
不应该放弃质量标准
应该测试,测试再测试
应该重用
第五章 总体设计
设计过程:2个阶段(系统设计阶段:确定系统的具体实现方案 和 结构设计阶段:确定软件结构); 9个步骤:
设想供选择的方案
选取合理的方案
推荐最佳方案
功能分解
设计软件结构
设计数据库
制定测试计划
书写文档
审查和复审
设计原理的相关概念
模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求
抽象:抽出事物本质特性而暂时不考虑细节
逐步求精:为了能集中精力解决最主要问题而尽量推迟对问题细节的考虑。逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础
信息隐藏:应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的
局部化:是指把一些关系密切的软件元素物理地址放得彼此靠近
模块独立:是模块化、抽象、信息隐藏和局部化的概念的直接结果。独立的程度测量标准:内聚、耦合
耦合:是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合程度强烈影响着系统的可理解性、可测试性、可靠性、可维护性。设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境的耦合的范围,完全不用内容耦合。
数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据。数据耦合是低耦合
控制耦合:传递的信息中有控制信息。中等耦合,增加了系统的复杂性
特征耦合:当整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时
公共环境耦合:当两个或对个模块通过一个公共数据环境互相作用时。公共环境可以是全程变量、共享通信区、内存的公共覆盖区、任何存储介质的文件、物理设备等。
内容耦合:如果发生之一就是①一个模块访问另一个模块的内部数据,②一个模块不通过正常入口而转到另一个模块的内部,③两个模块有一部分程序代码重叠,④一个模块有多个入口
内聚:标志着一个模块内各个元素彼此之间结合的紧密程度,它是信息隐藏和局部化概念的扩展。设计原则:力求高内聚,通过提高模块间的内聚降低耦合从而使模块获得较高的独立性。高内聚意味着低耦合
低内聚
偶然内聚:如果一个模块完成一组任务,这些任务彼此之间有关系,关系也是很松散的。如在一个程序内有一组语句在两处或多处出现,于是把这些语句作为一个模块以节省内存
逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类。如一个模块产生各种类型的全部输出
时间内聚:如果一个模块包含的任务必须在同一时间内执行。如模块完成各种初始化工作
中内聚
过程内聚:如果一个模块内的处理元素是相关的,且必须以特定次序执行。如流程图确定模块的划分,得到的往往是过程内聚的模块
通信内聚:如果一个模块中所有元素都是用同一个输入数据和产生同一个输出数据
高内聚
顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,且这些处理必须顺序执行。如一个处理元素的输出数据作为下一个处理元素的输入数据,根据数据流图划分模块得到往往是顺序内聚模块
功能内聚:如果模块内的所有处理元素属于一个整体,完成单一的功能
7种内聚的优劣评分
名称 得分
功能内聚 10
顺序内聚 9
通信内聚 7
过程内聚 5
时间内聚 3
逻辑内聚 1
偶然内聚 0
启发规则
改进软件结构提高模块的独立性
模块规模应该适中
深度、宽度、扇出和扇入都应适当
模块的作用域应该在控制域内
力争降低模块接口的复杂程度
设计单入口单出口的模块
模块的功能应该可预测
描绘软件结构的图形工具(例子见P102,P103)
层次图:描绘软件的层次结构。一个矩形框代表一个模块,方框间的连线表示调用关系
HIPO图:“层次图加输入/处理/输出图”,就是在层次图的每个方框加编号
结构图:每个方框代表一个模块,框内注明模块的名字或主要功能,方框间的箭头(或直线)代表模块的调用关系,注释表示来回传递的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值