소프트웨어 아키텍처

소프트웨어의 골격이 되는 기본구조

요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체

 

모듈화

소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나눈 것

  • 재사용성이 향상된다
  • 너무 작게 나누면 개수가 많아저져 모듈 통합 비용이 많이 들고, 너무 크게 나누면 하나의 재작 비용이 많이 든다

추상화

문제의 전체적이고 포괄적인 개념을 설계한 후 세분화 하여 구체화 시키는 것

  • 시스템 구축 전 유사 모델을 만들어 테스트 가능
  • 최소의 비용으로 실제 상황 대저 가능
  • 과정 추상화 : 전반적인 흐름만 파악
  • 데이터 추상화 : 세부적인 속성은 정의하지 않고 데이터 구조를 대표할 수 있는 표현으로 대체
  • 제어 추상화 : 이벤트 발생의 정확한 절차나 방법은 정의하지 않고 대표할 수 있는 표현으로 대체

 

단게적 분해

  • 하향식 설계 전략 상위 개념부터 하위개념으로 구체화한다
  • 추상화의 반복에 의해 세분화
  • 기능 부터 알고리즘, 자료구조 같은건 가능한 나중에

정보은닉

  • 다른 모듈이 접근하거나 변경하지 못하도록
  • 반드시 필요한 기능이 있어서 커뮤니케이션이 필요하면 필요한 정보만 인터페이스로 주고 받는다
  • 독립적으로 수행가능
  • 하나의 모듈이 변경되어도 다른 모듈에 영향을 주지 않아 수정, 시험, 유지보수가 용이

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

  • 시스템 측면, 비즌스 측면, 아키텍처 측면으로 나뉜다

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

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

 

2021 시나공 정보처리기사 필기 도서를 학습하고 정리하였습니다

반응형

'study > 정보처리기사' 카테고리의 다른 글

객체지향 (Object-Oriented)  (0) 2022.04.23
아키텍처 패턴  (0) 2022.04.22
사용자 인터페이스(User Interface)  (0) 2022.04.22
UML(Unified Modeling Language)  (0) 2022.04.19
CASE(자동화 도구) 와 HIPO  (0) 2022.04.12

+ Recent posts