소프트웨어의 분류와 특성
- 상용 소프트웨어
- 시스템 소프트웨어
- 플랫폼
- 플랫폼의 성능 평가 기준 =
측정 항목
- 프레임워크
- 컴포넌트
- 모듈 : 부품화된 프로그램
- 라이브러리
- 컴포넌트
- 라이브러리의 집합
- 라이브러리를 기능별로 분류하여 지원
- 독립적으로 사용가능한 소프트웨어 모듈
- 협약
Contract 에 의한 설계를 따를 경우에 포함되어야 하는 조건
- 소프트웨어 공학
소프트웨어 개발 방법론 활용
- 구조적 방법론
- 정형화된 절차, 요구사항 파악 → 문서화 처리
- 정보 구조 중심 분석, 설계 구현
- 순차, 선택, 반복, 분할 정복
타당성 검토 → 계획 → 요구사항 → 설계 → 구현 → 시험 → 운용/유지보수
- 정보공학 방법론
- 데이터, 업무 활동, 상호작용
- 계획, 분석, 설계, 구축 정형화된 방법
정보 전략 계획 수립 → 업무 영역 분석 → 업무 시스템 설계 → 업무 시스템 구축
- 객체지향 방법론
- 객체간 통신
- 구조적 기법 보완
- 객체, 클래스, 속성, 멤버, 메시지
- 기본 원칙 ⭐
요구 분석 → 설계 → 구현 → 테스트 및 검증 → 인도
- 컴포넌트 기반 방법론
CDB
- 재사용, 개발기간 단축, 유지보수 비용 최소화
개발 준비 → 분석 → 설계 → 구현 → 테스트 → 전개 → 인도
- 단계별 산출물 - 구분 !
- 분석 단계 산출물
- 설계 단계 산출물
- 구현 단계 산출물
- 시험 단계 산출물
- 애자일 방법론
- 요구사항 변화에 민첩 , 유연 대응
- 일정 주기 반복
- 소규모 프로젝트, 숙련된 개발자, 급변하는 요구 사항
- 모델 종류
- XP, Scrum, 기능 중심 개발(FDD), 동적 시스템 개발 방법(DSDM), 경량 개발, kanban
사용자 요구사항 → 계획 → 개발 → 승인 테스트 → 사용자 요구사항 → 계획 ... 반복
- 제품 계열 방법론
- 완성된 특정 기능 + 새로운 기능
- 공통 기능 제품의 시간 단축
- 임베디드 소프트웨어 적합
- 영역공학, 응용공학
- 테일러링 방법론
- 하나의 일관된 방법론 적용 x
- 커스터마이징 반복