- Published on
CH1. 소프트웨어 공학 개요
- Authors

- Name
- seren-wib
Contents
- 1. 소프트웨어 공학의 기초
- 1.1 소프트웨어란 무엇인가?
- 프로그램 VS 소프트웨어
- 1.2 소프트웨어 분류
- 시스템 소프트웨어
- 유틸리티 소프트웨어(서비스 프로그램)
- 응용 소프트웨어
- 1.3 Code-and-Fix 모델과 소프트웨어공학의 필요성
- 1.4 소프트웨어공학이란?
- 1.5 소프트웨어 개발 생산성에 영향을 주는 핵심 요소
- PPT(People, Process, Technology) 프레임워크
- 1.6 소프트웨어 개발 생명주기
- 1.6.1 소프트웨어 개발 생명주기란?
- 1.6.2 소프트웨어 개발 생명주기 적용의 이점 (프로젝트 관리자, 개발자 측면)
- 관리자 측면
- 개발자 측면
1. 소프트웨어 공학의 기초
1.1 소프트웨어란 무엇인가?
- 시스템 = 하드웨어 + 소프트웨어
- 소프트웨어 = 특정 목적을 수행하는데 필요한 사용지침, 데이터, 프로그램, 관련 문서를 통틀어 말함.
- 소프트웨어의 특징: 무형, 비가시성, 복잡성, 비정형성
프로그램 VS 소프트웨어
- 프로그램: 명령어의 집합
- 소프트웨어: 프로그램을 포함한 절차, 데이터, 지침의 집합
1.2 소프트웨어 분류
하드웨어 ← 시스템 SW (유틸리티는 이 안의 일부) ← 응용 SW ← 최종사용자
시스템 소프트웨어
- 사용자와 하드웨어 사이에서 상호작용하는 소프트웨어
- OS, 펌웨어, 로더, 링커 같은거
유틸리티 소프트웨어(서비스 프로그램)
- 시스템 최적화, 유지관리, 분석 서비스 제공
- 시스템 소프트웨어의 일부, 컴퓨터가 계속 실행되는 동안 백그라운드에서 작업함
- 백신, 최적화 프로그램 같은거
응용 소프트웨어
- 시스템 소프트웨어 위에서 돌아가는 소프트웨어
- 최종 목표를 도와주는 프로그램
- 워드, dbms, 브라우저 등등
1.3 Code-and-Fix 모델과 소프트웨어공학의 필요성
- Code-and-Fix: 계획없이 코드부터 짜고 나중에 코드따라 문서 작성하는 방식
- 위 방식으로 코드짜면 개발 지연, 비용 손실, 품질 저하, 낮은 신뢰성, 인수인계 어려움, 유지보수 어려움과 같은 문제 발생
- 소프트웨어의 위기 특징 4개: 양, 질, 비용, 마감 지연
1.4 소프트웨어공학이란?
- IEEE 정의: 소프트웨어 생애 주기인 계획수립, 개발, 전개, 유지보수, 폐기의 모든 공정에 대한 효율적이고 체계적인 관리 방법론
- SESC(Software Engineering Standards Committee)
1.5 소프트웨어 개발 생산성에 영향을 주는 핵심 요소
PPT(People, Process, Technology) 프레임워크
- 인력
- 기술
- 프로세스
1.6 소프트웨어 개발 생명주기
1.6.1 소프트웨어 개발 생명주기란?
SDLC: 계획수립 → 요구사항분석 → 설계 → 개발(구현) → 테스트 → 전개 및 유지보수
1.6.2 소프트웨어 개발 생명주기 적용의 이점 (프로젝트 관리자, 개발자 측면)
관리자 측면
- 프로젝트 관리가 편리하고 책임 중복 회피 가능
- 자원 관리 용이, 비용 효율성
- 문제점을 명확히 인지
- 충분한 테스트를 거칠 수 있다.
- 개발자가 중도 이탈해도 큰 손실이 없다.
개발자 측면
- 명확한 작업일정.
- 장애 발생시 문제가 해결될 때 까지 동일 절차를 따를 수 있다.