본문 바로가기
정보처리기사[필기]

[정보처리기사][요약]1. 소프트웨어 설계(4)설계 모델링

by IT돌이 2023. 5. 19.

0. 서론


- 정보처리기사 자격증을 준비하는 사람들을 위한 여섯 번째 요약 포스팅입니다.

   이번 장에서는 소프트웨어 설계 중, '설계 모델링' 에 대해 배워 볼 것입니다..

1. 설계 모델링


1) 개념

- 요구사항 분석 단계에서의 필수 기능들의 구체적인 구현 방법을 명시하는 기법입니다.

- 내부 기능, 구조, 작동 방법 등을 모델링하여 표현 및 검증하는 과정입니다.

 

2) 설계 모델링의 원칙

- 변경이 쉬워야 합니다.

- 필요한 자료만 취사선택 가능해야 합니다.

- 모듈단위(독립적/기능적)로 분할 설계해야 합니다.

- 계층적 구조를 가져야 합니다.

 

3) 설계 모델링의 종류

- 1)구조 모델링과 2)행위 모델링 2가지로 나뉩니다.

   3.1)구조 모델링

          - 컴포넌트 유형, 인터페이스, 내부 설계 구조와 연결구조를 모델링합니다.

          - 시스템 구송요소들과 구조적인 관계를 모델링 합니다.

          - 프로시저, 데이터 구조, 모듈, 파일 구조 등으로 이루어져 있습니다.

   3.2)행위 모델링

          - 소프트웨어 구성요소들의 기능들과 기동 순서와 상호작용을 모델링합니다.
          - 어떤 순서로 수행되는지와 같은 특성들을 모델링합니다.
          - 입력 데이터, 출력 데이터, 데이터 흐름, 데이터 변환, 데이터 저장 등으로 이루어져 있습니다.

 

2. 소프트웨어 설계 유형


- 소프트웨어 설계 유형은 크게 6가지로 나뉩니다.

- 상위 설계와 하위 설계로 나눠서 외우는 것이 중요합니다.

 

1) 설계 유형

    1.1) 자료 구조 설계

            - 소프트웨어를 구현하는데 필요한 자료구조로 변환하는 과정을 설계하는 단계입니다.

    1.2) 아키텍처 설계

            - 시스템의 전체 구조를 기술하는 설계입니다.

            - 컴포넌트 간의 관계를 정의합니다.

    1.3) 인터페이스 설계

            - 시스템, 사용자 등이 통신 하는 것을 보여주는 설계입니다.

    1.4) 프로시저 설계

            - 모듈이 수행할 기능을 순서적(쩔차적)으로 바꾸는 설계입니다.

    1.5) 협약에 의한 설계

            - 선행/결과/불변 조건을 명세하는 설계입니다.

    1.6) 모듈 설계

            - 유일한 하위 설계입니다.

 

3. 설계 원리


- 상향식/하향식 설계가 있습니다. 

- 각 설계에서 필요한 부분을 외워두시는 편이 좋습니다.

- 상향식 설계 : 하위기능부터 시작하며 인터페이스가 성립되어 있어야 합니다.

  하향식 설계 : 상위기능부터 시작하며, 레벨이 낮은 데이터 구조의 세부 사항이 미리 설계되어 있어야 합니다.

 

4. 코드 설계


1) 개념

- 데이터의 분류나 조합을 간편하게 하기 위해 사물을 표현하는 코드를 설계하는 기법입니다.

 

2) 코드 기능

- 표준화, 분류, 식별, 배열, 간소화, 연상, 암호화, 오류검출로 구성되어 있습니다.

 

3) 코드 설계 종류

- 1)연상 코드 2)블록 코드 3)순차 코드 4)표의 숫자 코드 5)십진 코드 6)그룹 분류식 코드 총 6개로 이루어져 있습니다.

   3.1) 연상 코드

          - 대상을 '연상' 할 수 있도록 약칙 부호로 넣어 구성된 코드입니다.

   3.2) 블록 코드

          - 공통성 있는 것 끼지 집합(블록)으로 구분하여 일련번호를 부여하는 코드입니다.

   3.3) 순차코드

          - 일정한 기준에 따라 순서대로 일련 번호를 부여한 코드입니다.

   3.4) 표의 숫자 코드

          - 대상의 물리적인 수치를 표시한 코드입니다.(길이, 넓이, 용량 등)

   3.5) 십진 코드

          - 10진수 형태로 표현한 코드입니다.

   3.6) 그룹 분류식 코드

          - 대상을 기준에 따라 대,중,소분류로 구분하여 번호를 부여한 코드입니다.

 

