1. 시스템 평가와 신뢰성 분석
1-1. 시스템의 분석과 설계
- 시스템의 라이프사이클을 탄생시키는 설계 과정에 대해 설명함
- 설계 과정에서 코드설계, 입출력설계, 파일설계, 프로세스 설계, 프로그램 설계 등을 진행함
- 설계된 시스템이 목적한 바와 같이 잘 수행되었는지 평가하는 것이 시스템 평가임
1-2. 시스템 평가의 종류와 기준
- 기능평가, 성능평가, 신뢰성평가의 세 가지 종류가 있음
- 기능평가는 개발된 시스템이 요구되는 기능을 정확하게 수행하는지 평가함
- 성능평가는 시스템이 운영 스케줄에 따라 수행할 수 있는 능력을 평가함
- (중요) 신뢰성평가는 시스템이 에러 없이 안전하게 고장 없이 작동하는지 평가하는 것으로, 시스템의 전체 가동률을 의미함
1-3. 신뢰성 평가의 측정 방법과 신뢰도 분석
- 신뢰성 평가에서 사용하는 MTBF와 MTTF의 개념과 사용 방법을 설명함
- (중요) MTBF는 평균 고장 간격, 즉 시스템이 고장 난 후로부터 다음 고장이 날 때까지의 가동 시간을 평가함
- MTTF는 MTBF와 동일한 개념이나, MT의 계산식에 추가로 고장 시간을 더한 값임
- 신뢰성 평가의 결과로 시스템의 신뢰성, 즉 시스템이 에러 없이 정확하게 작업하는 확률을 얻을 수 있음
2. 소프트웨어 신뢰도 및 비용 산정
2-1. 소프트웨어 시스템의 평가와 신뢰도
- 소프트웨어 시스템의 평가에는 가용도, 신뢰도, 운영시간 등을 고려함
- 신뢰도는 시스템의 가동시간과 고장 횟수, 고장 시간 등을 고려해 계산
- (중요) 시스템의 신뢰도는 MTBF와 MTTR의 분산 평균을 통해 평가 가능
- 신뢰도 평가는 시스템의 운영 중 가동되는 시간, 고장 발생 횟수 등을 분석
- 시스템의 신뢰도는 확률로 나타내어, 신뢰성의 유무를 판단
2-2. 소프트웨어 비용의 산정과 그 어려움
- 소프트웨어 비용 산정은 논리적인 시스템 소프트웨어 개발에 많은 어려움이 있음
- 소프트웨어는 보이지 않는 유형의 제품으로, 가격 측정이 어려움
- 소프트웨어 개발자들은 초기에 소프트웨어 비용을 매길 때 다양한 전략을 세워야 함
- 소프트웨어 비용 산정에는 하향식과 상향식이 있음
- 하향식은 전체 금액을 추정한 뒤 세분화, 상향식은 전체를 추정한 뒤 세분화하지 않고 조금씩 줄여나감
2-3. 소프트웨어 비용 산정의 중요성과 이슈
- 소프트웨어 비용 산정은 국가 프로젝트나 대학 프로젝트에서 큰 문제가 될 수 있음
- 개인 기업과 큰 프로젝트를 비교할 때 소프트웨어 비용 산정이 큰 문제가 될 수 있음
- (중요) 소프트웨어 비용 산정은 프로젝트의 규모, 복잡성 등에 따라 달라질 수 있음
- 특히, 소프트웨어 개발 프로젝트에서는 비용 문제는 큰 문제가 될 수 있음
- 이런 이슈들을 고려하여 적절한 소프트웨어 비용 산정 기법을 선택해야 함
3. 소프트웨어 비용 산정 기법의 이해
3-1. 하향식 비용 산정 기법의 이해
- 하향식은 전체를 세분화하여 비용을 산정하는 기법임
- 하향식은 전문가에 의한 방식으로, 그들의 경험과 지식을 기반으로 금액을 산정
- (중요) 델파이 기법 등 다양한 기법이 있으며, 경험 많은 전문가들의 의견을 종합적으로 듣는 것이 중요
- 하향식은 주관적이고 주관적인 정보를 바탕으로 한 비용 산정
3-2. 상향식 비용 산정 기법의 이해
- 상향식은 작은 단위부터 비용을 계산하여 큰 단위로 올리는 방식임
- 전체를 대상으로 비용을 계산 후, 작은 단위별로 산정하여 더 큰 단위로의 비용을 산정
- 상향식은 객관적이고 수학적으로 계산된 비용 산정을 보여줌
- (중요) 상향식 기법은 전반적인 비용을 산정하고, 개별 작업 단위 별로 세분화하여 계산함
3-3. 개발 단계 인월 수 기법과 수학적 산정 기법
- 개발 단계 인월 수 기법은 소프트웨어 개발에 투입된 인력을 기준으로 비용을 산정
- 인건비를 계산하는 것은 객관적이고 수학적으로 계산된 기법임
- (중요) 수학적 산정 기법은 개발 노력, 성수, 노력 투입 인력, 인적 비용 등을 기준으로 비용을 산정
- 수학적 산정 기법은 개발 비용 산정에 널리 사용됨
4. 소프트웨어 비용 산정
4-1. 소프트웨어 비용 산정의 요소
- 개발 노력 투입 인원, 인적 비용이 비용 산정의 요소임
- 풋락 모형은 소프트웨어 생명주기 전 과정의 분포를 예측하는 모형임
- 기능 점수 모형은 펑션 포인트 기법을 사용해 소프트웨어 금액을 산정함
- 국가 프로젝트는 펑션 포인트로 소프트웨어 금액을 산정함
- 소프트웨어 기둥별, 모듈별, 기능별 가중치 계산으로 전체 금액을 산정함
4-2. 소프트웨어 비용 산정 방법
- (중요) 분석, 설계, 구현, 테스트, 평가, 문서화 등 소프트웨어 개발의 전 과정 이해가 중요함
- 분석은 시스템의 정의를, 설계는 적합한 언어를 선정해 코딩하는 과정임
- 테스트는 소프트웨어가 정상적으로 돌아가는지, 오류가 있는지 검사하는 과정임
- 검사 방법은 화이트박스 검사와 블랙박스 검사로 나뉨
- 화이트박스 검사는 프로그램 자체를 검사하고, 블랙박스 검사는 기능을 검사함
4-3. 개발 단계별 검사 분류
- 단위 검사는 소프트웨어 개발의 최소 단위인 모듈을 검사하는 과정임
- 통합 검사는 단위 검사와 모듈 검사를 결합한 검사 방법임
- 상향식과 하향식이 있으며, 상향식은 드라이브 체크, 하향식은 스토브를 사용함
- 정당성 검사는 사용자의 요구 사항과 소프트웨어 일치 여부를 검사하는 과정임
- 종합 검사는 개발된 소프트웨어가 컴퓨터에 완벽하게 수행되는지 검사하는 과정임
화자 1
00:10
자 전국에 계시는 우리 MTM 안방 가족 여러분 오늘 또 뜨거운 가슴으로 두사부일체의 정신으로 환상적인 수업을 함께 하겠습니다. 예 좋아요. 자 여러분들 드디어 우리 산흑기사 인제 자 전체 막바지에 들어가고 있죠. 이제 시스템 분석 설계 이제 우리가 이제 또 막바지로 가고 있습니다. 자 힘을 내시고 여러분 아주 고생하셨어요. 자 우리가 어제 지난 시간까지 이 CCTV 분석설계 에 그래서 우리가 크게 이야기를 하고 있죠. 그렇죠.
화자 1
00:51
그래서 인제 우리 하나의 시스템이 라이프 사이클 탄생되기까지 분석 과정 설계 과정 구형 과정 검사 과정 그리고 이상이 없으면은 이게 시스템화 돼서 소프트웨어가 돼서 우린 단위를 대신 우리 업무를 대신 수행해 주면서 그죠 유지보수를 거치면서 폐기될 때까지 돌아가더라 우리 사람이 태어나서 죽을 때 가정하고 똑같더라 해서 시스템의 라이프사이클 그게 굉장히 중요했죠. 그죠 그죠 그래서 우린 특별히 이제 분석 분석 도구도 있는데, 잠깐 이야기했지 DFD DD 그렇죠. 어 그리고 미니 소단위 명세서 ERD STD 상태 전이도 이런 분석 도구를 가지고 정의한다. 이런 분속도구를 가지고 이제 우리가 설계를 합니다. 설계를 할 때 코드설계 생각나죠. 입출력설계 파일설계 프로세스 설계 프로그램 설계까지 지난 시간까지 환상적으로 정리했습니다. 오케이 좋아요.
화자 1
01:51
자 오늘은 이제 이렇게 설계를 해 놓은 설계를 해 놓은 이 시스템을 어떤 식으로 평가하느냐 예 거기에 대해서 공부를 좀 하자 넘어갑니다. 자 시스템의 평가와 문서와 그죠 여기에서도 출제가 됩니다. 한 1문제 정도 2문제 정도 예상이 돼요. 자 시스템 평가는 뭐고 맞아요. 개발 구축된 시스템이 목적한 바와 같이 만족하게 이루어졌는가 평가하는 거죠. 어 이렇게 분석 설계 구현 과정을 거쳐 가지고 개발된 시스템이 제대로 됐는가 평가하는 것 자 이 평가의 종류는 쉽다 크게 우리 기능평가 그리고 성능평가 중요한 게 뭐예요? 신뢰성 평가다잉 자 평가기준 그죠 그래서 이 기능평가는 말 그대로 이미 개발된 시스템이 요구되는 기능을 우리 사용자가 요거 처음 만들 때 우리 요구했던 그 요구 요구 기능을 정확하게 수행하는 걸 평가하는 거 그죠 말 그대로 기능평가입니다.
화자 1
02:49
기능이 제대로 되는지 그죠 자 성능평가는 이제 기능하고 조금 다르제 이 기능을 수행하는 능력이죠. 성능 즉 시스템이 운영 스케줄대로 수행할 수 있는가 수행할 수 있는 능력을 평가한다는 거죠. 능력 하나만 써주는 게 좋겠다. 그죠 비슷하지만 다르죠 그리고 그리고 이제 여기에는 크게 이제 CPU의 속도 및 기억 용량 파일 편성과 리즈나이트 방식 IO 장치의 처리 속도 등 이런 것들 전반적으로 평가를 하는 거다 그죠 성능평가 시스템의 성능평가요 자 기능평가 성능평가보다는 시험에 나오는 건 뭐 신뢰성 평가 출제가 많이 됩니다. 자 신뢰성은 뭐고 내가 만들어 놓은 이 시스템이 고장 없이 에러 없이 얼마나 많은 작업을 정확하게 수행하는가? 처리할 수 있는가를 평가하는 걸 시스템의 무슨평가 신뢰성 평가입니다. 신뢰성 이 신뢰성은 한마디로 뭐고 시스템의 전체 가동률이죠.
화자 1
03:47
시스템이 에러 없이 아주 안전하게 우리 인간이 믿을 수 있는 있도록 잘 돌아가는가 그 확률로 따진 게 신뢰성이다. 이 말입니다. 이 신뢰성은 뭐 계산에 의해서 이루어집니다. 되겠나 자 신뢰성 평가요 한번 어떻게 평가하는지 신뢰성 평가를 어떤 식으로 하는지 한번 볼까나 예 좋습니다. 아 자 신뢰성의 측정요 이 신뢰성에 측정을 하는 걸 우리는 신뢰도라죠 신뢰도 신뢰도를 측정한다. 다른 말로 또 가용도 사용 가능한 기준이죠. 어 신뢰도 가용도 같이 보면 되겠다. 예 신뢰도를 측정을 하는데 이 측정에 이용되는 거는 우리가 통상 MTBF MTDR 또는 MT TF를 이용되는데 자 요거 두모민 MTBF와 MTTF 는 이제 같이 보일 수도 있고 다르게 볼 수도 있거든.
화자 1
04:46
일단은 설명을 할게 아 여기 나오네 예 좋습니다. MTBF는 뭐냐 하면 말 그대로 미인 타임 비트윈 필름입니다. 그죠 그러니까 단어 뜻을 그대로 해석하면은 평균 고장 간격이죠. 그죠 평균 고장 간격인데 이 실은 평균 고장 간격은 결국 뭐다 다른 말로 평균 가동 시간을 나타내줍니다. 평균 고장 간격 그러니까 평균 고장 간격을 빼버리면 가동이니까. 평균 가동시간으로 해석해 줍니다. 그죠 MTBF 즉 시스템이 고장 난 후부터 다음 고장이 날 때까지 가동 중인 평균 시간을 의미하는 게 뭐다 MTBF야 미인타임 비트윈피엘 알겠죠. 영어 단어는 고장 간격인데 고장 간격이라 하는 거 뭐고요. ASB인데 이게 고장 간격이라면은 어 고장 간격 고장 간격이죠. 그러면 고장 간격 시스템이 고장 나는 것도 다음 고장이 날 때까지 뭐 이 가동됐다는 거죠.
화자 1
05:44
여기서 고장 나고 여기 고장 났으면 이거는 뭐다 가동기란 말이죠. 가동 헷갈리면 안 된다. 뭔 말인지 알겠죠. 그래서 평균 고장관계 공 뭐다 평균 가동시한을 의미합니다. 되겠나 그래서 요걸 MTBF라고요. 또 MTTF는 민 타임 투 페일러입니다. 투 페일러 그래서 말 그대로 똑같은 거예요. 그죠 똑같이 보면은 MTBF MTT는 TF는 갖춰요 그리고 또 다르게 볼 수도 있죠. 내가 소프트웨어 공학에서는 또 다르게 해석을 했습니다마는 일단은 그렇게 놔놓고 자 MTTR은 미인 타임 투 리페어 케어 평균 수리 시간입니다. 즉 시스템이 고장으로 인해 작업하지 못한 시간의 평균값 작업하지 못한 거니까 고장 난 시간이죠. 그죠 평균 수리 시간은 고장 시간이에요. 평균 다른 말로 고장 시간이다. 이래 보면 된다. 그죠 평균 고장시간 그래서 요 MTBF와 MTTR로 실태 뭐 신뢰도 가용도를 측정하더라 자 신뢰도는 뭐야?
화자 1
06:43
전체 운영시간 중에 가동적인 시간의 비율이죠. 그럼 이거는 몇 프로 신뢰할 수가 있다. 이런 이야기입니다. 자 이 신뢰도 구하는 공식은 MTBF 더하기 MTTR 분의 MTTF예요. 자 MTBF와 MTTR은 뭐 MTBF는 총 뭐여 가동 시간이고 평균 가동 시간이고 가동 시간이고 MTTF는 평균 고장 시간이죠. 그러니까 가동되는 건 고장 됐는가 하면 총 운영시간이 나오죠. 총 운용시간 분의 총 가동 시간을 하면 되죠. 그죠 그래서 곱하기 100 하면은 백분율로 나올 것이고. 곱하기 백분을 생략하면 확률로 나오겠지 자 그럼요 예를 보자 이 말입니다. 어떤 시스템이 전체 운영시간인데 운영시간인데 가동 중 고장 중 가동 중 고장 중 가동 중 고장 중 났단 말일 때 MTBF 구하라 카면 어떻다 자 어 이 전체 운영 시간 중에 여러분 현재 그 가동 시간을 어떻게 해요.
화자 1
07:41
A1 더하기 A2 더하기 A3제 그니까 총 뭐 3분의 A1 더하기 A2 하면은 뭐가 나온다 MTBF가 나오고요. 총 이제 뭡니까? 또 고장 시간 고장이면 1 2 3개 낮춰서 3분의 고장 시간들 고장 비완 비투B3를 더하면 MTTR이 나오고 그러면 신뢰도는 어떻게 구한다. 신뢰도는 뭐 MTTF 더하기 MTTR 분의 MTBF 즉 총 운영시간 분의 총 가동 시간으로 구한다는 겁니다. 되겠나 자 그러면은 실제 예를 시험에 이게 나오겠죠. 실제 예를 한번 보자 자 그럼 여기에 이 시스템이 현재 이 시스템이 어 가동 7시간 고장 1시간 가동 여덟 시간 났을 때 이 시스템에 뭘 구하라 M TMTBF를 구하라 카면 어떻게 구한다. 가동 시간을 몇 개 가동 몇 번 남는 가동 횟수 이제 엠보 가동 횟수죠 가동 횟수 3 이 3은 가동 횟수입니다.
화자 1
08:38
이게 이게 여기에 인제 3은 가동 횟수예요. 가동 횟수 3번 가동되는데 그 시간은요, 7시간 더하기 가동 시간 뭐 8시간 더하기 뭐 가동 시간 6시간이죠. 그러면 이 시스템에 MTBF 평균 가동시간은 어떻게 된다. 3분의 이거 이게 어렵제 얘는 잘못 하겠다. 이게 얼마고 실더하기 한참 해야 되네 이 올라갔다 3 올라갔다 15 다시 21이네요. 그럼 37 21 이 시스템의 평균 가동 시간을 몇 시간 7시에요. 7입니다. 7 됐죠 그러면 이 시스템은 또 뭘 구해보자 엠티 TR을 구해봐라 MTTR 평균 고장시간 평균 수리시간 구하라 하면은 고장 나는 게 몇 번이고 1 2개네 그럼 2분의 고장 횟수죠 2분의 고장 시간이 뭐야? 12내 1 더하기 2니까 얼마예요. 3이에요. 2분의 3 어렵게 이래 나와 버렸네 고장 시간 2분의 3이죠.
화자 1
09:38
2분의 3은 얼맙니까 이게 어렵네 일은 이 1.5입니까? 1.5 1.5예요. 자 그러면은 이 시스템의 총 신뢰도는 어떠냐 자 신뢰도 구해 봐라 신뢰도 다른 말로 뭐 아 용도를 구하세요. 하면은 답 나왔다. 뭐 엠티 BF 더하기 MTTR 즉 7더하기 1.5분의 7입니다. 7 엠티 BF죠 그럼 얼마고 이게 얼맙니까 이게 어렵나 아 이게 얼마요 8.5.5가 나왔다. 그래 8.5분의 7 이 8.5분의 7이 얼마예요. 이거 에 뭐 나오겠죠. 에 여러분 이게 얼마 나오나 9분의 7이면 얼마요 뭐 70 얼마 나오겠지 하면 8쯤 나온다 합시다. 그러면은 곱하기 100 하면은 80프로고 즉 인제 확률로 하면 0.8이겠죠.
화자 1
10:33
즉 이 시스템의 신뢰도는요 80프로 즉 0.8 즉 확률 곱하기 100 하면 80프로 약 80프로 정도의 신뢰성이 있다는 거죠. 80프로 정도 신뢰성을 가져도 좋다. 이런 뜻입니다. 알겠나 이 갖고 가는 게 중요한 게 아니지 그래서 시스템에 신뢰도를 평가하는 건 뭐다 신뢰도는 MTBF 더하기 MTTI 분의 MTBF 즉 총 운영시간 운영 시간 운영 중에 뭐 가동되는 시간 MTBF 고장 난 시간 MTTR 이제 그죠 요 부분의 총가동시간 곱하기 100 하면은 백분율 나오고 곱하기 100을 생략하면 확률로 나온다 근데 현재 요걸 가지고 보니까 요 시스템은요, 어 평균 80프로 정도의 신뢰를 할 수 있는 시스템이었구나 이렇게 이해할 수가 있습니다. 그죠 요렇게 어 신뢰성을 구하고 요 MTTF 있죠. 미인타임 투 표역 해 가지고 평균 가동시간 즉 요 MTTF는 NTTF는 우리 MT MT 뭐야? 저 BF와 같이 보여 같이 해석하면 됩니다.
화자 1
11:30
근데 따로 해석할 수도 있거든. 따로 해석하면은 요거는 참고로 이야기 할게요 보통 여러분들 요것만 알면 되는데요. 이게 또 해석하는 방법이 요 말은 별로 안 좋습니다. 평균 고장 날 때 고장 시간에 요건 지우세요. 자 MTBF를 MTBF와 같이 보는 경우 있고요. 같이 보는 경우 그죠 MTTF와 MTBF가 같이 보는 경우는 이제 에 요렇게 해석하면 되겠죠. 여기서 요렇게 해석하면 되고 또 다르게 보는 경우가 있습니다. 다르게 볼 때는 MTBF를 구하라 카면은 MT TF 더하기 MT CR로 이렇게 구하는 거 있어요. 그죠 요런 게 있습니다. 요거는 내가 소프트웨어 공학은 요렇게 해석했지 그지 그래서 요거는 이제 어떠냐 하면 MTBF와 MT TF를 다르게 보는 경우입니다.
화자 1
12:24
같이 보는 경우로 그래서 요거만 알아 놓으시고 보통 우리가 요거 방금 요걸로 다 문제를 푸는 분다 그래서 요런 또 접근 방법이 있드라 하는 것만 알고 있으면 됩니다. 됐죠 자 시스템의 신뢰성 구하는 출제가 많이 된다. 신뢰도 가용도 사용 가능한 특정이죠. 가용도 구하는 거 자 중요하다 요거 총 운영시간 운영시간은 뭐 가동시간 더하기 고정 시간이죠. 좋습니다. 자 그 다음 보자 자 이렇게 인제 시스템을 평가했고요. 또 뭐 요거는 뭐냐 하면은 우리가 소프트웨어 우리가 만드는 소프트웨어 시스템 음 논리적인 시스템은 소프트웨어지 요놈의 비용을 이제 뽑아내야 되잖아. 참 이게 참 중요한 부분입니다. 여러분들 소프트웨어 비용이라는 건 참 이거는 코에 걸면 코길이고 입에 그러면 입거리가 귀에 힘은 귀걸이입니까?
화자 1
13:22
예 이게 참 이게 나도 현장에서 수많은 프로젝트 수많은 소프트웨어 개발해가 국가프로젝트 등 개인 기업프로젝트든 학교 대학교 프로젝트들이 하는데요. 가장 난감할 때가 비용사자 돈이에요. 돈 참 이 힘들죠 그러니까 왜 우리가 물리적인 시스템 텔레비나 의자나 카메라나 이런 거는 뭐 원가 들어오고요. 뭐 이런 게 다다닥 다 돼요. 이 소프트웨어는 부르는 게 갑이야 이거 참 보이지 않는 유형의 제품이잖아. 유형의 제품이기 때문에 이건 상당히 무형의 제품이니까. 가격 측정이 굉장히 어렵습니다. 또 일반 사람들은 이해를 못하고 그래서 소프트웨어는 과거에는 이게 참 우리 프로그램 개발자들이요. 머리카락 빠지고 만들어 놨는 게 전혀 상하질 않잖아요. 그죠 그러다 보니까 이제 불법 복사 복사 이 복사를 방지하기 위해서 바이러스를 만들어냈는데 그게 오늘날 악용되고요.
화자 1
14:15
그래서 이제 물론 마이크로소프트 같은 경우는 프로그램만 프로그램이 보이지 않는 제품 논리적인 시스템 소프트웨어를 만들어서 세계 제일 부자가 돼 있지만요 선진국은 괜찮은데 이거 저도 개발 도서 후진국 같은 경우는 눈에 안보이면 안 믿거든. 보이도 뭐 이런 거예요. 백문이 불여일견이다. 뭐 이래 가지고 차라리 안 보이는 걸 팔아먹는 게 굉장히 힘듭니다.
화자 1
14:38
지금 우리나라도 선진국으로 가고 있기 때문에 지금 소프트웨어가 많이 구매를 하는데 아직까지 일반 사람들이 우리 병태순자 니 프로그램 샀나 안 샀제 컴퓨터 하드웨어는요 PC는 100만 원 주고 사지만 그 안에 들어가 있는 소프트웨어 OS 윈도우 미스타 우리 오피스 아리한글 뭐 수많은 프로그램 다 받아서 이게 아직까지 후진국이야 그죠 어 그래서 이게 참 앞으로 유비쿼터스 시대 또 우리가 인제 이런 시대는요 소프트웨어 같은 가치 있는 보이지 않는 거 논리적인 게 논리 물리야 논리야 논리가 지배하는 시대고 물리가 지배하는 시대는 뭐다 산업화 시대예요. 후진국은 물리가 지배합니다. 어 닦고 조이고 기름치고 줘 패고 막 이런 게 근데 이 논리적인 사회가 돼야 선진국이거든. 그래서 논리적인 지적 재산권 소프트웨어인데 참 비용 산정이 객관성을 잃기 쉽습니다. 그죠 그래서 이게 저도 항상 소프트웨어 금액을 매길 때 항상 고민을 해야 됩니다.
화자 1
15:37
아 그래서 이걸 참 일반 모르는 사람들한테 이 비용을 이야기하기에는 상당히 힘든다. 그래서 이제 이걸 학문적으로 소프트웨어 비용 산정하는 게 있어요. 그죠 참 중요한 겁니다. 소프트웨어 금액을 어떻게 매길 것인가? 그 말이죠. 그래서 내가 만들어 놓은 이 소프트웨어 시스템의 비용 산정 방법 기법이죠. 방법론 전문가들이 하는 거다 여러분 시험 나오는 정도만 공부하면 되겠다. 뭔 말인지 알겠나 참 어려운 문제입니다. 어떻게 이 소프트웨어 금액을 매길 것인가? 어떻게 1억이고 10억이고 할 것인가? 해서 국가 프로젝트나 큰 대학 같은 경우는 참 큰 문제가 없는데 자 아예 그 사람들은 그 금액을 자기 전문가들이 뽑아 가지고 자 10억짜리 프로젝트다 이게 공개 입찰을 하는데요. 참 문제가 되는 게 개인 상대 일반 아무것도 모르는 기업 상대할 때는요 참 어렵습니다. 많은 에피소드가 많이 있어요. 그러다 보니까 소프트웨어 분쟁이 많이 일어나거든요.
화자 1
16:32
나는 진짜 머리카락 빠져 가면서 상대방을 생각해 10억 받아야 되고 1억 탁 받았는데요. 상대방은요, 많다 카고 와 이런 기억하고 어 1억짜리 물건도 아닌 뭐 환장합니다. 허피 데끼요 웃어요. 예 참 이런 강의할 때마다 내가 가슴이 새카맣게 컸죠잉 모르는 사람들하고 우리나라 선진국이 되기 위해서는 소프트웨어 가격 우리 병태수전차 사야되는 거야. 사지 않고 컴퓨터 피씨는 왜 100만 원 주고 샀는데 안 사잖아. 문제입니다. 다 영차인가요? 예 자 이렇게 해서 소프트웨어 비용 산정하는 비용 크게 하향식 있고 상향식 있다는 거 자 하향식 비용 산정은요, 이게 원리가 이거 하향식은 전체 금액을 뽑으면 전체 전체를 뽑아요. 전체 전체를 추정을 하고 난 뒤에 이걸 지금 세분화시키세요. 세분화 추리구조제 하향식이니까. 세분화를 시킵니다.
화자 1
17:30
이 세분화 이 모듈 단위로 그리고 또 여기에 대한 세분화 이런 식으로 하향식은 여러분 전부 다 계층 구조입니다. 계층 구조 계층 구조 즉 추리다 그죠 추리 구조를 이용해서 금액을 산정하는 거예요. 그러니까 전체를 뽑고 세분화 세분화 들어가겠죠. 하향사 하향식은 여러분들 여기에만 이용되는 게 아니고 모든지 다 적용된다. 하향식 어 이거는 뭐냐 하면은 세분화 전체에서 이 모듈 단위로 하는 거죠. 세분화 가능할 세분화 하향식은 세분화 금액을 갖는데 세분화 또는 구체화 부채화 같은 말이고 하향식은 세분화 부채화 그죠 그리고 또 중요한 건 모듈화 이 큰 걸 단위로 조금 독립적으로 단위로 쪼개 더 큰 프로그램을 쪼개서 금액을 산정하는 모듈화 세분화 구체화 모줄화 다 같은 말입니다. 여기에 상향식은 뭡니까?
화자 1
18:28
상향식은 작은 것부터 금액을 계산해서 큰 거로 오는 거죠. 큰 거로 이거는 상향식은 전체화 전체화 일반 일반화 추상화 다 같은 말입니다. 전체를 거의 다른말 개념화 같은 같은 말이야. 어 하향식은 세분화 구체화 모듈하고요. 자 상향식은 뭐다 전체와 일반화 추상화 개념화 다 같은 말입니다. 이게 나중에 객체지향이론에서입니다. 그래서 비용 산정하는 기법도 위에서 내려오면서 금액하는 게 있고 밑에서 쳐 올려서 금액을 뽑는 방법이 있더라 자 하향식은 인제요 전문가 사람에 의한 방법 사람 전문가의 방 그룹 전문가의 감정이나 전문가 그룹 같은 말입니다. 그러니까 이미 소프트웨어의 경험이 내 같은 사람 경험이 많아 가지고 아 이미 적당한 금액을 아는 거예요.
화자 1
19:25
그 전문가에 의뢰해서 그 금액을 인정받는 걸 우리는 하향식이라 합니다. 다 사람이 아는 거요 여기에는 전문가 감정 전문가 그룹 델파이 기법이 있고요. 상향식은 이제 뭡니까? 상향식은 주로 계산에 의해서 합니다. 좀 객관적이죠. 그래서 하향식은 좀 주관적이고요. 주관적이고 상향식은 객관적이다. 이렇게 보면 된다. 왜 수학적으로 하니까 객관적으로 그래서 에로시 기법이 있고 라인 오브 코드 코드의 나인 원시코드의 나인 호블 같은 경우 1개의 나인이 천원이야 천원 그래서 이 합천원짜리 라인이 몇 개 있느냐 몇 개로 구성되어있느냐 일반적으로 많이 하는 기법입니다. ROC기법 그리고 개발 단계 인의수 기법 해 가지고 요거는 뭐냐 뭐야? 1달에 몬스퍼 퍼션입니다. PM이죠. PM 먼스 퍼포션 해가지고 한 달에 이 소프트웨어를 개발 1달에 1달 동안 이 소프트웨어 개발에 투입된 인력이죠.
화자 1
20:19
사람 사람 초급 기술자 몇 명 중급 몇 명 고급 몇 명 들어가느냐 인력 비를 잡아내는 거지 이게 인의수 기법이라 합니다. 그리고 가장 늘 이용되는 게 수학적 산정 기법인 코코모가 있고 풋남이 있고 펑션 포인트 우리나라 같은 경우는 국가 프로젝트는 이 펑션 포인트로 소프트웨어 개발을 산정한다. 그래서 얼마 3억 5억 10억 이렇게 산정을 합니다. 그래서 여러분 제목 정도만 알고 있으면 된다. 여러분 각각 이렇게 내는 방법은 전혀 여러분 수준의 시험이 안 나와요. 진짜 전문가들도 소프트웨어 이런 코코모나 풋나미어 특히 펑션 포인트 우리나라에서 기능 점수 펑션 포인트로 소프트웨어 금액을 뽑아낼 수 있는 사람이 몇 명 안 됩니다. 그래서 제가 국가기관이 많이 물려간다 이 펑션 포인트로 소프트웨어 정당한 현재 어떤 국가에서 이런 프로젝트를 하는데 이 프로젝트 얼마쯤 하면 되겠노 할 때 저 같은 전문가가 들어와서 하지 일반 웬만한 사람들은 이거 소프트웨어 금액 못 뽑거든. 그러니까 우리 시험에 여기에 각각에선 안 나와요.
화자 1
21:17
이름 정도만 알고 있으면 되겠죠. 요것만 알면은 시험은 통과다 이 말입니다. 되겠나 손자 야경돼야 그렇지 살펴보자 화장실 비용 산정 기법 주로 사람이서 하는 거죠. 그죠 전문 지식이 많은 개발자들이 개발자나 개발자들이 비용 산정하는 거고, 프로젝트 전체 비용 산정한 후 각 작업별로 비용을 세분화 한다. 해 가지고 뭐다 하향식이다. 한다. 이 말입니다. 하향식 하향식이다. 한다. 이 말이고 전문가에 의한 검자 전문가 그룹 이거는 인제 경험 많은 사람들이 사람을 사는 거죠. 그러다 보니까 개인적이고 주관적일 수 있는 거고요. 델파이 기법은 뭐 이 전문가 감정기법에 주관적인 편견을 보완하기 위해서 많은 전문가의 의견을 종합적으로 듣고 이제 하는거죠. 한 영역 조정자 그러니까 다 들어보고 조정자가 결정한 조정자 조정자가 두는 거지 델파이 기법이다. 여러 전문가로 구성하는 거죠. 그 전문가 이야기를 다 들어보고 한 사람이 조정을 해서 금액을 산정합니다.
화자 1
22:15
이 전문가는 100만 원 이 전문가는 150만 원 이쪽 들어보고 어 한 120만 원 되겠네 그래서 조정자에 의해서 하는 게 델파이 기법이다. 이렇게 아시면 된다. 좋습니다. 비용 산정 기법이에요. 쉽죠 자 그 다음에 상향식 비용 이제 기법은 이제 프로젝트를 작업 단위별로 그러니까 모듈 작업단일 카는 게 뭐고 바로 모듈이죠. 모듈 소단위 작업단위니까 소단위 큰 프로그램을 소단위로 분해하죠. 모듈이죠. 비용을 산정한 후 전체 비용을 산정하기 때문에 상향식이다. 말이죠. 왜 요 소 단위 소 단위로 비용 산정해서 뭐 전체 금액을 잡아내는 거니까 뭐 상향식이다. 이 말입니다. 여기에는 이제 원시 코드나 소스 코드 라인 수 기법이죠. 그죠 그러니까 이제 핫라인 얼마다 이렇게 하는 거고, 읽어보시면 되는 거고요.
화자 1
23:10
그 다음에 개발 단계 인월 수 그죠 어 1달 동안 몇 명이 투입됐느냐 먼스 프로 폴슨 사람의 투입 투입 그러니까 초급 초급 기술자 우리 정부처리 기사 자격증 따면은 산업기사 따면 초급이에요. 초급은 국가로 1달에 280만 원 정도 책정돼 있습니다. 거의 매년 바뀌죠 중급은 지금 한 400만 원대 고급 기술자는 500만 원대 이렇게 투입이 몇 명 돼 초급 몇 명 이래서 금액이 나오는 겁니다. 그러니까 에로시 기법보다는 좀 더 정확하죠. 이거는 사람에 대한 인건비니까 그렇죠. 이 소프트웨어는 뭐고 머리카락만 빠지면 되죠. 사람에 대한 인건비예요. 그래서 원래 이 정부처리 기사 산업기사는 여러분들 이거 참 기술자다 이 말입니다. 그리고 여러분 기사산업 자격증 따고 기업체에 들어가면요 이 프로젝트 아 이 소프트웨어 개발 단계에 들어가면은 1달에 여러분들 인제 그 국가에서 정해진 금액을 받아야 돼요.
화자 1
24:09
어 그리고 자격증 따면 자격수당 나오는 거 나와라 나옵니다. 1달에 5만 원씩 자격증 수당이 나와요. 여러분 5만 원이 적나 1달에 5만 원이면 소주가 1박스다 그거 1달 내내 막 매일 술 먹을 수 있습니다. 공짜로 알겠나 순자 들은 묵으면 안 된다. 예 그 요즘 또 이 소주도요 순자들을 위해서 굉장히 약하대 19점 이 소주는 25도 돼 한때 먹으면 쫙 이렇게 해야 되는데 뭐 물이야 물 물 물이야 물 먹는 것 같아요. 요즘 소주 못 먹어요. 지금 에 알겠나 순자를 위한 소주로 캐 가지고 뭐, 뭐 이래 나오더라고. 통과 또 왜 소주 이야기가 나오네 그다음에 인제 수학적 산정 기법요 상향식 비호산정기법으로 개발비용 산정은 자동화가 목표죠 이 수학적은 자동 이건 뭐 만날 사람이 이렇게 하는 것보다는 자동적으로 아주 객관적으로 하자 그죠 객관성입니다. 객관적 그러니까 누구 누가 이야기하더라도 딱 자동적으로 금액이 딱 얼마나 나오니까 어떤 인터렉트가 없겠죠. 예 이런 이야기다 그 대표적인 게 뭐 코코모가 있다.
화자 1
25:08
콘서트럭티브 코스트 모드 그러니까 말 그대로 개발이죠. 건축에 소요되는 비용 모든데 요거는 보엠 보험이 많이 나오제 보엠이 이제 제한 했는 거죠. 발표회고 가장 널리 사용되는 비용 산정 기법입니다. 어디 상향 양식 중에서요 그래서 비용 산정 주요 요소들 요것만 개발 노력 개발 성수 노력 성수 개발기관 투입 인력 인적 비용 이 4가지 요소를 가지고 금액을 뽑는다 여러분이 직접 금액을 뽑습니다. 어려워가지고 그래서 요런 요 요소들만 알고 있으면 된다. 수학적 산정 기법이라는 것만 알고 있으면 됩니다. 여러분들이 이걸 뽑기는 어려워요 예 좋아요. 개발 노력 개발 기관 투입 인원 인적 비용이 비용 산정의 요소가 된다는 거 이래 아시면 됩니다. 자 그 다음에 또 풋남 있죠. 풋남 모형은 생명 주기 예측 모형이라고 해 가지고 소프트웨어 생명주기 전 과정에 살아있는 노력의 분포를 가능해 주는 모형이다.
화자 1
26:03
주로 대형 프로젝트의 노력분포 산정에 이용되는 기법이다. 그래서 풋락하는 게 있더라 뭐 수학적 산정기법이더라 이런 거 하고요. 실제로 많이 이용되는 것은 또 기능 점수입니다. 펑션 포인트 모형 해 가지고 실은 우리나라에서 현재 국가 프로젝트는 전부 다 국가 프로젝트 국가에서 하는 이 프로젝트는요 펑션 포인트로 다 개발해서 한정합니다. 그래서 펑션 포인트로 국가에서 현재 만들어 이하이 프로젝트 금액을 뽑아가 공개입체를 하잖아요. 5억이다. 그러면 5억 기준은 뭐고 이놈으로 뽑았다는 거예요. 그래서 이걸 잘 못 뽑으니까 너 같은 사람을 부르거든. 뽑아가 국가에서 요번에 전자정부 이렇게 만들려고 한다. 중소기업에서 이런 소프트웨어를 한다. JH 금액 얼마 정도로 하면 되겠노 하면 내 같은 사람이 펑션 포인트로 전부 수학적으로요 복잡하요 가중치 좋아가지고, 쫙 구해가지고 얼마입니다. 이렇게 하면 국가에서 뭐 그래 해서 국민 세금으로 인제 소프트웨어를 만들어냅니다. 알겠나 전산화를 합니다.
화자 1
27:02
그래서 저는 이거 잘 알고 있죠. 그래서 여러분들이 너무 어려워요 그래서 아 이런 게 있더라 그죠 소프트웨어 기둥별로 모듈별로 기능별로 한다. 1큰 프로젝트를 만들면 수많은 모듈들이 있죠. 모듈별로 전부 다 가중치 계산을 해가지고 이제 금액을 모듈 단위로 뽑아서 전체 금액을 만들어냅니다. 자 고런 거 아시구요. 그리고 코코모와 풋남은요, 특히 그리고 애로시 코드에 라인을 중심을 두고 기능 점수는 펑션 포인트 기능 점수에 기능 점수를 가지고 한다는 거 이거는 라인을 가지고 주로 한다는 거 요렇게 이해하시면 됩니다. 오케이 그래서 여러분 참고로 알아놓으시면 되고 요것도 뭐 출제가 많이 된다. 아 소프트웨어 비용 산정은 이런 식으로 하는구나 아시면 됩니다. 좋아요.
화자 1
27:47
그 다음 자 그다음에 이제 테스트죠 자 현재 우리가 자 분석 분석 총 정의를 한번 뒤에 할게요 그러니까 분석하고 설계와 하고 구현 구현은 뭐고 공부할 것 없지 가장 이 설계도를 보고 가장 적당한 언어를 선정해 가지고 코딩하는 게 구현이죠. 프로그래밍 하고 난 뒤에 그다음에 뭡니까? 평가하죠. 시스템평가 또 이런 문서와 중에 이제 뭡니까? 또 중요한 게 테스트를 하죠. 테스트 검사 검사죠 검사는 뭐고 말 그대로 내가 만들어 놓은 시스템 이 소프트웨어가 정상적으로 돌아가느냐 오류를 찾아내는 과정이 검사과정인데 이 검사 기법 방법에 따라서 크게 화이트박스와 블랙박스가 있다. 제목만 알면 된다. 화이트 박스 검사와 블랙박스가 있는데, 화이트 박스는 프로그램 자체검사입니다.
화자 1
28:36
프로그램 소프트웨어 프로그램 내부 작업을 검사하는 거 프로그램의 어떤 오류가 있나 없나 즉 논리적 오류나 논리적인 경로 타이핑을 또 잘못 쳤나 점을 찍어야 되는데 코마를 짰나 이런 거예요. 프로그램 검사원 화이트박스고요. 블랙박스는 기능입니다. 예 프로그램적으론 이상이 없는데 기능이 제대로 돌아가는지 제대로 1 더하기 어 1 하면 2가 나오는지 1 더하기 이랬는데 3이 나오면은 기능적으로 잘못된 거죠. 적인 검사라 해 가지고 블랙박스는 기능검사다 그래서 각 기능이 완전히 제대로 작동되는가 즉 성능 오류 부정확한 기능 인터페이스 오류 등을 검사한다. 그죠 그래서 기능검사는 블랙박스요 프로그램의 논리적 검사는 화이트 박스 검사다 요것만 알면 됩니다. 자 그리고 또 개발 단계에 따른 검사 분류가 있습니다. 그죠 단위검사 통합검사 정당성 검사는 인수검사라고 한다. 인수검사 그리고 시스템 검사는 종합검사를 합니다.
화자 1
29:34
종합적으로 하는 4단계의 검사가 있더라 그래서 단위검사는요 큰 소프트웨어 큰 시스템의 단위들 모듈 검사하는 거죠. 소프트웨어 설계 최소단위 모듈 검사입니다. 모듈검사 예 모듈 검사 그죠 그러니까 오늘날 시스템은 하나로 만들어지는 게 아니고 이놈은 또 수많은 단위 프로그램으로 또 단위 프로그램으로 이렇게 구성되지 그래서 이런 것들이 모여서 하나의 시스템 하나의 소프트웨어를 이루잖아요. 아래아 한글이라는 시스템 아래아 한글이란 프로그램도 안에 불러오기 프로그램 저장하기 프로그램 뭐 복사하기 오류두기 이런 프로그램들이 모이잖아. 그렇잖아. 근까 요런 거 불러오기 프로그램 요거 요거 요런 걸 우리는 큰 프로그램에 딸려있는 요 소단위 프로그램 우리는 뭐라 한다. 모듈이라 합니다. 모듈 모듈 이 단위죠 단위 프로그램 독립된 단위 프로그램 모듈이죠. 이 인제 모듈을 검사하는 게 뭐다 단위검사죠 그래서 다른 말로 요거는 모듈 검사라고 해야 됩니다.
화자 1
30:32
모듈 검사 어 이 작은 데 이상이 있으면 큰 게 이상이 있으니까 그리고 통합 검사는 이런 단위 검사와 모듈을 결합해서 검사하는 거죠. 말 그대로 통합검사는 또 상향식이 있고 어 하향식이 있다. 그래서 상향식은 드라이브 카는 거 드라이브 체크 하향식은 스토브 스토브 스토브 스토브 스토브를 이용한다는 거 요 단어만 알면 되고요. 자 정당성 검사는 우리는 인수검사라고 하제 사용자의 요구 사항과 소프트웨어 일치하네, 그러니까 프로그램을 개발을 잘했는데 딱 보니까 사용자가 마음에 안 들어 의뢰자 사용자가 야 이거 내가 이렇게 개발해 해달라고 안 했는데 니가 이래 했노 요거 사용자 요구가 맞는지 검사하는 게 뭐다 정당성검사 다른 말로 인수검사 또는 적합검사라고도 합니다.
화자 1
31:18
적합 뭐 이렇게 뭐 층마다 다르죠 정당성 검사 인수검사 적합검사 그리고 마지막에 종합적으로 하는 것이 CTN 검사 저는 종합검사죠 그죠 개발된 소포트 해당 컴퓨터에 완벽하게 수행되는지 종합적으로 하는 검사 그래서 이제 자 단위검사 통합검사 인수검사 뭡니까? CTN 검사 다른 말로 종합검사 그죠 자 요런 검사 방법이 있더라 이 정도만 알면 된다. 있더라 정도만 아시면 됩니다. 자 좋습니다. 자 이렇게 금사도 됐고요. 자 그 다음에 이제 문서화요 문서화 자 그러면 이 시스템이 만들어졌어 그러면 뭐든지 문서로 다 담겨놔야죠 매뉴얼도 있어야 되고 그래서 이 문서화에 대해서 장관 공부자 문서화는 뭐 시스템 개발 순서 등 시스템 개발에 관련된 모든 행위를 문서로 만들어주는 작업을 문서화라 하고 문서화는 반드시 표준화돼야 되죠. 지멋대로 하는 게 아니고 표준된 문서를 해야 되고 의사소통의 효율성이 증대됩니다. 문서가 있음으로써 말이 뭐 필요 있노 그죠 문서를 보여주면 되는 거죠.
화자 1
32:17
메뉴 사용 설명서 있으면 되는 거야. 맞나 노트북이든 컴퓨터든 테레비던 또 소프트웨어든 전부 다 메뉴얼 문서를 다 만들어 놔야 되지 아니면 사용자들한테 맨날 만날 신분이 되잖아. 이건 텔레비전을 이렇게 끼고 그러니까 전부 문서화돼 있기 때문에 매뉴얼만 줘버리면은 사용하는 데 지장이 없는 거예요. 그죠 자 문서화의 목적 읽어보시면 되겠죠. 자 개발팀에서 운영팀 사용한 팀으로 인수인계가 좋 문서를 적으면 되니까. 말할 필요도 없고 시대개발 프로젝트의 관리가 용량 아주 좋아지죠 읽어보면 되겠죠. 읽어보시면 여러분 됐고요. 문서화를 반드시 해야 되는구나. 당연한 이야기 자 그리고 이제 한번 보자 이 말입니다. 문서화 어 없어요. 이 뭐 또 있어야 되는데 끝이에요. 어 진짜 이게 좀 잘못됐는데 하나 왜 그러냐면 이게 하나가 시험에 자주 나와서 외계인 코드 가능했습니다.
화자 1
33:17
외계인 코드 에어라인 코드 해 가지고 자 이놈은 뭐냐 하면 문서왕 이게 어떤 코드를 이 프로그램을 코드한 프로그램이 아니라 프로그램 문서화를 하지 않아 가지고 외계인 코드는 문서화를 안 해 가지고 전혀 이게 인식을 모하는 거예요. 문서가 없기 때문에 이게 완전히 외계인이지 뭐 이게 뭐 흔적이 없는 거야. 이건 이런 코드를 외계인 코드라는데 자 이 문서화 문서화가 되지 않은 거죠. 그죠 문서화가 안 돼 가지고 이거 참 운영하는 데도 힘들고 또 사용자가 바뀌어도 이게 참 사용하기도 힘들고 이렇게 해 가지고 또 이게 뭐 예를 들면 문서가 없어져 버린다든지 문서가 없는 소스 코드를 뭐라 한다. 외계인 코드라 한다. 요렇게 알고 있으면 된다. 문서와 그쵸. 고 말이 빠졌네요. 이상하네 이상한 분명히 있는데, 예 좋습니다. 자 그래서 됐어요. 자 그 다음에 몇 분 다 됐죠 이제 예 좋아요. 아이고 빠져가 찝찝하네 하여튼 고것만 하면 되죠.
화자 1
34:16
외계인 코드는 뭐다 이 소수 프로그램 개발된 시스템 프로그램 코드가 문서화되지 않아 가지고 상당히 어려움을 겪는 이런 소프트웨어 코드를 외계인 코드라 합니다. 외계인 그렇제 맞죠. 외계인들은 외계인 코드나 이렇게 우리 소프트웨어에서 불러요 자 그래서 어렵지 않는 거 우리가 시스템의 평가와 문서와 그죠 그래서 요즘 아주 엑기스로 정리를 잘했습니다. 좋나 좋아요. 웃어요. 자 한 5분 10분 쉬다가지고 다음 강의로 여러분 만나 뵙겠습니다. 잠시 후 돌아오겠습니다.
'전진하(JJH)교수님의 강의 > 정보처리기사 산업기사' 카테고리의 다른 글
[정보처리] 시스템분석설계 - 소프트웨어공학과 IPT기법 (0) | 2024.09.05 |
---|---|
[정보처리] 시스템분석설계 - 객체지향 분석과 설계 (0) | 2024.08.10 |
[ 정보처리] 시스템분석설계 - 구조적 분석 설계 (0) | 2024.08.10 |
[ 정보처리] 시스템분석설계 - 프로세스와 프로그램설계 (0) | 2024.08.10 |
[정보처리] 시스템분석설계 - 입출력설계 및 파일설계 (0) | 2024.08.10 |