본문 바로가기
소프트웨어공학

[S/W] S/W Engineering(소프트웨어 공학)의 정의

by IT 정복가 2022. 9. 19.
728x90

* 학기 중 공부했던 내용 정리하는 중...


S/W Engineering 의 출현

S/W Engineering

- 1960년대 후반(1968년)에 "Software Crisis"라는 주제의 NATO 국제 학술대회에서 "S/W Engineering"이란 용어가 처음 소개되었다.

*NATO: 냉전이 시작된 1949년, 집단안전보장조약인 북대서양 조약에 의해 탄생한 북미와 유럽 등 서방 국가들의 군사동맹이다.

https://medium.com/@ryancohane/has-the-software-crisis-passed-d45ce975a1e7


S/W 의 현재 상황

S/W의 현재

- 컴퓨터 H/W의 가격 하락 > 컴퓨터의 사용양적 팽창 > 대부분의 개인/조직이 컴퓨터 시스템<H/W, S/W>에 종속함 > S/W가 시스템의 비용 중 큰 비중 차지

(결론: S/W의 중요도 상승, H/W 가격 하락, S/W의 가격 상승)

http://www.chris-kimble.com/Courses/World_Med_MBA/Software_Crisis.html

 

Small S/W

- 간단함, 개인 관리 가능

Large S/W

- 복잡함, 다수가 관리, 개발 및 관리시 체계적 접근이 필요함, 형식화, 표준화된 기법 사용, 적절한 문서화 필요

1960년대 후반 일어난 일

3세대 컴퓨터 H/W(1947년 Transistor에 이은 IC)가 출현함

1. H/W 성능의 급진적 향상이 예측 > 복잡하고 새로운 S/W 시스템 구축 요청

2. 그러나, 기존의 소규모 S/W 개발 방법은 개발비용 상승 및 신뢰도 하락을 초래함

3. 새로운 S/W의 분석, 설계, 구현, Test 및 유지/보수의 방법이 필요 > S/W 공학 탄생

(S/W의 개발단계<분석, 설계, 구현, Test>와 설치 및 사용 중 유지/보수 단계 전반에 걸쳐 S/W 공학 이론 적용, S/W Life-Cycle(생명주기) 전반에 대해 적용)

* IC(Integrated Circuit: 집적 회로)

많은 전자회로 소자가 하나의 기판 위 또는 기판 자체에 분리 불가능한 상태로 결합되어 있는 초소형 구조의 복합적 전자소자 또는 시스템. 트랜지스터, 다이오드, 저항, 캐패시터 등 복잡한 전자부품들을 정밀하게 만들어 작은 반도체 속에 하나의 전자회로로 구성해 집어 넣은 것

https://blog.naver.com/roboholic84/220331162212


Well-Engineered S/W란 무엇인가?

Well-Engineered S/W

1. No Bug: Good Reliability<기능, 보안>

2. Good Maintainability With Low Cost: 적적한 문서화 등이 필요, 프로그램 수정 시 유리

3. Good Efficiency: 메모리나 프로세서 이용의 효율화

4. Good User Interface(User-friendly): 그래픽 기능(GUI 기능) 강화, 성능 저하 가능성이 있음

*문제점

- 4번의 그래픽 기능이 강화되면 3번의 성능 저하 문제가 생길 수 있다. 이런 이유로 모든 장점을 다 가질 수는 없다.

 

*해결방안

- 최적화 노력이 필요하다.

- S/W 개발 초기 단계(분석 단계)에서 정확한 비용, 성능, 등의 확정이 유리하다.

성능 대 가격의 관계

성능(효율, 신뢰도) 향상 대 Cost의 관계 - 지수함수로 표현, 성능(효율, 신뢰도)등을 완벽히 하기 위해선 비용이 천문학적으로 요구된다.


S/W Engineering(소프트웨어 공학)의 정의 

S/W Engineering이란?

- 생산성 높은 S/W 개발 및 품질 보증 그리고 S/W 개발 및 유지/보수 단계의 비용을 절약하기 위해 필요한 체계적인 방법론과 Tool을 연구하는 학문


ex) 자동차 S/W 결함의 예) H/W 결함시보다 더 많은 수리 비용이 요구된다.

 

728x90