[정보처리기사_필기] 소프트웨어 공학 <1>

반응형

■ 소프트웨어와 시스템


  ✔ 소프트웨어 : 문서까지 포함


  ✔ 소프트웨어 특성

    - 독창적이 아니라 대중적이여야 한다.

    - 무조건 간결한게 좋은건 아니다, 최소한의 기능은 갖춰야 함


  ✔ 소프트웨어를 문서화 했을때 얻는 이득

    - 시스템 개발의 분석과 설계가 용이

    - 프로그램 유지보수 용이

    - 프로그램의 확장성

    - 인수 인계가 용이


  ✔ 시스템

    - H/W + S/W + 절차


  ✔ 시스템의 구성 요소

       |------제어------|

    - 입력 -> 처리 -> 출력

       ↑←← 피드백 ←←↓


■ 소프트웨어 공학


  ✔ 공학의 의미

    - 경제성

    - 적시성

    - 보편 타당성(독창적 x)


  ✔ 등장 배경(소프트웨어 위기론)

    - 소프트웨어 비용 증가

    - 소프트웨어의 발전이 느리다

    - 개발자 부족

    - 소프트웨어 유지보수비용이 개발비를 능가


■ 소프트웨어 생명 주기(SDLC)


  ✔ 개념

    - 소프트웨어 개발을 위해 정의, 운용, 유지보수

    - 비용산정과 개발계획 수립이 가능


  ✔ 생명주기

    - 정의단계(What) : 타당성 검토 -> 계획 -> 요구사항 분석

    - 개발단계(How): 설계 -> 구현 -> 테스트

    - 유지보수 단계 : 가장 많은 시간과 비용


  ✔ 소프트웨어 생명 주기 모형

    - 폭포수 모형(Waterfall)

      ➤ 앞 단계가 확실히 끝나야 다음 단계로 넘어간다 -> 이상적,원론적

      타당성 검토 -> 계획 (비용,시간 ,인력) -> 요구분석 -> 설계 -> 구현 -> 테스트 -> 유지보수(오류수정, 기능향상)

      ➤ 단점 : 새로운 요구 반영이 어렵다

    - 프로토타입 모형(Prototype)

      ➤ 사용자 요구 반영이 용이

      요구수집 -> 빠른 설계 -> 프로토타입(모델하우스)구축 -> 고객평가 -> 조정 -> 구현

    -  나선형 모형(Spiral)

      ➤ Boehm이 제안한 작업

      ➤ 대규모 프로젝트에 사용

      Planning -> Risk Analysis -> Engineering -> Customer Evaluation -> Planning -> ............반복적 수행

      ➤ 오류률 : 소프트웨어 변경시 일시적 급증

댓글

Designed by JB FACTORY