200 likes | 648 Views
소프트웨어 공학 (Software Engineering) 과목 개요 최미정 강원대학교 컴퓨터과학전공. 소프트웨어 공학이란 ? (1/2). 소프트웨어 공학 강의 개요. 소프트웨어란 ? 프로그램 , 프로그래머 , 소스코드 , 버그 , 에러 , 노가다 , … 하드웨어의 반대말 , 눈에 보이지 않음 , … 공학 (engineering) 이란 ? 컴퓨터 , 전기 , 전자 , 기계 , 건축 , … 엔지니어링 , 엔지니어 , 공돌이 , …
E N D
소프트웨어 공학 (Software Engineering) 과목 개요 최미정 강원대학교 컴퓨터과학전공
소프트웨어 공학이란? (1/2) 소프트웨어 공학 강의 개요 • 소프트웨어란? • 프로그램, 프로그래머, 소스코드, 버그, 에러, 노가다, … • 하드웨어의 반대말, 눈에 보이지 않음, … • 공학(engineering)이란? • 컴퓨터, 전기, 전자, 기계, 건축, … • 엔지니어링, 엔지니어, 공돌이, … 공학(engineering)과과학(science)의 차이는 무엇이지?
소프트웨어 공학이란? (2/2) 소프트웨어 공학 강의 개요 • 소프트웨어 공학이란? • 어떻게 하면 적은 비용으로 소프트웨어를 개발할 수 있을까? • 어떻게 하면 좋은 품질의 소프트웨어를 개발할 수 있을까? • 어떻게 하면 적기에 소프트웨어를 개발할 수 있을까? • 어떻게 하면 시리즈 계속 • 사용자 요구 만족하는 … • 대박을 터트릴 수 있는 … • 가장 재미있는 게임을 …
강의 개요 (1/2) 소프트웨어 공학 강의 개요 • 과목 개요 • 컴퓨터의 발전과 더불어 다양하고 체계적인 소프트웨어 개발 기술 및 방법론이 필요하다. • 소프트웨어 개발에 있어서, 1) 초기 기획 및 설계는 어떻게 하고, 2) 실제 구현 및 시험을 어떻게 수행하며, 3) 또한 사후 관리를 어떻게 하는지 방법론을 습득한다. • 특히, 소규모 그룹 단위의 프로젝트를 수행하면서, 소프트웨어 공학이 실제 상황에 어떻게 적용되는지 간접 체험한다.
강의 개요 (2/2) 소프트웨어 공학 강의 개요 • 강의 내용 요약 • 개요 • 계획 및 요구 분석 • 설계 및 구현 • 테스트 및 유지보수 • 품질 보증 • 소프트웨어 공학 동향
강의 계획(1/5) 소프트웨어 공학 강의 개요 • 선수 과목 (Prerequisites) • 웹 프로그래밍 언어 한 가지 (PHP, ASP, JSP, …) • 혹은 모바일 프로그래밍 언어 (WIPI is preferred) • 담당 교수 • 이름 : 최미정 • 사무실 : 자연대 5호관 201호 • 전화 : (033) 250-8442 • E-mail : mjchoi@kangwon.ac.kr • 홈피 : http://cs.kangwon.ac.kr/~mjchoi/
강의 계획(2/5) 소프트웨어 공학 강의 개요 • 강의 교재 • 주교재: 소프트웨어 공학, 최은만, 정익사, 2003. • 참고도서: • 객체지향 소프트웨어 공학론, 최은만, 사이텍미디어 • 이론과 실무 중심의 21세기용 소프트웨어 공학, Roger S. Pressman, 유해영 역, 사이텍미디어
강의 계획(3/5) 소프트웨어 공학 강의 개요 • 평가 기준 • 중간 & 퀴즈 시험: 40% • 기말 시험: 20% • 과제 및 프로젝트: 30% • 출석: 10% (1/3 이하 출석이면 학교 정책에 의해 F임에 유의바람)
강의 계획(4/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.
소프트웨어 프로젝트의 예 소프트웨어 공학 강의 개요 • 비행기 예약 및 발권 시스템 • 원자력 발전소 제어 및 통제 시스템 • 우주(왕복)선 제어, 유도, 통제 시스템 • 은행 전산 처리 시스템 • 전자 정부 시스템 • 음성 및 데이터 통신 네트워크 시스템 • 최신 운영체제, DBMS … • 그 외, 대규모, 중규모, 소규모 모두 무수히 많음…
CDMA 이동통신 개발 예제 (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, …
CDMA 이동통신 개발 예제 (2/7) 소프트웨어 공학 강의 개요 • (매우 간략히 나타낸) CDMA 망 구조 MS (단말기) SMSC MSC(교환기) HLR BTS (기지국) BSC (제어국) PDSN AAA • PC 개념으로 보면, 전체 시스템은 PC 수백 대 ~ 수천 대에 해당하는 초대규모 시스템임
CDMA 이동통신 개발 예제 (3/7) 소프트웨어 공학 강의 개요 • 개발 인력 구성 예제 (1996년 경, 현대전자, 개략적 숫자임) • MSC: 100여명 • BSC: 50여명 • BTS: 50여명 • HLR: 30여명 • MS: 100여명 • AAA, PDSN: 50여명 (1999년 이후) • 상기 인력은 영업, 마케팅, 생산 인력은 제외한 순수 개발 인력을 나타냄 • 이 같은 대형 개발 조직을 어떻게 조직하고 관리할 것인가?
CDMA 이동통신 개발 예제 (4/7) 소프트웨어 공학 강의 개요 • 각종 변수 • 개발 스펙이 자주 변한다. (규격 진화, 정부/사업자 요구사항, …) • 하드웨어와 소프트웨어가 동시에 개발되어야 한다. • 부족한 엔지니어를 개발하면서 교육시켜야 한다. • 내부 및 외부 interworking이 엄청 많다. • 수많은 또한 복잡한 환경에서의 실험이 필요하다. • 매니저는 물론 엔지니어의 변화(입사, 이직 등) • … 등등등 숫한 난제
CDMA 이동통신 개발 예제 (5/7) 소프트웨어 공학 강의 개요 • 개발 조직을 다음과 같이 엔티티별로 구성해 보았다. 개발 대장 MSC BSC BTS HLR … Software Test Hardware System Engineering Software Test Hardware System Engineering Software Test Hardware System Engineering Software Test Hardware System Engineering Software Test Hardware System Engineering
CDMA 이동통신 개발 예제 (6/7) 소프트웨어 공학 강의 개요 • 개발 조직을 다음과 같이 기능별로도 구성해 보았다. 개발 대장 Hardware Software System Eng. Test BSC HLR … MSC BTS MSC BTS MSC BTS BSC HLR … BSC HLR … BSC HLR … MSC BTS
CDMA 이동통신 개발 예제 (7/7) 소프트웨어 공학 강의 개요 • System Engineering? • 전체 시스템 및 세부 시스템 구조 설계 • 개발 계획 수립 및 비용 최소화 전략 수립 • 신규 기술 동향 파악 및 교육, 표준화 작업 참여 • 마케팅 분야 기술 자료 및 제안서 작성 • Software Engineering? • Software Part of System Engineering
여러분이 개발자로 나가면 … (1/2) 소프트웨어 공학 강의 개요 • 처음(입사 후 10년까지)에는 SE가 어디에 있는지 잘 보이지 않음이때, 주로 관리자가 “무엇을 작성해 내라”, “무슨 계획서를 써라”, “개발이 잘 되어가고 있느냐”고 하는 말들에서 약간의 SE 냄새가 풍김 • 중간 관리자(10년~20년)가 되면, 업무의 절반이 이에 해당함 위에서 “언제까지 제안서를 써라”, “개발 중간 점검회의를 하자”, “어디 가서 발표하고 오너라”, “언제까지 개발할 수 있느냐?” 등의 말을 실천하는 것들이 곧 SE에 해당함 • 고급 관리자(20년~)가 되면, 모든 업무가 이에 해당함사장님이(혹은 고객이) “비용을 최소화한 개발 계획을 세워라”, “필요한 인력을 산출하고 배치하라”, “설계 발표회의를 갖자” 등의 이야기가 곧 SE로 볼 수 있음
여러분이 개발자로 나가면 … (2/2) 소프트웨어 공학 강의 개요 • 결국, 초기에는 SE가 그다지 중요한 작업이 아니며, 규모가 작은 과제(예: 개인 홈페이지 작성 회사)의 경우 궁극적으로 필요하지 않음 • BUT, 중규모 이상인 경우, 관리자가 되면서 SE 관련 작업이 많아지며, 업무 속에서 자연스럽게 실천하게 됨 대학에서 아무리 잘 배워도, 2~3년 지나면 핵심 용어조차 다 잊어버리므로, 관리자가 되었을 경우에, 나름대로의 재교육이 필요함