프로세스 개발 모델
소프트웨어 개발모델(SDLC)의 장단점
•
기존 방법론
◦
프로젝트 본질 목표보다,
계획수립, 문서화, 품질 관리 등 주요 작업을 성취하기 위해
오버 헤드(overhead) 비용을 과하게 요구
•
결국,
경량급 개발 방법론인
애자일 기법
제안됨
시험에 표가 나오지는 않음.
모델의 설명을 읽고 모델이 무엇인가 정도 잘 알면 된다
애자일 모형
애자일 모형 그림
Heavy Process
•
과한 단계
•
과한 문서작업
•
코드가 나오기까지 시간소요 많음
Agile Process
과도한 모델링과 문서화의 짐을 과감히 생략하고 개발에 집중
•
Extreme Programming
◦
의사소통 향상(회의)
◦
단순함
◦
피드백
•
Scrum
•
DSDM
애자일 선언
고객을 만족시키겠다
1.
형식적 문서보단,
커뮤니케이션을 통해 목표 나아가기
2.
사용자는 문서가 아닌,
실행되는 소프트웨어를 통해 요구 확인
3.
사용자 요구는 비즈니스 환경에 따라 프로젝트 중간에 바뀔 수 있음을 고려
4.
짧은 주기(개발 주기) 동안 요구정의부터 구현, 테스트까지 이루어지며,
각 반복 주기의 반성 의견을 다음 계획에 포함’
애자일 프로세스
•
2-3주간의 짧은 주기로 개발 반복
•
단계적으로 시스템 전체를 완성
•
소규모 목표 달성
•
개발 핵심
◦
이터레이션(Iteration)
특징
◦
개인의 성숙도와 높은 능력을 바탕으로
◦
빠른 프로토타입
▪
짧은 릴리즈 주기의 중요성이 높은 환경 적합
▪
비용과 위험도가 상대적으로 낮음
▪
협업 중심의 방법
•
프로세스 중심 X
한계
◦
경험 많은 개발자만 가능
◦
성공 사례 많지 않음
▪
옛날말
◦
고객 참여 비중이 높음
◦
개발자 - 고객 간 협업이 어려움
익스트림 프로그래밍(XP)
•
대표적인 애자일 개발 방법
•
사용자 스토리
•
매일 빌드와 통합
•
테스트 주도 개발
•
페어 프로그래밍
사용자 스토리(User Story)
•
고객이 원하는 기능을 짧게 표현한 것
•
스토리 = 큰 프로그램 덩어리(2주 개발 분령)(사이클X)
•
해당 기능에 대한 간략 설명과 기능 대표 키워드를 포함하는 짧은 문장으로 구성
•
사용자의 요구사항은 변하며, 사용자 조차도 자신의 요구사항을 잘 모른다고 가정
•
개발 초기에 요구사항을 구체적으로 정의하는 단계를 거치지 않고,
사용자와 개발자가 지속적으로 대화하면서
사용자가 원하는 요구사항을 이끌어내는 방식을 사용
방법론
소프트웨어 프로세스의 각 작업을 어떻게 수행하느냐를 정의
프로세스
•
일반적으로 개발할때 해야하는 작업만 명시
•
어떤 관계가 있는지는 나타내지 않음
모델
◦
가상을 실세계를 특정한 관점으로 표현한 것
▪
현실을 최대한 잘 반영한 가상 만들기
EX)
자료흐름도(자료 관점), 엔티티 관계도(엔티티 관점), UseCase(기능 관점), 클래스 다이어그램(객체 관점)
도구
설계, 구현, 유지보수, 테스트 등 소프트웨어 생산에 도움을 주는 툴
기술
작업 단계에 사용하는 기술
EX) 프로젝트 관리 기술, 인터뷰 기술, 데이터 모델링, 구조적 분석
구조적 방법론
기능(function) 관점
분리와 정복(Divide & Conquer)원리 적용
자료 흐름도를 구조도로 변경하는 과정
구조도 : 모듈 사이의 관계를 나타내는 그래프
정보공학 방법론
객체지향 방법론
자료와 함수
를 가까운 곳에 정의하여
객체
로 묶어두고, 객체 사이에 메시지를 호출하여 원하는 기능을 담당하게 함






