본문 바로가기

정보처리기사 실기/서버 프로그램 구현

소프트웨어 아키텍처

1. 소프트웨어 아키텍처

(1) 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조

(2) 애플리케이션 분할 방법과 분할된 모듈에 할당될  기능, 모듈 간의 인터페이스 등을 결정

2. 모듈화(Modularity)

(1) 시스템의 기능들을 모듈 단위로 나누는 것

(2) 모듈의 크기를 작게 나누면 통합 비용이 많이 듬

(3) 모듈의 크기를 크게 나누면 통합 비용은 적게 들지만 모듈 한 개의 개발 비용이 많이 듬

 

3. 추상화(Abstraction)

(1) 전체적이고 포괄적인 개념을 설계 한 후 구체화시켜 나가는 것

 

* 추상화 유형

- 과정 추상화 : 자세한 수행 과정을 정의 하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법

- 데이터 추상화 : 데이터의 세부적 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법

- 제어 추상화 : 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표할 수있는 표현 방법으로 대체하는 방법

 

4. 단계적 분해(Stepwise Refinement)

상위 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법

 

5. 정보 은닉(Information Hiding)

모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법

 

6. 상위 설계와 하위 설계

  상위 설계 하위 설계
별칭 아키텍처 설계, 예비 설계 모듈 설계, 상세 설계
설계 대상 시스템 전체 구조 시스템 내부 구조 및 행위
세부 목록 구조, DB, 인터페이스 컴포넌트, 자료 구조, 알고리즘

 

7. 소프트웨어 아키텍처의 품질 평가 요소

(1) 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성 등

(2) 비즈니스 측면 : 시장 적시성, 비용과 혜택, 예상 시스템 수명, 목표 시장, 공개 일정 등

(3) 아키텍처 측면 : 개념적 무결성, 정확성, 완결성, 구축 가능성, 변경성, 시험성 등

 

8. 소프트웨어 아키텍처의 설계 과정

설계 목표 설정 -> 시스템 타입 결정 -> 아키텍처 패터 적용 -> 서브시스템 구체화 -> 검토

 

9. 협약(Contract)에 의한 설계

컴포넌트 설계 시 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것

 

* 명세에 포함될 조건

- 선행 조건(Precondition) : 오퍼레이션이 호출되기 전에 참이 되어야 할 조건

- 결과 조건(Postcondition) : 오퍼레이션이 수행된 후 만족되어야 할 조건

- 불변 조건(Invariant) : 오퍼레이션이 실행되는 동안 만족되어야 할 조건

 

출처 :  정보처리기사 실기 2024 기본서 / 저자 : 길벗알앤디(김정준, 강윤석, 김용갑, 김우경)  / 출판사 : 길벗

'정보처리기사 실기 > 서버 프로그램 구현' 카테고리의 다른 글

모듈  (0) 2024.04.18
객체지향 분석 및 설계  (0) 2024.04.17
객체 지향  (0) 2024.04.17
아키텍처 패턴  (1) 2024.04.17
개발 환경 구축  (0) 2024.04.16