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. 마치며
- 모두 해당 자료로 공부하여, 정보처리기사 필기 시험을 잘 보시기 바랍니다.
자료는 요약본이 올라가며, 모르는 용어와 그림은 직접 찾아보면 공부에 더 큰 도움이 될 것입니다.
긴 글 읽어주셔서 감사합니다.
- 다음 포스팅은 '객체 지향 설계'에 대해 알아보겠습니다.
'정보처리기사[필기]' 카테고리의 다른 글
[정보처리기사][요약]1. 소프트웨어 설계(3)애플리케이션 설계 (0) | 2023.05.16 |
---|---|
[정보처리기사][요약]1. 소프트웨어 설계(2)화면 설계 (0) | 2023.05.15 |
[정보처리기사][요약]1. 소프트웨어 설계(1)요구사항확인(3.분석모델) (0) | 2023.05.15 |
[정보처리기사][요약]1. 소프트웨어 설계(1)요구사항(2.확인) (0) | 2023.05.11 |
[정보처리기사][요약]1. 소프트웨어 설계(1)요구사항(1.현행시스템) (0) | 2023.05.09 |