Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

구조적 개발 방법론(2. 설계) 본문

Software Engineering

구조적 개발 방법론(2. 설계)

d5ngs 2019. 4. 13. 21:23

설계 모형

  • (d) 절차설계
    - 모듈이 수행할 기능을 절차적 기술로 바꾸는 것

  • (c) 인터페이스 설계
    - 시스템과 사용자가 어떻게 통신하는지

  • (b) 구조 설계
    - 모듈간의 관계와 프로그램 구조 정의

  • (a) 데이터 설계
    - 요구사항 분석 단계에서 생성된 정보를 S/W를 구현하는데 필요한 자료구조로 변환하는 것


계산기 예시



1. 요구사항 분석 단계에서 DFD

2. 데이터 설계

"입력 A 입력 B 결과"


3. 구조 설계


4. 인터페이스 설계


5. 절차 설계

6. 구현





좋은 설계의 기준

  • 모듈적이어야 함
  • 결합도가 낮아야 함, 응집도가 높아야 함
  • 자료와 프로시저에 대한 분명하고 분리된 표현
  • S/W는 논리적으로 특별한 기능과 부기능을 수행하는 요소들로 나누어져야 함
  • 복잡도와 중복을 줄임
  • S/W 요소들 간의 효과적인 제어를 위해 설계에서 계층적 조직이 제시되어야 함
  • 서브루틴이나 프로시저가 전체적이고 통합적이면 안된다.
  • 모듈 간과 외부 개체 간의 연결 복잡성을 줄이는 인터페이스를 가져야 함




기본 원리

  • 모듈화
    - S/W를 모듈 단위로 나누는 것
    - 작업 단위, S/W 내의 프로그램
    - 부 시스템
    - 서브루틴

  • 추상화
    - 전체적, 포괄적인 개념을 설계 후 세분화, 구체화 시켜나가는 방법
    - 기능 추상화
    - 제어 추상화
    - 자료 추상화

  • 정보 은닉
    - 모듈 내부에 포함된 절차, 자료들의 정보를 숨김
    - 다른 모듈이 접근, 변경하지 못함

  • 구조화
    - Fan-In (공유도)
    "어떤 모듈을 제어하는 상위 모듈의 갯수"

    - Fan-Out (제어도)
    "어떤 모듈에 의해 제어되는 하위 모듈의 갯수"

N-S 차트 (Nassi-Schneiderman Chart)


  • 절차 설계 기법
  • 논리의 기술에 중점을 둠
  • 도형을 이용한 표현 방법
  • 이해하기 쉽고 코드로 변환이 용이
  • 화살표 사용X
  • 박스 다이어그램이라고 함
  • 순차(Sequence)
    선택 및 다중 선택(if ~ then ~ else, Case)
    반복(Repeat ~ until, While, for) 등의 제어 논리 구조 표현



모듈화

  • 목적
    - S/W 복잡도 감소
    - S/W 변경 용이
    - 프로그램 구현 용이
    - 각 단계는 독립적이며 상호 의존도는 낮아야 한다.

  • 결합도(Coupling)
    "모듈 간 상호 의존도"
    "데<스<제<외<공<내"

    - 독립적인 모듈이 되기 위해서는 낮아야 한다

  • Data

     데이터 요소(매개변수, 인수 등)로만 구성

     Stamp

     자료구조(배열, 레코드)가 전달

     Control

     제어 요소가 전달

     제어신호를 이용하여 통신
     권리 전도현상이 발생

     External

     외부로 선언한 데이터(변수)가 참조

     Common

     공통 데이터 영역을 사용
     동일한 전역 데이터 접근

     Content

     내부 기능 및 자료를 참조
     다른 모듈의 내용을 참조


  • 응집도(Cohesion)
    "모듈 안 서로 관련도"
    "우<논<시<절<교<순<기"

    - 독립적인 모듈이 되기 위해서는 높아야 한다

Coincidental

 서로 관련 없는 요소

Logical

 유사한 성격의 요소

Temporal

 특정 시간에 처리되는 기능 요소

Procedural

 기능들이 절차적으로 수행

Communication 

 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행

Sequential 

 출력 데이터를 다음 활동의 입력 데이터로 사용

Functional 

 단일 문제와 연관되어 수행