Software Engineering (Introduction)

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

컴퓨터공학과. 이세돌 vs 인공지능 알파고 컴퓨터공학과 인생은 실험과 도전의 연속 인생은 실험과 도전의 연속.
R 프로그래밍 담당교수명 : 서 영 민 연 락 처 :
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
소프트웨어 공학 (Software Engineering) 과목 개요 문양세 강원대학교 IT 대학 컴퓨터과학전공.
공학작문공학작문 한신대학교 컴퓨터공학부 류승택 Spring. 2 강의 소개 ■ 대상 : 한신대학교 컴퓨터공학부 1 학년 ■ 기간 : ~ ■ 담당교수  류승택교수 (18407 호 ): Tel ,
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
서울시립대학교 전자전기컴퓨터공학부 김한준
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
게임프로그래밍 입문 멀티미디어공학과 이재문.
Software Engineering (Introduction)
(Web Programming & Practice)
2009-1학기 프로젝트 수업 프로젝트 I, III, V, VII 학기.
C 프로그래밍 I.
로봇 소프트웨어.
2006년 컴퓨터공학실험(I) 강의 소개 002, 004분반 인공지능 연구실.
자료구조 Data Structures 2016년 2학기 전자전기컴퓨터공학부 김한준.
Introduction To Computers
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
WJ543 인공지능 2003년도 제 2학기.
소프트웨어와 소프트웨어 개발 Software Engineering.
데이터 마이닝 - 강의 개요 년 가을학기 강원대학교 컴퓨터과학전공 문양세.
Linux/UNIX Programming
1. C++ 시작하기.
C++ Programming: Sample Programs
FTP 프로그램 채계화 박재은 박수민.
컴퓨터과학 전공탐색 배상원.
Mind Map - 교육 공학 영역 분반 04 소속 음악교육과 학번 이름 장미희.
프로그래밍 언어 (C 언어) 기초 과목 개요 문양세 강원대학교 IT대학 컴퓨터과학전공.
프로그래밍2 및 실습 전 명 중.
Software Engineering Final Project
Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Linux/UNIX Programming
컴퓨터소프트웨어설계및실험 년 1학기 실험계획 -.
프로그래밍 언어론 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
정성훈 (연219호) 웹서버프로그래밍 강의 소개 정성훈 (연219호)
Mobile braille system for the blind
CSI8751 인공지능특강 Hybrid Intelligent Systems: Methodologies and Applications 2007년도 제 1학기.
Linux/UNIX Programming
소프트웨어 공학 Chapter #1: 소개 1.
웹디자인
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
컴퓨터 구조.
공학입문설계 2008년도 1학기 임성국 공학입문설계
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해
객체지향 프로그래밍 (강의소개)
데이터 마이닝 - 강의 개요 년 가을학기 강원대학교 컴퓨터과학전공 문양세.
Kangwon National Univ. | Computer Science
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
컴퓨터공학실험 (I) 년 1학기 실험계획 -.
Self Introduction Template PowerPoint
Linux/UNIX Programming
소프트웨어 공학 Lecture #10: 유지보수
강의 제목 강사 이름 | 강의 번호.
Level 0 Level 1 Level 2 Level 3 공모전 후기 모음 웹 서비스 1. 웹 페이지 설계 2. 웹 서버 구현
네트워크 프로그래밍 (모바일 주문 프로그램 )
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
C 프로그래밍 (강의소개)
인공 지능 시대에 필요한 인재 행복한 미래를 만드는 기술자 김송호.
C 프로그래밍 I.
운영체제 (Operating Systems)
마이크로프로세서 수업진행 안 한밭대학교 컴퓨터공학과 송 명 규.
객체지향 프로그래밍 (강의소개)
.Net FrameWork for Web2.0 한석수
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
1. 강의 소개 컴퓨팅적 사고와 문제해결.
소프트웨어 설계 및 실습 강기준.
Linux/UNIX Programming
Presentation transcript:

Software Engineering (Introduction) 2014. 3

강의 정보 홈페이지 교수: 김한준 조교: 이가희 http://dmlab.uos.ac.kr Email: khj@uos.ac.kr Office: 19415호 Tel: 6490-2339 조교: 이가희 Email: code_1007@naver.com Office: 19408호 Tel: 6490-5715

