软件工程--总体设计过程包括那些步骤---软件设计过程中应该遵循那些基本原理--模块独立性

15 篇文章 0 订阅
4 篇文章 0 订阅

1典型的总体设计过程包括那些步骤?
1.设想供选择的方案
2.选取合理的方案
3.推荐最佳方案
4.功能分解
5.设计软件结构
6.设计数据库
7.制定测试计划
8.书写文档
9.审查和复审

2软件设计过程中应该遵循那些基本原理?
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程学的内容
  软件工程学的主要内容是软件开发技术和软件工程管理.
  软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。​

(1)用分阶段的生存周期计划进行严格的管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)软件工程结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。

3软件设计时,如何获得较高的模块独立性?
模块独立性
模块化设计是指将软件分解为多个独立模块,不同的模块具有不同的功能和职责。每个模块可以独立的进行开发、测试,最后组装成完整的软件。
模块独立性是指软件系统中每个模块只涉及软件要求的子功能,而与软件系统中其他模块的接口是简单的。例如如果一个模块只具有单一功能且与其他模块没有太多的联系,那么称此模块具有模块独立性。
具有高内聚低耦合的模块,才是模块独立性比较强的模块
耦合

• 耦合性是程序结构中各个模块之间相互关联的度量

• 它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口

在这里插入图片描述

非直接耦合(Nondirect Coupling)

• 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

• 非直接耦合的耦合性最低,模块独立性最强。

数据耦合 (Data Coupling)

• 一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的

标记耦合 (Stamp Coupling)

• 一组模块通过参数表传递记录信息,就是标记耦合

• 这个记录是某一数据结构的子结构,而不是简单变量

控制耦合 (Control Coupling)

• 如果一个模块通过传送开关、标志、名字等控制参数,明显地控制选择另一模块的功能,就是控制耦合

外部耦合(External Coupling)

• 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,

则称之为外部耦合

公共耦合(Common Coupling)

• 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合

内容耦合 (Content Coupling)

• 如果发生下列情形,模块之间就是内容耦合:

– 一个模块直接访问另一个模块的内部数据

– 一个模块不通过正常入口转到另一模块内部

– 两个模块有一部分程序代码重迭(只可能出现在汇编语言中)

– 一个模块有多个入口

内聚

• 模块内聚性越强,功能独立性越好,对于形成的模块结构有比较好的作用。

• 要求模块结构达到高内聚,低耦合。

高 内聚性 低

功能内聚

信息内聚

通信内聚

过程内聚

时间内聚

逻辑内聚

巧合内聚

高 功能独立性 低

功能内聚 (Functional Cohesion)

• 一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成

一项具体功能而协同工作,紧密联系,不可分割的,则称该模块为功能内聚模块

• 功能内聚模块的内聚最高,功能独立性最强

信息内聚 (Informational Cohesion)

• 完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点

通信内聚(Communication Cohesion)

• 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块

• 通常,通信内聚模块是通过数据流图来定义的

过程内聚(Procedural Cohesion)

• 使用流程图做为工具设计程序时,如果流程图太大,可以把流程图中的某一部分划出组成模块,就得到过

程内聚模块

– 例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。

时间内聚(Classical Cohesion)

• 时间内聚又称为经典内聚

• 大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行

– 例如,初始化模块和终止模块就是时间内聚模块。

逻辑内聚(Logical Cohesion)

• 这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪

一种功能。

巧合内聚(Coincidental Cohesion)

• 当几个模块内正好有一段代码是相同的,将它们抽取出来形成单独的模块,即巧合内聚模块。这种模块没

有独立功能,各部分之间没有联系,或联系很松散。

这一题答案来自https://blog.csdn.net/qq_34803572/article/details/78881824

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值