其他分享
首页 > 其他分享> > 总体设计

总体设计

作者:互联网

学号:182017025      姓名:谢泽浩 

一、实验目的

1、 理解软件设计的目的与步骤。

2、 掌握设计软件结构时应该遵循的原理,比如:耦合,内聚;理解软件设计时的启发性规则。

3、 各团队成员能够将设计原理与启发性规则在软件系统(以后简称:综合项目)的设计过程中进行充分的利用,并输出《软件系统设计说明书》。

二、任务描述

1、关于耦合,请用5个具体的例子说明:

1)       什么是数据耦合?

2)       什么是控制耦合?

3)       什么是特征耦合?

4)       什么是公共环境耦合?

5)       什么是内容耦合?

2、关于内聚,请用3个具体的例子说明:

1)       什么是功能内聚?

2)       什么是通信内聚?

3)       什么是偶然内聚?

三、任务解答

3.1数据耦合
数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;

public class Main {
       public static void main(String[] args) {
              Dog d = new Dog("旺财");//调用形参
       }
}
class Dog {
       private String name;
       public Dog(String name) {
              this.name = name;
       }
}


3.2控制耦合
控制耦合: 指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能;

public class Main {
       public static void main(String[] args) {
boolean insertFlag;//传递参数
              update(insertFlag);
       }
}

public
static void update(boolean insertFlag) {
              if (insertFlag) {
                     System.out.println(“helloworld”)!
              } else {
                     
              }
       }

3.3特征耦合
特征耦合: 指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;

public class Main {
       private static void 特征耦合(Dog d) {
              System.out.println(d.getName());
       }
       private static void 非特征耦合(String name) {
              System.out.println(name);
       }
       public static void main(String[] args) {
              Dog d = new Dog("旺财");
              特征耦合(d);
              非特征耦合(d.getName());
       }
}
class Dog {
       private String name;
       public Dog(String name) {
              this.name = name;
       }
       public String getName() {
              return name;
       }
       public void setName(String name) {
              this.name = name;
       }
}

3.4公共环境耦合
公共耦合: 指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。

public class Main { 
        public static int id;//全局变量
       private static void 公共环境耦合(Dog d) {
               this.id=id;
              System.out.println(d.id());
       }
       public static void main(String[] args) {
              Dog d = new Dog(1);
              公共环境耦合(i);
       }
}

 

3.5内容耦合
内容耦合: 这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。

public class Main {
       public static void main(String[] args) {
              Dog d = new Dog("旺财");
              System.out.println(d.name);//内容耦合
       }
}
class Dog {
       public String name;
       public Dog(String name) {
              this.name = name;
       }
}

3.6功能内聚:如果模块进行许多操作,每个都有各自的入口点,每个操作的代码相对独立,而且所有的操作都对相同的数据结构完成。

User的控制类调用两个业务方法,两个业务方法彼此独立,最终要实现扣费的方法,且两个事务存在互相依赖
Class userControler = {
       Public void Account(String bookName,double price){ 
             getCount(price);
             ………
             reduceBook(bookName); 
}

3.7通信内聚:模块内各功能部分使用了相同的输入数据或产生相同的输出数据。

这个类需要调用两个方法,他们都要输入一个形参来处理业务逻辑
Class userDAO = {
        Int i=0;
       getUserById(id){ …… },
       deleteById(id){ …… }
}

 

 

3.8偶然内聚:模块内各部分之间没有联系,或即使有联系,也很松散,是内聚程序最低的模块

这个方法需要输出”你好,狗子”,但方法里面做了两件事情,与方法的需要没有关联,它们之间也没有关联,与方法主题不符,即为偶然内聚。
void Hello (){
       System.out.println(“你好,狗子”);
       Int i=100;
}

标签:String,void,Dog,总体设计,耦合,public,name
来源: https://www.cnblogs.com/blogxzh/p/13850400.html