MDD The Pragmatics of Model-Driven Development Bran Selic, IBM Rational Software 서강대 정보통신대학원 소프트웨어공학 차우람 (A50014) 조용성 (A49012) 2015-06-11 최종 수정.

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

StarUML UOS, SELab. Jinhan Kim.. University of Seoul, Software Engineering Laboratory 1. StarUML 특징  StarUML™ 은 UML(Unified Modeling Language)
서강대학교 컴퓨터공학과 양지웅. 목차 IBM 본사 소개 IBM Korea 소개 IBM 사업 소개 STG Software Group GTS GBS IBM 내부 환경 소개 취업관련 정보 Appendix 2.
® IBM Software Group © 2009 IBM Corporation 인구부문 조사시스템 검토회 조사시스템관리과 이준휘
전자회로 II 1 1st Lecture: Electronic Circuit Design Hoi-Jun Yoo Semiconductor System Laboratory Dept. of E.E. KAIST.
소프트웨어 프로세스. 1 내용  소프트웨어 프로세스  생명주기의 의미  생명주기 모델 –Waterfall Model –prototyping model –Spiral Model –Iteration Model.
SW Testing Foundation 교육 1 일 기술 2G 배경호. Test in Life Cycle Request STATIC DYNAMIC Design Code Compo nent Integra tion System Accept ance.
1 홈페이지 컨텐츠 정의서 메뉴명회사소개 > 회사개요 작성자이광호작성일 회사개요 X 당사는 ㈜위브솔루션 (WeveSolution) 으로서 수년간 ERP (Enterprise Resource Planning) Project 를 수행하여왔던 젊고 활기찬.
Agenda IT Service 사업이란 ? 2 IT Service 사업 수행 프로세스 3
(4) 우리 나라의 이상과 목표 2. 국가의 중요성과 국가 발전 중학교 2학년 도덕
Introduction to Enterprise Resource Planning w/ SAP R/3
Capstone Design - Concept & Management
설계 프로젝트 경진대회 성결대학교 컴퓨터공학과 내가 꾸미는 우리 집 팀장 김용훈 김경희 김미선 김헌진.
Chapter 2 정보시스템 아키텍처 (IS Architecture)
‘조달물자 자가품질보증제도'(가칭) 개발 관련 자료
Open Platform을 기반으로 한 System SW 및 Application SW 전문가
Smart Factory를 위한 교육용 MES 구축
IBM Academic Initiative 소개
SQL Server 개요 SQL Server의 역사를 파악한다. SQL Server 2008의 특징을 이해한다.
1. 근접경호의 개념 경호대상의 신변을 보호하기 위하여 지근거리에서 실시하는 호위활동을 말하며 경호행위의 마지막 보루이다.
’12년도 QSB 정착 계획 (Quality System Basic)
Multimedia Lab. Introduction
INI STEEL 성과관리시스템 구축을 위한 SAP 제안설명회
우수기업사례 금호아시아나의 핵심역량 모델링을 통한 교육체계와 인재육성 사례
TDD Junit TDD & Spring Framework 참고자료
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
Enterprise Data Warehouse
KAI 장학생 모집 요강 선발개요 선발일정 지원내역 문 의 처
12. 데이터베이스 설계.
[2008년 상반기 신입사원 입문 교육] 비즈니스 프로세스 관리 기술지원센터 기술기획팀.
목표 구성 의료분야에서 사용되는 운영관리 개념과 계량적 분석기법 이해
연구소의 R&D 관리 - 과제 선정/개발/상품화 -
Socket & Plug 기반의 u-Banking Platform
- Make Processes Manageable -
BPR 추진전략 및 사례 1.
IT CookBook, 창의적 공학설계 : Creative ideas
표준화와 품질보증시스템.
소프트웨어 공학 (Software Engineering) 품질 보증 (Quality Assurance)
10.1 품질 개념 10.2 품질 보증 활동 10.3 프로세스 품질 10.4 프로덕트 품질 측정 10.5 인스펙션
10장: 품질 보증 - Software Engineering -.
SOAP 클라이언트 개발 Guide
소프트웨어 소프트웨어란? 소프트웨어의 특성 프로그램과 프로그램의 개발, 운용, 유지보수에 필요한 관련 정보 일체
제 1 장 소 개 시스템 분석 및 설계 허철회 2006학년도 2학기 상주대학교 컴퓨터공학과.
Past, Present, and Future Trends
Systems Engineering 충북대학교 토목공학부 토목시스템공학전공 정보기술기반 건설경영연구실
교육과정과 주요업무.
월 정례조회.
소프트웨어 공학 (Software Engineering)
생산운영관리 입문 CHAPTER01 (Introduction to Operations Management)
I. 우리은행 교육 체계 1. 인재개발 전략 Mission 인재개발 4대 방향 인재개발 5대 원칙 인재개발 기반
소프트웨어와 소프트웨어 개발 - Software Engineering -.
1. Folding 건축설계 : 최준오교수.
소프트웨어 형상관리: 목차 변경 및 형상관리의 기초 개념 형상항목 확인 및 버전관리 변경관리 감사 및 감사보고 99_11
13.1 정보시스템의 개요 13.2 정보시스템의 개발 13.3 시스템 검사 13.4 시스템 문서화
업무 생산성 향상 방안 Wisdom21 Management Consulting
과정 정리 오 세 종.
UML과 객체지향 모델링 UML의 개요 객체지향 모델링.
PI 추진 시 Change Agent의 역할.
’12년도 QSB 정착 계획 (Quality System Basic)
1장 시스템 개발 과정의 이해 소프트웨어 위기와 소프트웨어 공학 출 현 배경 이해 시스템(소프트웨어)의 개발자들
현장 작업자를 위한 업종별 교안 2013-교육미디어-1451.
기술혁신 세미나 Technology integration: Managing technological evolution in a complex environment Marco Iansiti Research Policy 24 (1995) 기술경영학 협동과정 박사2학기.
경영이란---조직의 목표달성을 위하여 수행되는 일체의 활동 또는 과정을
강의교안 이용 안내 *이 책에 딸린 강의자료는 교수님의 효율적인 수업진행을 돕기 위해 만들어졌습니다.
1학년 신입생 학부모교실 안내사항 2019년 3월 6일 1학년부장 김희선.
MDA 기반 태양광 에너지 모니터링 시스템의 유지보수를 위한 비용 감소 방안 사례
노인학대예방 교육 교육강사 시 설 장 송나겸 보성실버센터.
Windows System Programming
Introduction to Computer System Spring, 2019
Systems Engineering 충북대학교 토목공학부 토목시스템공학전공 시스템공학연구실
Presentation transcript:

