모듈 

: 독립된 1개의 SW,HD단위, 재사용/ 통합/ 단독 컴파일 가능

독립성 유지보수 용이성 ,응집도 (모듈내부 요소사이의 연관도) 

 
모듈크기, 결합도 (외부모듈과 연관도)

 - 응집도           (우논시 절교 순기응)

(낮음)

1. 우연적 : 서로 어떠한 연관관계가 없는 기능요소로 구성, 다른 상위모듈에 의해 호출되어 서로 다른기능 수행

2. 논리적 : 논리적으로 유사한 기능수행 but, 서로 관계는 밀접하지 않음

3. 시간적 : 특정시간에 실행되는 기능을 모아 작성

4. 절차적 : 반드시 특정 순서대로 수행

5. 교환적 : 요소들이 동일한 입출력 자료로 서로 다른기능을 수행

6. 순차적 : 한 요소의 출력data가 다음요소의 입력data로 사용

7. 기능적 : 모든 요소들이 단일 기능을 수행

(높음)

 - 결합도           (자스제외 공내)

(낮음)

1. 자료data (파라미터 통해 공유하는 경우)

2. 스탬프 (데이터구조 공유, 서로 다른 일부만 사용)

3. 제어 (다른 모듈로 정보를 넘기고 다른 모듈의 흐름을 제어하는 경우)

4. 외부

5. 공통(두 모듈이 같은 전역변수를 공유하는 경우)

6. 내용 

(높음)

 모듈화  : 기능단위 모듈로 분해하여 설계구현 기법,  Subroutine/function 등으로 표현
  : 지능적 관리에 도움, 복잡도 해결, 유지보수/ 수정 용이

 단위모듈 

: 한가지 동작(단위기능)을 모듈로 구현, 독립적 컴파일, 다른모듈에 호출,삽입가능

: 사용자나 다른모듈로부터 값을 전달받아 시작되는 작은 프로그램

> 구성요소 : 처리문, 명령문, 데이터구조

> 구현순서 : 단위기능 명세작성→ 입출력 구현기능→ 알고리즘 구현기능 (CLI와 GUI연동고려)

 공통모듈 

: 추상화, 성능향상, 공통 컴포넌트(자주 사용하는 기능) 구현기법, 재사용성/ 유지보수성↑

> 재사용 범위 :  컴포넌트, 객체, Application, Function

> 명세작성 기법 : 명확성/ 완전성/ 추적성/ 정확성(필요성을 알 수 있도록)/ 일관성(공통기능간 상호충돌되지 않도록)

   > 컴포넌트 명세서 :  컴포넌트 개요, 내부클래스 동작,인터페이스 통해 외부와 통신하는 명세 정의

   > 인터페이스 명세서 : 인터페이스 클래스의 세부조건/ 기능 정의

> Fan-in : 모듈을 제어하는 모듈의 수 (상위모듈 수) 

> Fan-out : 모듈에 의해 제어되는 모듈의 수 (하위모듈 수)

 

 효과적 모듈 설계방안 

: 결합도는 낮게 응집도는 높게 (독립성과 재사용성 향상)

: 복잡도와 중복성 낮게 (일관성 유지)

: 단일 입,출구/ 기능과 구조 이해하기 쉬운 크기로 분해

 

 개체란? 

: 하나의 정보단위로 속성attribute가 모여 하나의 정보단위를 이룬 것

: 개체들 사이의 연관성 = 관계

 

 객체란? 

: 실세계에 존재하거나 생각할 수 있는 것, 식별가능한 이름, 상호연관성에 의한 관계가 형성됨

: 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈, 반응가능한 메시지(행위)의 집합

   →속성, 상태(조건), 변수, 상수 자료구조  →객체상태 참조, 수단: 메소드, 서비스, 동작, 연산

: 클래스Class의 인스턴스Instance

 

 인스턴스란? 

: 객체를 실체화 한 것, 클래스에 속한 각 객체

 

 클래스란? 

