소프트웨어 개발 프레임웨크
1 모듈
- 프로그램을 기능별로 분할하여 재사용 가능하게끔 부품화 한 것
- 개발자가 프로그램의 기본 틀을 제공하고, 모듈을 활용하여 기능을 구체화
2 라이브러리
- 툴킥이라고도 하며, 관련있는 모듈들을 모아놓은 것
- 라이브러리에 존재하는 각 모듈이 반드시 독립적인 것은 아님
- 표준 라이브러리 : 프로그래밍 언어에 내장
- 외부 라이브러리 : 별도의 설치를 통해 사용 가능
3 디자인 패턴
- 특정 기능에 대한 문제해결을 위한 추상적인 가이드라인을 제시한 것
- 프로그램의 세부적인 구현 방안을 위해 참조하는 해결 방식을 제시한 것
4 소프트웨어 개발 프레임워크
- 디자인 패턴에 모듈의 장점 및 기능을 결합하여 실제적인 개발의 틀(frame)을 제공
- 프레임워크가 프로그램의 기본 틀을 제공하고, 개발자가 기능을 구체화하는 제어의 역 흐름이 발생
- 프로그램의 기반, 구조를 잡아주는 코드의 모임이며 자연스럽게 특정 디자인 패턴을 유도한다.
- 이미 검증된 프레임워크를 사용함으로써 품질, 예산, 유지보수에 이점
- 프로그램 구성의 복잡도가 감소하여 상호 운용성과 개발 및 변경이 용이함
5 소프트웨어 아키텍처
- 다수의 프레임워크를 체계적으로 구성, 설명하는 구조체를 말한다.
- 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙을 제공
6 컴포넌트
- 모듈의 형태로 재사용 가능한 확장된 소프트웨어 블럭이다.
- 일반적인 코딩을 벗어나 마치 레고(블럭) 을 쌓아 올리듯이 개발하는 기법
- 프레임워크 및 아키텍처가 적용되어 있어 안정적이다.
- 협약에 의한 설계를 따른 경우에 포함되어야 할 조건은 아래와 같다.
- 선행조건 : 컴포넌트 오퍼레이션 사용 전에 참이어야 하는 조건
- 결과조건 : 컴포넌트 오퍼레이션 사용 후에 참이어야 하는 조건
- 불변조건 : 컴포넌트 오퍼레이션 실행 중에 참이어야 하는 조건
7 재사용가능한 소프트웨어 요소
- 소프트웨어의 부분 또는 전체 영역을 모두 재사용 요소로 볼 수 있다.
- 부분적인 코드뿐 아니라 응용된 지식과 데이터 구조도 재사용 가능 요소에 포함
- 개발 이후의 테스트 계획. 문서화 방법 및 절차 등도 재사용 가능 요소이다.
8 소트트웨어 재사용 방법
- 소프트웨어를 재사용하는 방법은 합성 중심과 생성 중심 방식으로 나뉨
- 합성 중심 : 모듈(블록)을 조립하여 소프트웨어를 완성시키는 블록 구성 방식
- 생성 중심 : 추상적인 명세를 구체화아려 소프트웨어를 완성시키는 패턴 구성 방식