MDD The Pragmatics of Model-Driven Development Bran Selic, IBM Rational Software 서강대 정보통신대학원 소프트웨어공학 차우람 (A50014) 조용성 (A49012) 최종 수정

목차 MDD 소개 MDD 등장 배경 (The Challenge) MDD 필수 기술 요소 (The Essentials) MDD 모델 특성 (The Quality of Models) MDD 성공 요건 (The Pragmatics) 에필로그

MDD 소개

Model: – 라틴어 modellus (small measure) 에서 유래 – 기존 또는 계획 예정인 대상물 ( 실물 ) 의 입체적인 특성을 명시하기 위해 실물을 본떠 만든 것 ( 두산백과사전 ) Development: – 여러 방법을 통해 문제를 해결하는 능동적인 과정 (An active process of problem solving via analysis and synthesis of alternatives...) Mraidha_Part1.pdf

MDD 소개 Model Driven Development – 소프트웨어 개발 방법론 – 플랫폼 독립적인 SW 모델로부터 플랫폼 종속적인 SW 모델로 변환 ( 자동 ) 하고, 소스코드 및 산출물을 자동 생성하는 방법 – 원하는 플랫폼에 맞는 SW 를 쉽고 빠르게 개발 가능, SW 완성 전에 확인과 검증 가능 Shift to model driven development 출처 : 출처 : A4%ED%85%8D%EC%B2%98

