1. 소프트웨어 공학의 이해와 시스템 분석 설계
1-1. 소프트웨어 공학의 필요성과 목적
- 소프트웨어 공학은 품질 좋은 소프트웨어를 만들기 위한 학문임
- (중요) 소프트웨어 품질과 생산성을 극대화시키는 것이 소프트웨어 공학의 목적임
- 하드웨어 개발 속도에 따라가지 못할 때 소프트웨어 위기라 부름
- 소프트웨어 위기를 극복하기 위해 소프트웨어 공학이 필요함
1-2. 소프트웨어 위기와 그 해결 방안
- (중요) 소프트웨어 위기는 하드웨어 속도를 따라잡지 못하는 상황을 말함
- 하드웨어 성능을 따라가기 위해 소프트웨어 공학이 필요함
- 소프트웨어 공학은 하드웨어의 한계를 극복하고, 소프트웨어의 발전을 이끌어냄
- 기존의 소프트웨어 위기를 극복하는 방법 중 하나는 소프트웨어 공학임
1-3. 소프트웨어 공학의 발전과 그 영향
- 소프트웨어 공학은 하드웨어의 발전 이상을 따라가려 함
- 소프트웨어 공학의 발전으로 인해 세상이 소프트웨어에 의해 지배됨
- (중요) 향후 소프트웨어 공학은 하드웨어와 소프트웨어의 연결에서 중요한 역할을 수행함
- 소프트웨어 공학의 발전이 가져오는 사회적 변화를 고려해야 함
2. 소프트웨어의 생명주기와 위기
2-1. 소프트웨어 시장의 변화와 위기
- 소프트웨어 시장은 이미 인프라가 구축되어 있어 새로운 시장 진입이 어려움
- 소프트웨어 개발의 어려움으로 인해 대중들이 소프트웨어 개발 인력이 부족함
- (중요) 프로그램 개발자가 요구사항을 충족시키지 못하는 문제가 발생함
- 소프트웨어 개발 비용이 하드웨어 개발 비용보다 더 많이 소요됨
2-2. 소프트웨어 생명주기 모델의 종류와 특징
- 소프트웨어 생명주기 모델에는 폭포수 모델, 프로타입 모델, 나선형 모델 등이 있음
- (중요) 폭포수 모델은 계획, 요구분석, 설계, 구현, 유지보수의 단계를 거침
- 프로타입 모델은 요구사항을 충족하는 소프트웨어 견본을 만드는 과정을 포함함
- 나선형 모델은 위험 분석 기능을 추가한 모델로 대규모 프로젝트에 적합함
2-3. 나선형 모델의 세부 요소와 특징
- 나선형 모델은 계획 수립, 위험 분석, 개발, 고객 평가의 4단계로 이루어짐
- 계획 수립 단계에서 위험 분석이 포함되며, 이는 각 단계에 따라 점진적으로 추가됨
- (중요) 나선형 모델의 특징은 사용자 요구사항을 충족하는 상황을 예측하여 최적의 대안을 도출하는 것임
- 나선형 모델은 현실적이고 대규모 프로젝트에 적합한 개발 방법임
3. 소프트웨어 공학과 시스템 분석
3-1. 소프트웨어 공학과 시스템 분석의 기본 개념
- 소프트웨어 공학은 소프트웨어 개발과 유지보수를 중심으로 하는 학문임
- 시스템 분석은 시스템의 동작 원리를 이해하고 예측하여 분석하는 과정임
- 시스템 분석 모델에는 왕복, 프로세스, 레이더 등이 있음
- 왕복 모형은 왕복 다중 모형과 왕복 단일 모형으로 나뉨
- (중요) 프로세스 모형은 시스템의 프로세스를 분석하여 시스템의 동작 원리를 이해함
3-2. 소프트웨어 공학의 세부 분야와 도구
- 소프트웨어 공학의 세부 분야에는 소프트웨어 개발, 유지보수, 시스템 분석 등이 있음
- 시스템 분석 모델에는 4세대 언어, 레이더 모형, IPT 등이 있음
- IPT는 품질 좋은 소프트웨어를 개발하는 기법으로 기술적인 도구와 관리적인 도구로 나뉨
- (중요) 기술적인 도구는 구조적 설계, 구조적 프로그래밍 등으로 품질을 높임
- 관리적인 도구는 프로그래머의 책임, 프로그래머 팀 등이 있음
3-3. 구조적 프로그래밍과 관련 기법
- 구조적 프로그래밍은 단일 입구와 단일 출구를 가지는 프로그래밍 기법임
- 제어 구조로는 순차, 반복, 선택 구조를 사용함
- (중요) 순차, 반복, 선택 구조를 이용한 프로그래밍을 구조적 프로그래밍이라고 함
- 구조적 프로그래밍 기법 중 하향식 프로그래밍은 문제를 세분화하여 관련 요소를 정리하고 상위 모듈에서 하위 모듈을 개발함
- PDL과 HPT는 구조적 프로그래밍 기법 중 상세 도표를 사용하는 도구임
4. 소프트웨어 공학의 기본 이론과 도구
4-1. 소프트웨어 공학의 기본 이론
- 소프트웨어 공학은 사용자의 요구를 충족시키는 기능을 제공함
- 시스템 분석은 기능과 문제점을 파악하여 기능을 개선하는 기법임
- (중요) 기능적 프로그래밍과 효율적 프로그래밍이 소프트웨어 품질을 높이는 주요 기법임
- 상세 프로그래밍, 중단점, 포인터, 멀티태스킹과 같은 기법을 통해 기능을 개선함
4-2. 도구와 기법
- 도구와 기법은 소프트웨어 공학에서 사용하는 기본적인 도구와 기법을 포함함
- (중요) 포괄 도표는 전체 시스템을 관리하고 이해하는 데 필요한 도구임
- 총괄 도표는 주요 기능과 구조를 정의하고, 상세 도표는 더 세부적인 기능과 구조를 나타냄
- NS 차트는 구조적 프로그래밍 방법에 사용되는 논리 표현 기법의 도표임
- 피디엘은 소프트웨어 공학의 기본 이론 중 하나로 품질을 평가하고 개선하는 데 중요함
4-3. 도구와 기법의 적용
- 도구와 기법은 소프트웨어 개발에 사용되며, 프로그래머의 작업을 돕는 역할을 함
- 책임 프로그래머 팀은 프로젝트의 성공을 위해 팀을 구성하고 관리하는 역할을 함
- 구조적 검토 회의는 오류를 조기에 발견하고 효과적인 소프트웨어 개발을 위해 필요함
- (중요) 관리적 지원 도구는 프로젝트의 성공을 돕기 위해 필요하며, 이에는 프로그램 팀, 관리자, 보조 프로그래머, 프로그램 사서가 포함됨
- 파트별로 중요하다고 판단되는 단어만 선택하여 공부하면 도움이 됨
화자 1
00:10
자 전국에 계시는 우리 M2M 안방 가족 여러분 계속해서 뜨거운 감동의 수업을 함께 하겠습니다. 예 좋아요. 조금 쉬었제 좋습니다. 자 시스템 분수 설계 만점 그죠 아주 쉬운 과목 어 약간 추상적인 과목이죠. 그러다보니 이 과목은 뭐 핵심 공약 단어들 막 탁 이렇게 공부해야 된다. 암기할 필요 없습니다. 단어 탁탁 제목 정도만 알아도 만점으로 가는 길 그래서 앞 시간에서 우리가 또 인제 설계도 다 끝났고요. 그죠 시스템 평가하고, 그다음에 소프트웨어 비용 산정하고 문서화까지 봤다. 그죠 쉬운 이야기들 제목 정도만 알고 있으면 된다. 병폐야 순자야 허피 디끼요 허피 디끼지 마래이 어 이 스승의 허패를 지키면 안 됩니다. 일에 쉬운 걸 떨어질라고 몸부림쳐도 떨어지지 않는데 떨어진다면 스승은 허패 딛기요 좋습니다. 자 넘어갑니다.
화자 1
01:09
자 이제 시스템 평가와 어 끝나고 이제 소프트웨어 공학과 IPT 기법 자 야 참 이게 모순이 있는 게요 우리 현재 기사 산업기사는 4개의 과목은 공통이야 근데 마지막 과목이 우리 산업기사 학생들은 이 시스템 분석 설계고 우리 그 기사 학생들 소프트웨어 공학이거든. 근데 이게 기사는 이제 뭐 우리 산업기사보다 다 시험 난이도는 똑같은데요. 기사는 이제 4연제 중심이고 우리 산업기사는 전문대 2연제를 졸업하거나 2학년 등록하려는 사람들인데 그지 근데 이상하게 산업기사 범위가 더 커 더 시스템 분석에서 왜 이 소프트웨어 공학 기사 학생들이 이것만 하거든. 근데 산업공학은 우리 시스템은요, 이거 이것도 포함이 돼요. 물론 깊이는 이제 소프트웨어 공학이 조금 더 깊어요.
화자 1
02:02
그죠 깊지만 똑같애 그래서 쪼금 우리 산업기사 범위가 쪼금 더 폭이 넓다는 거 어 그렇지만 쉬워요 예 쉽습니다. 그래서 동생이 이제 형님 몫까지 다 이제 하는 건데 예 그래서 내가 또 JH가 정리를 잘해주니까 좋습니다. 자 그래서 소프트웨어 공학 이거 인제 우리가 기사에 요것만 집중적으로 나오잖아요. 그죠 이 소프트웨어 엔지니어링이랍니다. 이 소프트웨어 공학은 뭐냐 말 그대로 가장 좋은 소프트웨어를 만들어보자 이 말입니다. 에 소프트웨어 이 소프트웨어가 품질 좋은 소프트웨어를 만들어보자 하는데 가장 품질 좋은 소프트 만들기 위한 도구 어떤 도구를 이용할까 어떤 방법에 서서 어떤 절차들을 통해서 품질 좋은 소프트웨어를 학문적으로 공학적으로 접근하자 하는 이야기고 자 이건 다른 말로 소프트웨어의 위기를 극복하기 위한 방법입니다.
화자 1
02:53
소프트웨어 위기 중요하다 요거는 그래서 이 소프트웨어 공학의 목적은 소프트웨어 품질과 소프트웨어 생산성을 극대화시키는 게 목적이다. 가볍게 보면 되죠. 그죠 좋은 프로그램 만들어보자 이왕 만드는 거 이왕 좋은 소프트웨어 만들어서 우리 사람이 진짜 편하게 사회생활하고 컴퓨터 일 다 시키고 이 소프트웨어 일 다 시키고 우리는 그냥 놀자 이 말 아이가 그러다 보면 이제 컴퓨터가 사람을 정복하는 시대가 오겠죠. 유비쿼터스 시대 저는 다 알고 있습니다. 앞으로 100년 100년 뒤에 어떻게 벌어지는지 그래서 이 컴퓨터를 하다 보니까 IT를 하다보니까 예측을 난 잘한다. 그래서 항상 내가 이야기하고 나면은 텔레비 6개월 뒤에 나와요. 희한하디 유비쿼터스 내가 이야기 다 하고 나니까 또 나오고 항상 신문이나 매체는요 뉴스가 아니죠. 뉴스 새로운 소식이 아니고 굳이 제재체가 뉴스지 무슨 말인지 어렵죠 통과 아이 참 어려운 이야기입니다.
화자 1
03:50
자 소프트웨어 크라이시스 소프트웨어 위기 소프트웨이 크라이시스 위기입니다. 위기 자 위기는 현재 소프트웨어 위기 시대예요. 뭐 소프트웨어 개발 속도가 하드웨어 개발 속도에 따라가지 못해 우리 사용자들의 요구사항을 충족시키지 못하는 걸 우린 소프트웨어 위기라 이렇게 부릅니다. 자 이게 무슨 말이냐 현재 여러분이 하드웨어 기술은 엄청나요? 이 반도체 기술 프라세스의 기술 현재 우리 PC만 하더라도 여러분 집에 가지고 있는 병태 수술자 지금 강의 듣고 있는 그 컴퓨터 여러분 64비트 컴퓨팅이 64비터 컴퓨터예요. 아드웨어가 현재 64비트 컴퓨터는 뭐고 1번에 64개의 금덩어리를 들 수 있는 힘을 가지고 있는 강력한 기능을 가지고 있는 장비가 하드웨어야 하드웨어는 64비턴데요. 여러분 그 하드웨어를 움직여주는 소프트웨어들 있죠.
화자 1
04:42
소프트웨어 하드웨어 대표적인 게 CPU 프로세스 마이크로프로세스 그지 어 그리고 현재 인터넷을 많이 만드는 거 64비터 어 현재 펜티움이죠. 펜티움 또 요즘은 뭐 어 인터넷에서 만든 듀얼 코어 방식 듀얼 코어 하는 거 알지 일을요 CPU 프로세스를 하나인데 1은 2가지를 해버려 1은 그래서 듀얼 코아입니다. 일을 하는데 이거 이거 어 하나의 시피뉴로 가지고 일을 두 군데서 동시에 하는 거예요. 듀얼 코아 코아가 2개 있다는 거거든. 또 요즘은 듀얼 코아 투 듀얼 투 코아가 또 나오고 속도가 뭐 3.8기가헤르츠 노트북 같은 경우도 뭐 2기가헤르츠를 넘어버리는 그런 시대가 있잖아. 이 하드웨어 속도는 엄청나게 지금 발전하는데 여러분 그 소프트웨어 소프트웨어 대표적인 게 OS 아니에요. OS 이 하드웨어 CPU는 현재 인텔 인텔 듀얼 코아 이런 것들은 64미터 방식이야 60 살비턴데요. 이걸 움직여주는 OS OS의 대표적인 게 뭡니까?
화자 1
05:38
유닉스라든지 여러분들 어 뭐 리눅스라든지 그죠 리눅스라든지 또는 대표적인 게 윈도 아니에요. 윈도우 어 윈도우죠 현재 어 윈도우 저 여러분의 엑스피 비스타 비스타가 이미 대중화돼 있죠. 여기는 오에서는 32비터예요. 32비터 그죠 물론 비스타는 비슷하죠. 이제 홈홈 프리미어 버전이 있고 비즈니스가 있고 엔터프라이즈가 있고 여러 가지가 있는데, 현재 홈 프리미즈 같은 경우는 32미터에서 32비터 물론 엔터프라이즈 같은 경우는 64비터로 하는데 아직까지 하드웨어 성능을 못 따라가요 그래 그니까 소프트웨어는 32비터고 하드웨어는 64비터요 그렇죠. 이게 무슨 말이냐 현재 여러분들 집에 인텔 컴퓨터 피씨는 64비튼데 여러분 엑스피 깔아놨죠 예 윈도우 깔아놨잖아. 이 엑스피 깔아놨잖아요. 그러면은 64개의 금덩어리를 들 수 있는 기계한테 만약 일을요 32개 시킵니다.
화자 1
06:35
아이 32개 들어라 그러니까 하드웨어는요 컴퓨터는 장난입니다. 발 까딱까딱거리면서 32개 어 컴퓨터의 기능을 100프로 우리 컴퓨터 우리 종이잖아. 24시간 돌려야 되는데 아예 부담을 못 안 느껴 32개씩만 치우면 왜 지령을 지령을 32개씩 일해라 하니까 그러니까 반은 넣어라 한 팔로만 일합니다. 그렇죠. 이런 것이 소프트웨어의 클라이식 위기다 그러니까 하드웨어 속도를 따라잡지 못하는 거 이런 위기를 극복하자 즉 하드웨어가 64미터면 소프트웨어도 64미터 만들자. 하드웨어가 이렇게 발전하면 소프트웨어도 하드웨어 발전 이상을 따라가자 이걸 해결하기 위한 게 뭐냐 소프트웨어 공학입니다. 알겠나 소프트웨어 크라이시스죠 이제 여러분 소프트웨어가 그러니까 블루오션 하드웨어 레드 오션이잖아요. 그 하드웨어 시장에 뛰어들면 안 돼 이미 발전할 때는 발전 다 해서 하드웨어 물리적이죠. 물리적 눈에 보이는 거 소프트웨어 눈에 보이지 않는 논리죠 논리적 그러니까 앞으로는 여러분 봐봐요. 이게 진리잖아.
화자 1
07:33
소프트웨어가 세상을 지배합니다. 하드웨어는요 이미 구축이 다 인프라 구축이 다 돼 있잖아요. 여기에 뛰어들면 안 돼 닦고 저 기름진 데 뛰어들면 안 되는 거예요. 국가든 개인이든 회사든 제조업 같은 경우 이런 사양 산업이죠. 옛날에는 섬유공장 공장 꿀뚝꿀뚝 산업 연기 펑펑 나는 집은 부자여서 요즘은 그게 아니죠. 소프트웨어 논리의 도저히 왜 이미 하드웨어를 하드웨어 이만큼 발전된 그렇기 때문에 이 소프트웨어 시장이 따라가 줘야 되기 때문에 많은 인력과 많은 기술과 많은 노력이 필요하다 많은 돈방석이다. 이 말입니다. 알겠나 여기 이 학문의 진리가 나오제 그래서 JH 이 학문의 도가 통했기 때문에 그런 이야기를 할 수가 있는 겁니다. 소프트웨어의 크라이시스 소프트웨어의 크라이시스 되겠나 아주 쉽죠 그래서 이 시장 우리나라가 이 소프트웨어 시장에 강국이 돼야 되겠죠.
화자 1
08:28
그죠 그럴려면 여러분들 휴먼웨어 내강의 듣고 이런 소프트 아이 뒤쪽에는 희망이 있다는 거죠. 따라갈 되니까. 뭔 말 이해되나 그런 이야기고 또 이제 소프트웨어 위기 측면이 하나가 뭐냐 하면 소프트웨어 저 프로그램 개발자가 사용자의 요구 조건을 충족시키지 못했습니다. 개발자 부족이죠. 현재 봐봐요. 개발자 부족입니다. 개발자 부족 한마디로 현재 여러분 IT 기술자가 없습니다. 여러분은 취업할 데가 없지만, 우리 IT 쪽에서는 기술자가 없어요. 지능인들은 세고 세서 인터넷 클릭 자랑 워드하고 엑셀 하나들은 있지만 정말 소프트웨어를 개발하는 개발자는 없어요. 머리카락 빠질 놈은 없는 거야. 어 그러니까 젊은 사람들 대머리가 많이 있어야 이 나라가 강국인데 대머리가 없으면 안 돼 그래서 우리나라 이 젊은이들이 머리가 자꾸 없어져야 돼요. 마이크로소프트사의 80프로가 대머리 아이가 알겠나 자꾸 없어져야 됩니다. 이 제재치도 옛날에는 머릿수림이 너무나 많았거든. 그래서 이발소에 가면 아저씨 머리를 쑥아주세요. 이렇게 했어요.
화자 1
09:27
근데 요즘은요, 소중합니다. 요즘에 뭐 발라요. 빨라요. 예 하나하나가 소중합니다. 무슨 말인지 잘 모르겠나 그래서 그런 이야기고 또 하드웨어 비용보단 소프트웨어 비용이 더 소요되는 문제입니다. 그죠 오늘날 여러분들 컴퓨터 100만 원보다 그 안에 들어있는 프로그램들이 훨씬 비싸다 이 말입니다. 알겠나 소프트웨어 하나를 개발하는 데 비용이 많이 들어갑니다. 여름을 쓰고 있는 윈도우 비스타 같은 경우는 마이크로소프트에 5천 명의 기술자가 붙어 가지고 대안이 딱 빠져가면서 만든 거예요. 비용이 비쌉니다. 그죠 그러니까 마이크로소프트 이런 걸 팔아먹어 가지고 전 세계 제일 부자가 됐잖아요. 그죠 그래서 요즘 프로그램 개발하는 게 만만치 않다는 거 여러분 알아 놓으시고요. 이거도 소프트웨어 위기라고 봅니다. 됐죠 자 이렇게 한번 잠깐 보고 그 다음에요.
화자 1
10:20
빨리 넘어갑시다 자 소프트웨어의 나이프 사이클 이미 우리는 다 배웠죠 이거나 시스템의 나이프 사이클 같은 이야기죠 하나의 소프트웨어 하나의 시스템을 개발하기 위해서 이제 분석 설계 구현 검사 유지보수 이런 각 공중 단계를 구성한 모델이 너무나 잘하는 이야기 일반적인 소프트웨어 생명주기는요 뭐 이거 같은 말이죠. 정의 단계 개발 단계 유지보수 단계로 나누는데 이 정의 단계는 타당성 검토 프로젝트 개요 요거 분석 저기 한마디로 딱 분석이죠. 분석 분석 단계고 이제 개발 단계는 또 인제 설계 구형검사를 개발 단계에 집어넣습니다. 그죠 그러니까 분석 설계 구형 검사 자 유지보수는 이제 운영 실제 운영하면서 수정하는 단계다 그죠 요렇게 볼 수가 있고 분석 즉 정의 설계구형검사 유지보수고요. 여러분 다이미아 많은 이야기제 더이상 설명 안 해도 알겠죠.
화자 1
11:13
타당성 검토와 계획과 요구분석 요놈의 분석 단계죠 분석 업무분석 프로젝트 분석 정리단계라고 할 수가 있고 계량설계 상세설계 코딩 통합검사 여기까지 가지가 우리는 이제 크게 보면은 개발 단계다 이렇게 보고 볼 수가 있고 마지막 이제 요건 뭐 유지보수 단계 요로케도 이제 볼 수가 있다는 거죠. 해석하는 방법입니다. 참고로 보시면 됩니다. 이미 다 했기 때문에 더이상 안 시부린다 좋습니다. 자 그런데 자 우리가 일반적으로 이렇게 이야기하는데요. 다음 단계 한번 봅시다 예 소프트웨어 생명주기를요 또 학자들이 또 약간약간씩 변형을 해 놨습니다. 그죠 이걸 생명주기 모델이죠. 생명주기의 좋은 종류라 하면 되겠다. 종류 그래서 폭포수 모델 워프로 단계별 모델 프로타임 모델 나선형 사지티 레이더 이런 또 모형들이 좀 있다. 이 말입니다.
화자 1
12:09
아 원칙적으로는 뭐다 분석 설계 구현 검사 유지 호수인데 이놈을 조금 변형했는 거죠. 그래서 보자면 폭포수 모델은 전통적 전형적 고전적 모델이다. 그죠 완전히 소프트웨어 공학에 입각해 있는 거다 일반적인 모델이라 할 수가 있고요. 일명 워포 폭포수 워포 단계 하향식 모델이죠. 그죠 하향식 모델이다. 1단계가 끝나고 물 떨어지고 1단계 끝나고 왜 있냐 이런 방법 앞 단계에 끝나야만 다음 단계를 진행하는 방법이고 2개 이상의 단계가 동시에 수행이 안 되는 거죠. 즉 타당성 검토 이 프로젝트를 개발해야 조일지 말지 검토하고 난 뒤에 계획을 하고 난 뒤에 분석이죠. 분석이 끝나야 설계 설계가 끝나야 구형 구현이 끝나야 검사 검사가 끝나면 이제 유지보수 그렇죠. 툭툭 툭 물 떨어지듯이 떨어진다는 거 폭포 수영 모형입니다. 전형적인 모델이제 전통적인 모델이죠. 고전적인 모델입니다. 좋습니다.
화자 1
13:08
자 특징만 알면 되죠. 자 다음 모델 함 볼까나 예 자 프로타임 모델은 이제 원형모형입니다. 원형 인제 아까 그 폭포수는 단계별 모형이고 원형 모형이죠. 원형 자 요거는 사용자 요구 사항 동그라미 요구 사항을 정확히 파악하기 위해서 실제 개발된 소프트웨어 경보품 모델 하우스를 만들어 최종 결과물을 예측하는 모력 즉 폭포수 모델의 단점을 보여냈다 이거는 뭐냐 사용자 요구사항 자 폭포수 모델은 다 만들어놓고 사용자한테 보여줍니다. 만들었다 그럼 사용자 어 이 내가 요구하는 게 아닌데 이러면 큰일 나잖아. 그래서 이걸 단점을 보완하기 위해서 프로타입 프로 포트폴리오 즉 프로타입 모델을 모델 하우스를 미리 만들어 놓는 거예요. 사용자의 요구사항을 들어 가지고 만들기 전에 모델하우스 있잖아. 견본품을 딱 만들어가 니가 원하는 요게 맞나 모델하우스 비 주고 맞다. 카면 집을 짓는 거예요. 되겠나 고게 바로 프로타입입니다. 그죠 타당성 검토 계획 요구분석 설계 후 이놈을 뭐로 만들어버렸다 원형으로 딱 만들어 놓거든.
화자 1
14:06
원형 그래서 요구사항을 수집하고 신속한 설계 프로타임 구축 가상모의 의지 모델 하우스에 만들어 고객 평가 물어봅니다. 이거 이게 니가 원하는 거 맞나 맞다. 카면 인제 뭐 아이다. 카면 좀 조정을 해 가지고 어 다시 인제 세련화 구현시키는 거죠. 에 원자 프로토타임 모델입니다. 되겠나 사용자 요구 사항을 받아들여 가지고 소프트웨어 시제품 견본품을 만들어서 사용자한테 보여주고 사용자 오케이 카면은 실제 개발이 들어가는 거 대체 요 말만 아시면 됩니다. 예 좋아요. 자 나선 영업 뭐냐 보엠이 역시 보엠이 많이 나온다 보헤미 보엠의 영국의 컴퓨터 공학자죠 그래서 보엠이 이제 나선형 모델을 제안해서 나선형 모델은 포커스 모델 장점과 요런 뭐 장점이 아니라 위험 분석 동그래미 위험분석 기능을 추가한 모델이다. 그죠 가장 현실적인 모임으로 대규모 프로젝트에 많이 적합하다 카는데 뭐 잘 쓰지는 않습니다. 위험 분석 기능이에요.
화자 1
14:58
자 어떠냐 크게 개발 단계를 4단계 나왔죠 계획 수립 단계 위험분석이 들어가면은 나선형이야 나선형 나선형 이거 아이고 그리고 공학적 개발하고 고객평가 4단계를 어떻게 조금씩 점진적으로 점진적으로 점진적으로 점진적으로 하는 겁니다. 그죠 반복을 한다. 반복 뭐 점진적이죠. 점진적 맞나 점진적 말이 좀 더 어렵다 에스피리오카는 점진적 가는 거예요. 꽈배기 꼬듯이 그죠 그래서 요거 아시면 돼요. 그래서 여러분들 위험 분석 기능 요거 들어가면은 뭐 나선형 모델이구나 이건 소프트웨어 공학이나 이 시스템 분석의 핵심적인 단어 딱 알고 시험을 치면 된다. 자 그다음 자 그다음은 이제 사지틱 해가지고 포 4세대 제너레이션 세대죠 4세대 기법 모형은 뭐냐 하면 바로 사용자와 개발자가 쉽게 사용할 수 있는 4세대 언어 포지의 4세대 언어 그죠 객체 지향 언어입니다.
화자 1
15:54
쉽게 말해서 뒤에 별 오피언어 객체지향 프로그램을 이용한 비절차적 모형입니다. 비절차적 모형 그래서 사지엘 나오면 4GT다 4세대형 아 나갑니다. 그죠 요렇게 보면 되고요. 그다음에 레이더 카는 모형은 책에는 잘 없는데 이거는 뭐냐 하면은 혼합모델이고 사지지보다 더 강력하다. 더 좋다. 이 말인데 예 레이디 모형 뭐 요런 것도 있다. 하는 거 아니면 돼요. 레이드 모형 아시겠죠. 예 사진티보단 좀 우수한 방법이고 자 요놈은 이제 그 됐으면 케이스 문 같은 걸 이용하는데 제대로 케이스 케이스 형태죠 자 됐습니다. 요거 나중에 또 뭐 중요한 건 아니고요. 자 4세대 좋습니다. 어 자 그 다음에 자 그래서 인제 우리가 이미 다 배운 거죠.
화자 1
16:42
그죠 소프트웨어 공학 이제 우리가 잠깐 봤죠 소프트웨어 위기 하는 말 특히 이제 우리가 소프트웨어 라이프 사이클 저 시스템인 라이프 사이클을 이제 몇 가지 모형을 모델을 종류를 몇 가지 받는 거 그래서 각각의 정확한 단어만 알면 되고요. 자 IPT도 중요합니다. IPT 자 몇 분 정도 지났나요? 예 IPT는 말 그대로 임프로브 프로그래밍 테크니케 해가 IPT는 뭐냐 말 그대로 품질 좋은 소프트웨어를 개발하는 기법이죠. 말 그대로 소프트웨어의 품질을 개선하는 방법 품질개선 품질을 개선하는 방법 도구들을 IPT라 합니다. 자 보다 향상된 소프트웨어 개발을 위해 지원되는 도구 기술 기법을 우리는 뭐라 한다. IPT 임프루브 프로그래밍 프로그래밍을 개선하는 기술이죠. 어 기법 생산성 향상과 품질 향상을 위한 도구 같은 말이고 IBM에서 그래서 발표를 했고요.
화자 1
17:35
요 도구는 IBT 기법 소프트웨어 품질을 개선하는 도구는 크게 기술적인 측면을 지원하는 도구와 관리적인 도구 두 파트로 나눌 수가 있고 시원하게 내가 전체 종류를 뽑아놨습니다. 이것만 알면 된다. IPT의 종류 즉 소프트웨어 품질을 높이는 도구의 종류 해 가지고 스트럭시도 디자인 구조적 설계 그다음에 구조적 프로그래밍 하향식 프로그램이 PDL 히포 앤 세트 1 2 3 이래서 요놈이 기술적인 지원하는 IPT 도구다 아시면 됩니다. 그리고 관리적 지원도구는 칩 프로그래머 책임프로그래머팀 그 다음에 구조적 검토의 워크스루 인스펙션 검사 심사 요 3가지가 있다는 거 자 여러분들 보시면 되겠죠.
화자 1
18:22
아주 쉽다 자 기술적 지원 동의에 구조적 설계 다른 말로 복합설계죠 설계 설계요 구조적 설계 일반적 설계보다는 스트럭처 구조적 설계가 훨씬 품질을 높인다. 이 말이다. 자 구조적 설계는 계층 행정 구조에 맞추어 하향식 설계하는 방법입니다. 하향식 하향식 동그라미입니다. 구조는 하향식 설계 기법이라는 거 그리고 자료 흐름 중심설계 기법이라고 합니다. 자료중심 데이터의 흐름 DFD를 보고 설계를 한다. 해 가지고 자료 자료 중심 설계 기법이라고 구조적 분석의 산출물인 자 우리가 어 분석을 하죠. 분석 업무분석을 하죠. 분석을 하면은 이 분석했는 결과가 명세서로 나옵니다. 분석명세서 또는 요구명세서라 하죠. 이 명세서가 뭐가 있어요. 이게 또 더 있는데, DFD가 있고 DD가 있고 미니 스펙이 있고요.
화자 1
19:18
소단위 명세서가 있고 그다음에 ERG도 이용됩니다. 개체 우린 이미 델타베이스 배웠죠 개체 관계도 그다음에 상태 전이도 뭐 이런 것들이 어 그 분석의 결과 산추물이 분석 단계에서 나오는 요구 명세서들 있죠. 이놈을 보고 뭡니까? 구조적 설계를 하죠. 설계를 하제 구조적 설계를 합니다. 그런 이야기죠 설계 예 그 이야기입니다. 그러니까 구조적 분석의 산출물인 DFD DFD 배아체 디디 미니스펙 그다음에 ERD 엔티티 릴레이션 다이아그램과 STD 상태 전이도 뭐 이런 걸 가지고 이거 준비된 이후에 설계한다. 이걸 보고 한다. 이 말입니다. 자 구조적 설계 구조적 분석 도구고 저거는 그죠 예 자 구조적 설계를 하는 게 소프트웨어 품질을 높이는 1의 또 도구다 이 말이고 자 그 다음에 한번 볼까요?
화자 1
20:12
저 구조적 프로그래밍은 하나의 프로그램이 단일 입구 및 단일 출구 구조로 된 프로그래밍 기법입니다. 그죠 구조적 프로그램 반드시 입력 하나에 단일 출구에 단일 입구에 단일 출구를 갖는 이런 구조로 된 프로그램 기법이고 이 구조적 프로그램의 기본 제어 구조는 3가지입니다. 순차 구조 반복 구조 선택 구조를 따른다는 것 중요하다 순차반복 선택 구조가 구조적 프로그래밍에 재우조다 이 말입니다. 과거에는 일반적 프로그래밍에는요 고투문이 많이 나왔거든. 고투문 가는 게 무조건 분기문입니다. 무조건 무조건 분기문이야 무조건 분기문이에요. 프레임 짜다가요 에 프레임 짜다가 고투 어디로 가라 고투 10번으로 가버려라 헷갈려요 고투문은 이 이 고트문을 방지하기 위한 거죠. 고트문 고트문은 이게 프로그램 복잡해 합니다. 10번으로 갔다가요 갔다리 갔다리 이 프로그램의 논리성이 없어지죠 그래서 이 고트문 대신에 구조적 프로그램 기법은 뭘 썼다 순차구조 순차 구조 반복 구조 선택 구조를 쓰는 겁니다.
화자 1
21:11
그래서 자 이 중요한 이야기다 구조적 프로그램 일반 프로그램의 고통은 무조건 분기를 배제하는 거죠. 무조건 분기를 대신 뭐 선 다 배제하고 순차 구조 반복 구조 프로그램 구조를 선택 구조로 만들어 버리는 거죠. 자 그러면 이게 구조적 프레이밍이 되는 겁니다. 자 단일 입구와 단일 출구를 가지면서 티본 제어 구조는 고트문으로 프로그램 명령을 제어하는 게 아니고 순차와 선택과 반복문으로 한다는 그런 이야기다 그다음에 또 이제 하향슈 프로그램 기법은 뭐고 문제를 분할하여 세분화 내용으로 관련 요소를 정리하고 상위 모듈로부터 큰데 하위 모듈을 진행해 나가는 프로그램 기법이다. 그건 구조적이죠. 컨데스 이제 자꾸 자꾸 세분화시키는 거죠. 디바이덴 퀄크죠 디바이덴 퀄크 분할과 정복 이론을 가지고 자 이렇게 프레임 하는 게 훨씬 좋다는 거죠. 품질을 높인다는 겁니다. 알겠나 하향식 요런 걸 뭐 하향식 프로그래밍 기법이다. 얘기합니다.
화자 1
22:07
자 프로그램 기술 연어는 PDL 프로그램 디스크립션 랭귀지라 해 가지고 이 구조적 프로그램의 제어구조를 이 제어구조가 순차구조 이 제어구조를 이렇게 도식화하는 게 에너지 차트거든. 이 순차구조 반복 구조 선택 구조가 있어요. 이놈을 영어로 이렇게 두 반복할 문장 은틸 이런 식으로 표현했는 기법이 뭐다 PDL이야 그래서 영어로 표현했다. 캐 가지고 일명 구조적 프레임의 제어구조 이 3가지 구조를 영어로 언어로 기술했다. 캐 가지고 우리 의사하고 또는 구조적 영어라고도 이야기합니다. 그렇제 에 이게 인제 PDL인데 PDL은 이건 있다. 하는 것만 알면 되는 겁니다. 그 다음에 히프는 뭐냐 하면 히어라키카는 게 계층이죠. 계층입니다. 바로 어플러스 인풋 IPO 입출력 그걸 계층 구조로 표현한 도표예요. 도표 이게 바로 히포도 IPT 도구의 하나 즉 분석 및 분석 도구면서 설계도구도 되고 문서화 도구도 된다.
화자 1
23:02
어 분석 및 설계나 문서할 때 사용되는 기법 도구로 입력 처리 출력을 도형화 한 것 도식화한 걸 HPO 아이 히포라 하고 하향식 소프트웨어 개발을 위한 또 도구입니다. 그죠 그 종류는 또 히포 도표의 종류는 크게 3가지가 있다는 거 제목만 알면 되지만 도식 목차 총괄도표 상세도표 제목만 시험에 여러 번 나온다 자 히포의 구성 무슨 뭐 도심 목차 총괄도표 상세 도표입니다. 자 도심 어 목차는 전체적인 흐름은 구조를 나타내 전체적인 흐름과 구조고 종갈은 뭐야? IPO 입력 처리 출력 시스템의 3요소의 기능을 표현한다면, 기능은 기능 도표죠 기능도표 상습 도표는 총괄 총괄이다. 총괄 도표를 세부적으로 표현한 것 그죠 이 3가지가 히포 의 구성이다.
화자 1
23:53
쉽죠 도식목차 흐름과 구조 총괄도표는 기능 IPO의 기능 상세도표는 총괄도표를 세분화한 것 되겠습니까? 그래서 요런 것들이 요런 도구들이 뭐다 구조적 저 뭐 IPT 프로그램의 품질을 높이는 기법들로 이용된다. 여러분 실은 제목만 알면 됩니다. 그래서 내가 더욱더 상세히 이야기를 했습니다. 에 그다음에요. 자 또 이제 NS 또 있죠. NS 나씨 슈나이드먼 독일의 컴퓨터 공원 학자들입니다. 나시 슈나이드만 차트 해 가지고 요거는 구조적 프로그래밍 방법에 사용되는 논리 표현 기법의 도표고 자 구조적 프로그램은 3가지 제어구조를 가지고 있지 순차구조 선택구조 반복 구조 그죠 저 구조적 프로그래밍은 뭐 고트문을 안 쓰죠 무조건 분기를 제어하는 대신 못 쓴다 요걸 쓰잖아. 자 순차구조의 도표입니다.
화자 1
24:47
순차 구조는 이렇게 말 그대로 명령어대로 순차 조수의 선택구조 선책이 아니고 단어 선택 구조는 뭐 조건에 맞으면은 이 문장 입을 처리하고 조건에 틀리면 이 문장을 해라 선택할 수 있는 구조죠 요 그림을 잘 봐놔야 된다. 자 반복 구조는 2가지가 있습니다. 두 화일 반복이 있고 리피드 언틸 반복이 있어요. 두 화일 반복과 리피트 언틸 반복이 있습니다. 자 두 화일은 뭐냐 조건이 맞을 동안 이 문장을 반복합니다. 반복하여 요 부분을 반복하면 이 문장이라 하면은 두 원틸은 뭐야? 리필 언틸은 뭐냐 하면 리필 언틸 반복하고 난 뒤에 조건을 검사합니다. 어이 반복하고 난 뒤에 조건을 검색하니까 문장 수행이 1번 더 되는 거죠. 이거는 엠브이면 이거는 엠 플러스 1번 던진다는 게 EPID ANTLE입니다.
화자 1
25:36
그죠 자 어쨌든지 NASIUMATIMAN 차트는 3가지 저구조를 표현한 도표다 논리적 도표다 하고 이 재구조는 순차 선택 두할 반복 구조 EPID ANTLE 반복 구조 있다는 거 아시면 되는 거고, 이걸 영어로 표현한 게 뭐다 아까 두 뭐 표현한 건 PDL이라는 거 그죠 PDL이라는 거 이래 아시면 됩니다. 그죠 그래서 방금 본 것들이 IPT 기법의 기술적 도구들이다. 그죠 좋습니다. 예 아주 실제 그림만 잘 보면 된다는 거 그다음에 쉬운 거 관리적 지원도구는 뭐야? 이왕이면은 프로그램팀 또 여러 가지가 있죠. 분산형 팀이 있고 여러 가지가 있는데, 책임프로그래머팀 즉 중앙집중형 팀으로 하는 게 좋다는 거예요. 자 책임 프로그래머 팀 자 이 책임 프로그래머 팀은 뭐야? 이 책임 프로그래머를 PM이랍니다. 프로젝트 매니저 밑에 이 사람이 모든 관장하고 그냥 이거 에세이죠. 에세이급이고 이제 프로그램머 샀어 프로그래머 샀어는 문서리를 정리하고 시다발입니다.
화자 1
26:34
시다 예 그러면 정식 프로그램머 이 프로그램을 도와주는 보조 프로그래머 책임프로그램의 팀의 구성원에 구성은 뭐다 책임 프로그램 피엠이 있고 프로그래머가 있고 보조 프로그램이 있고 프로그램 사서 요게 시험에 나온다 요런 거 인원은 프로그램 5명 해도 되고 그죠 프로젝트마다 다르게 하는 건데 그 구성요원이 원은 뭐다 책임프로그래머 프로그래머 보조 프로그래머 프로그램 사스다 그죠 책임 프로그램은 이제 에세이고 프로그램은 프로그램머고 그죠 프로그램 뭐 보조프로그램 도와주는 사람이고 프로그램 사서는 시다바리라는 거 시다바리 그렇죠. 그래서 요렇게 4가지 구성 공원을 가지고 형성된 인원은 뭐요 프로젝트가 많으면 프로그램 10명도 들어갈 수도 있는 거고, 그렇죠. 자 요런 요런 게 이제 관리적 지원 도구다 보통 실무에서도 이렇게 합니다. 우리 회사도 국가프로젝트 할 때 보면은 이제 우리 PM 제가 큰 거는 뭐 제가 하고요.
화자 1
27:27
또 약간 적은 프로젝트는 우리 팀장이 PM 밑에 프로그래머들이 몇 명 붙이고 보조프로그램도 붙이고 문서를 작성하는 이제 시다바리도 붙이고 이렇게 해서 프로젝트를 수행하는 겁니다. 그죠 그래서 관리가 잘 되는 거예요. 자 됐고요. 그다음에 이제 구조적 검토회의 기간 스트럭스 더 워크스루 또는 구조적 검토회의 검토 회의를 내죠 그죠 전문가들이 모여 검토하는 방법으로 오류를 조기에 발견하여 효과적인 프로그램을 개발하기 위한 방법입니다. 이거도 구조적 검토회의 그죠 전문가들이 모여 가지고 계속 프로젝트를 검사해 가지고 오류를 뭐야? 다운시키면서 하는 거고, 그냥 검열은 인스펙션 뭐 검토 회의를 구조적 검토 회의를 발전시킨 형태로써 소프트웨어 개발단이 산출된 경우에 품질을 심사 평가하며 오류를 오류를 문서화하여 다른 소프트웨어 개발 시 참고 자료를 활용하는 거 검열이 된다. 말 그대로 검사 지문 심사죠 품질심사당한다는 거 그죠 자 요렇게 되는 겁니다.
화자 1
28:24
그죠 자 방금 만든 것들이 우리 소프트웨어 공학의 기본 이론과 아 예 소프트웨어에 품질을 높여주는 도구를 배웠지 아이피티 그죠 기술적인 도구 어떻게 했었노 구조 조합 프로그래밍 하향식 프로그래밍 히포 NS 차트 뭐 피디엘 뭐 이런 게 있었죠. 그렇죠. 관리적 도구에는 이제 책임 프로그램의 팀이 좋고요. 구조적 검토회의 검열 요런 3가지가 있었습니다. 제목만 아시면 된다는 말씀 깔끔하게 정리하고 있다. 자 시스템 분석과 설계 또는 소프트웨어 공학 이런 과목들은 중요 단어만 중요 단어만 씹어 나가면 되는 겁니다. 됐죠 그래서 강의를 끝나고 종합 정리를 내가 해드릴게 좋아요. 자 여러분 오늘도 한 2시간 동안 수고하셨고요. 자 내일도 뜨거운 가슴으로 만나 뵙기를 약속드리며 오늘은 여기까지 하겠습니다.
'전진하(JJH)교수님의 강의 > 정보처리기사 산업기사' 카테고리의 다른 글
[ 정보처리] 시스템분석설계 - 시스템 평가와 문서화 (0) | 2024.09.05 |
---|---|
[정보처리] 시스템분석설계 - 객체지향 분석과 설계 (0) | 2024.08.10 |
[ 정보처리] 시스템분석설계 - 구조적 분석 설계 (0) | 2024.08.10 |
[ 정보처리] 시스템분석설계 - 프로세스와 프로그램설계 (0) | 2024.08.10 |
[정보처리] 시스템분석설계 - 입출력설계 및 파일설계 (0) | 2024.08.10 |