정보처리기사

1. 소프트웨어 공학 개념

nayeonee__ 2023. 3. 28. 08:29

https://www.njobler.net/product/lecture/show/prod/10810

 

1억뷰 N잡

[연장 미포함] 흥나게 합격달성! 정보처리기사 실기

www.njobler.net

본 강의를 듣고 내용을 정리하며 적은 게시글 입니다. 

 

소프트웨어 공학에서 가장 중요한것은 절차이다.

계획 → 요구사항 분석→ 설계 → 구현 → 테스트 → 유지보수

  1. 소프트웨어 공학
    1. 소프트웨어 공학의 정의
      1. 소프트웨어 위기를 극복하고 효율적으로 품질 높은 소프트웨어를 개발하기 위한 학문
    2. 소프트웨어의 위기의 원인
      1. 소프트웨어 특성에 대한 이해 부족
      2. 관리방법론 부재
      3. 전문적 교육 부족
      4. 등등
    3. 위기의 결과
      1. 개발인력 부족과 인건비 상승
      2. 성능 및 신회성 부족
      3. 생산성 저하
      4. 품질저하 및 유지보수 비용 증가
  2. 소프트웨어 공학의 3R
    1. 소프트웨어 공학의 3R 정의
      1. 완성된 소프트웨어를 기반으로 역공학, 재공학, 재사용을 통해 소프트웨어의 생산성을 극대화 하는 기법
    2. 3R의 필요성
    3. 역공학 - Reverse Engineering
      1. 기존 개발된 시스템을 CASE 도구를 이용하여 요구분석서, 설계등의 문서로 추출하는 작업
      2. 개발단계를 역으로 올라가 기존개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서등을 도출하는 작업
      3. 특징
        1. 상용화되거나 기 개발된 소프트웨어의 분석을 도와줌
        2. 유지보수성 향상
    4. 재공학 - Re Engineering
      1. 소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지보수의 생산성으로 해결하는 방법
      2. 특징
        1. 소프트웨어의 유지보수성과 품질을 향상
        2. 부작용 미리발견해 위험부담 제거, 복구비용 절감
        3. 예방 유지보수 측면에서 소프트웨어 위기 해결
      3. 과정
        1. 분석
        2. 재구성
        3. 역공학
        4. 이관
    5. 재사용 Reuse
      1. 이미 개발되어 있는 소프투웨어의 전체 또는 일부분을 다시 사용
      2. 재사용 범위
        1. 함수와 객체 재사용 : 클래스나 함수 단위로 구현한 소스코드를 재사용
        2. 컴포넌트 재사용
        3. 애플리케이션 재사용
      3. 재사용 방법
        1. 합성중심 : 끼워 맞추어 소프트웨어를 완성시키는 방법
        2. 생성중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법
  3. 소프트웨어 개발단계

계획 → 요구사항 분석→ 설계 → 구현 → 테스트 → 유지보수

 

  1. 계획
    1. 무엇을 개발할 것인지 명확하게 정의
    2. 개발범위 결정
    3. 시스템 성격파악하여 비용과 기간을 예측
  2. 요구사항 분석
    1. 개발할 소프트웨어의 기능과 제약조건, 목표등을 고객과 함께 정의
    2. 요구사항의 정확한 이해 및 요구사항 유도
    3. 요구사항에 대한 협상 및 조율
    4. 요구사항의 적합성 검토 및 향후 예측
    5. 현재 실행 환경에대한 분석
  3. 설계
    1. 시스템이 어떻게 동작하는 지를 정의
    2. 설계 구분
      1. 시스템 구조 설계 : 모듈 간의 관계와 구조 설계
      2. 프로그램 설계 : 각 모듈의 처리절차나 알고리즘 설계
      3. 사요자 인터페이스 설계 : 사용자가 시스템을 사용하기 위해 보여지는 부분을 설계
  4. 구현
    1. 프로그래밍 언어를 이용하여 실제로 프로그램을 작성
    2. 코딩과 디버깅이 이루어지면, 단위(모듈) 테스트를 진행
  5. 테스트
    1. 구현된 소프트웨어가 요구사항을 만족하는지 검사
    2. 실행결과가 예상 결과와 맞는지 검사하고 평가
    3. 테스트 계획, 통합 테스트 결과서 등을 작성
  6. 유지보수
    1. 소프트웨어를 사용하며 문제점을 수정하고, 새로운 기능을 추가
    2. 소프트웨어를 좀더 발전시키는 단계

 

'정보처리기사' 카테고리의 다른 글

6. 소프트웨어 아키텍처  (0) 2023.03.29
5. 소프트웨어 설계의 기본원칙  (0) 2023.03.29
4. 요구사항 분석  (0) 2023.03.29
3. 프로젝트 계획  (1) 2023.03.28
2. 소프트웨어 개발 방법론  (0) 2023.03.28