
소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것
프로젝트 계획 > 요구분석 > 설계 > 구현 > 테스트 > 유지보수
: 고객/개발자 간 원활한 의사소통을 위해 표준화된 대표적 객체지향 모델링 언어
사물
관계
-연관관계 : 2개이상의 사물이 서로 관련되어 있는 관계
-집합관계 : 하나의 사물이 다른 사물에 포함되어 있는 관계
-포함관계 : 집합관계에 특수한 형태로 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
-일반화관계 : 한 사물이 다른 사물에 비해 일반/구체적인지 표현
-의존관계 : 한 클래스가 다른 클래스의 기능을 사용할 때, 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
-실체화관계 : 사물이 할 수 있거나 해야하는 기능으로 서로를 그룹화 할 수 있는 관계
다이어그램 : 사물과 관계를 도형으로 표현한 것
구조, 정적 다이어그램(클객컴배복패)
-클래스 다이어그램 : 클래스 사이의 관계 및 속성 표현
-객체 다이어그램 : 인스턴스를 객체와 객체 사이의 관계로 표현
-컴포넌트 " : 구현 모델인 컴포넌트 간의 관계 표현
-배치 " : 물리적요소(HW/SW)의 위치/구조 표현
-복합체구조 " : 클래스 및 컴포넌트의 복합체 내부 구조 표현
-패키지 " : UML의 다양한 모델요소를 그릅화하여 묶음
행위, 동적 다이어그램(유시커상활타상)
-유스케이스 다이어그램 : 사용자의 요구를 분석(사용자 관점) -> 사용자+사용사례(유스케이스)
-시퀀스(순차) 다이어그램 : 시스템/객체들이 주고받는 메시지 표현 -> 액터+객체+생명선+메시지+제어삼각형
-커뮤니케이션 : 객체들이 주고받는 메시지와 객체간의 연관관계까지 표현
-상태 : 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현
-활동 : 객체의 처리 로직 및 조건에 따른 처리의 흐름을 순서에 따라 표현
-타이밍 : 객체상태 변화와 시간 제약 명시적으로 표현
-상호작용 개요 : 상호작용 다이어그램 간 제어흐름 표현
uml에서 표현하는 기본 기능 외에 추가적인 기능을 표현
ex) << include >> : 포함관계에 있는 경우
<< extend >> : 확장관계에 있는 경우
<< interface >> : 인터페이스를 정의하는 경우
<< exception >> : 예외를 정의하는 경우
등
: 이미 개발된 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지보수에 사용 하는 것
생성 중심 방법 : 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법
소프트웨어 재공학 : 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
장점
-품질향상
-수명연장
-생산성 증가
-오류 감소
: 소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현 등 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
*** 상향식 대표적인 기법
-LOC 기법(원시코드 라인 수) : 소프트웨어 각 기능의 원시코드라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
-개발 단계별 인월 수 기법 : LOC기법 보완, 생명주기 각 단계별로 비용 산정**
산정 공식
a = 낙관치, b = 비관치, m = 기대치
예측치 = (a + 4m + b) / 6
노력 = 개발기간 * 투입인원 = LOC / 1인당 월 평균 생산 코드 라인 수
개발 = 노력 * 단위비용 ( 1인당 월 평균 인건비 )
개발기간 = 노력 / 투입인원
1. COCOMO 모형 : LOC에 의한 비용산정 기법, 보헴이 제안
-조직형 : 중소규모 SW용 (5만 라인 이하)
-반분리형 : 30만 라인 이하
-내장형 : 30만 라인 이상의 최대형 규모 SW 관리
비용 산정 자동화 추정 도구
-SLIM (Putnam에서 사용) : putnam을 기초로 하여 개발된 자동화 추정 도구
-ESTIMACS (FP에서 사용) : FP를 기초로 하여 개발된 자동화 추정 도구
-PERT : 프로젝트 작업 상호관계를 네트워크로 표현, 원노드와 간선으로 구성
작업 예측치 = (비관치 + 4*기대치 + 낙관치) / 6
-CPM(임계경로기법) : 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요기간을 예측하는데 사용하는 기법 -> 경로상 가장 오래 걸리는 시간
: 각 작업의 시작/종료 일정을 막대바 도표를 이용하여 표현
ISO/IEC 12207
CMMI : 소프트웨어 조직의 업무능력 평가 모델
초기 -> 관리 -> 정의 -> 정량적 -> 최적화
SPICE(ISO/IEC 15504) : 정보시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제표준
-불완전 단계 : 프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계
-수행 단계 : 프로세스가 수행되고 목적이 달성된 단계
-관리 단계 : 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계
-확립 단계 : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
-예측 단계 : 프로세스가 목적달성을 위해 통제되고, 양적인 측정을 통하여 일관되게 수행되는 단계
-최적화 단계 : 프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무 목적을 만족시키는 단계
: 소프트웨어 개발에 공통적으로 사용되는 구성요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러가지 기능을 제공해주는 반제품 형태의 소프트웨어 시스템