20
소프트웨어 소프트웨어 공학 공학 (Software Engineering (Software Engineering) 과목 과목 개요 개요 문양세 문양세 문양세 문양세 강원대학교 강원대학교 IT IT특성화대학 특성화대학 컴퓨터과학전공 컴퓨터과학전공

01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

소프트웨어소프트웨어 공학공학 (Software Engineering(Software Engineering))

과목과목 개요개요

문양세문양세문양세문양세강원대학교강원대학교 ITIT특성화대학특성화대학 컴퓨터과학전공컴퓨터과학전공

Page 2: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

소프트웨어소프트웨어 공학이란공학이란? (1/2)? (1/2)소프트웨어 공학 강의 개요

소프트웨어란?• 프로그램 프로그래머 소스코드 버그 에러 노가다• 프로그램, 프로그래머, 소스코드, 버그, 에러, 노가다, …

• 하드웨어의 반대말, 눈에 보이지 않음, …

공학(engineering)이란?• 컴퓨터 전기 전자 기계 건축컴퓨터, 전기, 전자, 기계, 건축, …

• 엔지니어링, 엔지니어, 공돌이, …

공학(engineering)과 과학(science)의 차이는 무엇이지?

Software Engineeringby Yang-Sae MoonPage 2

Page 3: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

소프트웨어소프트웨어 공학이란공학이란? (2/2)? (2/2)소프트웨어 공학 강의 개요

소프트웨어 공학이란?• 어떻게 하면 적은 비용으로 소프트웨어를 개발할 수 있을까?• 어떻게 하면 적은 비용으로 소프트웨어를 개발할 수 있을까?

• 어떻게 하면 좋은 품질의 소프트웨어를 개발할 수 있을까?

• 어떻게 하면 적기에 소프트웨어를 개발할 수 있을까?• 어떻게 하면 적기에 소프트웨어를 개발할 수 있을까?

• 어떻게 하면 시리즈 계속

사용자 요구 만족하는 …사용자 요구 만족하는 …

대박을 터트릴 수 있는 …

가장 재미있는 게임을 …

Software Engineeringby Yang-Sae MoonPage 3

Page 4: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 개요개요 (1/2)(1/2)소프트웨어 공학 강의 개요

과목 개요• 컴퓨터의 발전과 더불어 다양하고 체계적인 소프트웨어 개발 기술 및• 컴퓨터의 발전과 더불어 다양하고 체계적인 소프트웨어 개발 기술 및

방법론이 필요하다.

• 소프트웨어 개발에 있어서, 1) 초기 기획 및 설계는 어떻게 하고, 2) 실제 구현 및 시험을 어떻게 수행하며, 3) 또한 사후 관리를 어떻게 하는지 방법론을 습득한다3) 또한 사후 관리를 어떻게 하는지 방법론을 습득한다.

• 특히, 소규모 그룹 단위의 프로젝트를 수행하면서, 소프트웨어 공학이실제 상황에 어떻게 적용되는지 간접 체험한다.실제 상황에 어떻게 적용되는지 간접 체험한다.

Software Engineeringby Yang-Sae MoonPage 4

Page 5: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 개요개요 (2/2)(2/2)소프트웨어 공학 강의 개요

강의 내용 요약• 개요• 개요

• 계획 및 요구 분석

• 설계 및 구현• 설계 및 구현

• 테스트 및 유지보수

• 품질 보증품질 보증

• 소프트웨어 공학 동향

Software Engineeringby Yang-Sae MoonPage 5

Page 6: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 계획계획((1/5)1/5)소프트웨어 공학 강의 개요

선수 과목 (Prerequisites)• 웹 프로그래밍 언어 한 가지 (PHP, ASP, JSP, …)• 혹은 모바일 프로그래밍 언어

담당 수담당 교수• 이름 : 문양세

사무실 자연대 5호관 215호• 사무실 : 자연대 5호관 215호

• 전화 : (033) 250-8449

• 이메일 : ysmoon@kangwon ac kr• 이메일 : [email protected]

• 홈피 : http://cs.kangwon.ac.kr/~ysmoon/

• 조교 : 김범수 (bskim@kangwon ac kr)조교 : 김범수 ([email protected])

Software Engineeringby Yang-Sae MoonPage 6

Page 7: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 계획계획(2/5)(2/5)소프트웨어 공학 강의 개요

강의 교재• 주교재: 소프트웨어 공학, 최은만, 정익사, 2007.주교재: 소프트웨어 공학, 최은만, 정익사, 2007.

• 홈페이지: http://se.dongguk.ac.kr/books2.php

• 참고도서:

객체지향 소프트웨어 공학론, 최은만, 사이텍미디어

이론과 실무 중심의 21세기용 소프트웨어 공학, Roger S. Pressman, 유해영 역, 사이텍미디어

Software Engineeringby Yang-Sae MoonPage 7

Page 8: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 계획계획(3/5)(3/5)소프트웨어 공학 강의 개요

평가 기준• 중간 시험: 30%중간 시험: 30%

• 기말 시험: 30%

• 과제 및 프로젝트: 30%

