Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해

Slides:



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

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Korea University Student IT Management Society.
Popcon 이규태 김준수 강예진. 목차  Popcon 이란  개발동기 및 목적  필요성  차별성  설계  개발일정  기대효과 및 향후 계획.
Cinema Manager System 최종 발표 조 team05 발표자 : 임 창목 1.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
항공 예약 시스템 1 조 ( 김민철, 김영주, 이혜림, 장유정, 조윤주, 문하늘 ). 목차 차세대 전산시스템 도입의 필요성 현재 항공 시스템 ( 대한항공 ) 항공 시스템의 변화 미래항공 시스템.
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
강의 SKILL-UP 과정 신 현 호. 2 교육 개요 Ⅰ Verbal, Document, Visual Presentation 성공적인 강의스킬 실현 - 학습심리 -HRD 개요 - 교수 설계 & 교안 작성법 지식 - 교수의 제기법 - 교수매체 활용 - 강의.
학 과 : 토목공학과 담당교수 : 김 수 용 분반,조 : 301분반,4조 조 이 름 : 다 크 호 스
Secure Coding 이학성.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Software Engineering (Introduction)
그래픽스 및 웹 응용설계 자기소개 멀티미디어 학과 4학년 장정환.
뇌를 자극하는 Windows Server 2012 R2
졸업 작품 3~4월 진도진행서 김 상 덕 김 영 근 백 강 수
Introduction To Computers
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
Visual Basic .NET 처음 사용하기.
시스템 설계와 산업디자인 개발.
C++ Programming: Sample Programs
HomeNetWork의 개념과 실생활의 예
소프트웨어 공학 Lecture #2: 프로세스와 방법론
컴퓨터과학 전공탐색 배상원.
“DC POWER SUPPLY의 소개”.
현장실습(Co-Operation) 소감 발표
Mind Map - 교육 공학 영역 분반 04 소속 음악교육과 학번 이름 장미희.
7장 소프트웨어 공학과 IPT 7.1 소프트웨어 공학 7.2 소프트웨어 개발 주기 7.3 IPT 기법 7.4 HIPO 기법
Chatpter 09 품질 01 품질의 이해 02 품질 요소와 품질 평가 모델 03 제품 품질 특성 평가 모델
건축설계사 임동진.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
소프트웨어 공학 Lecture #2: 프로세스
‘2012년 정보화 사업 교육 버그추적시스템(BTS) 사용 절차 2012, 02.
소비자 감성과 사용성을 고려한 인간공학적 의자설계 및 디자인 인터페이스 개발 한양 대학교 산업공학과 김정룡 외 4명
소프트웨어 공학의 개요.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
OPENGL Project 계획서 (알카포네의 다이어트)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Term Project 수행 안내 2007 컴퓨터공학실험(Ⅰ).
ERP의 구축방법과 장·단점 1조 김두환 김수철 가민경 김정원.
Mobile braille system for the blind
USN(Ubiquitous Sensor Network)
소프트웨어 공학 Chapter #1: 소개 1.
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
2019년도 전자정보공학과 이수체계도 1학년(트랙) 2학년(트랙) 3학년(트랙) 4학년 1학기 2학기 1학기 2학기 1학기
Chapter 03. 관계 데이터베이스 설계.
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
BIC 사례 1 연관규칙과 분류모형을 결합한 상품 추천 시스템: G 인터넷 쇼핑몰 사례
Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해
플래시 애니메이션 제작과정 (E-러닝) Lee Sunghoon 1.
Software Engineering Project
Kangwon National Univ. | Computer Science
소프트웨어 공학 Lecture #10: 유지보수
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
Level 0 Level 1 Level 2 Level 3 공모전 후기 모음 웹 서비스 1. 웹 페이지 설계 2. 웹 서버 구현
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
창의적 공학 설계 < 사용자 중심의 공학설계 > : Creative Engineering Design
TEXT 콘텐츠의 학습적 활용을 위한 Moodle의 사용자 중심 기능 개선 제안
마이크로프로세서 수업진행 안 한밭대학교 컴퓨터공학과 송 명 규.
4과목 소프트웨어 공학 강사 이 민 욱.
.Net FrameWork for Web2.0 한석수
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
교량 구조물의 개념 설계 및 프로토타입 제작 과정
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
소프트웨어 설계 및 실습 강기준.
LEON3 DBT 엔진을 이용한 ERC32 기반의 하이퍼바이저 프로토 타입 개발
졸업프로젝트.
1 제조 기술의 세계 3 제품의 개발과 표준화 제품의 개발 표준화 금성출판사.
생산성 증대 효율성 향상 측정 수행 능력.
Presentation transcript:

Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해 03 소프트웨어 개발 단계의 소개 요약 연습문제

