본문 바로가기
컴퓨터 일반

4. 소프트웨어공학 - 소프트웨어공학의 개념

by 쬑께께 2026. 1. 22.

(104)

소프트웨어 공학의 역사

1960년대 - IBM 360/OS 개발 시 소프트웨어 위기 인식 시작
- Dijkstra, GOTO문의 유해성 주장
- 1968년 NATO에서 '소프트웨어 공학' 탄생
1970년대 - 소프트웨어 생명주기와 개발도구의 제안
- 1973년 IEEE, 소프트웨어 신뢰성과 공학기법에 관한 심포지엄
1980년대 - 소프트웨어 공학의 개념 정립
- 소프트웨어 개발 생명주기와 비용 모형이 제안됨
- 구조적 방법, Jackson방법, Warnier - Orr 방법 등 분석 ⋅ 설계 방법들의 활용, 시험 ⋅ 유지보수 ⋅ 프로젝트 관리 ⋅ 개발환경 등 소프트웨어 개발 기술의 발전
- 객체지향 분석 ⋅ 설계 ⋅ 프로그래밍 ⋅ 4세대 언어, 소프트웨어 재사용, CASE, 피플웨어, 정보공학, 품질보증, 형상관리, 프로토타이핑 등으로 개발 및 관리
1990년대 - 객체지향, 정보공학, CASE 등의 활용 단계
- 분산 객채지향 소프트웨어 구조 및 설계

 

(106)

프로토타이핑 모형 단점

- 사용자가 설계 제품과 혼동할 수 있음

- 비효율적인 알고리즘이나 언어로 구현될 수 있음

- 프로토타입은 임시로 만드는 것이기에 중간 과정을 점검할 수 있는 계획표나 결과물 자체가 없음

 

(107) V모형 다음

4세대 기법(4th Generation Techniques)

- 순서: 요구사항 수집 -> 설계전략 -> 4GL을 사용한 구현 -> 검사

- CASE를 비롯한 자동화 도구들을 이용해 요구사항 명세서로부터 실행코드를 자동으로 생성할 수 있게 해주는 방법

- 4GT 도구들은 사람이 사용하는 고급언어 수준에서 요구사항이 명세되면 실행될 수 있는 제품으로 전환을 가능하게 함

 

RAD(Rapid Application Development) 모형

- 매우 짧은 개발 주기를 강조하는 점진적 소프트웨어 개발 방식

- 빠른 개발을 위해 컴포넌트 기반으로 소프트웨어 개발, 재사용이 가능한 프로그램 컴포넌트의 개발을 강조

- 요구파악이 잘 되고 프로젝트 범위가 한정된다면 60 - 90일 내에 완벽한 시스템 개발이 가능

- 프로토타이핑 방식을 근간으로 사용자의 적극적인 참여를 유도해 신속하고 효과적인 시스템 개발

- 재사용 가능한 프로그램 컴포넌트들을 활용, 객체 기술이 효과적으로 활용됨

- 기술과 위험이 크고, 고성능이 요구되는 시스템에는 부적합