반응형

Pair Programming

 

 

*목차

1. Pair Programming 정의

2. Pair Programming 구성도 및 구성요소

 가. Pair Programming 구성도

 나. Pair Programming 구성요소

3. 몹 프로그래밍 설명

 

 

*내용

1. 드라이버와 파트너, Pair Programming 정의

  - 두사람이 한 컴퓨터를 사용해서 Pair Work 로 프로그래밍 하는 것으로 eXtreme Programming 에서 사용하는 프로그래밍 방법

2. Pair Programming 구성도 및 구성요소

 가. Pair Programming 구성도

Pair Programming 구성도

 나. Pair Programming 구성요소

구분 항목 설명
핵심 구성 측면  Driver - 코딩 표준에 따라서 코드를 작성하는 프로그래머
Partner - Driver 에게 전략과 일치 여부 확인, 모든 것을 상기시켜 주는 역할을 하는 Watcher or Observer
수행 기법 측면 Pair Pressure - 정해진 시간 동안 할당된 일을 완성하기 위해 두 개발자는 집중적으로 일함
Pair Negotiation - 알고리즘이나 프로그램의 구조를 협의
Pair Courage - 혼자 할 수 없었던 위험하지만 효과가 큰일을 같이 수행
Pair Review - 프로그램 동시 리뷰, 기존보다 에러를 조기에 발견 가능
Pair Debugging -문제가 있을 때 그것을 상대방에게 설명하는 순간 답을 아는 경우 많음
Pair Learning -번갈아 가면서 프로그래밍, 관찰 및 대화를 통해 서로의 지식과 행동 학습
Pair Trust - Pair를 이룬 개발자들은 상호 신뢰

 - 드라이버와 파트너와의 1:1 관계에서 1:N 관계로 확장된 몹 프로그래밍 존재

3. 몹 프로그래밍 설명

 - 한 명의 드라이버와 여러 명의 프로그래머가 하나의 PC로 코딩 또는 문서화 작업을 진행하는 개발 방식으로 1:1방식인 페어 프로그래밍을 1:n으로 확장시킨 형태.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

칸반(Kanban)  (0) 2023.04.10
스크럼(SCRUM)  (0) 2023.04.10
XP(extreme Programming)  (0) 2023.04.08
애자일 방법론  (0) 2023.04.08
클린룸(cleanroom) 모델  (0) 2023.04.07
반응형

XP(extreme Programming)

 

*목차

1. XP 정의 및 핵심 가치

 가. XP 정의

 나. XP 핵심 가치

2. XP 수행절차 및 실천 사항

 가. XP 수행절차

 나. XP 실천 사항

 

*내용

1. 애자일 방법론 중 하나, XP 정의 및 핵심 가치

 가. XP 정의

   - 의사소통 개선, 즉각적인 피드백에 의해 단순하게 코딩하여 SW품질을 높이기 위한 Agile 개발방법론

 나. XP 핵심가치

구분 핵심가치 내용
발주자 단순성 - 부가적 기능, 사용되지 않는 구조와 알고리즘 배제
의사소통 - 개발자, 관리자, 고객 간의 원활한 의사소통
개발자 피드백 - 지속적인 테스트와 통합, 반복적 결함 수정, 빠른 피드백
용기 - 고객의 요구사항 변화에 능동적인 대처
존경 - 상대방에 대한 존경

2. XP 수행절차 및 실천 사항

 가. XP 수행절차

XP 수행절차

 나. XP 실천 사항