강의 구성 실습 강의 구조적 분석 및 설계 UML 기반 설계 (StarUML) 객체지향 프로그래밍 (디자인 패턴) 소프트웨어 프로세스(개발 Life cycle) 프로젝트 계획 구조적 분석 및 설계 테스팅 방법 객체지향 분석 및 설계(UML) 기타 최근 기술 동향

Textbook: 강의 Software Engineering (5차 개정판) (저자: 최은만, 정익사, 2013) Chap. 01 소개  Chap. 02 프로세스  Chap. 03 계획  Chap. 04 요구 분석  Chap. 05 설계 원리와 아키텍처  Chap. 06 객체지향 설계  Chap. 07 상세 설계와 UI 설계  Chap. 08 코딩  Chap. 09 테스팅  Chap. 10 유지 보수  Chap. 11 품질  Chap. 12 첨단 소프트웨어 공학 기술 

UML: 실습 예: StarUML tool

Software Engineering을 위한 modeling language: UML

소프트웨어 소프트웨어 엔지니어링 작업의 결과 프로그램 그리고, 프로그램의 개발, 운용, 유지/보수에 필요한 제반 정보 프로그램 그리고, 프로그램의 개발, 운용, 유지/보수에 필요한 제반 정보 엔지니어링 작업의 결과 프로그램 이외의 정보 (문서, 개발환경 등)도 중요 S/W가 복잡해지면서 설계가 중요

소프트웨어의 발달 제 1세대 일괄처리 지향 한정된 분포 주문소프트웨어 제 2세대 다중 사용자 지향 실시간 처리 데이터베이스 제품 소프트웨어 제 3세대 분산 시스템 저가의 하드웨어 고객 소프트웨어 -processor출현 제 4세대 강력desktop 시스템 객체지향 기술 전문가 시스템 병렬 컴퓨팅 인공지능 제 5세대 Recognition Thinking Touch/Voice Mobile App. Personalization … 1950 1960 1970 1980 1990 2000

소프트웨어의 발달의 추이 IT 발전 웹 환경의 소프트웨어 수요 급증 => 웹공학 기술 소프트웨어의 복잡도 증가 상품에서 소프트웨어가 차지하는 비중이 커짐 예) 승용차 개발: 15% 이상이 소프트웨어 비용 웹 환경의 소프트웨어 수요 급증 => 웹공학 기술 E-commerce Mobile network 분산 소프트웨어 소프트웨어의 복잡도 증가 개발 과정과 기술이 더욱 중요해짐 내장형 소프트웨어 (embedded software) 수요 증가

소프트웨어 공학이란? 고객의 문제를 해결해 주기 위하여 대규모의 품질 좋은 소프트웨어 시스템을 정해진 시간과 비용으로 개발하거나 발전시키는 체계적인 접근 방법 Production Craft Commercial Science Professional Engineering

소프트웨어공학의 세부 분야 분 야 의 미 사 례 요리와의 비유 방법(method) 소프트웨어 제작에 사용하는 기법이나 절차 구조적 분석, 설계 방법, 객체지향 분석, 설계 방법 익히는 방법 (구이, 찜, 훈제 등) 도구(tools) 자동화된 시스템 설계 도구 프로그래밍 도구 테스트 도구 요리도구 (프라이팬, 압력 솥, 오븐 등) 프로세스(process) 도구와 기법을 사용하여 작업하는 순서 Unified Process eXtreme Programming 조리 순서(recipe) 패러다임(paradigm) 접근 방법, 스타일 구조적 방법론 객체지향 방법론 음식 스타일 (한식, 일식, 중식, 퓨전 등)

소프트웨어공학의 차별성 소프트웨어 엔지니어링은 주로 개발 과정에서 대부분의 비용이 소요됨 소프트웨어는 물리적인 부품이 없음 제품을 찍어내는데 드는 비용은 아주 적음 한 번 개발하면 쉽게 대량 생산 소프트웨어는 물리적인 부품이 없음 제품 신뢰도는 생산(manufacturing)과정이 아닌 설계(design) 과정에 의해 결정 제품의 결함 탐지를 위한 테스팅이 설계과정에 포함될 수 있음 가시성(visibility)이 낮음 진척도를 보여주기 어려움 제품의 구조가 쉽게 드러나지 않음 소프트웨어는 특성상 설계와 구현이 연쇄적이 아님 작은 오류가 심각한 영향을 미칠 수 있음 ‘약간’의 설계 수정이 ‘약간’의 구현 수정으로 이어지지 않음

