[정보처리기사도전기]#6 소프트웨어 아키텍처

Ben·2021년 7월 19일
0

2. 소프트웨어 아키텍처

(1) 소프트웨어 아키텍처의 정의

아키텍처 : 전체줄거리
디자인패턴 : 소줄거리

[1] 소프트웨어 컴포넌트들과 그들의 외부적으로 보여지는 특성으로 그들 상호간의 관계들로 구성되는 해당 시스템의 구조 또는 구조들이다.
[2] 소프트웨어의 골격이 되는 기본구조이며, 품질특성과 개발진행방법에 영ㅇ향을 주며, 소프트웨어개발을 성공으로 이끌기 위한 중요한 역활을 수행한다.

(2) 아키텍처의 역활
[1] 일반적으로 분석기법들을 기능의 추출과 분석을 우선 생각하고, 성능과 같은 품질특성ㅇ을 충분히 검토하는 것은 아니다. 그러나, 소프트웨어 아키텍처 설계에서는 개발대상이 되는 소프트웨어의 비기능적인 성질을 검토하여 기본구조를 정한다.
[2] 시스템 전체에 관련된 성질들을 이해하기 위한 체계를 제공 : 전체의 흐름, 통신패턴, 처리규모와 성능, 실행제어의 구조, 확장성(이용자수와 프로세스수가 증가했을 때에 유연하게 확장, 대응할수 있는정도), 소프트웨어 전체에 관련된 일관성, 장래의 발전에 대한 전망, 입수가능한 부품과 부품의 적합성
[3] 소프트웨어 아키텍처를 설계하여 문서화해두면 다음과 같은 장점 : 관여자들(소프트웨어개발에 관련된 사람들) 사이의 의사소통 개선, 시스템의 해석(시스템개발 초기에 trade-off를 맞추기 위하여 시스템의 해석이 필요하게 된다.), 소프트웨어의 재이용

(3) 소프트웨어 아키텍처의 특성

[1] 간략성 : 이해하고 추론할 수 있을 정도의 간결성 유지
[2] 가시성 : 시스템이 포함해야 하는 것들을 가시화, 청사진
[3] 추상화 : 시스템의 추상적인 표현을 사용(복잡도 관리)

3. 코드(code) 설계

(1) 코드의 정의

  • 코드란 파일시스템을 체계화(데이터 수집이나 분류, 집계등을 용이하게 하기 위해)하기 위하여 처리대상이 되는 주요 항목에 대하여 사용목적에 따라 문서, 숫자, 영숫자, 기호를 사용하여 만든것을 코드라 한다.

(2) 코드의 기능

  • 식별 기능 : 서로 다른 대상 항목을 구별 할 수 있는 기능
  • 분류 기능 : 대상 항목을 관련성에 따라 그룹별 처리가 가능한 기능
  • 배열 기능 : 대상 항목들을 순서적으로 나열할 수 있는 기능

(3) 코드의 종류

[1] 일련번호식 코드(순차코드, squential Code) : 발생순, 크기순, 가나다순, 등에 따라 순차적으로 부여
예) 지명코드

지역코드
서울01
부산02
인천03
대전04
......
제주도17

[2] 블록코드 : 공통성 있는 것끼리 블록으로 묶어서 구분하며 블록 내에서는 순차적으로 부여
예) 부서코드

부서코드
영업부11-25
인사부26-40
기획부41-55
지재부56-70
......

[3] 그룹분류 코드(Group Classification Code) : 코드화 대상 항목을 대분류, 중분류, 소분류하고 각 그룹별 내에서 순차적으로 코드를 부여
예) 학번코드, 사원번호 코드

학년번호코드
1111101
1121102
11......
1211201
1221202
12......
2112101
3113101
............

[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"

4. 구조적 설계 도구

(1) 구조도(Structure Chart)

[1] 시스템 기능을 몇 개의 기능으로 분할하여 모듈로 나타내고, 모듈간의 인터페이스를 계층 구조로 표현한 도형이다.
[2] 구조도에서 사각형은 모듈, 백색원의 화살표는 매개변수를 이용한 자료의 이동, 흑색원의 화살표는 실행의 방향을 나타내는 제어흐름, 마름모는 선택, 곡선화살표는 반복을 나타낸다.

[3] 팬 입력은 특정 모듈을 직접 제어하는 모듈의 수이다.
[4] 팬 출력은 한 모듈에 의해 직접 제어되는 모듈의 수이다.

(2) HIPO(Hierarchical Plus Input Process Output)

[1] 프로그램 논리의 문서화와 설계를 위해 도식적인 방법을 제공. 기능 표현 중심
[2] 시스템이나 프로그램의 입출력 기능을 나타내는 표기법으로, HIPO 구성요소로서 크게 시각적 목차표, IPO 다이어그램으로 나타낼수 있다.
[3] HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.
[4] Top-Down 개발기법(계층적 구조)이며, 문서의 체계화가 가능하다.

profile
프로그램을 만드는것을 업으로 삼은 사람입니다

0개의 댓글