실천사항 핵심 내용
Planning Process 계획 세우기 - 릴리즈 계획, 구조적 스파이크
Continuous Testing 지속적인 테스팅 - 최대한 빠른 시기에 테스트 실시
Pair Programming 짝 프로그래밍 - 드라이버, 파트너 기준 프로그래밍 실시
On-site Customer 현장 고객 지원 - 즉각적인 지원 수행
Small Release 소규모 배포 - 지속적 배포, CI, CD 자동화 수행
Refactoring 소스 개선 - class, method, field, log 기준 소스 개선
Continuous Integration 지속적인 통합 - 젠킨스 등 자동화 tool 이용 통합
Metaphor 시스템 상징화 - 시스템 상징성 명확화하여 수행
Simple Design 단순한 디자인 - 지속적인 소스 개선 작업
collective Code Ownership 공동 코드 소유 - 소스 저작권 등 문제 해결
Coding Standard 코딩 표준 - 코드 개발 시 표준 기준 수행
40 hour Week 주당 40시간 업무 - 개발자 피로도 등을 고려하여 주40시간

 - 릴리즈 계획 수립을 통한 반복적 테스트와 소규모 릴리즈를 통해 프로젝트 수행.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

스크럼(SCRUM)  (0) 2023.04.10
Pair Programming  (0) 2023.04.10
애자일 방법론  (0) 2023.04.08
클린룸(cleanroom) 모델  (0) 2023.04.07
반복적 개발 모델  (0) 2023.04.07
반응형

애자일 방법론

 

*목차

1. 애자일 방법론 정의 및 종류

 가. 애자일 방법론 정의

 나. 애자일 방법론 종류

2. 애자일 방법론 수행절차 및 원칙

 가. 애자일 방법론 수행절차

 나. 애자일 방법론 원칙

 

 

*내용

1. 소프트웨어 개발 문화, 애자일 방법론의 정의 및 종류

 가. 애자일 방법론 정의

  - 사람이 중심 되어 변화에 유연하고 신속하고 적용하면서 효율적으로 시스템을 개발할 수 있는 방법론

 나. 애자일 방법론 종류

XP - extreme Programming, 의사소통 개선, 즉각적인 피드백에 의해 단순하게 코딩하여 S/W 품질 향상
SCRUM - 프로젝트를 스프린트로 분리, 팀은 매일 스크럼 미팅으로 계획 수립
RUP - 완전한 S/W 개발 모델 제시
Crystal - 프로젝트 상황에 따라 알맞은 방법론을 적용할 수 있도록 다양한 방법론 제시
FDD - Feature Driven Development, 기능 모델, 설계와 구현, 수행의 3단계 사이클

2. 애자일 방법론 수행절차 및 원칙

 가. 애자일 방법론 수행절차

애자일 방법론 수행절차

 나. 애자일 방법론 원칙

원칙 핵심 내용
고객만족 추구 고객 최우선 중시 - 빠른 배포와 피드백 반영, 고객의 만족도 향상
요구사항 변경 수용 요구 변경 상황 인정 - 고객 요구 변경 인정 및 대응을 위한유연성
짧은 배포 주기 CI, CD 활용 - 도구 등을 통해 빠른 배포, 고객 피드백 반영
현업 개발자간 일일 의사소통 소통 중시 - 담당자와 개발자 간의 소통을 위한 업무 효율화
동기 부여된 사람 중용 상호 존중 문화 - 동기 부여된 팀원을 중용 및 환경 지원
면대면 대화 의사소통의 효율화 - Daily Meeting등을 통한 면대면 대화
지속 가능한 개발 장려 일정한 속도 유지 - 지속 가능한 개발 및 프로젝트 진행 장려
작동하는 소프트웨어 진척도로 SW 중시 - 직접 SW의 기능/비기능적 요소 및 진행 관리
좋은 기술, 설계 관심 복잡성 줄이기 위한 기술 우수성 중시 - 우수한 기술, 아키텍처 중시 및 공유
단순성 추구 일정/진행사항 단순화 및 시간 절약 - 목표 업무와 연관 없는 일들을 최소화
자기 조직적 팀 조직 생산성 증대 - 책임감 부여, 생산성 증대 위한 자기 조직적 팀
정기적 효율성 제고 업무 효율성 증대 - 스프린트 리뷰를 통해 다음 스프린트에 반영 할 수 있는 요소 적용

 - 스프린트를 정하고 반복적으로 수행 하여 점진적으로 개발 수행.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

