소프트웨어 공학 Introduction 박 수 용 서강대학교 컴퓨터공학과.

Slides:



Advertisements
Similar presentations
Product Lifecycle Management © 2003 IBM Corporation PLM Definition Product Lifecycle Management.
Advertisements

Popcon 이규태 김준수 강예진. 목차  Popcon 이란  개발동기 및 목적  필요성  차별성  설계  개발일정  기대효과 및 향후 계획.
소프트웨어 프로세스. 1 내용  소프트웨어 프로세스  생명주기의 의미  생명주기 모델 –Waterfall Model –prototyping model –Spiral Model –Iteration Model.
Cinema Manager System 최종 발표 조 team05 발표자 : 임 창목 1.
 The technical and design related tasks such as technical, maintenance, creation of the Knowledge Base How could a person in charge of purchasing is.
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
Real Time Systems Lab. rtlab.knu.ac.kr 무인 헬리콥터 자율비행 소프트웨어의 실시간 성능 개선을 위한 CAN 기반 센서 네트워크 경북대학교 실시간 시스템 연구실 이재신.
2008년도 하반기 대졸 신입 공채 ▣ 모집대상 년도 2월 졸업자 ~ 2009년도 2월 졸업예정자 (4년제 정규대학 및 대학원) ▣ 모집분야 직군 직무 직무 세부 내용 기술 웹개발 Web Development 웹 페이지 및 웹 스크립트 개발 어플리케이션 개발.
Crystal Reports .NET ASTech System.
팀 구성 : 조재민 (팀장), 고광춘, 유기민, 김대진, 이재호 발표 일자:
Capstone Design - Concept & Management
Chapter 2 정보시스템 아키텍처 (IS Architecture)
Capstone Project Memorandum
한신대학교 컴퓨터공학부 류승택 Spring
IT집중교육1 (Mobile Multimedia Service & System Design)
2장 정보시스템 정의 기본 정의와 정보시스템 개념 © Gabriele Piccoli.
GEK6155 Software Agent (Software Agent Technology in Game)
TinyOS 소개와 이해 한양대학교 무선이동통신 연구실
시스템공학의 역할 2008년 5월 7일 박 종선.
A-7.벤치마킹(Benchmarking)
1. Software Engineering Overview
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
Internet Computing KUT Youn-Hee Han
알기쉬운 DMAIC/DFSS Concept 6.
KAI 장학생 모집 요강 선발개요 선발일정 지원내역 문 의 처
설계를 위한 분석단계 사용자, 과업, 맥락.
ISO 9001:2000 프로세스 접근방법의 이해와 적용 베스트경영컨설팅(BMC).
Program Management - Program and Project Definition -
전략 중심의 조직운영 방향 (SFO : Strategic Focused Organization)
디지털시스템설계 과목 담당교수 : 원 충 상 한국교통대학교 컴퓨터공학과
FTP 프로그램 채계화 박재은 박수민.
컴퓨터과학 전공탐색 배상원.
Action Planning : 변화관리 7단계 모델과 변화추진계획 수립.
KMS 구현 및 활용사례 경쟁력 강화를 위한 2002년 5월 28일(화) 김 연 홍 상무 / 기술사
엔지니어 입장에서 바라본 품질 Quality in Engineering
건축설계사 임동진.
소프트웨어 소프트웨어란? 소프트웨어의 특성 프로그램과 프로그램의 개발, 운용, 유지보수에 필요한 관련 정보 일체
Operation & Maintenance
소비자 감성과 사용성을 고려한 인간공학적 의자설계 및 디자인 인터페이스 개발 한양 대학교 산업공학과 김정룡 외 4명
Software Engineering Final Project
소프트웨어 공학 (Software Engineering)
ERP 시스템의 구축 ERP 시스템의 구축 기업이 ERP 시스템의 도입을 검토하는 단계에서부터 실제 업무에 적용하고 사후관리에 들어가는 단계에 이르기까지 시스템을 효과적으로 사용하기 위해 필요한 모든 활동.
컴퓨터소프트웨어설계및실험 년 1학기 실험계획 -.
소프트웨어 공학 (Software Engineering)
Business Plan & Strategies
신입사원육성체계 및 Mentoring System
Mobile braille system for the blind
Introduction to Computers
객체지향의 한계를 넘어, AOP 전은영,이재훈 고덕윤.
소프트웨어 공학 Chapter #1: 소개 1.
소프트웨어 형상관리: 목차 변경 및 형상관리의 기초 개념 형상항목 확인 및 버전관리 변경관리 감사 및 감사보고 99_11
07. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
Self Introduction Template PowerPoint
성공적인 웹사이트 구축 (2) 변화 발전하는 Site의 미래를 예측 반영해야 함.
경영정보시스템(MIS) management information system.
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
시스템 분석 및 디자인 SDLC 시스템 조사 시스템 분석 시스템 설계.
BBroker.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
1장 시스템 개발 과정의 이해 소프트웨어 위기와 소프트웨어 공학 출 현 배경 이해 시스템(소프트웨어)의 개발자들
창의적 공학 설계 < 사용자 중심의 공학설계 > : Creative Engineering Design
비콘을 활용한 실시간 현장 서비스 SW 종합설계1 김성민 김진석 이준호
제2장 시스템 공학의 절차.
.Net FrameWork for Web2.0 한석수
목 표 관 리.
Lecture 7 7-Segment LED controller using u-controller
소프트웨어 설계 및 실습 강기준.
1 제조 기술의 세계 3 제품의 개발과 표준화 제품의 개발 표준화 금성출판사.
Presentation transcript:

소프트웨어 공학 Introduction 박 수 용 서강대학교 컴퓨터공학과

