종류 | 설명 |
---|---|
폭포수 모델 | 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델 |
프로토타이핑 모델 | 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어나가는 모델 |
나선형 모델 | 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델 |
반복적 모델 | 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점층적으로 완성시키는 SDLC 모델 |
소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법
종류
종류 | 설명 |
---|---|
구조적 방법론 | 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근하는 방법론 |
정보공학 방법론 | 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론 |
객체 지향 방법론 | 객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론 |
컴포넌트 기반 방법론 | 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론 |
애자일 방법론 | 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 경량 개발 방법론 |
제품 계열 방법론 | 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론 |
개념
대표 유형
종류 | 설명 |
---|---|
XP (eXtreme Programming) | 의사 소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론 |
스크럼 | 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론 |
린 | 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용, 낭비 요소를 제거하여 품질을 향상 |
실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현
구성요소
객체 지향 기법
기법 | 설명 |
---|---|
캡슐화 | 서로 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 기법 |
상속성 | 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의없이 물려받아 사용하는 기법 |
다형성 | 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력 (오버로딩 / 오버라이딩) |
추상화 | 공통 성질을 추출하여 추상 클래스를 설정하는 기법 |
정보 은닉 | 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술 |
관계성 | 두 개 이상의 엔터티 형에서 데이터를 참조하는 관계를 나타내는 기법 (연관화 / 분류화 / 집단화 / 일반화 / 특수화) |
객체 지향 설계 원칙 (SOLID)
원칙 | 설명 |
---|---|
단일 책임의 원칙 | 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중 |
개방 폐쇄 원칙 | SW의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열리고, 변경에는 닫혀야함 |
리스코프 치환의 원칙 | 서브 타입(상속받은 하위 클래스)는 어디서나 자신 기반 타입(상위 클래스)로 교체 가능해야함 |
인터페이스 분리의 원칙 | 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야함 |
의존성 역전의 원칙 | 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고받으면서 관계를 최대한 느슨하게 만드는 원칙 |
객체 지향 분석 방법론 종류
종류 | 만든 이 | 설명 |
---|---|---|
OOSE | 야콥슨 | 유스케이스에 의한 접근 방법으로 유스케이스를 모든 모델의 근간으로 활용하는 방법론 |
분석, 설계, 구현 단계로 구성 | ||
OMT | 럼바우 | 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론 |
객체(정보) 모델링 => 동적 모델링=> 기능 모델링 (데이터흐름도, 자료사전 사용) | ||
OOD | 부치 | 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론 |
모형 | 설명 |
---|---|
LoC (Lines Of Codes) | 소프트웨어 각 기능의 원시 코드 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 사용하여 비용 산정하는 방식 |
Man Month | 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식 (Man Month = LoC / 프로그래머의 월간 생산성) |
COCOMO | 보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식 (조직형, 반분리형, 임베디드형) |
푸트남 모형 | 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식 |
기능점수 모형 | 요구 기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용 산정 |
개념
일정관리 모델 종류
모델 | 설명 |
---|---|
주 공정법 | 여러 작업의 수행 순서가 얽혀있는 프로젝트의 일정을 계산하는 기법 |
PERT | 일의 순서를 계획적으로 정리하기 위한 수렴 기법, 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정관리 |
중요 연쇄 프로젝트 관리 | 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법 |