Pair Programming  (0) 2023.04.10
XP(extreme Programming)  (0) 2023.04.08
클린룸(cleanroom) 모델  (0) 2023.04.07
반복적 개발 모델  (0) 2023.04.07
Multiple-V 모델  (0) 2023.04.07
반응형

클린룸(cleanroom) 모델

 

*목차

1. 클린룸 모델 정의 및 특성

 가. 클린룸 모델 정의

 나. 클린룸 모델 특성

2. 클린룸 모델 수행절차 및 구성요소

 가. 클린룸 모델 수행절차

 나. 클린룸 모델 구성요소

 

 

*내용

1. 점증적으로 수행하는 개발 모델, 클린룸 모델 정의 및 특성

 가. 클린룸 모델 정의

  - 결함예방을 위한 시스템의 전체 기능을 증분적으로 분할하여 반복적인 개발과 정형적 명세를 통해 개발하는 개발 방법 모델

 나. 클린룸 모델 특성

정형명세 - SW는 정형적으로 명세화 되어 명세서 표현 위애 자극에 대한 반응을 나타내는 상태전이 모델을 이용
증분적 개발 - 소프트웨어를 여러 증분으로 나누어 클린룸 프로세스 사용하여 별도로 개발하고 검증
구조적 프로그래밍  - 제한된 수의 제어와 데이터 추상화 구조를 사용하여 명세서를 체계적으로 변환하여 코드 생성
정적 검증  - 코드 컴포넌트들에 대한 시험이나 모듈 시험 없이 엄격한 검사를 이용하여 정적 증명
시스템 통계적 테스팅 - 통합된 소프트웨어 증분은 신회성을 결정하기 위해 통계적으로 시험되어 통계적 시험은 시스템 명세서와 병행하여 개발된 운영 프로파일을 기반으로 함

2. 클린룸 모델 수행절차 및 구성요소

 가. 클린룸 모델 수행절차

클린룸 모델 수행 절차

 나. 클린룸 모델 구성요소

구분 구성요소 내용
검증 방법 박스 구조 분석 - 증가분 부분의 설계 명세가 정확한지 여부 확인 검증
함수 등가성 - 명세를 입력과 출력의 대응관계로 보고 원래 명세와 등가 함을 확인, 명세를 상세화 하는 것이 정확한지의 검증
통계적 테스트 - 이용 시나리오(입력으로 부터 출력으로 변환되는 과정)에 관심을 두고 상세화 하는 분석 방법
박스 구조 명세  블랙박스 - 사용자 관점 테스트, 입출력
상태박스 - 데이터 내부 상태 표현
클리어 박스 - 제어 흐름, 시간적 의존관계

- 폭포수 모델의 위험관리 부족과 나선형 모델의 정형적 검증 부족으로 인해 클린룸 모델 개발 됨.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

XP(extreme Programming)  (0) 2023.04.08
애자일 방법론  (0) 2023.04.08
반복적 개발 모델  (0) 2023.04.07
Multiple-V 모델  (0) 2023.04.07
V 모델  (0) 2023.04.07
반응형

반복적 개발 모델

 

*목차

1. 반복적 개발 모델 정의 및 유형

 가. 반복적 개발 모델 정의

 나. 반복적 개발 모델 유형

2. 반복적 개발 모델 개발 절차 및 특징

 가. 반복적 개발 모델 개발 절차

 나. 반복적 개발 모델 특징

 

 

*내용

1. 반복을 통한 위험관리, 반복적 개발 모델 정의 및 유형

 가. 반복적 개발 모델 정의

  - 최종 사용자 요구사항에 부합하기 위해 제품의 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 SW 개발 모델

 나. 반복적 개발 모델 유형

증분형 개발 모델 - 전통적인 폭포수 모델에 반복적 수행 개념을 결합하여 적용한 모델
진화적 개발 모델 - 시스템의 핵심부분을 개발한 후 각 구성요소를 개선 발전 시켜 나가는 방법

2. 반복적 개발 모델 개발 절차 및 특징

 가. 반복적 개발 모델 개발 절차

증분형 개발 모델
진화적 개발 모델

 나. 반복적 개발 모델 특징

