Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering (Introduction)

Similar presentations


Presentation on theme: "Software Engineering (Introduction)"— Presentation transcript:

1 Software Engineering (Introduction)

2 강의 정보 홈페이지 교수: 김한준 조교: 이가희 http://dmlab.uos.ac.kr
Office: 19415호 Tel: 조교: 이가희 Office: 19408호 Tel:

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

4 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 첨단 소프트웨어 공학 기술 

5 UML: 실습 예: StarUML tool

6 Software Engineering을 위한 modeling language: UML

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

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

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

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

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

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

13 소프트웨어 프로세스

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

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

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

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

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

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

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

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


Download ppt "Software Engineering (Introduction)"

Similar presentations


Ads by Google