1. 소프트웨어 (Software)
ㅇ 컴퓨터 하드웨어를 동작하고 제어하는 역할을 하는 명령어 집합
ㅇ 구분
- 응용 소프트웨어 : 다양한 응용에 사용하기 위해 특별히 제작된 소프트웨어들
- 시스템 소프트웨어 : 하드웨어 및 응용소프트웨어 중간에 위치
. 운영체제 : 하드웨어와 직접 상호작용, 프로그램에 공통적인 서비스 제공
. 유틸리티 소프트웨어 : 기본적인 활동을 수행하며 운영체제 기능을 확장시켜줌
. 시스템 데몬 : 백그라운드에서 계속 실행 상태를 유지하는 프로세스
. 언어 번역 프로그램 : 컴파일러, 어셈블러, 인터프리터, 디버거 등
2. 소프트웨어 공학 (Software Engineering)
ㅇ 대규모/복잡한 소프트웨어 시스템의 개발시에,
- 그 지침이 되는 원리들을 모색하는 컴퓨터과학의 한 분야
ㅇ 소프트웨어 공학의 대상
- 주로, 소프트웨어의 설계, 품질, 테스트를 다룸
- 이외에도, 프로그래머 인력 관리, 프로젝트 관리 등 경영과학적인 것도 포함될 수 있음
ㅇ 소프트웨어 공학의 목표
- 더 큰 규모의 재사용을 통한 생산성 및 품질 향상,
- 빠른 응용 개발을 통한 시장경쟁력 강화 등
3. 소프트웨어 개발 패러다임 및 시대적 변화
ㅇ 1970년대 : 구조적 프로그래밍, 하향식 설계
- 기능, 절차 중심의 개발 방식
ㅇ 1980년대 : 객체지향 방법론
- 코드 재사용성, 수정 용이성 등
ㅇ 2000년대 : 컴포넌트 기반 방법론
ㅇ 2010년대 : 서비스 지향 방법론
4. [참고사항]
ㅇ 애자일 개발 방식
- 작은 단위로 구현과 테스트를 반복하는 개발 방식