• 출석: 10% (1/3 이하 출석이면 학교 정책에 의해 F임에 유의바람)

Software Engineeringby Yang-Sae Moon

Page 9: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 계획계획(4/5)(4/5)소프트웨어 공학 강의 개요

강의 계획Week 강의 내용 교재 프로젝트강의 내용 교재 프로젝트

1 강의 개요, 소프트웨어 공학 개요(I) Ch1

2 소프트웨어 공학 개요(II) Ch1

3 계획(I) Ch23 계획(I) Ch2

4 계획(II), 요구 분석(I) Ch2, Ch3

5 요구 분석(II) Ch3

6 설계(I) Ch46 설계(I) Ch4

7 설계(II) Ch4

8 중간시험

9 구현(I) Ch7 프로젝트 계획서 제출

10 구현(II), 테스트(I) Ch7, Ch8

11 테스트(II), 유지 보수(I) Ch8, Ch9

12 유지 보수(II) Ch9

13 품질 보증 Ch10

14 소프트웨어 공학 동향 Ch11 프로젝트 발표

Software Engineeringby Yang-Sae MoonPage 9

14 소프트웨어 공학 동향 Ch11 프로젝트 발표

15 기말시험 최종 계획서 제출

Page 10: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

강의강의 계획계획(5/5)(5/5)소프트웨어 공학 강의 개요

과제 관련든 과제는 린 하여 제출하는 것을 원칙으 함• 모든 과제는 프린트하여 제출하는 것을 원칙으로 함

• 과제는 제출 기한 이후 1주 delay이면 20% 감점

프로젝트 관련• 중간고사 2주 이전(4-5주차)에 프로젝트 팀을 구성해 줄 예정이고,

중간고사 직후(8-9주차)에 프로젝트 계획서를 제출하며중간고사 직후(8 9주차)에 프로젝트 계획서를 제출하며,기말고사 직전(15주차)에 최종 보고서를 제출한다.

• 주제: 미정 (웹 혹은 모바일 프로그래밍, 지정 혹은 자유 주제)

강의 사이트• http://cs kangwon ac kr/~ysmoon/courses/2009 2/se/se htmlhttp://cs.kangwon.ac.kr/ ysmoon/courses/2009_2/se/se.html

• 강의 노트는 강의 일주일 전까지는 Upload할 예정임

• Many slides are extracted from Prof. Choi in Dongguk university. Thanks to Prof. Choi.

Software Engineeringby Yang-Sae MoonPage 10

Page 11: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

소프트웨어소프트웨어 프로젝트의프로젝트의 예예소프트웨어 공학 강의 개요

비행기 예약 및 발권 시스템

원자력 발전소 제어 및 통제 시스템

우주(왕복)선 제어, 유도, 통제 시스템우주(왕복)선 제어, 유도, 통제 시 템

은행 전산 처리 시스템

전자 정부 시스템

음성 및 데이터 통신 네트워크 시스템음성 및 데이터 통신 네트워크 시스템

운영체제, DBMS …

그 외 대규모 중규모 소규모 모두 무수히 많음

Software Engineeringby Yang-Sae MoonPage 11

그 외, 대규모, 중규모, 소규모 모두 무수히 많음…

Page 12: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (1/7)(1/7)소프트웨어 공학 강의 개요

CDMA?Code Division Multiple Accessp

• AMPS(Advanced Mobile Phone Service)

• TDMA(Time Division …), SC-FDMA, …

이동통신 인구: 수십만(90년대 초) 4,000만(누구나)

CDMA 이동통신 Brief HistoryCDMA 이동통신 Brief History• 1993년: 개발 착수

• 1996년: 세계 최초 상용화년 세계 최 상용화(ETRI+삼성/LG/현대 한국이동통신(SK Telecom), 신세기통신)

• 1997년: CDMA PCS 세계 최초 상용화 (KTF, LGT, HansolM.com)

Software Engineeringby Yang-Sae MoonPage 12

• 그 후: CDMA 1x, CDMA 1xEV-DO, CDMA-1xEV-DV, W-CDMA, …

Page 13: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (2/7)(2/7)소프트웨어 공학 강의 개요

(매우 간략히 나타낸) CDMA 망 구조

SMSCMS(단말기)

MSCBSCBTS HLRMSC(교환기)

BSC(제어국)

BTS(기지국)

HLR

PDSN AAA

PC 개념으로 보면, 전체 시스템은 PC 수백 대 ~ 수천 대에해당하는 초대규모 시스템임

Software Engineeringby Yang-Sae MoonPage 13

해당하는 초대규모 시스템임

Page 14: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (3/7)(3/7)소프트웨어 공학 강의 개요

개발 인력 구성 예제 (1996년 경, H전자, 개략적 숫자임)• MSC: 100여명• MSC: 100여명

• BSC: 50여명

• BTS: 50여명S: 50여명

• HLR: 30여명

• MS: 100여명

• AAA, PDSN: 50여명 (1999년 이후)

상기 인력은 영업, 마케팅, 생산 인력은 제외한 순수 개발 인력을 나타냄

