[정보처리기사실기] 소프트웨어 방법론 / 개발 모델 / 애자일 방법론 / IT서비스

    반응형

    1과목. 소프트웨어 구축

    📒 02. 소프트웨어 개발 방법론


    1. 소프트웨어 개발 방법론 종류

    (1) 구조적 방법론

    - 절차지향적인 소프트웨어 개발 방법

    - 하향식 개발 방식

    - 제한된 구조 안에서 코드를 생성하고 순차적으로 실행하는 방식

    - 기본 개발 과정 : 요구사항 분석 → 구조적 분석 → 구조적 설계 → 구조적 프로그래밍

    - 구성요소 : 데이터 흐름도(DFD), 자료사전(DD), 상태전이도(STD), 소단위 명세서

    (2) 정보공학 방법론

    - 기업의 주요 부분을 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합하여 적용하는 방법론

    - 데이터 중심의 접근 방식

    (3) 객체지향 개발 방법론

    - 현실 세계의 개체(Entity)를 속성(Attribute)과 메서드(Method)로 표현

    - 객체와 클래스 간의 관계를 식별하고 설계 모델로 변환

    - 상향식 개발 방식

    - 특징 : 캡슐화, 정보은닉, 상속, 다형성, 추상화

    (4) CBD(Component Based Development) 방법론

    - 재사용 가능한 컴포넌트의 개발 또는 상용 컴포넌트를 조합하여 애플리케이션 개발

    - 새로운 기능 추가가 용이한 확장성 제공

    - 특징 : 확장성, 생산성 및 품질 향상, 유지보수 비용 최소화

    (5) 애자일 방법론

    - 변화에 빠르고 유연하게 대응하는 개발 방식

    - 소프트웨어 개발의 민첩성과 효율성 강조

    - 방법론의 종류 : XP(eXtreme Programming), SCRUM, FDD, Crystal 방법론

     

    2. 소프트웨어 개발 모델

    (1) 폭포수 모델(Waterfall Model)

    - 순차적 접근 : 개발 과정이 계획, 분석, 설계, 구현, 테스트, 운영의 순서로 진행

    - 단계별 검증 : 각 단계는 이전 단계가 완료된 후에 시작되며, 다음 단계로 넘어가기 전 검증을 거침

    - 병행 및 반복 진행의 부재 : 한 번 시작된 단계는 이전 단계로 돌아가거나 병행 진행이 허용되지 않음

    - 경험 및 성공사례 : 오래된 모델로, 다양한 성공 사례 존재

    - 요구사항 변경 어려움 : 초기에 설정된 요구사항을 나중에 변경하기 어려움

    - 단계별 명확성 : 각 단계는 명확한 목표와 산출물을 가짐

    - 고객 피드백의 부족 : 고객의 피드백을 적극적으로 받기 어려움

    - 유연성 부족 : 시장이나 기술의 변화에 빠르게 대응하기 어려움

    (2) 프로토타이핑 모델(Prototyping Model)

    - 시제품을 만드는 것으로, 시제품을 완제품으로 만드는 과정

    - 고객이 요구하는 주요 기능을 프로토타입으로 먼저 구현하는 모델

    - 개발자는 프로토타입을 통해 요구사항을 명확히 함

    - 개발된 프로토타입은 폐기되거나 재사용될 수 있음

    - 장점 : 요구사항 변경 용이 및 오류를 초기에 발견하고 수정할 수 있음

    - 단점 : 최종적으로 더 많은 시간과 비용이 소요될 수 있음, 문서화 과정이 소홀해질 수 있음

    (3) 나선형 모델(Spiral Model)

    - 폭포수 모델과 프로토타이핑 모델의 장점을 통합

    - 위험 분석을 추가하여 점증적으로 개발을 진행하는 모델

    - 프로젝트 수행 시 발생할 수 있는 위험을 관리하고 최소화하는 것이 목적

    - 대규모 프로젝트나 위험 부담이 큰 시스템 개발에 적합함

    - 계획 및 요구분석 → 위험분석   개발   사용자 평가의 과정이 계속해서 반복됨

    - 장점 : 높은 위험성을 가진 프로젝트 수행 가능, 요구사항 상세하게 적용할 수 있음

    - 단점 : 개발 과정이 길어지면 시간과 비용이 증가하고 프로젝트 관리가 어려워질 수 있음

    (4) RAD(Rapid Application Development) 모델

    - 매우 빠른 개발 주기를 통해 소프트웨어를 신속하게 제공

    - CASE 도구를 활용하여 개발 효율성을 높임

    - 장점 : 빠른 시장 출시 가능, 사용자 중심의 소프트웨어 개발 지원

    - 단점 : 매우 큰 규모의 프로젝트에는 부적합, 높은 수준의 개발 도구와 전문 인력 필요

    (5) V모형

    - 개발의 각 단계에서 검증과 테스트를 중점적으로 진행

    - 개발 단계마다 해당하는 테스트 단계가 있어 체계적인 품질 관리가 가능함

    - 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트

    - 장점 : 높은 신뢰성이 요구되는 시스템 개발에 적합

    - 단점 : 요구사항 변경에 대응하기 어려움

    (6) 4세대 기법(4th Generation Techniques)

    - 요구사항 명세서를 기반으로 소프트웨어 코드를 자동으로 생성

    - 4세대 언어(4GL)와 같은 고급 프로프래밍 언어와 도구 사용

     

    3. 애자일(Agile) 방법론

    (1) 개념

    - 신속하고 반복적인 작업을 통해 지속적으로 작동 가능한 소프트웨어를 개발하는 방식

    - 작은 구성요소를 빠르게 제공하고, 애자일 개발을 가능하게 하는 다양한 방법론의 집합

    - 경량(Lightweight) 프로세스라고도 함

    (2) 등장배경

    - 과도한 문서 작성, 계약과 계획 준수에 중점 등 기존의 방법론이 가진 문제점을 해결하기 위해 등장

    (3) 애자일 선언문

     

    공정과 도구보다 개인과 상호작용을
    포괄적인 문서보다 작동하는 소프트웨어를
    계약 협상보다 고객과의 협력을
    계획을 따르기보다 변화에 대응하기를

    우리는 왼쪽 항목의 가치를 인정하면서도
    오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.

     

    (4) 애자일 방법론 종류

    1) XP(eXtream Programming)

    ① 5가지 핵심가치 (의사 선생님, 약 주실 때 피존 용기아서 주세요)

    - 의사소통 : 개발자, 관리자, 고객 간의 원활한 의사소통

    - 피드백 : 의사소통에 따른 즉각적인 피드백

    - 존중 : 개발자의 역량을 존중하고 충분한 권한과 권리를 부여

    - 용기 : 고객의 요구사항 변화에 능동적인 대처

    - 단순성 : 부가적 기능, 사용되지 않는 구조와 알고리즘 배제

     

    ② 12가지 실천사항

    - 짝 프로그래밍, 계획 세우기, 테스트 기반 개발, 고객 상주, 지속적인 통합, 코드 개선, 작은 릴리즈, 코딩 표준, 공동 코드 소유, 간단한 디자인, 시스템 메타포어, 작업시간 준수


    2) 스크럼(Scrum)

    ① 특징

    - 소프트웨어에 포함될 기능, 개선점에 대한 우선순위를 부여

    - 개발 주기는 30일 정도로 조절하고 개발 주기마다 실제 동작할 수 있는 결과를 제공

     

    주요 개념

    - 제품 백로그(Product Backlog) : 개발할 제품에 대한 요구 사항 목록(기능명세)

    - 스프린트(Sprint) : 반복적인 개발 주기, 1~4주의 짧은 기간을 목표로 함

    - 스프린트 계획 회의(Sprint Planning Meeting) : 스프린트 목표와 스프린트 백로그를 계획하는 회의로 스프린트 백로그가 도출됨

    - 스프린트 백로그(Sprint Backlog) : 각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록

    - 일일 스트럼 회의(Daily Scrum Meeting) : 날마다 진행되는 15분 정도의 미팅

    - 실행 가능한 제품(Shippable Product) : 스프린트의 결과로써 나오는 실행가능한 제품

     


    3) 그 외

    ① 크리스털(Crystal)

    - 프로젝트의 규모와 영향의 크기에 따라서 여러 종류의 방법론 제공

     

     FDD(Feature-Driven Development)

    - Feature마다 2주 정도의 반복 개발 실시

    - 신규 기능 단위로 하는 개발 방법론

     

    ③ ASD(Adaptive Software Development)

    - 합동 애플리케이션 개발을 사용하는 방법론

     

    ④ 린(Lean)

    - 도요타 린 시스템 품질기법으로, 낭비 요소를 제거하여 품질을 향상한 방법론

     

    4. IT 서비스 관리

    (1) SLM(Service Level Management)

    - 서비스 수준을 정량적으로 측정하고, 미흡한 부분을 개선하는 관리 활동

    - 지속적 개선을 통해 고객 만족도를 높이고, 서비스 제공의 효율성을 개선함

    - SLM은 SLA에 명시된 기준을 기반으로 서비스 품질을 관리함

    (2) SLA(Service Level Agreement)

    - 소프트웨어 수요자와 공급자 간의 서비스 수준을 명시적으로 정의한 문서

    (3) ITSM(Information Technology Service Management)

    - 최종 사용자를 위한 IT 서비스를 구현, 전달, 관리하는 일련의 정책과 관행

    - 기술 중심에서 벗어나 서비스 중심과 비즈니스 중심으로 재설계

    - ITIL을 기반으로 함

    (4) ITIL(IT Infrastructure Library)

    - IT 서비스를 쉽게 제공하고 관리할 수 있는 가이드 또는 프레임워크

    - ITSM을 실현하기 위한 도구나 방법을 제공 (=설명서)

    - 효과적인 IT 서비스 제공을 지원

     

     

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

     

     

    반응형

    댓글