What is Engineering To build technical artifact Root on basis of science knowledge With an economic context Within a society context Further society to support people

What is Software Engineering To build Software System Root on basis of computer science knowledge With an economic context Within a society context Further society to support people

Program Vs. Software Program = Software ? Program = Set of executable computer instructions Software = Computer program and related documents including analysis, design, project planning etc.

소프트웨어 공학에 대한 또다른 정의 “소프트웨어 공학이란 소프트웨어의 품질과 생산성을 향상시키기 위하여 사용자의 요구사항을 체계적으로 분석하여 설계 및 구현, 구 현된 시스템의 시험 그리고 유지보수 및 폐기 시까지 소프트웨어 전 수명주기 간에 걸쳐 이루어지는 체계적인 접근법을 말한다.” - Sommerville, in “Software Engineering” “The application of a systematic, disciplined, quantifiable approach to development, operation, and maintenance of software; that is, the application of engineering to software. ( 소프트웨어의 개발, 운영 및 유지보수에 체계적이고, 훈련이 잘 된 정량적인 접근 방법을 적용하는 것으로, 소프트웨어 개발및 관리를 공학적으로 접근하는 것을 말한다)” - Definition by IEEE Computer Society

Origin of Software Engineering Back to 1968 NATO Software Engineering Conference Initiated by awareness of software crisis Concluded that software engineering should use the engineering disciplines

Software Crisis Late Delivery Over Budget Inconsistent with the specification Difficult to understand Too costly to modify or improve

Software Crisis (Cont.)

한가한 교차로 통행량의 증가 복잡한 도로 신호등이 도리어 운전자에게 불편함 신호등이 없으므로 불편하고 도리어 정체가 심하여짐 신호등 없이 교통 흐름 제어가 불가능

Goal of Software Engineering Produce quality software on time within budget that satisfies user’s needs. Produce quality system and service Eventually, make business profit through software

Elements of a Software Organization PEOPLE SOFTWARE TECHNOLOGY PROCESSES

소프트웨어 공학기술 개요

S/W 개발 절차 S/W 제품, 시스템, 서비스 개발 S/W 요구사항 정의 S/W 요구사항 분석 S/W 아키텍처 S/W 설 계 구 현 S/W 테스팅

Water Tap Example – Water Tap

Water Tap Example – Wrong Approach Problem to coding! Requirement Statement Heat sensor reports heat. 2. Water flows. 3. Flush in 10 seconds.

Water Tap Example- What went wrong? When water goes too hot, recursion occurs.

Water Tap Example – Wrong Approach Problem Reported! Requirement Statement 1. Avoid recursion.

Water Tap Example – Wrong Approach What’s going on…?

Water Tap Example – Wrong Approach Is THIS what you call a “SYSTEM?”

Water Tap Example – Right Approach Analyze the Problem first! Requirement Statement 1. Heat sensor reports heat. 2. Water flows. 3. Flush in 10 seconds. System Start Sensor Report / (Water On & 10 sec. Timer) Ready Time Out / Init. System Water Flow Hmm Make it precise Flush Water Time Out Water Stop & 10 Sec. Timer Wait Time Out / (Flush On & 10 sec. Timer)

Water Tap Example – Right Approach Design Requirement Statement Heat sensor reports heat. 2. Water flows. 3. Flush in 10 seconds. Water control Subsystem Flush Subsystem Heat Sensor Subsystem Ok Let’s Design Water control Subsystem Flush Subsystem Control Subsystem Heat Sensor Subsystem

Water Tap Example – Right Approach Implement Requirement Statement Heat sensor reports heat. 2. Water flows. 3. Flush in 10 seconds. class heat-sensor { … public; int is-this-hand(); } int heat-sensor::is-this-hand() {…} OK. Let’s Implement

Water Tap Example – Right Approach Problem reported! Requirement Statement 1. Heat sensor reports heat. 2. Water flows. 3. Flush in 10 seconds. Water control Subsystem Flush Subsystem Heat Sensor Subsystem Ok Analyze the Problem class heat-sensor { … public; int is-this-hand(); …} int heat-sensor::is-this-hand() { … }

Water Tap Example – Right Approach Flexible system!

S/W 상품의 세계화 과정 창의적 아이디어 - 틈새시장 - 필요성 - 개선안 IT 요소기술 - AI, DB 계속적인 수정 보완 요구 고객 요구 수요 반복작업 경쟁력 저하 추가적인 아이디어 고품질 요소기술 SE 공학 기술 도입 상품화 및 국내시장 개척 해외경쟁력 확보 다량화 지속적 S/W 경쟁력 유지 시제품 개발 인력의 효율화 가능 - 요구 사항 관리 - 제품의 체계화/규격화 - 재사용 - 생산성 강화 - 품질 강화 - Time-to-market 향상 - 고급화 IT 요소기술 - AI, DB - Multimedia - Java - Network

소프트웨어 공학 기술 범위 소프트웨어 요구 사항 소프트웨어 설계 소프트웨어 구현 소프트웨어 시험 소프트웨어 유지 보수 소프트웨어 형상 관리 소프트웨어 공학 관리 소프트웨어 공학 프로세스 소프트웨어 공학 도구 및 방법 소프트웨어 품질 자료 출처: "Guide to Software Engineering Body of Knowledge (SWE BOK)"

소프트웨어 공학 기술간 관계도 개발 기술 지원 기술 유지보수 (진화) 요구공학 테스트 정형 기법 재 사 용 프로젝트 관리 아키텍처 & 디자인 유지보수 (진화) 요구공학 테스트 개발 기술 정형 기법 재 사 용 프로젝트 관리 지원 기술 프로세스 도구 및 환경 자료 출처: ICSE, 2003