MDD 등장 배경 The challenge

MDD 등장 배경 당시 기대에 미치지 못하는 SW 공학의 위치 – 참고 SW 공학 –Software Crisis 극복을 위한 방법으로 SW 공학 제안 (1968, NATO 소프트웨어공학 학회 ) – 미리 협의된 기간 ( 납기 ) 과 허용된 비용 ( 예산 ) 내에서 고객의 니즈를 만족시킬 수 있 는 품질을 갖춘 소프트웨어를 만들고, 유지보수하기 위한 ( 공학적인 ) 접근 방법 SW: 컴퓨터 프로그램과 관련 데이터의 모음이자 문서 ( 요구사항 스펙, 설계, 테스트 계획 도 포함 ) 신뢰성, 생산성 향상을 위한 새로운 방법이 필요 – 기존 방법 ( 프로그래밍 기술, 프로세스 개선 등 ) 만으로는 근본적인 향상, 해결 불가 능

MDD 등장 배경 생각을 표현하고, 이 표현한 것을 이용하여 개발하는 방법에 관심 – 핵심 개념 : 추상화 (abstraction) The first true generational shift in basic programming technology since the introduction of compilers. 필요한 부분만을 표현할 수 있고 불필요한 부분 을 제거하여 간결하고 이해하기 쉽게 만드는 작 업 [ 네이버 지식백과 ] 추상화 [abstraction] ( 컴퓨터인터넷 IT 용어대사전, , 일진사 )

MDD 필수 기술 요소 The essentials

MDD 필수 기술 요소 자동화 기술 (Automation technologies ) – 생산성과 신뢰성을 높이기 위한 가장 효과적인 기술 – 분야 모델로부터 자동으로 완전한 프로그램 생성 컴퓨터에서 모델 검증 (verifying) ( 예 : 실행 등 ) – 현실적인 어려움 불완전한 자동화 – 제한된 적용범위 : 다이어그램, 스켈레톤 (skeleton) 코드 생성 정도 –RTE 가 원활하지 않아서 유지보수에 어려움 : 자동으로 코드를 모델 형태로 변환하 는 것이 불가능 하기 때문 » 참고 : RTE(Round-trip engineering): 두 가지 이상의 artifact 간 synchronization 을 처리 – 현재 이전보다 성숙한 수준에 이르렀으며, SW 개발 환경과 프로세스에 통합되고 있음

MDD 필수 기술 요소 표준화 기술 (Standards) – 심도 있는 진전을 위한 방안을 제공 – 내용 Best practices 방법론, 프로세스 등 – 예 MDA (model driven architecture) by OMG(Object Management Group, 2003 년 ) –MDD 를 지원하는 표준을 정의한 개념적인 Framework 제안 ( 참고 ) 참고 – 주요 MDA 표준은 UML(Unified Modeling Language – 통합 모델링 언어 ) 웹 표준 –XML, SOAP 등 OMG's Model Driven Architecture

MDD 모델 특성 The quality of models

MDD 모델 특성 엔지니어링 모델이 유용하고 효과적이기 위한 5 가지 주요 특성 – 추상화 (abstraction) [ 가장 중요 ] 시스템의 축약된 형태 중요한 부분을 쉽게 이해할 수 있어야 함 – 주어진 관점에 상응하지 않는 자세한 부분을 숨기거나 제거 – 이해용이성 (understandability) 모델 이해를 위해 지적 노력의 양을 감소, 단축 시켜 제공해야 함 – 정확성 (accuracy) 시스템의 기능을 사실적인 표현 – 예측력 (predictiveness) 실험과 분석을 통한 결과의 예측 가능한 모델 – 저렴한 비용 (must be inexpensive) 모델은 시스템을 만들고 구축하는 것보다 충분하게 저렴해야 함

