본문 바로가기
IT기술노트/소프트웨어공학

소프트웨어공학(Software Engineering)

by 비트코기 2021. 1. 25.

과학은 지식을 관찰, 공학은 관찰된 지식 또는 문제를 해결하는 방법


I. 과학적 지식을 소프트웨어 설계와 개발에 응용, 소프트웨어 공학의 개요

가. 소프트웨어 공학(Software Engineering)의 정의

   - 소프트웨어 개발, 운용, 유지보수에 대해 체계적이고 한정적인 접근 방법으로 소프트웨어 위기 극복을 위해 소프트웨어에 공학을 적용한 접근 방법

나. 소프트웨어 공학의 필요성

   - 무형성, 진화성, 복잡성등의 특징과 제조가 아닌 개발 과정이므로 일반 제조공정보다 측정과 관리 어려움

   - 잦은 요구사항 변경, 사람의존 개발 특성으로 개발 규모에 따라 인력, 비용, 의사소통, 복잡도 등이 기하급수적으로 증가

   - 요구사항 변경, 주변환경 변화에 따라 수정되고 진화 필요

   - 최종 산출물이 개발 과정에서 확인되지 않아, 오류 발견 시기가 늦어져 프로젝트 지연 및 실패 가능

다. 소프트웨어 공학의 목적

   - 고품질 소프트웨어의 생산, 소프트웨어 생산 프로세스 개선

   - 사용자 만족도의 극대화, 적정비용, 기간, 자원으로 소프트웨어 생산


II. 소프트웨어 공학의 구성요소

구성요소

내용

사례

방법 (Method)

목표로 하는 결과를 얻기 위해 적용하는 기법과 절차
SW
설계, 구현, 테스트, 유지보수 작업의 효율적 수행방법 연구

구조적 분석/설계 방법
객체지향 분석/ 설계 방법

도구

(Tool)

효율적이고 생산성과 품질을 높이며 작업 용이성을 극대화 하기 위한 기구 및 자동화된 시스템

설계 도구, 테스트 도구
프로그래밍 도구

프로세스

(Process)

기법과 도구를 이용하여 효율적으로 진행 할 수 있는 순서

RUP, XP

패러다임

(Paradigm)

스타일과 유사하며 접근 방향과 철학을 의미
소프트웨어 개발 패러다임은 여러가지 엔지니어링 스타일 유형 존재

구조적 방법론
객체지향 방법론


III. 소프트웨어 공학의 프로세스

단계

관점

설명

정의단계

무엇 (What)

- 처리되는 정보, 성능과 기능, 인터페이스, 설계 제약 조건, 검증 기준 등을 기술하는 단계
-
소프트웨어의 주요 요구사항 결정 단계

개발단계

어떻게 (How)

- 데이터 구조화, 소프트웨어 기능 및 설계, 개발, 테스트에 대해 기술하는 단계
-
소프트웨어 설게, 코드생성, 소프트웨어 테스트 단계

지원단계

변화 (Change)

- 오류수정, 소프트웨어 사용환경 변화에 따른 변화, 사용자 요구에 따른 변경 수행
-
기존 소프트웨어의 성질은 변화시키지 않은 범위에서 적용

반응형

'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글

RAD(Rapid Applicatoin Development)  (0) 2021.01.25
반복적 개발 모델(Iteration Model)  (0) 2021.01.25
나선형 모델(Spiral Model)  (0) 2021.01.25
프로토타이핑 모델  (0) 2021.01.25
V 모델  (0) 2021.01.25
폭포수 모델(Waterfall Model)  (0) 2021.01.25
SWEBOK(Software Engineering Body of Knowledge)  (0) 2021.01.25
소프트웨어(Software)  (0) 2021.01.25

댓글