반응형
설계 모델링
1. 설계 모델링
개념 |
|
절차 | ![]() |
2. 구조 모델링 도구
N-S(Nassi-Schneiderman) 도표 |
|
HIPO(Hierachy Input Process Output) 도표 | 하향식 소프트웨어 개발을 위한 문서화 도구
|
Dijkstra 구조적 설계 방법론 |
|
3. 설계 모델링 구성과 요소
설계 모델 요소
유형 | 정적(static)요소 | 동적(dynamic) 요소 |
구조 모델 | 구성 요소 유형 및 유형 계통 구성 요소 배열 결합 관계 구성 요소들의 인터페이스 구성 요소들의 상호 작용 채널 |
동적 생성 및 소멸 동적 결합과 연결 위치 이동, 복제 |
행위 모델 | 입출력 데이터 입출력 매핑 데이터 흐름 채널 데이터 변환 데이터 저장 |
상호작용 프로토콜 제어 상호작용 실행 경로 상태 전이 처리 순서 입출력 순서 알고리즘 |
소프트웨어 아키텍처
1. 시스템 아키텍처
개념 |
|
설계 |
|
2. 소프트웨어 아키텍처
개념 |
|
설계 |
|
소프트웨어 아키텍처의 비즈니스 품질 속성 |
|
소프트웨어 아키텍처 프레임워크 구성요소
아키텍처 명세서 | - 아키텍처 기록 산출물로 이해 관계자들의 시스템에 대한 관심을 관점에 맞춰 작성한 뷰로 표현 - 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등 |
이해 관계자 | - 시스템 개발에 관련된 모든 사람과 조직 - 고객, 최종 사용자, 개발자 등등 |
관심사 | - 시스템에 대해 이해 관계자들의 서로 다른 의견과 목표 - 사용자 입장: 품질 - 유지보수자 입장: 유지보수 용이성 - 개발자 입장: 적은 비용과 인력으로 개발 |
관점 | - 개별 부 개발 시 토대가 되는 패턴이나 양식 - 이해관계자들이 시스템이나 산출물들에 대해 보고 싶은 관점 |
뷰 | - 서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템 표현 - 시스템에 대한 아키텍처 설명에는 하나 이상의 뷰로 구성 |
근거 | - 아키텍처 결정 근거 - 회의 결과, 보고 결과 |
목표 | - 환경 안에서 한 명 이상의 이해 관계자들이 의도하는 시스템 목적, 사용, 운영 방법 |
환경 | - 시스템에 영향 주는 요인으로 개발, 운영 등의 외부 요인 등 |
시스템 | - 각 애플리케이션, 서브 시스템, 시스템 집합, 제품군 등의 구현체 |
소프트웨어 아키텍처 4+1뷰
유논프구배
유스케이스 뷰 | • 유스케이스 또는 아키텍처 도출하고 설계하며 다른 뷰 검증 시 사용 • 사용자, 설계자, 개발자, 테스트 관점 |
논리 뷰 | • 유스케이스 또는 아키텍처 도출하고 설계하며 다른 뷰 검증 시 사용 • 사용자, 설계자, 개발자, 테스트 관점 |
프로세스 뷰 | • 유스케이스 또는 아키텍처 도출하고 설계하며 다른 뷰 검증 시 사용 • 사용자, 설계자, 개발자, 테스트 관점 |
구현 뷰 | • 유스케이스 또는 아키텍처 도출하고 설계하며 다른 뷰 검증 시 사용 • 사용자, 설계자, 개발자, 테스트 관점 |
배포 뷰 | • 컴포넌트가 물리적 아키텍처에 어떻게 배치되는가 매핑해서 보여주는 뷰 |
3. 소프트웨어 아키텍처 모델
계층화 패턴 (Layered Pattern) |
|
클라이언트/서버 패턴 (Client/Server Pattern) |
|
마스터/슬레이브 패턴 (Master/Slaver Pattern) |
|
파이프-필터 패턴 (Pipe-filter Pattern) |
|
브로커 패턴 (Broker Pattern) |
|
피어 투 피어 패턴 (Peer-to-peer Pattern) |
|
이벤트-버스 패턴 (Event-bus Pattern) |
|
MVC 패턴 (Model-View-Controller Pattern) |
|
블랙보드 패턴 (Blackboard Pattern) |
|
인터프리터 패턴 (Interpreter Pattern) |
|
코드 설계
1. 코드
3대 기능 |
|
추가 기능 |
|
코드 설계의 원칙 |
|
코드의 특성 |
|
2. 코드 설계
- 코드 설계 고려 사항
- 정보 체계화 유무
- 정보 처리 효율성 유무
- 정보 호환성/표준화 유무
- 갱신/추가 시 확장 용이
- 1:1로 대응
3. 코드 유형 분류
순차 코드(Sequence Code) | 일정한 일련번호 부여하는 방법 |
블록코드(Block Code) | 공통 특성을 몇개의 블록으로 구분하여 부여 |
10진 코드(Decimal Code) | 좌측은 그룹 분류, 우측은 10진수로 세분화하는 코드 |
그룹 분류 코드(Group Classification Code) | 각 분류별로 개개의 대상 표현하게 한 후 합쳐 구성 |
연상 코드(Mnemonic Code) | 대상의 연상이 가능하도록 코드에 반영 |
표의 숫자 코드(Significant Digit Code) | 물리적 수치를 이용하여 만든 코드 |
합성 코드(Combined Code) | 2개 이상의 코드 조합 |
파일 설계
순차 파일 (Sequential) |
|
인덱스(색인) 순차 파일 (Indexed Sequential) |
|
랜덤 편성 파일 (Random Organizaion) |
|
Reference
https://book.naver.com/bookdb/book_detail.naver?bid=17134434
이기적 정보처리기사 필기 기본서
- 기초부터 탄탄히 잡아주는 영진닷컴의 이기적 수험서!영진닷컴이 자랑하는 수험서 브랜드 ‘이기적’ 시리즈는 쉽고 풍부한 내용으로 기초부터 튼튼하게 쌓아주는 합격의 동반자입니다. 기
book.naver.com
반응형
'정보 처리 기사 필기 > 1. 소프트웨어 설계' 카테고리의 다른 글
1-5 인터페이스 설계 (0) | 2022.06.02 |
---|---|
1-4 애플리케이션 설계 - 공통 모듈, 모듈의 평가 (0) | 2022.05.30 |
1-3 화면설계 (0) | 2022.05.26 |
1-2 요구 사항 확인 - 요구 사항 정의 (0) | 2022.05.25 |
1-2 요구 사항 확인 - 현행 시스템 파악 (0) | 2022.05.24 |