이 같은 대형 개발 조직을 어떻게 조직하고 관리할 것인가?

Software Engineeringby Yang-Sae MoonPage 14

Page 15: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (4/7)(4/7)소프트웨어 공학 강의 개요

각종 변수

개발 스펙이 자주 변한다 (규격 진화 정부/사업자 요구사항 )• 개발 스펙이 자주 변한다. (규격 진화, 정부/사업자 요구사항, …)

• 하드웨어와 소프트웨어가 동시에 개발되어야 한다.

한 엔지니어를 개발하면서 육시켜야 한다• 부족한 엔지니어를 개발하면서 교육시켜야 한다.

• 내부 및 외부 interworking이 엄청 많다.

• 수많은 또한 복잡한 환경에서의 실험이 필요하다.

• 매니저는 물론 엔지니어의 변화(입사, 이직 등)

• … 등등등 숫한 난제

Software Engineeringby Yang-Sae MoonPage 15

Page 16: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (5/7)(5/7)소프트웨어 공학 강의 개요

개발 조직을 다음과 같이 엔티티별로 구성해 보았다.

개발 대장

MSC BSC BTS HLR …

erin

g

erin

g

erin

g

erin

g

erin

g

Har

dw

are

Softw

are

m E

ngin

e

Test

Har

dw

are

Softw

are

m E

ngin

e

Test

Har

dw

are

Softw

are

m E

ngin

e

Test

Har

dw

are

Softw

are

m E

ngin

e

Test

Har

dw

are

Softw

are

m E

ngin

e

Test

H

Syst

e H

Syst

e H

Syst

e H

Syst

e H

Syst

e

Software Engineeringby Yang-Sae MoonPage 16

Page 17: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (6/7)(6/7)소프트웨어 공학 강의 개요

개발 조직을 다음과 같이 기능별로도 구성해 보았다.

개발 대장

Hardware Software System Eng. Test

MSC

BSC

BTS

HLR …

MSC

BSC

BTS

HLR …

MSC

BSC

BTS

HLR …

MSC

BSC

BTS

HLR …

Software Engineeringby Yang-Sae MoonPage 17

Page 18: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

CDMA CDMA 이동통신이동통신 개발개발 예제예제 (7/7)(7/7)소프트웨어 공학 강의 개요

System Engineering?

전체 시스템 및 세부 시스템 구조 설계• 전체 시스템 및 세부 시스템 구조 설계

• 개발 계획 수립 및 비용 최소화 전략 수립

신 기술 동향 파악 및 육 화 작업 참여• 신규 기술 동향 파악 및 교육, 표준화 작업 참여

• 마케팅 분야 기술 자료 및 제안서 작성

Software Engineering?

• Software Part of System Engineering

Software Engineeringby Yang-Sae MoonPage 18

Page 19: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

여러분이여러분이 개발자로개발자로 나가면나가면 … (1/2)… (1/2)소프트웨어 공학 강의 개요

처음(입사 후 10년까지)에는 SE가 어디에 있는지 잘 보이지 않음이때 주로 관리자가 “무엇을 작성해 내라” “무슨 계획서를 써라”이때, 주로 관리자가 무엇을 작성해 내라 , 무슨 계획서를 써라 , “개발이 잘 되어가고 있느냐”고 하는 말들에서 약간의 SE 냄새가 풍김

중간 관리자(10년~20년)가 되면, 업무의 절반이 이에 해당함위에서 “언제까지 제안서를 써라”, “개발 중간 점검회의를 하자”, “어디 가서 발 하 너라” “언제까지 개발할 수 있 냐?” 등의“어디 가서 발표하고 오너라”, “언제까지 개발할 수 있느냐?” 등의말을 실천하는 것들이 곧 SE에 해당함

고급 관리자(20년~)가 되면, 모든 업무가 이에 해당함사장님이(혹은 고객이) “비용을 최소화한 개발 계획을 세워라”, “필요한 인력을 산출하고 배치하라”, “설계 발표회의를 갖자” 등의이야기가 곧 SE로 볼 수 있음

Software Engineeringby Yang-Sae MoonPage 19

Page 20: 01. 과목 개요 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2009_2/se/01.pdf · CDMA CDMA 이동통신이동통신개발개발예제예제(1/7)(1/7) 소프트웨어공학강의개요

여러분이여러분이 개발자로개발자로 나가면나가면 … (2/2)… (2/2)소프트웨어 공학 강의 개요

결국, 초기에는 SE가 그다지 중요한 작업이 아니며, 규모가 작은 과제(예:

개인 홈페이지 작성 회사 의 경우 실질적 필 하지 않음개인 홈페이지 작성 회사)의 경우 실질적으로 필요하지 않음

BUT, 중규모 이상인 경우, 관리자가 되면서 SE 관련 작업이 많아지며, 업

무 속에서 자연스럽게 실천하게 됨

대학에서 아무리 잘 배워도, 2~3년 지나면 핵심 용어조차 다 잊어버

리므로, 관리자가 되었을 경우에, 나름대로의 재교육이 필요함

Software Engineeringby Yang-Sae MoonPage 20