/////
Search
📝

3월20일(수)

프로세스 개발 모델

소프트웨어 개발모델(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)원리 적용
자료 흐름도를 구조도로 변경하는 과정
구조도 : 모듈 사이의 관계를 나타내는 그래프

정보공학 방법론

객체지향 방법론

자료와 함수 를 가까운 곳에 정의하여 객체 로 묶어두고, 객체 사이에 메시지를 호출하여 원하는 기능을 담당하게 함

세가지 방법론 비교