소프트웨어 공학 Lecture #2: 프로세스

Slides:



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

Popcon 이규태 김준수 강예진. 목차  Popcon 이란  개발동기 및 목적  필요성  차별성  설계  개발일정  기대효과 및 향후 계획.
CEO 스타트업 ( 창업 ) 학회. 4 월 5 월 6 월 7 월 8 월 9 월 10 월 11 월 12 월.
Cinema Manager System 최종 발표 조 team05 발표자 : 임 창목 1.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
영화 예매 시스템 - 많이 봤다이가 ? CSE Corp. PM 송진희 김성욱 김보람 천창영.
항공 예약 시스템 1 조 ( 김민철, 김영주, 이혜림, 장유정, 조윤주, 문하늘 ). 목차 차세대 전산시스템 도입의 필요성 현재 항공 시스템 ( 대한항공 ) 항공 시스템의 변화 미래항공 시스템.
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
ICT 기반 베이비붐 세대 창업 사업계획서 작성양식. 목차 1. 창업 동기 2. 지원 동기 3. 자체역량 분석 4. 시장 전망 5. 재무 분석 6. 창업자 및 경영진 준비하시는 사업 특성에 따라 목차 및 세부내용의 일부 변경 ( 추가 및 Skip) 은 가능합니다.
대표자명 / 연락처 / 이메일 ( 기 창업인 경우 회사 명칭 ) 지원하려는 사업 명칭 사업계획서 작성양식.
CRM의 성공사례와 실패사례 6조 송혜정 신은수 원종환
Secure Coding 이학성.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
소프트웨어와 소프트웨어 개발 Software Engineering.
객체지향 소프트웨어공학 12 장 품 질.
시스템 설계와 산업디자인 개발.
소프트웨어 공학 Lecture #2: 프로세스와 방법론
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
3과목 데이터 분석기획 2장 분석 마스터 플랜 정훈기
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
`위대한 게임의 탄생’ 감상문 th UPnL Workshop 김재찬.
‘2012년 정보화 사업 교육 버그추적시스템(BTS) 사용 절차 2012, 02.
소프트웨어 공학의 개요.
Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해
제 10 장 의사결정이란 의사결정은 선택이다.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
영상처리 실습 인공지능연구실.
ERP의 구축방법과 장·단점 1조 김두환 김수철 가민경 김정원.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
소프트웨어 공학 Chapter #1: 소개 1.
FileMaker를 이용한 데이터 관리 옥현진(KICE).
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
BIC 사례 1 연관규칙과 분류모형을 결합한 상품 추천 시스템: G 인터넷 쇼핑몰 사례
기상 레이더 정보를 이용한 획기적인 LID시설 제어 방법 GIST대학 물리학부 정희원 GIST대학 기초교육학부 박연준, 기태윤
Chatpter 01 소프트웨어 공학 소개 01 소프트웨어의 이해 02 공학과 소프트웨어 공학의 이해
플래시 애니메이션 제작과정 (E-러닝) Lee Sunghoon 1.
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
3조 경영학과 김대혁 경영학과 김종섭 경영학과 이진범 경영학과 신영재 중어학과 한송이
소프트웨어 공학 (Software Engineering)
Kangwon National Univ. | Computer Science
소프트웨어 공학 Lecture #10: 유지보수
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
13차시_스마트 애플리케이션 기획 스마트 미디어의 사용환경과 사용자의 특성.
소프트웨어 공학 (Software Engineering)
수율관리를 위한 POP시스템 목적과 용도 시스템과 구성 POP의 효과
김정숙 (고려대학교 2014년) 국어국문학과 한국어학 석사 1기 이 드미뜨리
뇌를 자극하는 Solaris bible.
제안 요약 프로젝트 범위 프로젝트 기간 수행 전략 ㈜인성교육의 정보화전략계획(ISP) 수립
Support Vector Machine
창의적 공학 설계 < 사용자 중심의 공학설계 > : Creative Engineering Design
조직화란 조직의 목표를 최상의 방법으로 실현할 수 있도록 인적자원과 물적자원을 결합하는 과정
Information Communication Technology
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
Map Designer Solution 소개자료
.Net FrameWork for Web2.0 한석수
교량 구조물의 개념 설계 및 프로토타입 제작 과정
6시그마및품질관리 과제 – Define의 적용.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
소프트웨어 설계 및 실습 강기준.
VAULT BASIC / VAULT PROFESSIOAL
Presentation transcript:

소프트웨어 공학 Lecture #2: 프로세스 Eun Man Choi emchoi@dgu.ac.kr 1

학습 목표 소프트웨어 프로세스 바람직한 프로세스의 특징 소프트웨어 개발 프로세스 모델 지원 프로세스

프로세스 정의 소프트웨어를 개발하는 과정, 즉 작업 순서 프로세스가 없는 개발 어떤 일을 하기 위한 특별한 방법으로 일반적으로 단계나 작업으로 구성됨(웹스터 영어 사전) 소프트웨어를 개발하는 과정, 즉 작업 순서 순서제약이 있는 작업의 집합 높은 품질과 생산성이 목표 프로세스가 없는 개발 Code-and-fix 3

Code-and-fix 문제점 요구나 설계 작업의 중요성을 깨닫지 못함 신중하게 잘 설계하지 않으면 소프트웨어 구조가 나빠짐 즉흥적인 방법으로는 사용자의 높은 요구 수준에 도달하기 어려움 계속 고치는 작업이 필요 신중하게 잘 설계하지 않으면 소프트웨어 구조가 나빠짐 즉흥적인 방법은 설계를 해도 되고 안 해도 되는 작업이므로 잘 설계되지 않음 계획이 없어 작업의 목표가 없음 일을 한 후에도 잘한 것인지 못한 것인지 판단할 수가 없음 비용과 일정의 조절을 할 수가 없음 체계적인 테스트 작업이나 품질 보증 차원의 활동에 대한 인식이 없음 발견되지 않은 결함이 남아 계속 고치게 됨 시스템이 더욱 악화

2.1 소프트웨어 프로세스 소프트웨어 개발에 대한 기술적, 관리적 이슈를 다루는 작업 개발 모델별 컴포넌트 프로세스, 부프로세스 존재 서로 다른 목적 서로 협력하여 전체 목적을 만족

프로세스와 프로세스 모델 소프트웨어 프로젝트 프로세스 명세 프로세스 모델 수행할 작업을 조직화한 프로세스를 이용 비용, 일정, 품질에 대한 목표를 성취하는 것 프로세스 명세 프로젝트에서 수행하여야 하는 작업과 이들의 수행 순서를 정의 실행 프로세스는 다를 수 있음 프로세스 모델 일반적인 프로세스를 기술한 것 작업의 단계와 순서 각 단계 작업 수행의 제약사항이나 조건 등을 모아 놓은 것

프로세스의 종류 프로젝트의 중심 프로세스 개발 프로세스 관리 프로세스 기타 프로세스 형상 관리 프로세스 프로세스 관리 프로세스

프로세스의 정의 작업 결과와 검증 조건을 명확히 정의하여야 함 작업 방법 진입 조건, 출구 조건

바람직한 프로세스의 특징(1) 예측 가능성 테스팅과 유지보수 지원

바람직한 프로세스의 특징(2) 변경 지원 – 변경을 쉽게 다룰 수 있는 프로세스 결함 제거

2.3 프로세스 모델 프로세스 모델 대표적인 프로세스 모델 일반적인 모델이 될만한 프로세스를 기술한 것 폭포수 모델 프로토타이핑 모델 점증적 모델 V 모형 일정 중심 설계 모델 진화적 출시 모델 애자일 모델

소프트웨어 생명주기 소프트웨어 생명주기

SE와 유사한 작업들 건물의 건축

(1) 폭포수(waterfall) 모델

계획 ROI 다음 질문의 대답을 찾는 단계 범위 정하기 산정(Estimation) 리스크 분석 일정 계획 관리 전략 수립 How much will it cost? How long will it take? How many people will it take? What might go wrong? 범위 정하기 산정(Estimation) 리스크 분석 일정 계획 관리 전략 수립 Why 단계 ROI Concept 정립

요구 분석 요구 – 시스템이 가져야 할 능력(capability)과 조건(condition) What 의 단계 응용 분야(도메인)에 집중 가장 중요하고도 어려운 단계 조그만 차이가 큰 오류로 변함 결과물: 요구분석서(SRS)

설계 How의 단계 솔루션에 집중 아키텍처 설계 데이터베이스 설계 UI 설계 상세 설계 결과물: 설계서(SD)

구현 ‘Do it’ 단계 코딩과 단위 테스트 설계 또는 통합 단계와 겹치기도 함 특징 이슈 전체 일정을 줄이기 위하여 협력 작업이 필요한 경우 특징 압력 증가 최고의 인력 투입 이슈 Last minute change Communication overhead 하청 관리

통합과 테스트 병행 모듈의 통합으로 시작 점차 완성된 모듈을 추가 통합은 개발자가 주로 담당 테스트는 QA 팀이 주로 담당 통합해 나가면서 테스트 시작 모듈의 통합으로 시작 점차 완성된 모듈을 추가 통합은 개발자가 주로 담당 테스트는 QA 팀이 주로 담당 단계적인 테스트 단위, 통합, 시스템 목적 중심 테스트 스트레스 테스트, 성능 테스트, 베타 테스트, Acceptance 테스트, Usability 테스트

설치와 유지보수 시스템의 타입에 따라 다른 설치 방법 이전(Migration) 정책 시스템을 사용을 시작하게 하는 방법 Web-based, CD-ROM, in-house, etc. 이전(Migration) 정책 시스템을 사용을 시작하게 하는 방법 병행 운용 설치는 개발 프로젝트의 일부, 유지보수는 별개 유지보수 결함을 고침 새 기능 추가 성능 추가

폭포수(waterfall) 모델 1970년대 소개 각 단계가 다음 단계 시작 전에 끝나야 함 항공 방위 소프트웨어 개발 경험으로 습득 각 단계가 다음 단계 시작 전에 끝나야 함 순서적 - 각 단계 사이에 중복이나 상호작용이 없음 각 단계의 결과는 다음 단계가 시작 되기 전에 점검 바로 전단계로 피드백 단순하거나 응용 분야를 잘 알고 있는 경우 적합 한 번의 과정, 비전문가가 사용할 시스템 개발에 적합 결과물 정의가 중요 Method vs. Methodology

폭포수 모델의 단계별 결과물

폭포수 모형의 장단점 장점 단점 적용 프로세스가 단순하여 초보자가 쉽게 적용 가능 중간 산출물이 명확, 관리하기 좋음 코드 생성 전 충분한 연구와 분석 단계 단점 처음 단계의 지나치게 강조하면 코딩, 테스트가 지연 각 단계의 전환에 많은 노력 프로토타입과 재사용의 기회가 줄어듦 소용 없는 다종의 문서를 생산할 가능성 있음 적용 이미 잘 알고 있는 문제나 연구 중심 문제에 적합 변화가 적은 프로젝트에 적합

(2) 프로토타이핑 모델 Rapid Prototyping Model(RAD)

프로토타이핑 모형 프로토타입(시범 시스템)의 적용 프로토타이핑 도구 공동의 참조 모델 프로토타입의 목적 사용자의 요구를 더 정확히 추출 알고리즘의 타당성, 운영체제와의 조화, 인터페이스의 시험 제작 프로토타이핑 도구 화면 생성기 비주얼 프로그래밍, 4세대 언어 등 공동의 참조 모델 사용자와 개발자의 의사소통을 도와주는 좋은 매개체 프로토타입의 목적 단순한 요구 추출 – 만들고 버림 제작 가능성 타진 - 개발 단계에서 유지보수가 이루어짐

프로토타이핑 모형의 장단점 장점 단점 적용 사용자의 의견 반영이 잘 됨 사용자가 더 관심을 가지고 참여할 수 있고 개발자는 요구를 더 정확히 도출할 수 있음 단점 오해, 기대심리 유발 관리가 어려움(중간 산출물 정의가 난해) 적용 개발 착수 시점에 요구가 불투명할 때 실험적으로 실현 가능성을 타진해 보고 싶을 때 혁신적인 기술을 사용해 보고 싶을 때

(3) 점증적 모형 개발 사이클이 짧은 환경 빠른 시간 안에 시장에 출시하여야 이윤에 직결 개발 시간을 줄이는 법 – 시스템을 나누어 릴리스

점증적 모형 릴리스 구성 방법 단계적 개발 점증적 방법 – 기능별로 릴리스 반복적 방법 – 릴리스 할 때마다 기능의 완성도를 높임 단계적 개발 기능이 부족하더라도 초기에 사용 교육 가능 처음 시장에 내놓는 소프트웨어는 시장을 빨리 형성시킬 수 있음 자주 릴리스 하면 가동 중인 시스템에서 일어나는 예상하지 못했던 문제를 신속 꾸준히 고쳐나갈 수 있음. 개발 팀이 릴리스마다 다른 전문 영역에 초점 둘 수 있음.

나선형(spiral) 모형

나선형(spiral) 모형 소프트웨어의 기능을 나누어 점증적으로 개발 실패의 위험을 줄임 테스트 용이 피드백 여러 번의 점증적인 릴리스(incremental releases) Boehm이 제안 진화 단계 계획 수립(planning): 목표, 기능 선택, 제약 조건의 결정 위험 분석(risk analysis): 기능 선택의 우선순위, 위험요소의 분석 개발(engineering): 선택된 기능의 개발 평가(evaluation): 개발 결과의 평가

나선형(spiral) 모형의 장단점 장점 단점 적용 대규모 시스템 개발에 적합 - risk reduction mechanism 반복적인 개발 및 테스트 - 강인성 향상 한 사이클에 추가 못한 기능은 다음 단계에 추가 가능 단점 관리가 중요 위험 분석이 중요 새로운 모형 적용 재정적 또는 기술적으로 위험 부담이 큰 경우 요구 사항이나 아키텍처 이해에 어려운 경우

(4) V 모형

V 모형 폭포수 모형의 변형 장점 단점 적용 감추어진 반복과 재 작업을 드러냄 작업과 결과의 검증에 초점 오류를 줄일 수 있음 반복이 없어 변경을 다루기가 쉽지 않음 적용 신뢰성이 높이 요구되는 분야

(5) 일정 중심 설계 모형

일정 중심 설계 모형 특징 단점 적용 사용자의 요구에 대하여 우선순위를 정하고 이룰 기초로 각 사이클을 계획 초기 단계에 중요한 기능들을 설계, 구현하여 시스템의 골격을 만듦 상대적으로 덜 중요한 기능을 나중에 함으로 일정 조정 가능 단점 우선순위가 낮아 출시에 포함되지 않을 기능을 분석 하고 설계하는 데 시간을 낭비 적용 소프트웨어 제품의 출시 날짜가 매우 중요한 경우 목표 일정을 달성할 수 있을지 불확실할 때

(6) 진화적 출시 모형

진화적 출시 모형 진화적 출시(evolutionary delivery) 프로토타이핑 모형과 다른 점 고객의 요구를 여러 사이클에 걸쳐 개발하여 보여주면서 제품을 개선해 나가는 모형 프로토타이핑 모형과 다른 점 고객의 요구를 프로토타이핑 모형처럼 전적으로 수용하지는 않음 고객의 반응으로 바뀔 가능성이 적은 부분이 시스템의 핵심 프로토타이핑 모형은 시스템에서 눈에 띄는 부분을 먼저 강조하고 나중에 시스템 기반에 있는 구멍을 메워나가는 식

모델이 많은 이유 모델의 선택은 프로젝트의 상황과 요구에 좌우됨 모델을 잘 선택하면 생산성이 높아짐 경우에 따라서는 최적의 효과를 내기 위하여 모델의 융합이 이루어지기도 함

모델 비교와 선택

기타 프로세스

관리 프로세스 비용과 품질 목표를 달성하기 위하여 프로젝트 관리하는 데 필요한 모든 작업 계획, 자원 일정 예측, 모니터링, 제어

품질 보증 프로세스 프로세스와 프로덕트에 대한 품질을 관리하고 향상시키는 것 인스펙션 프로세스 프로세스 관리 프로세스 개발 결과에서 결함을 찾거나 방지하기 위한 노력 정의된 프로세스에 따라 동료 그룹이 작업 결과를 검사하는 것 프로세스 관리 프로세스

Questions?