구분 특징 설명
증분형 개발 모델 폭포수 모델 변형 증분을 따로 개발 후 통합하는 방법
증분별 병행 개발 증분별 병행 개발로 기간단축 가능
PM의 중요성 부각 관리복잡성으로 PM의 조율이 중요
진화적 개발 모델 Outline 필요 전체 진화과정에 대한 개요 필요
요구사항 수집 용이 프로토타입의 모델변형으로 요구사항 수집
재사용성 향상 재사용성을 전체로 시스템 설계
설계의 진화 각 단계의 증분 설계가 다음 설계에 반영

- 반복적 개발 모델은 증분형 개발 모델과 진화적 개발 모델로 구분됨.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

애자일 방법론  (0) 2023.04.08
클린룸(cleanroom) 모델  (0) 2023.04.07
Multiple-V 모델  (0) 2023.04.07
V 모델  (0) 2023.04.07
폭포수 모델(Waterfall Model)  (0) 2023.04.07
반응형

Multiple-V 모델

 

*목차

1. Multiple-V 모델 정의 및 특징

2. Multiple-V 모델 수행 절차 및 상세설명

 가. Multiple-V 모델 수행 절차

 나. Multiple-V 상세 설명

 

 

*내용

1. 임베디드에 특화된 3단계 형태, Multiple-V 모델 정의 및 특징

정의 - V 모델 기반 임베디드 시스템 개발 시 사용하는 모델로 모델, 프로토타입, 최종 제품 단계로 나뉘어 수행하는 개발 모델
특징 - 임베디드 시스템 개발 시 이용, 단계별 V-Model 활동 전체 수행

2. Multiple-V 모델 수행 절차 및 상세설명

 가. Multiple-V 모델 수행 절차

Multiple-V 모델 수행 절차

 나. Multiple-V 모델 상세설명

절차 방법 설명
모델 - FTA, FMEA 수행 - 결함, 고장, 장애, 소프트웨어 분석, 위험 요소 사전 파악
- Inspection 수행 - 결함 발견, 소프트웨어 품질 개선, 비용절감, 품질 보증 기법
프로토타입 - 단위 테스트 - 모듈 단위, 기능 단위, 테스트 시나리오 기반 단위 테스트
- 호스트, 타켓 테스트 - 특정 모듈, 기능 위주의 테스트 수행
최종제품 - 랜덤 테스트 - 블라인드 테스트, 임의적 선택을 통한 테스트 수행
- 회귀 테스트 - 기능 수정 시 관련 기능 테스트 수행

- 주로 임베디드 시스템에서 사용하는 테스트 기법이며 V 모델을 기반으로 하는 기법임.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

클린룸(cleanroom) 모델  (0) 2023.04.07
반복적 개발 모델  (0) 2023.04.07
V 모델  (0) 2023.04.07
폭포수 모델(Waterfall Model)  (0) 2023.04.07
소프트웨어 개발 생명 주기(Software Development Life Cycle)  (0) 2023.04.07
반응형

V 모델

 

*목차

1. V 모델 정의 및 특징

2. V 모델 수행절차 및 적용 원칙

 가. V 모델 수행절차

 나. V 모델 적용 원칙

3. 검증과 확인 비교

 

 

*내용

1. 폭포수 모델을 변형한, V 모델 정의 및 특징

정의 - waterfall model 방식 기반 V형태로 공정 과정에 대한 검증(verification)과 최종 완성물에 대한 확인(validation)을 수행하는 테스트 모델
특징  - 폭포수 모형 기반, 오류 줄일 수 있음, 검증과 확인, 신뢰성이 높음, 변경이 어려움

2. V 모델 수행 절차 및 적용원칙

 가. V 모델 수행절차

V 모델 수행절차

 나. V 모델 적용원칙