소프트웨어 프로세스

소프트웨어 공학의 핵심기술 Abstraction Analysis & Design Prototyping Software Architecture Software Development Process Reuse Measurement Development Environment …

소프트웨어 개발의 Myths 개발은 주로 프로그래밍 작업이다. 소프트웨어는 융통성이 많아 고치기 쉽다. 최신 첨단 기술을 사용하면 모든 개발 문제가 해결된다. 개발 및 문서화 표준이 개발 문제를 해결해 준다. 소프트웨어를 고객에게 전달하면 개발자의 작업은 끝난다. 개발자는 프로그램의 기능이 명세에 대하여 맞는지만 보이면 된다. 프로그래머의 능력은 모두 동일하다.

소프트웨어 개발의 특수성 문제가 항상 잘 정의되어 있는 것은 아님: Requirement Engineering 요구를 정확히 정의하지 않아 발생하는 오류가 많음 요구되는 품질이 서로 상충됨 오류가 늦게 발견될수록 수정비용이 커짐 프로그래밍 작업이 디자인보다 오류가 적음 지연된 프로젝트에 인력을 투입하는 것은 완성을 더 느려지게 함 소프트웨어가 적절한 유지보수 정책하에 관리되지 않으면 “dirty system” 으로 변모

소프트웨어 개발의 특수성: 품질 사용용이성(usability) 효율성(efficiency) 신뢰성(reliability) 빨리 배우고 작업을 쉽게 하는 성질 효율성(efficiency) CPU 시간과 메모리 같은 자원을 낭비하지 않음 신뢰성(reliability) 요구한 기능을 실패 없이 할 수 있는 성질 유지보수성(maintainability) 쉽게 변경할 수 있음 재사용성(reusability) 부품이 다른 프로젝트에서 사용될 수 있는 성질.

Evaluation 중간시험: 35% 기말시험: 35% 프로젝트 과제: 20% 출석 및 연습문제 풀이: 10% 8주차 4월말 예정 기말시험: 35% 16주차 6월중순 예정 프로젝트 과제: 20% UML 활용 출석 및 연습문제 풀이: 10% 낙제(F학점) 처리 무단 결석 일수 5일 초과 프로젝트 과제 미제출 중간시험 또는 기말시험 무단결시

유의사항 리포트 제출: 기한 엄수해야 하며, 지각 제출은 예외없이 0점 처리 리포트 표절: 쌍방 모두 F학점 처리 (부분 표절도 동일하게 처리) 결석: 5회 이상 무단결석시 F학점 처리 (20분 이상 지각은 결석) 시험 무단 결시: 중간 또는 기말고사 무단 미응시 경우 F학점 처리 Quiz 미응시: 4회 무응시 경우 한 등급 강등, 5회 무응시 경우 F학점 처리 시험 부정행위: 시험 시행과정에서 부정행위자 퇴장 및 F학점 처리 Quiz 및 시험 답안지 내용에서 부정 행위가 확인되는 경우 부정 행위자 F학점 처리

유의사항 컴퓨터는 수업을 위한 목적으로만 활용해야 함 강의 슬라이드 자료는 프린트해서 오기 바람 강의 슬라이드는 수업 교재가 아님. 교재를 바탕으로 공부해야 함 강의 노트 작성을 권고 의문사항은 강의 중이라도 수시로 교수에게 하기 바람 수업시간 중 학우들간의 대화는 가급적 자제하기 바람 수업 외 시간에 질문사항은 이메일 또는 직접 교수 연구실 방문

강의 구성 실습 강의 구조적 분석 및 설계 UML 기반 설계 (StarUML) 객체지향 프로그래밍 (디자인 패턴) 소프트웨어 프로세스(개발 Life cycle) 프로젝트 계획 구조적 분석 및 설계 테스팅 방법 객체지향 분석 및 설계(UML) 기타 최근 기술 동향