본문 바로가기
  • (개인)정보보호/최신ICT 정보 공유 블로그
나의 서재/22. 소프트웨어 공학 기본원리

1. 소프트웨어 공학 개요

by 노벰버맨 2021. 11. 14.

1. 소프트웨어

가. 소프트웨어의 정의

-프로그램 외에 프로그램의 개발, 운영, 유지보수 과정에서 생성되는 문서, 데이터 포함

-프로그램 + { 문서, 데이터, 절차 등}

-(프로그램) 컴퓨터에게 작업을 수행시키기 위한 명령들의 집합

 

나. 소프트웨어의 특징

-비가시성

-복잡성

-순응성

-비제조성

-비마모성

-비조립성

 

다. 소프트웨어의 분류

-(응용 소프트웨어), 사용자의 작업을 컴퓨터에게 대신 수행하도록 하는 소프트웨어

경영정보시스템, 교육용 소프트웨어, 게임, 문서 편집기

-(시스템 소프트웨어), 컴퓨터 하드웨어와 응용 소프트웨어 사이에서 개발자가 응용 소프트웨어 개발을 돕는 소프트웨어

OS, 개발 유틸리티, 장치 드라이버

 

2. 소프트웨어 공학

가. 소프트웨어 위기

-소프트웨어 개발과 관련하여 발생한 다양한 문제점들을 지칭하는 용어

(다양한 문제점들의 유형)

-새롭고 다양한 분야에서의 소프트웨어에 대한 사용자 요구사항

-더욱 커지고 복잡해진 소프트웨어 요구사항

-개발 비용 초과 및 일정 지연

-소프트웨어 성능 및 품질 저하

-유지보수 어려움에 따른 비용 증가

 

나. 소프트웨어 공학의 정의

-실 세계에서 소프트웨어 위기를 극복하고 문제 해결을 위해 소프트웨어 개발 과정에 과학적인 원리를 체계적으로 적용하는 학문 분야

 

다. 소프트웨어 공학의 특징

-과학적인 원리를 체계적으로 적용하는 학문

-설계, 제작, 신뢰성 검증, 품질 관리 등 공학적 기법 적용

-소프트웨어 개발, 운영, 유지보수를 위해 체계적, 통제적, 정량적 접근 방법 적용

 

(체계적) 방법이나 프로세스를 적용하여 체계적 개발

(통제적) 계획에 따라 모니터링하고 제어, 관리

(정량적) 객관적 측정이나 평가를 위해 정량적인 방법 적용

 

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

구성요소 특징 설명
절차 -검증된 프로세스 반복 적용
-관리 기반 제공
-개선 및 자동화
-의사소통
-소프트웨어를 개발하기 위한 일련의 순차적인 활동
-검증된 프로세스 반복 적용
-관리를 위한 기반 구조 제공 및 일정 지연 또는 비용 초과를 관리할 수 있는 실마리 제공
-프로세스 개선 또는 자동화 가능
-의사소통을 위한 용어 표준화 가능
방법 -구조적
-정보공학
-객체지향
-애자일
-컴포넌트 기반
-정형화
-(구조적 방법론), 기능 중심 분할, 하향식 설계
-(정보공학 방법론), 데이터 중심의 분석/설계에 의한 데이터 모델링 중시
-(객체지향 방법론), 데이터와 행위를 묶어 객체로 정의
-(애자일 방법론), 문서, 프로세스, 도구 사용보다 고객과의 상호작용에 중점
-(컴포넌트 기반 방법론), 독립적으로 개발, 배포 가능한 컴포넌트 중심으로 시스템 개발
-(정형화 방법론), 안전성이 중요한 시스템의 분석, 설계를 명세하기 위해 수학적인 이론에 기초
도구 -CASE -분석, 설계, 개발, 테스트, 유지보수와 같은 소프트웨어 개발 지원
-문서화 작업 지원
-프로세스 자동화 지원
-소프트웨어 품질과 생산성 향상 기대

 

'나의 서재 > 22. 소프트웨어 공학 기본원리' 카테고리의 다른 글

3.2 위험 관리  (0) 2021.11.20
3.1 소프트웨어 측정  (0) 2021.11.20
3. 프로젝트 관리  (0) 2021.11.20
2.1 SW 유지보수 카테고리  (0) 2021.11.19
2. 소프트웨어 개발 프로세스  (0) 2021.11.15

댓글