티스토리 뷰

로그의 블로그 포스팅

소프트웨어란? : 프로그램과 그것과 관련된 문서(,출력,플로우차트,이용법등포함) (Program + 문서) (SW는 특정고객이나 일반시장을 위해 개발될수 있음)

프로그램을 짜면 모두가 사용법을 알아야 유익한 프로그램! 과정 중요 (결과는 부수적)

소프트웨어 공학이란? (공학 = 체계적 절차를 밟아 공정(순서)에따라 어떤 것을 만드는 것)

= S/W생산과 관련된 모든 부문을 다루는 공학적인 학문

건축-시공-감리 = 프로그래머 구현 테스트(컴파일) (과정을 밟아 프래그래밍해야함)

소프트웨어

모든 선진국일수록 S/W가 더욱 발전되있다 (오늘날의 선진국은 IT산업과 관련됨)

모든 기기들이 더욱더 자동화되고 있다. (System S/W)

S/W전문가 양성을 위해(이론,방법,)을 이해한다.

모든 선진국의 GNP S/W는 아주 중요한 부분을 차지

소프트웨어 위기의 배경 / 소프트웨어 공학이 나오게 된 배경 (10~12가지)

1 SW비용이 점점 비싸짐 (HW SW비용의 반전)

2 생산성의 저하 (도구와 이론이 없어(당시는 컴공나온지 얼마안됨) 오로지 경험에 의존함으로써 생산성 저하) / ( 고객요구는증가하는데 인력공급은낮음-생산성저하)

3 SW복잡도와 크기의 증가

시스템의 대형화 -> 인원도 증가 ->사람이 많아질수록 일이 어려워짐(의사소통이많아짐)

( Node = 사람 or 서버 시스템 )

노드가 N 일 때 복잡도 = N(N-1)/2 # 대략적은 (n자승*2/2) = n**2/2

노드가 2 -> Relationship = 1

모듈: 하나의 기능을 수행하는 단위 ,부품하나하나 (하나의 시스템은 모듈의 집합)

C에선 { } 하나가 모듈이 될 수 있음

CBD방법 : 부품중심개발 , 이미 개발된 모듈들이 있으면 갖다 끼움(재사용)

공수 : 설계하는데 드는 자원(인원, 비용, 기간)

대형프로젝트의 의사소통문제

모듈간 인터페이스 비용이 많이듦

형상관리 필요

변경관리가 힘듦

프로그래머 도덕성 윤리의식문제

경영관리 (집단이 클수록 힘듦)

경영인터페이스가 힘듦(규모가 클수록 다른 곳과 관계성 복잡해짐)

4.소프트웨어 신뢰성의 중요도 증가 (오늘날 많은 분야에서 컴퓨터 활용)

5.과도한 에러, 결함

6.과도한 유지보수비용이로인해 새로운 프로젝트를 추진할수 없는 사태 야기(공기 :개발기간)

7.프로젝트의 개발일정과 비용 추정이 부정확했다.(당시 경험과 역사적 자료가 적었음)

8.잘 훈련된 인력의 부족

9.표준화의 결여

10.기타 (관리자 기술자들이 신기술에 대해 잘 모름, 자기업무에 우물안 개구리, (교육,훈련)투자에 인색함, 기술 같은 것들이 개발이 많이 안되있었음(체계적공정같은 것들이 준비가 안되있었음)

S/W공학의 정의

-효과적으로 작동할 수 있는 우수한 소프트웨어를 최적의 비용으로 얻기 위하여 사용하는 견고한 공학원리 (공학적 원리 = 우수한 제품을 만들기 위해 체계적으로 개발하는 것)

-고객의 요구사항을 만족시키기 위해 주어진 예산과 시간 범위안에서 효과적으로 소프트웨어제품을 개발하고 유지보수하는활동

댓글