(1) 소프트웨어 아키텍처의 정의
아키텍처 : 전체줄거리
디자인패턴 : 소줄거리
[1] 소프트웨어 컴포넌트들과 그들의 외부적으로 보여지는 특성으로 그들 상호간의 관계들로 구성되는 해당 시스템의 구조 또는 구조들이다.
[2] 소프트웨어의 골격이 되는 기본구조이며, 품질특성과 개발진행방법에 영ㅇ향을 주며, 소프트웨어개발을 성공으로 이끌기 위한 중요한 역활을 수행한다.
(2) 아키텍처의 역활
[1] 일반적으로 분석기법들을 기능의 추출과 분석을 우선 생각하고, 성능과 같은 품질특성ㅇ을 충분히 검토하는 것은 아니다. 그러나, 소프트웨어 아키텍처 설계에서는 개발대상이 되는 소프트웨어의 비기능적인 성질을 검토하여 기본구조를 정한다.
[2] 시스템 전체에 관련된 성질들을 이해하기 위한 체계를 제공 : 전체의 흐름, 통신패턴, 처리규모와 성능, 실행제어의 구조, 확장성(이용자수와 프로세스수가 증가했을 때에 유연하게 확장, 대응할수 있는정도), 소프트웨어 전체에 관련된 일관성, 장래의 발전에 대한 전망, 입수가능한 부품과 부품의 적합성
[3] 소프트웨어 아키텍처를 설계하여 문서화해두면 다음과 같은 장점 : 관여자들(소프트웨어개발에 관련된 사람들) 사이의 의사소통 개선, 시스템의 해석(시스템개발 초기에 trade-off를 맞추기 위하여 시스템의 해석이 필요하게 된다.), 소프트웨어의 재이용
(3) 소프트웨어 아키텍처의 특성
[1] 간략성 : 이해하고 추론할 수 있을 정도의 간결성 유지
[2] 가시성 : 시스템이 포함해야 하는 것들을 가시화, 청사진
[3] 추상화 : 시스템의 추상적인 표현을 사용(복잡도 관리)
(1) 코드의 정의
(2) 코드의 기능
(3) 코드의 종류
[1] 일련번호식 코드(순차코드, squential Code) : 발생순, 크기순, 가나다순, 등에 따라 순차적으로 부여
예) 지명코드
지역 | 코드 |
---|---|
서울 | 01 |
부산 | 02 |
인천 | 03 |
대전 | 04 |
... | ... |
제주도 | 17 |
[2] 블록코드 : 공통성 있는 것끼리 블록으로 묶어서 구분하며 블록 내에서는 순차적으로 부여
예) 부서코드
부서 | 코드 |
---|---|
영업부 | 11-25 |
인사부 | 26-40 |
기획부 | 41-55 |
지재부 | 56-70 |
... | ... |
[3] 그룹분류 코드(Group Classification Code) : 코드화 대상 항목을 대분류, 중분류, 소분류하고 각 그룹별 내에서 순차적으로 코드를 부여
예) 학번코드, 사원번호 코드
학년 | 반 | 번호 | 코드 |
---|---|---|---|
1 | 1 | 1 | 1101 |
1 | 1 | 2 | 1102 |
1 | 1 | ... | ... |
1 | 2 | 1 | 1201 |
1 | 2 | 2 | 1202 |
1 | 2 | ... | ... |
2 | 1 | 1 | 2101 |
3 | 1 | 1 | 3101 |
... | ... | ... | ... |
[4] 10진 코드(Decimal Code) : 10진법의 원리에 맞추어 대분류, 중분류, 소분류하여 부여한 코드
예) 도서 분류 코드
카테고리 | 코드 |
---|---|
총류 | 000 |
인문 | 100 |
사회 | 200 |
공학 | 300 |
통신 | 310 |
전자 | 320 |
전산 | 330 |
계산기구조 | 331 |
자료구조 | 332 |
전산수학 | 333 |
운영체계론 | 334 |
[5] 유효 숫자식 코드(표의 숫자코드) : 대상항목의 크기, 중량, 거리 등을 그대로 사용하는 코드
예) 폭 450mm, 길이 700mm, 두께가 45mm인 철판 -> 45070045
[6] 연상기호 코드(Mnemonic Code) : 대상과 관계있는 문자나 숫자를 조합하여 만든 코드.(상품명이나 거래처 명에 많이 이용)
예)
모델 | 모델명(코드) |
---|---|
흑백 텔레비전 15인치 | W-TV 15" |
흑백 텔레비전 17인치 | W-TV 17" |
컬러 텔레비전 17인치 | W-TV 17" |
컬러 텔레비전 20인치 | W-TV 20" |
(1) 구조도(Structure Chart)
[1] 시스템 기능을 몇 개의 기능으로 분할하여 모듈로 나타내고, 모듈간의 인터페이스를 계층 구조로 표현한 도형이다.
[2] 구조도에서 사각형은 모듈, 백색원의 화살표는 매개변수를 이용한 자료의 이동, 흑색원의 화살표는 실행의 방향을 나타내는 제어흐름, 마름모는 선택, 곡선화살표는 반복을 나타낸다.
[3] 팬 입력은 특정 모듈을 직접 제어하는 모듈의 수이다.
[4] 팬 출력은 한 모듈에 의해 직접 제어되는 모듈의 수이다.
(2) HIPO(Hierarchical Plus Input Process Output)
[1] 프로그램 논리의 문서화와 설계를 위해 도식적인 방법을 제공. 기능 표현 중심
[2] 시스템이나 프로그램의 입출력 기능을 나타내는 표기법으로, HIPO 구성요소로서 크게 시각적 목차표, IPO 다이어그램으로 나타낼수 있다.
[3] HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.
[4] Top-Down 개발기법(계층적 구조)이며, 문서의 체계화가 가능하다.