소프트웨어 생명주기(SDLC)
1) 정의
[시요유체]
시스템의 요구사항부터 유지보수까지 전 공정을 체계화한 절차이다.
2) 모델 프로세스
요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수(시스템이 인수되고 설치된 후 일어나는 모든 활동)
3) 모델 종류
[폭프나반]
폭포수 모델, 프로토타이핑 모델, 나선형 모델, 반복적 모델
3-1) 폭포수 모델
소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델
선형 순차적 모형, 모형 적용 경험과 성공 사례가 많음, 요구사항 변경이 어려움, 단계별 정의와 산출물이 명확
3-2) 프로토타이핑 모델
고객이 요구한 주요 기능을 프로토타입으로 구현하여 고객 피드백을 반영하여 소프트웨어 만들어가는 모델
3-3) 나선형 모델
시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
3-4) 반복형 모델
구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델
소프트웨어 개발방법론
1) 정의
소프트웨어 개발 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.
2) 종류
[구정객/컴애제]
구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반 방법론, 애자일 방법론, 제품 계열 방법론
3) 애자일 방법론 유형
짝 프로그래밍 : 개발자 둘이서 짝으로 코딩하는 원리
지속적인 통합(CI) : [매소통빌] 매일 여러번씩 소프트웨어를 통합하고 빌드해야 한다는 원리
메타포어 : 공통적인 이름체계와 시스템 서술서를 통해 고객과 개발자 간 의사소통을 원활하게 한다는 원리
테스트기반개발(TDD) : [작테통실] 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고, 테스트를 통과할 수 있도록 실제 프로그램 코드를 작성한다는 원리
델파이 기법
[전경문미]
전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법
Man Month
[한1비]
한 사람이 1개월동안 할 수 있는 일의 양을 기준으로 프로젝트 비용 산정하는 방식
=LoC/프로그래머 월간 생산성
프로젝트기간=MM/인력
기능점수(FP) 모형
[요증가합]
요구 기능을 증가시키는 인자별로 가중치를 부여하고, 합산하여 총 기능 점수를 계산하여 비용 산정하는 방식
일정관리 모델
1) 정의
프로젝트가 일정 기간내에 적절하게 완료될 수 있도록 관리하는 모델
2) 종류
[주P중]
주공정법(CPM), PERT, 중요 연쇄 프로젝트 관리(CCPM)
2-1) 주공정법
여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
2-2) PERT
일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통한 일정 관리 기법
2-3) 중요 연쇄 프로젝트 관리
주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법
소프트웨어 아키텍처
1) 정의
[여외관]
여러가지 소프트웨어 구성요소와 그 구성요소들의 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템 구조나 구조체이다.
2) 소프트웨어 아키텍처 프레임워크
[소집아표표]
소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준
3) 소프트웨어 아키텍처 4+1 뷰
[유논프구배]
유스케이스 뷰, 논리 뷰, 프로세스 뷰, 구현 뷰, 배포 뷰
4) 소프트웨어 아키텍처 패턴 정의
[소설참전]
소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결방식이다.
5) 소프트웨어 아키텍처 패턴 유형
[계클파브모]
계층화 패턴, 클라이언트 서버 패턴, 파이프 필터 패턴, 브로커 패턴, 모델 뷰 컨트롤러 패턴(MVC)
5-1) MVC 정의
[대모서]
대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴
6) 소프트웨어 아키텍처 비용 평가 모델 종류
SAAM : 변경 용이성과 기능성에 집중, 평가가 용이하여 경험 없는 조직에서도 활용 가능
ATAM : 아키텍처 품질 속성 만족시키는지 판단 및 품질 속성들의 이해상충관계까지 평가
CBAM : ATAM 바탕의 시스템 아키텍처 분석 중심으로 경제적 의사결정에 대한 요구 충족
ADR : 소프트웨어 아키텍처 구성요소 간 응집도 평가
ARID : 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중
디자인 패턴
1) 정의
[소소공자설]
소프트웨어 공학의 소프트웨어 설계 시 공통적으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
2) 종류
Builder : 복잡한 인스턴스를 조립하여 만드는 구조, 생성과 표기를 분리해서 복잡한 객체를 생성
Factory method : 상위 클래스에서 객체를 생성하는 인터페이스 정의하고, 하위 클래스에서 인스턴스 생성하는 방식
Singleton : 전역 변수를 사용하지 않고, 한 클래스에 한 객체만 존재하도록 제한
Template method : 상위 작업 구조를 바꾸지 않으면서 서브 클래스로 작업의 일부분을 수행
Observer : 한 객체의 상태가 바뀌면 의존하는 다른 객체들에 연락이 가고 자동으로 내용 갱신되는 방법
Strategy : 행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
요구공학
1) 정의
[사시도구]
사용자 요구가 반영된 시스템을 개발하기 위해 사용자 요구사항 도출, 분석, 명세, 확인을 하는 구조화된 활동
2) 요구사항 도출단계 주요기법
[인브델/롤워설]
인터뷰, 브레인스토밍, 델파이 기법, 롤 플레잉, 워크숍, 설문조사
3) 요구사항 명세단계
주요기법 : 비정형 명세 기법, 정형 명세 기법
산출물 : 요구사항 명세서
4) 요구사항 확인단계 주요기법
[동워인]
동료검토, 워크스루, 인스펙션
5) 요구사항 관리단계 - 형상통제위원회(CCB)
[형주산단]
형상관리에 대해 주요방침을 정하고 산출물을 검토하며 단계별 의사결정을 수행하는 조직
분석모델 검증
1) 정의
[도업모]
요구사항 도출 기법을 활용하여 업무 분석가가 제시한 분석 모델에 대해 확인하는 활동
2) 방법 - 유스케이스 모델 검증
[시유상적]
시스템 기능에 대한 유스케이스 모형 상세화 수준 및 적정성 검증을 위해서 액터, 유스케이스, 유스케이스 명세서 점검
3) 기술적 타당성 검토 - 성능 및 용량 산정의 적정성