자격증/정보처리기사

정보처리기사 실기 (소프트웨어 공학 정의 및 개발 프레임워크)

ByeongJun 2023. 9. 14. 14:07
반응형

소프트웨어 공학 (Software Engineering)

  • 소프트웨어를 개발, 운영, 유지보수하는 과정과 기술을 연구하고 적용하는 학문 및 분야
  • 최소의 비용과 개발 기간을 통해 높은 품질의 소프트웨어를 도출하기 위한 모든 수단과 도구들의 총칭

 

 

목적 

  • 소프트웨어 개발 단계별 산출물에 대한 명확한 기록을 유지
  • 소프트웨어 품질에 대해 지속적인 검증 시행
  • 현대적인 프로그래밍 기술을 지속적으로 적용

 

원칙

  • 소프트웨어 개발 단계별 산출물에 대한 명확한 기록을 유지
  • 소프트웨어 품질에 대해 지속적인 검증 시행
  • 현대적인 프로그래밍 기술을 지속적으로 적용

 

 

 

 

 


소프트웨어 개발 프레임워크 (Framework)

  • 모듈 (Module)
    • 프로그램을기능별로 분할해 재사용 가능하도록 부품화한 것이다.
    • 개발자가 프로그램의 기본 틀을 제공하고 모듈을 활용하여 기능을 구체화한다.

 

  • 라이브러리 (Library)
    • 툴킷(Toolkit) 이라고도 하며, 관련 있는 모듈들을 모아놓은 것을 말한다.
    • 라이브러리에 속하는 각 모듈은 반드시 독립이진 않는다.
      • 표준 라이브러리 : 프로그래밍 언어에 내장
      • 외부 라이브러리 : 별도의 설치를 통해 사용 가능

 

  • 디자인 패턴 (Design Pattern)
    • 특정 기능에 대한 문제 해결을 위한 추상적인 가이드라인을 제시한 것
    • 프로그램의 세부적인 구현 방안을 위해 참조하는 해결 방식을 제시한 것

 

  • 소프트웨어 개발 프레임 워크 (Framework)
    • 디자인 패턴에 모듈의 장점 및 기능을 결합하여 실제적인 개발의 틀(Frame)을 제공한다.
    • 프레임워크가 프로그램의 기본 틀을 제공하고, 개발자가 기능을 구체화 하는 제어의 역 흐름이 발생한다.
    • 프로그램 기반과 구조를 잡아주는 코드의 모임이며, 자연스럽게 특정 디자인 패턴을 유도한다.
    • 이미 검증된 프레임워크를 사용함으로써 품질, 예산, 유지 보수에 이점이 있다.
    • 프로그램 구성의 복잡도가 감소하여 상호 운용성과 개발 및 변경이 용이해진다.

 

  • 소프트웨어 아키텍처 (Architecture)
    • 다수의 프레임워클르 체계적으로 구성하고 설명하는 구조체를 의미한다.
    • 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙을 제공한다.

 

  • 컴포넌트 (Component)
    • 모듈의 형태로 재사용 가능한 확장된 소프트웨어 블럭
    • 프레임워크 및 아키텍처가 적용되어 있어 안정적이다.

 

  • 재사용 가능한 소프트웨어 요소
    • 소프트웨어의 부분 또는 전체 영역
    • 부분적인 코드뿐 아니라 응용된 지식과 데이터 구조
    • 개발 이후의 테스트 계획, 문서화 방법 및 절차 등

 

  • 소프트웨어 재사용 방법
    • 합성 (Composition) 중심 : 모듈을 조립해 소프트웨어를 완성시키는 블록 구성 방식
    • 생성 (Generation) 중심 : 추상적인 명세를 구체화하여 소프트웨어를 완성시키는 패턴 구성 방식
반응형