: 공통된 속성attribute과 변수, 메서드, 연산을 갖는 객체들의 집합, 데이터를 추상화하는 단위

: 객체를 생성하기 위한 설계도/ 틀

 

 객체지향 

: 개체entity를 객체로 조립하여 작성할 수 있는 기법, 비절차적 언어

: 재사용/ 확장/ 유지보수가 용이함, 단계적/계층적표현으로 복잡한구조

> 구성 : 객체, 인스턴스, 클래스

> 설계원칙

> 설계절차 : 문제정의→ 요구 명세화→ 객체 연산자 정의→ 객체 인터페이스 결정→ 객체 구현

 

 객체지향 기법 

: 객체-속성/ 클래스-멤버 / 전체-부분(집단화) 으로 나누어 분석

            집단화  : 부분과 전체, 부분과 부분의 관계로 설명되는 연관성 

> 분석 방법론

Coad-Yourdon : 개체-관계모델 E-R다이어그램을 사용하여 객체의 행위를 데이터 모델링에 초점을 둔 방법
럼바우 : 데이터와 행위를 하나로 묶어 객체를 정의하여 추상화 시키는 방법
: 코드를 재사용하여 생산성 향상과 시스템 변경용이
분석활동
(객 동 기)
정보 - 객체모델링
 : 객체 다이어그램, 시스템에서 요구하는 객체 찾기, 가장중요, 객체 관계를 규정하여 표시함
상태 - 동적모델링
 : 상태다이어그램(상태도), 시간의 흐름에따라 동적인 행위를 표현함
흐름 - 기능모델링
 : 자료흐름도 DFD, 처리과정을 표현, 구조적분석
 > 구성요소 : 프로세스(○), 자료흐름(→), 저장소(-), 단말(□)
 > 기능모형설계 순서 : 입출력결정→ DFD작성→ 기능기술→ 제약사항 결정/최소화
 > 지침사항 : 프로세스 거쳐 변환시 새 이름을 부여함
 **프로세스가 출력자료 산출시 반드시 입력자료를 발생해야 함, 상위단계Process는 하위DFD의 자료흐름
Booch  : 미시적- 거시적 객체지향 방법

 

 정보은닉 

: 다른 모듈 구현에 영향받지 않게 설계, 모듈간 독립성 유지, 객체 속성/ 오퍼레이션의 일부를 감추어 외부접근 방지

: 대상 - 기본정보(IP,주소)같은 물리적 코드와 상세데이터 구조

 

 캡슐화 

: 중요 데이터를 보존/보호, 인터페이스만 밖으로 드러내며 그외 세부내용은 정보은닉 →외부모듈의 변경에 의한 영향 적음

: 외부에서 특정 메소드, 속성에 접근하지 못하도록 함 → 객체손상 방지, 재사용 용이, 오류파급 효과 적음

 

 상속 

: 자식이 부모를 선택, 부모클래스를 재사용하여 개발속도 향상됨 (하위 객체/클래스 기능 = 상위 객체/클래스 기능 + a)

: 코드중복 감소, 유지보수 용이, 객체의 다형성 구현가능

 

 다형성 

: 동일타입, 실행결과가 다양한 객체를 이용할 수 있는 성질, 자식객체들이 다른형태의 특성을 갖는 객체로 이용가능

: 객체/ 클래스는 동일한 메소드명 사용함, 객체 부품화 가능, 자식타입은 부모타입으로 자동 타입변환

 

 추상화 

: 불필요한 부분 생략, 객체 속성 중 가장 중요한것에 중점을 두어 모델화 한 것

: 완전한 시스템 구축 전, 시스템과 유사한 모델을 만들어 여러 요인들을 테스트 가능함 

 > 과정추상화(전반적 흐름파악 설계)

 > 데이터추상화(속성/용도 정의하지 않고 구조를 대표하는 표현으로 대체)

 > 제어 추상화(이벤트 발생 절차와 방법 정의하지 않고 대표하는 표현으로 대체)

+ Recent posts