MDD 모델 특성 SW 모델링 테크닉은 제한적으로만 성공 – 이유 앞선 특성 중 하나 또는 두 가지 이상 충족 시키는데 실패 모델이 SW 구현과 직접적으로 연관되지 않음 모델의 변경 ( 주로, 모델 검증 과정 ) 로 인한 통합과 유지보수 어려움 SW 종사자의 불신 ( 불필요한 오버헤드로 인식 ) Incremental iterative 개발 스타일에 부분적으로 기여 – 모델이 정확한 것을 전제로, 여러 번의 재개선과 모델 적용이 용이함

MDD 성공 요건 The pragmatics

MDD 성공 요건 Model-level observability ( 모델 수준 관찰력 ) – 모델이 가지고 있는 모델 자체의 에러에 대해 확인 ( 리포팅 ) 이 가능해야 함 프로그래밍 언어의 컴파일러나 디버거에서 확인 가능한 것과 유사한 형태 모델로부터 생성된 코드와 모델 사이의 semantic gap 이 고려되어야 함 –Customizable transformation “template” 필요 – 모델 병합 및 비교 도구가 필요 ( 형상 관리 측면 )

MDD 성공 요건 Model executability ( 모델 실행력 ) – 모델을 통한 실행으로 이점을 가짐 ( 지식과 이해의 차이를 실험으로 확인 ) – 실행이 가능해야 검증이 가능 (MDD 에서는 중요 ) – 시뮬레이션 (simulation) 환경 – 실제 환경 (actual target) 환경 – 시뮬레이션, 실제 환경 조합 Efficiency of generated code ( 생성 코드의 효율성 ) –( 컴파일러에서 내부적으로 처리하는 것 같이 ) 효율성을 가진 코드가 모델 로부터 생성되어야 함 ( 오버헤드가 포함되기 때문 ) 주로, 성능 ( 처리량 ) 및 메모리 이용률  기술의 발전으로 점점 제한 이 완화되는 추세 – 특수한 경우에는 여전히 수작업 코드가 필요 ( 예 : safety critical 분야 등 )

MDD 성공 요건 Scalability ( 확장성 ) – 대규모 (large scale) 산업 응용프로그램에 가장 유리 작은 변경 (small chages) 에 대응하기 어려움이 있음 –Compilation time, System size 고려 Integration with legacy environments and systems ( 기존 환경 및 시스템과의 통합 ) –MDD 는 상대적으로 신기술이므로 기존의 툴과의 원활한 사용이 가능해 야 함 컴파일러, 빌드 유틸리티, 디버거, 코드 분석기, 버전 제어 시스템 등 ): 마이그레이션 = 리스크 – 기존 코드 라이브러리, 소프트웨어의 활동도 가능해야 함

에필로그 마치며

MDD 장, 단점 / 적용 예 비즈니스 설계를 최적화 함 복잡한 요구사항도 컴포넌트 분리 설계로 확장이 유리 시스템의 완성 전 조기 테스트가 가능 (  Model executability ( 모델 실행력 )) 생산성 향상, 시간 절약, 요구 사항의 정확한 설계가 가능 가시적인 설계 모델로 쉽고, 빠르게 유지보수 및 업무 인수인계 가능 비 프로그래머를 통해 설계 가능 모델링 언어 및 자동 코드 생성에 전제를 두지 않음 MDD 를 적용하는 개인의 경험과 프로젝트 관리의 관점을 허용하지 않는 한, 생산성의 신뢰성에 보장할 수 없다.

변화 대응 개발자의 수작업 프로그래밍 방식에서 자동화 도구로 변화 비 개발자도 MDD 접근 및 설계가 가능  현 개발자의 직무 전환이 필요할 수 도 있음 모델 설계자의 역할이 중요해짐 ( 도메인 전문가 ) MDD 도입에 따른 기존 개발 인력 비용보다 솔루션 구매 비용으로 흘러감 MDD 도입에 따른 기본 정책 변화와 교육 없을 경우, 기본 프로그래밍 개발자 의 실업 발생 가능성 있음

감사합니다.