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

ssook·2021년 6월 20일
0
post-thumbnail

✅ 소프트웨어 아키텍처

  • 소프트웨어를 구성하는 요소들 간의 관계를 표한하는 시스템의 구조 또는 구조체

✅ 모듈화

  • 시스템의 기능들은 모듈 단위로 나누는 것

✅ 추상화

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

추상화의 유형
1. 과정 추상화
: 자세한 수행과정을 정의하지 않고 전반적인 흐름만 파악할 수 있게 설계하는 방법
2. 데이터 추상화
: 데이터의 세부적인 속성이나 용도를 정의하지 않고 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법
3. 제어 추상화
: 이벤트 발생의 정확한 절차나 방법을 저으이하지 않고 대표할 수 있는 표현으로 대체하는 방법

✅ 단계적 분해

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

✅ 정보 은닉

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

✅ 상위 설계와 하위 설계

  • 상위설계
    : 별칭 - 아키텍처 설계, 예비 설계
    : 설계 대상 - 시스템의 전체적인 구조
    : 세부 목록 - 구조, DB, 인터페이스

  • 하위설계
    : 별칭 - 모듈 설계, 상세 설계
    : 설계 대상 - 시스템의 내부 구조 및 행위
    : 세부 목록 - 컴포넌트, 자료구조, 알고리즘

✅ 소프트웨어 아키텍처의 품질 속성

  • 소프트웨어 아키텍처가 이해 관계자들이 요구하는 수준의 품질을 유지 및 보장할 수 있게 설계되었는지 확인하기 위해 품질 평가 요소들을 구체화시켜 놓은 것
  • 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성 등
  • 비즈니스 측면 : 시장 적시성, 비용과 혜택, 예상 시스템 수명, 목표 시장, 공개 일정 등
  • 아키텍처 측면 : 개념적 무결성, 저오학성, 완결성, 구축 가능성, 변경성, 시험성 등

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

  1. 설계 목표 설정
    : 요구사항을 분석하여 전체 시스템의 설계 목표 설정
  2. 시스템 타입 결정
    : 시스템과 서브시스템의 타입을 결정하고 아키텍처 패턴 선택
  3. 아키텍처 패턴 적용
    : 시스템의 표준 아키텍처 설계
  4. 서브시스템 구체화
    : 서브시스템의 기능 및 서브시스템 간의 상호작용을 위한 동작과 인터페이스 정의
  5. 검토
    : 설계 목표, 요구사항, 설계의 기본 원리 등을 만족하는 지 아키텍처 검토

✅ 협약에 의한 설계

  • 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세화 한 것
  1. 선행조건 : 오퍼레이션이 호출되기 전에 참이 되어야 할 조건
  2. 결과조건 : 오퍼레이션이 수행된 후 만족되어야 할 조건
  3. 불변조건 : 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건
profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글