정보처리기사
2. 소프트웨어 개발 방법론
nayeonee__
2023. 3. 28. 09:24
https://www.njobler.net/product/lecture/show/prod/10810
1억뷰 N잡
[연장 미포함] 흥나게 합격달성! 정보처리기사 실기
www.njobler.net
본 강의를 듣고 내용을 정리하며 적은 게시글 입니다.
- 소프트웨어 개발 방법론 개념
- 소프트웨어 개발에 필요한 과정들을 체계적으로 정리한 것
- 개발 방법론 종류
- 구조적 방법론
- 절차지향 소프트웨어 개발방법론
- 제한된 구조에서 코드 생성 및 순차적 실행
- 구조적 방법론 구성요소
- 데이터 흐름도 DFD
- 자료사전 DD
- 상태전이도 STD
- 소단위 명세서 Minispec
- 정보공학 방법론
- 기업에서 사용하는 데이터 중심 방법론
- 빠른 결과물 확인이 가능하며 단순 소프트웨어 개발이 아닌 기업의 경영전략에 초점을 둔다.
- 객체지향 개발 방법론
- 현실세계의 개체를 속성과 메서드(행동) 형태로 표현
- 객체 클래스 간의 관계를 식별하여 설계 모델로 변환하는 방법론 - UML
- 분석과 설계, 구현의 전 과정을 객체 중심으로 개발
- 전체 프로세스 방향성 유지와 상속에 의한 재사용성 향상
- 특징: 캡슐화, 정보은닉, 상속, 다형성, 추상화
- CBD(Component Based Development) 분석 방법론
- 재사용 가능한 컴포넌트의 개발 또는 상용 컴포넌트를 조합해 애플리케이션 개발
- 새로운 기능 추가가 쉬운 확장성
- 생산성 및 품질이 향상
- 시스템 유지보수 비용 최소화
- 애자일 방법론
- 기존 방법론들이 절차를 중시한 나머지, 변화에 빠른 대응을 할 수 없다는 단점 개선을 위해 등장
- 개발 방법론 선택 기준
- 프로젝트 특정 및 규모
- 프로젝트 참여자의 수준
- 가용 자원의 정도 - 인력, 장비 시간 비용
- 등등
- 구조적 방법론
- 소프트 웨어 개발 모델
- 폭포수 모델 - waterfall model
- 계획 분석 설계 구현 테스트 운뎡 등 전과정을 순차적으로 접근하는 개발 모델
- 각 단계가 순차적을으로 진행되며 병행되거나 거슬러 반복 진행되지 않는다
- 요구사항의 변경이 어렵다
- 단계별 정의가 분명하고 단계별 산출물이 명확하다
- 프로토타이핑 모델
- 고객이 요구한 주요기능을 프로토타입으로 구현하여 완성해가는 모델
- 개발자가 구출할 소프트웨어의 모델을 사전에 만들어 요구사항을 효과적으로 유도하고 수집한다
- 장점 :
- 사용자의 요구사항을 충실히 반영한다.
- 변경이 용이하다.
- 오류를 초기에 발견할 수 있다.
- 등등
- 단점 :
- 최종적으로 시간과 비용이 훨씬 많이 들 수 있다.
- 사용자가 실제 제품과 혼동할 수 있다.
- 문서 작성이 소홀해질 수 있다.
- 등등
- 나선형 모델 - sprial model
- 폭포수 모델과 프로토타이핑의 모델의 장점을 수용하고 위험분석을 추가한 점증적 모델 개발
- 프로젝트 수행시 발생하는 위험을 관리하고 최소화하려는 것이 목적
- 장점 :
- 분석을 하기 때문에 위험성이 큰 프로젝트를 수행할 수 있다
- 단점 :
- 반복 단계가 길어질 수록 프로젝트 관리가 어렵다
- RAD - Rapid Application Development - 모델
- 매우 짧은 개발 주기를 강조하는 점진적 소프트웨어 개발방식
- 케이스 도구를 이용해 시스템을 개발
- 개발 기간이 60~90일 정도로 짧다.
- 기술적으로 위험이 적고 빠른 개발이 요구될때 사용이 적합
- V 모형
- 폭포수 모델에 시스템 검증과 테스트 작업을 강조
- 4세대 기법 - 4th Generation Techniques
- 요구사항 명세서로부터 원시코드를 자동으로 생성할 수 있게 해주는 모델
- 폭포수 모델 - waterfall model
- 애자일 방법론
- 개념
- 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발방식
- 작동하는 소프트웨어의 작은 구성요소를 신속하게 제공
- 경량 프로세스라고도 함
- 등등
- 등장 배경
- 기존 소프트웨어 개발방법론의 문제점을 개선하기 위해 등장
- 등등
- 애자일 선언문
- 공정과 도구보다 개인과 상호작용을
- 포괄적인 문서보다 작동하는 소프트웨어를
- 계약 협상보다는 고객과의 협력을
- 변화에 대응하기를
- 등등
- 특징
- 고객과 개발자의 지속적인 소통을 통하여 변화하는 요구사항을 신속하게 수용
- 고객의 의견을 가장 우선
- 변화에 유연하게 대처
- 등등
- 종류
- XP(eXtream Programming)
- 특징
- 문서보다는 코드를 중시하고, 5가지 핵심가치와 12개 실천항목이 존재
- 등등
- 5가지 핵심 가치
- 용기
- 존중
- 의사소통
- 피드백
- 단순성
- 12가지 실천사항
- 짝 프로그래밍 pair programming
- 계획 세우기 Planning Game
- 테스트 기반 개발 Test Driven Development
- 고객 상주 Whole Team
- 지속적인 통합 continuous integration
- 코드 개선 design improvement
- 작은 릴리즈 small releases
- 코딩 표준 coding standards
- 공동 코드 소유 collective code ownership
- 간단한 디자인 simple design
- 시스템 메타 포어 system metaphor
- 작업시간 준수 sustainable pace
- 특징
- 스크럼 SCRUM
- 특징
- 소프트웨어에 포함될 기능 개선점에대한 우선순위를 부여
- 항상 팀단위로 생각하고, 날마다 15분 정도의 회의
- 개발 주기는 30일 정도로 조절하고 개발 주기마다 실제 동작할 수 있는 결과를 제공
- 주요 개념
- 제품 백로그
- 개발할 제품에 대한 요구사항 목록
- 스프린트
- 반복적인 개발주기
- 1~3주의 짧은 기간을 목표로 설정
- 스프린트 계획 회의
- 스프린트 목표와 스프린트 백로그를 계획하는 회의
- 스프린트 백로그
- 각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록
- 일일 스크럼 회의
- 실행 가능한 제품
- 제품 책임자
- 제품 백 로그를 정의하여 우선순위를 정해준다
- 스크럼 마스터
- 프로젝트 관리자
- 등등
- 제품 백로그
- 특징
- 그 외 애자일 방법론
- 크리스털
- 프로젝트의 규모와 영향의 크기에 따라서 여러 종류의 방법론 제공
- 기능주도개발 FDD Feature Driven Development
- feature 마다 2주 정도의 반복 개발을 실시
- 신규 기능 단위로 하는 개발 방법론
- Adaptive Software Development
- 합동 애플리케이션 개발을 사용하는 방법론
- 등등
- Lean
- 도요타 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론
- 크리스털
- XP(eXtream Programming)
- 개념
- IT 서비스 관리
- SLM - Service Level Management
- IT서비스의 품질을 높이는 일련의 관리 및 활동
- SLA - Service Level Agreement
- 서비스 수준을 명시적으로 정의한 문서
- ITSM - Information Technology Service Management
- 서비스 수준(SLA) 에 맞는 IT 서비스를 제공하는 것
- ITIL - IT Infrastructure Library
- IT 서비스를 쉽게 제공하고 관리할 수 있는 가이드 혹은 프레임워크
- ITSM 을 실현하는 도구 또는 방법
- SLM - Service Level Management