소프트웨어의 특징을 살펴본다. 소프트웨어 공학의 뜻을 이해한다. 소프트웨어 개발 단계를 알아본다

Section 01 소프트웨어의 이해

1. 소프트웨어가 사용되는 곳

2. 프로그램과 소프트웨어 프로그램 소프트웨어 원시코드source code 모든 산출물(자료구조, DB구조, 테스트 결과 등) 각 단계마다 생산되는 문서 사용자 매뉴얼 → 프로그램 뿐만 아니라 그 이상의 것도 포함하는 매우 포괄적인 개념

3. 소프트웨어의 분류 관리 소프트웨어 제어 소프트웨어 임베디드 소프트웨어 자료를 받아들여 가공한 후 정보를 제공하는 소프트웨어 주로 DB에 자료를 저장한 후 검색을 통해 사용자가 원하는 형태로 정보를 제공 (예) 인터넷뱅킹 시스템, 대학의 종합정보 시스템, 예약 시스템 등 제어 소프트웨어 각종 센서를 이용하거나 기기들의 동작을 제어하는 소프트웨어 (예) 교통 신호 제어, 의료기기 제어 공장장비 제어 등 사용자 매뉴얼 임베디드 소프트웨어 장비나 기기에 내장된 형태의 소프트웨어 (예) 가전제품내의 소프트웨어, 각종 공정제어 시스템내의 소프트웨어

4. 소프트웨어의 특징 제조가 아닌 개발 소모가 아닌 품질 저하 제조: 정해진 틀에 맞춰 일정하게 생산하는 것으로, 많은 인력이 필요하고 능력별 결과물 차이가 근소함 개발: 개인 능력 별 결과물 차이가 매우 큼 소모가 아닌 품질 저하 H/W : 오래 사용하면 부품이 닳고, 고장 발생 빈도 높고, 기능도 떨어짐 S/W : 오래 사용해도 닳지 않고, 고장 발생 빈도 낮고, 기능도 동일 함

5. H/W 실패 곡선(욕조 곡선)의 특징 초기 실패율 높음 오류 해결 오랜 기간 동안 사용 주변 환경 문제 발생 (먼지, 진동) 다시 실패율 증가

6. 이상적인 소프트웨어 실패 곡선 특징 : 이상적인 상황 발견되지 않은 오류로 초기 실패율 높음 오류 해결 개발 완료 후 변경 사항 없어야 함 개발 완료 후 환경 변화 없어야 함 발견되지 않은 오류로 초기 실패율 높음 오류 해결 오랜 기간 동안 사용

7. 실제 소프트웨어 실패 곡선 초기 실패율 높음 오류 해결 실패율 낮음 변경 발생 (기능 추가 및 수정) 변경으로 인한 부작용 실패율 급격히 증가

8. 소프트웨어의 당면 과제(1) 소프트웨어 개발의 느린 발전 속도 새로운 소프트웨어에 대한 사용자 요구의 증가 H/W의 발전: PC 및 스마트폰의 발전 속도(크기, 속도, 성능) S/W 발전 속도: DOS ~ Windows 10 새로운 소프트웨어에 대한 사용자 요구의 증가 S/W의 발전 속도가 미처 따라가지 못함 H/W와 S/W의 개발 방법의 근본적인 차이 때문 H/W: 검증 받은 부품을 조립하는 형태의 생산 S/W: 처음부터 만들어가는 개발 형태 (해결 방안) CBD개발 방법론

8. 소프트웨어의 당면 과제(2) 관리 기술의 부분적 활용 기계: 닦고, 조이고, 기름치고 => 수명 연장 S/W 개발에도 관리가 필요 비용 관리 일정 관리 개발자 관리 → PMBOK를 활용한 적극적인 프로젝트 관리 필요

9. 소프트웨어 개발의 어려움(1) 개집 짓기 필요 도구: 망치, 톱, 줄자 등 설계 도면 필요 없음, 머릿속 구상만으로도 충분 혼자 가능, 만드는 과정 단순

9. 소프트웨어 개발의 어려움(2) 단독주택 짓기 필요 도구: 레미콘과 같은 장비, 시멘트 등의 수 많은 자재 설계 도면, 건축 설계사 필요 많은 사람 참여, 만드는 공정 과정 필요

9. 소프트웨어 개발의 어려움(3) 대형 빌딩 짓기 필요 도구: 레미콘뿐만 아니라 크레인과 같은 대형 장비 설계 도면, 건축 설계사뿐만 아니라 내진 설계 필요 많은 사람이 참여할 뿐만 아니라 통제와 조정할 수 있는 조직(부서)이 필요 하중 문제 등 고려 사항이 많음

9. 소프트웨어 개발의 어려움(4)

Section 02 공학과 소프트웨어 공학의 이해

