May 21, 2018 - cohesion_(procedural cohesion)

응집도 (cohesion)

실행순서 응집도 (sequential)

한 부분의 출력이 조립 라인과 같은 다른 부분의 입력 (예 : 파일에서 데이터를 읽고 데이터를 처리하는 기능)이기 때문에 모듈의 일부가 그룹화되는 경우입니다. 일반적으로 커플 링이 좋으며 쉽게 유지 관리됩니다. 일반적으로 유용하지 않은 활동 때문에 쉽게 재사용 할 수 없습니다.

위에 내용은 절차적에서 설명했던부분에 예제로 아래 의 예제의 처음 두줄에 관한 내용입니다.

isLogin()과 duplicationLogin() 그리고 newLogin()의 응집은 실행순서 응집입니다.


    public void login()  {
		
        if(isLogin()) duplicationLogin();
        else{ 
            User user = newLogin();
            // 여기 아래 두줄이 절차적 응집
            userCookie(user);
            userData(user);
        }
	}


May 21, 2018 - cohesion_(procedural cohesion)

응집도 (cohesion)

통신(?) 대화(?)응집도 (commincation/informational)

통신 응집력이란 모듈의 일부가 동일한 데이터 (예 : 동일한 정보 기록에서 작동하는 모듈)에서 작동하기 때문에 그룹화 된 부분입니

예제는 java Deque 클래스를 들겠다.

여기서 OOP 냄새가 나기 시작함


package java.util;

public interface Deque<E> extends Queue<E> {
    
    void addFirst(E e);

    void addLast(E e);

    boolean offerFirst(E e);

    boolean offerLast(E e);

  
    E removeFirst();

   
    E removeLast();

   
    E pollFirst();

   
    E pollLast();

   
    E getFirst();

   
    E getLast();

    E peekFirst();

 
    E peekLast();

   
    boolean removeFirstOccurrence(Object o);

  
    boolean removeLastOccurrence(Object o);

  
    boolean add(E e);

  
    boolean offer(E e);

  
    E remove();

   
    E poll();

   
    E element();
    
    E peek();

    void push(E e);

    E pop();


    boolean remove(Object o);

  
    boolean contains(Object o);

    public int size();
   
    Iterator<E> iterator();

    Iterator<E> descendingIterator();

}


May 21, 2018 - cohesion_(procedural cohesion)

응집도 (cohesion)

절차적 응집도 (procedural)

절차 적 응집은 모듈의 일부가 특정 실행 순서 (예 : 파일 사용 권한을 확인한 다음 파일을 여는 기능)를 따르기 때문에 그룹화되는 경우입니다.



    public void login()  {
		
        if(isLogin()) duplicationLogin();
        else{ 
            User user = newLogin();
            // 여기 아래 두줄이 절차적 응집
            userCookie(user);
            userData(user);
        }
	}