5. 정보시스템 구축 관리
5.1.1 소프트웨어 개발 방법론 활용 능력 단위 정의
5.1.2 소프트웨어 개발 방법론 선정
- 소프트웨어 개발 방법론 활용 능력 단위 정의
소프트웨어 개발 방법론 활용이란 응용소프트웨어 특성에 따라 정형화된 개발방법론을 선정하고, 프로젝트 특성에 맞도록 테일러링 하여 응용소프트웨어 개발에 활용하는 능력이다.
- 소프트웨어 개발 방법론 선정
1. 소프트웨어 개발 생명 주기 모델
1.1 소프트웨어 개발 생명주기 정의
소프트웨어를 어떻게 개발할 것인가에 대한 추상적 표현으로 순차적 또는 병렬적 단계로 구성되며 개발 모델 또는 소프트웨어 공학 패러다임으로 정의한다.
SDLC는 타당성검토 -> 분석 -> 설계 -> 개발 -> 테스트 -> 운영 -> 유지보수 -> 폐기단계로 생명주기를 가진다.
1.2 소프트웨어 개발 생명주기 특징
개발 생명주기의 각 단계에 관련된 활동들이 정의되어 있음
단계별 활동들을 통해 다음 단계에 활용될 수 있는 산출물이 작성됨
전체 프로젝트의 비용 산정과 개발 계획을 수립할 수 있는 기본 골격제시
참여자들 간에 의사소통의 기준과 용어의 표준화를 가능하게 함
문서화가 충실한 프로젝트 관리를 가능하게 함
1.3 소프트웨어 개발 생명주기 모델의 유형
1. 폭포수 모델
정의 : 검토 승인을 거쳐 순차적 하향식으로 개발이 진행되는 생명주기 모델
장점 : 이해하기 쉬움
단점 : 요구도출 어려움
2. 프로토타입 모델
정의 : 핵심적인 기능을 먼저 만들어 평가한 후 구현하는 점진적 개발 방법
장점 : 요구사항 도출용이, 시스템 이해용이, 의사소통 향상
단점 : 사용자의 오해, 폐기되는 프로토타입 존재
3. 나선형 모델
정의 : 폭포수와 프로토타입 모델 장점에 위험분석을 추가한 모델
장점 : 점증적인 개발로 실패할 위험감소, 테스트 용이
단점 : 관리가 복잡
4. 반복 점증적 모델
정의 : 시스템을 여러번 나누어 Release 하는 방법
장점 : 위험의 조기 발견 및 최소화 전략 구현 가능
단점 : 관리 어려움
5. RAD
정의 : 짧은 개발주기 동안 소프트웨어를 개발하기 위한 순차적 프로세스 모델
장점 : 요구사항 이해와 범위의 명확한 설정 시 신속하고 완전한 기능 구현 가능
단점 : 기술적 위험 높을 경우 부적합, 적절한 모듈화 필수, 책임감 있는 구성원 필요
2. 소프트웨어 개발 방법론
소프트웨어 공학 원리를 소프트웨어 개발 생명주기에 적용한 개념으로 정보시스템 개발을 위한 작업 활동, 절차, 산출물, 기법 등을 체계적으로 정리한 것을 의미한다.
2.1 SW개발 방법론의 구성
SW개발방법론은 시스템의 종류, 프로세스, 조직, 사람, 문화에 따라 다르게 선정되어야 한다.
2.2 SW개발 방법론의 유형
1. 전통적인 개발 방식
정의 : 검토/승인을 거쳐 순차적 하향식으로 개발이 진행되는 생명주기 모델
장점 : 이해하기 쉬움, 다음단계 진행 전에 결과 검증, 관리용이
단점 : 요구도출 어려움, 설계/코딩/테스트 지연가능 , 문제발견 지연
2. Agile방법론
정의
절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응, 효율적인 개발, 주위 변화수용, 능동적으로 대응하는 개발 방법론
특징
변화대응 : 계획준수 보다 환경 변화에 즉시 대응
동작소프트웨어 : 포괄적인 문서화, 정형적 프로세스를 지향
고객협력 : 계약협상 중심에서 탈피
개인과 상호작용 : 프로세스나 도구보다는 구성원간의 의사소통 중시
프로세스의 핵심활동
제품 Backlog를 일정 타임박스기간 동안 설계, 개발, 테스트를 수행, 구현된 소프트웨어를 고객에게 시연하며 이해하기 힘든 산출물이 아닌 경우 동작하는 소프트웨어에 의한 확인 수행을 통해 고객 요구사항을 조기에 명확히 하는 활동을 반복 수행한다.
3. 전통적인 소프트웨어 개발 방식과 Agile 개발 방식의 비교
전통적인 개발방식 : 엄격한 프로세스 기반 정형화된 역할 및 활동 강조
Agile 개발 방식 : 프로젝트 관계자간 상호 작용을 중심으로 반복적인 점검과 테스트
3. 소프트웨어와 시스템
3.1 소프트웨어
하드웨어를 동작 시켜 사용자가 작업을 편리하게 수행하도록 하는 프로그램과 자료구조를 의미하는 것으로 프로그램 개발, 운용, 유지보수 관련된 모든 문서와 정보를 포함한다.
소프트웨어 분류
기능에 의한 분류 : 시스템 소프트웨어, 응용 소프트웨어
사용 분야에 의한 분류 : 프로그래밍, 문서, 통신, 분산처리, 멀티미디어, 개발 인공지능
개발 과정 성격에 따른 분류 : 프로토타입, 프로젝트 산출물, 패키지
정보처리 방법에 따른 분류 : 일괄처리, 온라인, 실시간
3.2 시스템
전체적으로는 통일된 하나의 개체를 형성하면서 각각의 고유기능을 수행하고 그들의 공통적 목표를 달성하기 위해 상호 작용하는 요소들의 집합이다.
시스템의 특성
구조적 측면
시스템은 입력 처리 출력의 구조를 갖는다.
시스템은 피드백 구조를 갖는다
시스템은 계층적 구조를 갖는다.
기능적 측면
시스템은 목표 지향적이다
시스템은 상승 작용적이다.
시스템은 자기 제어적이다.
4. 소프트웨어 공학
4.1 소프트웨어 위기
여러가지 원인에 의해 개발 속도가 하드웨어 개발속도를 따라가지 못해 소프트웨어에 대한 사용자들의 요구사항을 처리할 수 없는 문제가 발생함을 의미한다.
1. 소프트웨어 위기의 발생원인
소프트웨어 특징에 대한 이해 부족 : 논리적인 소프트웨어 특징을 이해하지 못함
소프트웨어 관리 부재 : 소프트웨어 관리를 소홀히 하여 효율적인 자원 통제가 이루어지지 못했음
프로그래밍에만 치중 : 소프트웨어 품질이나 유지보수는 고려하지 않고, 프로그램만 하려해서 다양하고 복잡해지는 소프트웨어의 요구사항을 처리하지 못함
2. 소프트웨어 문제점
개발 인력 부족과 그로 인한 인건비 상승
성능 및 신뢰성 부족
개발 기간 지연 및 개발 비용 증가
유지보수가 어려워져 비용 증가
소프트웨어의 생산성 저하
소프트웨어 품질 저하
4.2 소프트웨어 공학의 필요성
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문으로 소프트웨어의 품질과 생산성 향상을 목적으로 한다.
소프트웨어 공학의 정의
IEEE 정의 : 소프트웨어의 개발 운용, 유지보수, 폐기 처분에 대한 체계적인 접근 방안
Fairly 정의 : 지정된 비용과 기간 내의 소프트웨어를 체계적으로 생산하고 유지보수 하는 데 관련된 기술적이고 관리적인 원리
Boehm 정의 : 과학적인 지식을 소프트웨어 설계와 제작에 응용하는 것이며 이를 개발 운용, 유지보수 하는데 필요한 문서 작성 과정
4.2 소프트웨어 공학의 기본 원칙
현대적인 프로그래밍 기술을 계속적으로 적용해야 한다.
개발된 소프트웨어 품질이 유지되도록 지속적으로 검증해야 한다.
소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.
'자격증 > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 필기 합격! (0) | 2021.03.10 |
|---|---|
| 정보처리기사 37일차 (0) | 2021.02.19 |
| 정보처리기사 35일차 (0) | 2021.02.13 |
| 정보처리기사 34일차 (0) | 2021.02.12 |
| 정보처리기사 33일차 (0) | 2021.02.11 |