정보처리기사,

1과목: 요약 정리(1) - 애플리케이션 설계

Aug 10, 2020 · 2 mins read

소프트웨어 아키텍처(구조도)

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

  • 소프트웨어 개발 시 원칙과 지침이 됨, 소통 도구
  • 좋은 품질 유지(기능적, 비기능적)

1). 모듈화

  • 소프트웨어의 성능 향상, 시스템의 수정 및 재사용, 유지 관리가 용이하도록 기능들을 모듈 단위로 나누는
  • 너무 작게 나누면 개수가 적어 통합 비용은 적게 들지만 모듈 하나의 개발 비용은 많이 들게 된다.

    2). 추상화
  • 불필요한 부분을 생략하고 필요한 부분을 강조하여 모델화
    • 과정추상화: 자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 법
    • 데이터 추상화: 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법
    • 제어 추상화: 이벤트 발생의 정환 절차나 방법을 정의하지 않고, 대표할 수 있는 표현으로 대체


      3). 단계적 분해
  • 하향식 설계 방법: 문제를 상위 중요 개념으로부터 하위의 개념으로 구체화
  • 추상화의 반복에 의해 세분화

    4). 정보 은닉
  • 모듈 내부에 포함된 자료들의 정보가 감추어 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
  • 필요한 정보만 인터페이스를 통해 주고 받음
  • 모듈의 독립적 수행 가능(다른 모듈에 영향x)



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

  • 이해 관계잘들이 요구하는 수준의 품질을 유지 및 보장할 수 있게 설계되었는지 확인하기 위해 구분하여 구체화시켜 놓음
  • 시스템 측면: 성능(이벤트 발생 시 빠르게 처리), 보안, 가용성(장애없이), 가능성, 사용성
  • 비즈니스 측면: 시장 적시성, 비용, 예상 시스템 수명
  • 아키텍처 측면: 개념적 무결성, 정확성, 구축 가능성

    아케텍처의 설계 과정
  • 설계 목표 설정(개발 방향) -> 시스템 타입 결정(아키텍처 패턴 선택) -> 아키턱처 패턴 적용 -> 서브시스템 구체화(상호작용을 위한 동작과 인터페이스 정의) -> 검토

    — —

    아키텍처 패턴(아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제)

  • 장점: 개발 시간 단축, 안정적 개발 가능, 의사소통 용이, 쉬운 유지보수, 시스템의 특성 예측 용이
  • 종류: 레이어 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 모델-뷰-컨트롤러 패턴

1) 레이어 패턴: 서로 마주보는 두 개의 계층 사이에서만 상호작용

2) 클라이언트-서버 패턴: 서버는 항상 대기 상태 유지


3) 파이프-필터 패턴: 캡슐화 고로 재사용성 좋고 확장성이 있음

4) 모델-뷰-컨트롤러 패턴: 모델(데이터 보관), 뷰(정보 표시), 컨트롤러(상용자로부터 받은 입력을 처리)


객체지향

객체지향의 구성요소

  • 객체: 데이터 + 연산
  • 메소드: 객체의 구체적인 연산을 정의
  • 클래스: 유사한 객체들을 모아 공통된 특성을 표현한 것. 클래스로부터 생성된 새로운 객체를 인스턴스라고 한다.
  • 메세지: 메세지를 통해 객체의 동작이 수행.

    객체 지향기법
    • 캡슐화: 정보은닉
    • 상속: 부모로부터 물려받는 것
    • 추상화: 단순화
    • 다형성: 고유한 방법으로 응답할 수 있는 능력

모듈

  • 모듈화: 시스템의 기능들을 모듈 단위로 분해하는 것
    • 모듈화는 독립성이 높아야 하고 독립성은 결합도응집도에 의해 측정된다.

공통 모듈

  • 전체 프로그램의 기능 중 공통적으로 사용할 수 있는 모듈

    공통 모듈 구현 시 명세 작성 원칙
    • 정확성: 해당 기능이 필요하는 것을 정확히 작성
    • 명확성: 중의적 해석x
    • 완전성: 필요한 모든 것을 기술
    • 일관성: 상호 출돌이 발생하면 안된다.
    • 추적성: 요구사항의 출처, 관계 파악할 수 있도록 작성


Written by