[정보처리기사실기] 소프트웨어 공학 3R / 개발 단계

    반응형

    1과목. 소프트웨어 구축

    📒 01. 소프트웨어 공학 개념


    1. 소프트웨어 공학

    (1) 소프트웨어 공학의 정의 ⭐

    - 소프트웨어 위기를 극복하고 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문

    - 품질 좋은 소프트웨어를 빠른 시간 안에 만드는 것

    (2) 위기의 원인

    - 특성에 대한 이해 부족

    - 올바른 설계 등한시함

    - 개발에 대한 전문적 교육 부족

    (3) 위기 결과

    - 성능 및 신뢰성 부족

    - 개발 기간 및 비용의 증가

    - 생산성 저하

     

    2. 소프트웨어 공학의 3R

    - 역공학, 재공학, 재사용을 통해 생산성을 극대화하는 기법

    (1) 역공학(Reverse Engineering)

    - 이미 개발된 시스템을 분석하여 문서를 추출하는 작업

    - 개발 단계를 역순으로 거슬러 올라가면서 기존의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 과정

    (2) 재공학(Re-Engineering)

    - 유지보수의 생산성을 통해 소프트웨어의 위기를 극복하기 위한 방법

    - 기존 소프트웨어를 폐기하지 않고, 기능을 개선하거나 새로운 소프트웨어로 재활용하는 공법

    - ex) 건물이 있으면 전부 다 보수하는 게 아니라 특정 부분만 보수

    - 재공학 과정 : 분석 → 재구성  → 역공학 → 이관

    (3) 재사용(Reuse)

    - 이미 개발된 소프트웨어의 전체 또는 일부를 다시 사용하는 것

    - 재사용 범위 : 함수와 객체, 컴포넌트, 애플리케이션

    - 재사용 방법 : 합성 중심(끼워맞추는 것), 생성 중심(추상화)

     

    3. 소프트웨어 개발 단계

    (1) 계획(Planning)

    - 개발할 내용의 명확한 정의

    - 비용 및 기간 예측

    (2) 요구사항 분석(Requirements Analysis)

    - 소프트웨어의 기능, 제약조건, 목표 정의

    - 요구사항의 정확한 이해 및 유도

    (3) 소프트웨어 설계(Design)

    - 시스템의 동작 방식 정의

    - 요구사항 분석을 바탕으로 입력자료, 처리내용, 출력자료 등 정의

    - 분석한 것을 그림으로 그리는 것 (=모델링)

    - 시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계

    (4) 구현(Development)

    - 프로그래밍 언어를 사용하여 실제 프로그램 작성

    - 코딩, 디버깅, 단위 테스트 진행

    (5) 테스트(Test)

    - 구현된 소프트웨어가 요구사항을 만족하는지 검사

    - 실행 결과의 정확성 검증 및 평가

    (6) 유지보수(Maintenance)

    - 사용 중 발견된 문제 수정, 새로운 기능 추가

    - 소프트웨어의 지속적 개선

     

    더보기

    SI - 개발에 특화된 집단

    에이전시 - 디자인에 특화된 집단

    SM - 유지보수에 특화된 집단

     

    참고자료

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

    1억뷰 N잡

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

    www.njobler.net

     

     

    반응형

    댓글