20
소소소소소 소소 소소소소소 소소 (Software Engineering) (Software Engineering) 소소 소소 소소 소소 소소소 소소소 소소소소소 소소소소소소소 소소소소소 소소소소소소소

소프트웨어 공학 (Software Engineering) 과목 개요 최미정 강원대학교 컴퓨터과학전공

  • Upload
    blake

  • View
    173

  • Download
    9

Embed Size (px)

DESCRIPTION

소프트웨어 공학 (Software Engineering) 과목 개요 최미정 강원대학교 컴퓨터과학전공. 소프트웨어 공학이란 ? (1/2). 소프트웨어 공학 강의 개요. 소프트웨어란 ? 프로그램 , 프로그래머 , 소스코드 , 버그 , 에러 , 노가다 , … 하드웨어의 반대말 , 눈에 보이지 않음 , … 공학 (engineering) 이란 ? 컴퓨터 , 전기 , 전자 , 기계 , 건축 , … 엔지니어링 , 엔지니어 , 공돌이 , … - PowerPoint PPT Presentation

Citation preview

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

과목 개요과목 개요

최미정최미정강원대학교 컴퓨터과학전공강원대학교 컴퓨터과학전공

Software EngineeringPage 2

소프트웨어 공학이란소프트웨어 공학이란 ? (1/2)? (1/2)

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

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

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

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

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

소프트웨어 공학 강의 개요

Software EngineeringPage 3

소프트웨어 공학이란소프트웨어 공학이란 ? (2/2)? (2/2)

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

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

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

• 어떻게 하면 시리즈 계속 사용자 요구 만족하는 … 대박을 터트릴 수 있는 … 가장 재미있는 게임을 …

소프트웨어 공학 강의 개요

Software EngineeringPage 4

강의 개요 강의 개요 (1/2)(1/2)

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

방법론이 필요하다 .

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

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

소프트웨어 공학 강의 개요

Software EngineeringPage 5

강의 개요 강의 개요 (2/2)(2/2)

강의 내용 요약• 개요

• 계획 및 요구 분석

• 설계 및 구현

• 테스트 및 유지보수

• 품질 보증

• 소프트웨어 공학 동향

소프트웨어 공학 강의 개요

Software EngineeringPage 6

강의 계획강의 계획 (1/5)(1/5)

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

담당 교수• 이름 : 최미정• 사무실 : 자연대 5 호관 201 호• 전화 : (033) 250-8442

• E-mail : [email protected]

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

소프트웨어 공학 강의 개요

Software EngineeringPage 7

강의 계획강의 계획 (2/5)(2/5)

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

• 참고도서 : 객체지향 소프트웨어 공학론 , 최은만 , 사이텍미디어 이론과 실무 중심의 21 세기용 소프트웨어 공학 , Roger S.

Pressman, 유해영 역 , 사이텍미디어

소프트웨어 공학 강의 개요

Software Engineering

강의 계획강의 계획 (3/5)(3/5)

평가 기준• 중간 & 퀴즈 시험 : 40%

• 기말 시험 : 20%

• 과제 및 프로젝트 : 30%

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

소프트웨어 공학 강의 개요

Software EngineeringPage 9

강의 계획강의 계획 (4/5)(4/5)

강의 계획Wee

k강의 내용 비고

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

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

3 계획 (I)

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

5 요구 분석 (II)

6 설계 (I)

7 설계 (II)

8 중간시험

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

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

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

12 유지 보수 (II)

13 품질 보증

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

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

소프트웨어 공학 강의 개요

Software EngineeringPage 10

강의 계획강의 계획 (5/5)(5/5)

과제 관련• 모든 과제는 프린트하여 제출하는 것을 원칙으로 함• 과제는 제출 기한 이후 1 주 delay 이면 20% 감점

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

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

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

강의 사이트• 강의 노트는 강의 전까지는 Upload 할 예정임• Many slides are extracted from Prof. Choi in Dongguk university. Thanks to

Prof. Choi.

소프트웨어 공학 강의 개요

Software EngineeringPage 11

소프트웨어 프로젝트의 예소프트웨어 프로젝트의 예

비행기 예약 및 발권 시스템

소프트웨어 공학 강의 개요

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

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

은행 전산 처리 시스템

전자 정부 시스템

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

최신 운영체제 , DBMS …

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

Software EngineeringPage 12

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (1/7)(1/7)

CDMA?Code Division Multiple Access ( 부호 분할 접속 방식 ) AMPS(Advanced Mobile Phone Service), TDMA(Time Division …), …

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

CDMA 이동통신 Brief History• 1993 년 : 개발 착수• 1996 년 : 세계 최초 상용화

(ETRI+ 삼성 /LG/ 현대 한국이동통신 (SK Telecom), 신세기통신 )

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

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

소프트웨어 공학 강의 개요

Software EngineeringPage 13

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (2/7)(2/7)

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

소프트웨어 공학 강의 개요

MSC( 교환기 )

BSC( 제어국 )

BTS( 기지국 )

HLR

PDSN

SMSC

AAA

MS( 단말기 )

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

Software EngineeringPage 14

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (3/7)(3/7)

소프트웨어 공학 강의 개요

개발 인력 구성 예제 (1996 년 경 , 현대전자 , 개략적 숫자임 )• MSC: 100 여명• BSC: 50 여명• BTS: 50 여명• HLR: 30 여명• MS: 100 여명• AAA, PDSN: 50 여명 (1999 년 이후 )

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

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

Software EngineeringPage 15

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (4/7)(4/7)

소프트웨어 공학 강의 개요

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

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

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

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

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

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

• … 등등등 숫한 난제

Software EngineeringPage 16

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (5/7)(5/7)

소프트웨어 공학 강의 개요

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

개발 대장

MSC BSC BTS HLR …

Hard

ware

Soft

ware

Syst

em

Engin

eeri

ng

Test

Hard

ware

Soft

ware

Syst

em

Engin

eeri

ng

Test

Hard

ware

Soft

ware

Syst

em

Engin

eeri

ng

Test

Hard

ware

Soft

ware

Syst

em

Engin

eeri

ng

Test

Hard

ware

Soft

ware

Syst

em

Engin

eeri

ng

Test

Software EngineeringPage 17

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (6/7)(6/7)

소프트웨어 공학 강의 개요

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

개발 대장

Hardware SoftwareSystem

Eng.Test

MSC

BSC

BTS

HLR …

MSC

BSC

BTS

HLR …

MSC

BSC

BTS

HLR … MSC

BSC

BTS

HLR …

Software EngineeringPage 18

CDMA CDMA 이동통신 개발 예제 이동통신 개발 예제 (7/7)(7/7)

소프트웨어 공학 강의 개요

System Engineering?

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

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

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

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

Software Engineering?

• Software Part of System Engineering

Software EngineeringPage 19

여러분이 개발자로 나가면 여러분이 개발자로 나가면 … … (1/2)(1/2)

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

소프트웨어 공학 강의 개요

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

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

Software EngineeringPage 20

여러분이 개발자로 나가면 여러분이 개발자로 나가면 … … (2/2)(2/2)

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

과제 ( 예 : 개인 홈페이지 작성 회사 ) 의 경우 궁극적으로 필요하지 않음

소프트웨어 공학 강의 개요

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

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

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

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