4) 코드 오류 종류

- 1)사본 2)전위 3)생략 4)첨가 5)이중전위 오류가 있습니다.

   4.1) 사본 오류

           - 적을 때 잘못 적은 오류를 뜻합니다. '한 자리를 잘못 표기한 경우'를 나타냅니다.

   4.2) 전위 오류

           - '연속된 두 글자가 서로 바뀌어 표기된 경우'를 나타냅니다.

   4.3) 생략 오류

           - '한 글자를 빼먹고 표기한 경우'를 나타냅니다.

   4.4) 첨가 오류

           - '한 글자를 추가하여 표기한 경우'를 나타냅니다.

   4.5) 이준 전위 오류

           - '전위 오류가 중복 발생한 경우'를 나타냅니다.

 

5. HIPO(Hierarchy Input Process Output)


- 시스템의 분석 및 설계, 문서화 할때 사용되는 것으로 하향식 소프트웨어 개발을 위한 문서화 도구입니다.

- HIPO 차트 종류를 알아두는 편이 좋습니다.

1) HIPO 차트

    1.1) 가시적 도표

            - 시스템의 전체적인 기능과 흐름을 보여주는 계층구조도 입니다.

    1.2) 총체적 도표

            - 입력, 처리, 출력에 대한 정보를 제공하는 도표입니다.

     1.3) 세부적 도표

            - 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표입니다.

 

6. 소프트웨어 아키텍처 


1) 개념

- 구성요소, 외부의 특성, 구성요소 간의 관계를 표현하는 시스템 구조입니다.

 

2) 필요성

- 이해간계자들 간의 관점조율을 통해 시스템을 최적화 합니다.

 

3) 아키텍처 4+1뷰

- 논리, 프로세스, 구현, 배포, 유스케이스 뷰로 이루어져 있습니다.

   3.1) 논리 뷰

            - 기능적인 요구사항 위주로 정리합니다.

   3.2) 프로세스 뷰

           - 비기능적인 속성을 가진 요구사항을 위주로 정리합니다.

   3.3) 구현 뷰

           - 기능을 어떻게 구현할 것인지, '정적인 소프트웨어 모듈의 구성'을 보여줍니다.

   3.4) 배포 뷰

           - 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰입니다.

   3.5) 유스케이스 뷰

           - 다른 뷰를 검증하는 데 사용됩니다.

 

4) 소프트웨어 아키텍처 비용 평가 모델(!중요합니다)

- 총 5가지로 구성되어 있습니다.

   4.1) SAAM(값이 '쌈'으로 외우시면 편합니다.)

           - 변경 용이성과 기능성에 중점을 둡니다.

           - 경험이 없는 조직에서도 활용이 가능합니다.

   4.2) ATAM('A(아)TAM(템)' -> 아이템 품질 로 외우시면 편합니다.)

           - 아키텍처 품질 속성을 만족시키는지 판단합니다.

   4.3) CBAM(아.. 경제 의사결정 C밤...)

           - 경제적 의사결정에 대한 요구를 충족하는지 판단합니다.

   4.4) ADR(아들... 평가는?)

           - 아키텍처 간 응집도를 평가합니다.

   4.5) ARID(팔꿈치가 아리다)

           - 전체 아키텍처가 아님 특저 부분에 대한 품질요소에 집중합니다.

5) 아키텍처 패턴

- 소프트웨어의 골격이 되는 기본구조 입니다.

- 패턴 유형은 1)계층화 2)클라이언트-서버 3)파이프-필터 4)브로커 5)모델 뷰 컨트롤러 6)마스터 슬레이브로 이루어져있습니다.

   *각 글자의 뜻을 잘 해석해보면 알기 쉽습니다.

 

6) 아키텍처 품질 속성

- 시스템, 비즈니스, 아키텍처 3가지로 구성되어있습니다.

- 시스템은 아키텍처들의 작동 여부로 생각하시면됩니다.

- 비즈니스는 활용성과 경제적인 부분으로 생각하시면 됩니다.

- 아키텍처는 '아키텍처 그 자체'를 평가하는 것으로 생각하시면 됩니다.

 

7. 마치며


- 모두 해당 자료로 공부하여, 정보처리기사 필기 시험을 잘 보시기 바랍니다.

  자료는 요약본이 올라가며, 모르는 용어와 그림은 직접 찾아보면 공부에 더 큰 도움이 될 것입니다.

  긴 글 읽어주셔서 감사합니다.

 

- 다음 포스팅은 '객체 지향 설계'에 대해 알아보겠습니다.