적용원칙 원칙 수행 방안 설명
Test 레벨별 차별화 테스트 단위, 통합, 시스템, 인수 테스트 - 테스트별로 구분하여 수행
개발 초기 테스트 시작 초기부터 결함 식별 수행 - 설계 단계 부터 테스트 시작
결함의 사전 예방 개발 초기 정적 테스트를 통한 사전 예방 - 다양한 테스트 기법을 통한 테스트 수행
검증과 확인 수행 검증, 확인 수행 - 과정 검증과 결과 유효화 확인

- V 모델은 공정의 검증과 완성 산출물의 확인 과정으로 통해 수행

3. 검증과 확인 비교

구분 검증(Verification) 확인(Validation)
개념 - 개발 단계의 산출물이 그 단계의 초기 설정 조건을 만족하는지 평가하는 프로세스 - 구현된 SW가 명시된 요구사항을 만족 시키는지 평가하는 프로덕트 검증 프로세스
목적 - SW 개발적합성 확인 - 개발된 SW 요구사항 만족검증
관점 - 개발자, 테스터 - 사용자
검증 - 휴먼 베이스 - 컴퓨터 베이스
검증 방법 - 정적 검증 - 동적 검증
기법 - Walkthrough, Review, Inspection - 단위, 통합, 시스템, 인수, 설치 테스트

- 검증은 산출물을 기반으로 수행하며 확인 단계는 실제 구현된 프로그램을 기반으로 수행.

반응형
반응형

폭포수 모델(Waterfall Model)

 

*목차

1. 폭포수 모델 정의 및 장단점

 가. 폭포수 모델 정의

 나. 폭포수 모델 장단점

2. 폭포수 모델 수행 절차 및 상세설명

 가. 폭포수 모델 수행 절차

 나. 폭포수 모델 상세 설명

 

 

*내용

1. 구조적 하향식 개발 모델, 폭포수 모델 정의 및 장단점

 가. 폭포수 모델 정의

  - 분석, 설계, 개발, 테스트, 유지보수 과정을 순차적, 하향식의 방법으로 접근하는 구조적 개발방법 모델

 나. 폭포수 모델 장단점

장점 - 전체 프로젝트 과정 이해 용이, 프로젝트 관리 및 적용이 용이, 일정 및 비용 예측 가능
단점 - 초기 요구사항 정의 어려움, 중요 문제점 늦게 발견될 수 있음, 사용자 요청 피드백 반복 불가능

2. 폭포수 모델 수행 절차 및 상세설명

 가. 폭포수 모델 수행 절차

폭포수 모델 수행 절차

 나. 폭포수 모델 상세 설명

절차 상세 절차 내용
분석 개발 계획 - 프로세스 수행 위한 전체적 개발 계획 수립, 개발 방법론 선택
요구 분석 - 사용자 대상 인터뷰, 브레인 스토밍, 워크샵 통한 요구 분석
설계 기본 설계 - 화면 인터페이스, 프레임워크, 공통 모듈 등 개발
상세 설계 - 기능별 로직 설계, 화면 설계서
개발 인터페이스 개발 - 프론트 엔드 개발, html, css, js 개발
단위 모듈 개발 - 백엔드 개발, 데이터베이스 SQL, 쿼리문, SP 개발, 예외처리, 보안 모듈 적용
테스트 단위 테스트 - 기능별 단위 테스트, TDD, 단위테스트 시나리오, 단위테스트 결과서
통합 테스트 - 전체 통합테스트, 통합테스트 시나리오, 통합테스트 결과서, 고객 참여
배포 스테이징 배포 - 운영과 동일한 환경 적용, 부하량 측정, 오류 사항 점검 수행
운영서버 배포 - 실제 서비스 수행, 그랜드 오픈, 서비스 지속적 모니터링, 운영팀 인계

폭포수 모델의 단점을 보완하는 개발모델로 나선형모델, 프로토타이핑 모델 사용 가능 

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

Multiple-V 모델  (0) 2023.04.07
V 모델  (0) 2023.04.07
소프트웨어 개발 생명 주기(Software Development Life Cycle)  (0) 2023.04.07
컴퓨팅 사고력(Computational Thinking)  (0) 2023.04.07
소프트웨어 교육  (0) 2023.04.07

+ Recent posts