1. 공학 공학의 사용 예 공학의 특성 소프트웨어 공학 전기공학과, 건축공학과, 토목공학과 등의 대학교에서 학과 명으로 사용 제약 사항: 정해진 기간, 주어진 비용 → 과학적 지식을 활용하여 문제를 해결하는데 한정된 기간과 비용의 제약을 받음 소프트웨어 공학 소프트웨어 + 공학 취지: ‘소프트웨어 개발 과정에 공학적인 원리를 적용하여 소프트웨어를 개발’ 목적: S/W 개발의 어려움 해결 효율적 개발을 통한 생산성 향상 고품질 소프트웨어 제품

2. 소프트웨어 개발 과정 소프트웨어 개발 생명주기(SDLC Software Development Life Cycle) 계획 단계에서 유지보수 단계에 이르기까지 일어나는 일련의 과정

품질 좋은 소프트웨어를 경제적으로 개발하기 위해 3. 소프트웨어 공학 정의 목표 개발 과정에서의 생산성 향상 고품질의 소프트웨어 생산 → 사용자 만족 품질 좋은 소프트웨어를 경제적으로 개발하기 위해 계획을 세우고, 개발하며, 유지 및 관리하는 전 과정에서 공학, 과학 및 수학적 원리와 방법을 적용하여 필요한 이론과 기술 및 도구들에 관해 연구하는 학문

Section 03 소프트웨어 개발 단계의 소개

1. 소프트웨어 개발 단계 소프트웨어 개발 프로세스 품질 관리 프로젝트 관리 1단계 : 계획 2단계 : 요구분석 3단계 : 설계 4단계 : 구현 5단계 : 테스트 6단계 : 유지보수 품질 관리 프로젝트 관리

2. 계획/요구분석 단계 1단계 : 계획(3장에서 구체적으로 설명) 2단계 : 요구분석 (4장에서 구체적으로 설명) 개발 비용 산정: COCOMO모델, 기능점수(FP)모델 사용 일정 계획: 작업분할구조도WBS, CPM 사용 위험 관리 2단계 : 요구분석 (4장에서 구체적으로 설명) 기존 시스템의 문제점 파악 → 새로운 요구사항 도출 → 다이어그램 작성 개발 방법론에 따른 표현 도구 구조적 방법론: DFD, DD, Mini Spec 정보공학 방법론: E-R 다이어그램 객체지향 방법론: UML의 유스케이스 다이어그램 최종 산출물: 요구 분석 명세서

3. 설계/구현 단계 3단계 : 설계 (5-6장에서 구체적으로 설명) 4단계 : 구현 (7장에서 구체적으로 설명) 설계 원리: 분할과 정복, 추상화, 단계적 분해, 모듈화, 정보은닉 소프트웨어 아키텍처, 객체지향 설계 아키텍처 스타일 GoF의 디자인 패턴 모듈 평가 기준: 응집도와 결합도 4단계 : 구현 (7장에서 구체적으로 설명) 간략한 프로그래밍 언어의 역사 표준 코딩 규칙

4. 테스트/유지보수 단계 5단계 : 테스트 (8장에서 구체적으로 설명) 6단계 : 유지보수 (10장에서 구체적으로 설명) 테스트의 절차 개발자 또는 사용자 시각에 따른 분류 사용되는 목적에 따른 분류 품질 특성에 따른 분류 소프트웨어 개발 단계에 따른 분류 6단계 : 유지보수 (10장에서 구체적으로 설명) 수정 유지보수 적응 유지보수 기능보강 유지보수 예방 유지보수

5. 소프트웨어 개발 프로세스 소프트웨어 개발 프로세스(2장에서 구체적으로 설명) 주먹구구식 개발 모델 선형순차적 모델(폭포수 모델) V 모델 진화적 프로세스 모델(프로토타입 모델) 나선형 모델 단계적 개발 모델 통합 프로세스 모델(UP) 애자일 프로세스 모델

6. 품질 관리 품질 관리(8장에서 구체적으로 설명) 프로세스 품질 특성 평가 제품 품질 특성 평가 ISO/IEC 9126 모델 프로세스 품질 특성 평가 ISO/IEC 9000 모델 ISO/IEC 12207 모델 CMMI 모델 SPICE 모델

7. 프로젝트 관리 프로젝트 관리 (10장에서 구체적으로 설명) PMBOK프로젝트관리지식체계의 9가지 관점 형상 관리 ① 프로젝트 통합 관리 ② 프로젝트 범위 관리 ③ 프로젝트 일정 관리 ④ 프로젝트 비용 관리 ⑤ 프로젝트 품질 관리 ⑥ 프로젝트 인적자원 관리 ⑦ 프로젝트 의사소통 관리 ⑧ 프로젝트 위험 관리 ⑨ 프로젝트 조달 관리