빅데이터 기술의 소프트웨어 공학 적용
1. 빅데이터 기술의 활용 사례 - 빅데이터 기술은 이미 많은 적용 사례를 가지고 있고, IoT 기술과 더불어 일상의 기술이 되어 가고 있다 (Pervasive & Invisible Analytics).
2. Spark 플랫폼 - 이전에 Hadoop으로 대표되는 빅데이터의 분산 처리 기술은 계속 발전하고 있고, Spark는 메모리 기반 데이터 처리로 기존 대비 성능을 10~100배 개선하였다. 특히, Spark는 Scala라는 함수형 언어로 구현되었고, 이전에 Java 기반의 빅데이터 처리 코드를 보다 명료하고 Compact하게 구현할 수 있다. 데이터 분석에는 Imperative 언어보다 함수형 언어가 보다 적합하다.
3. 소프트웨어 공학에서의 데이터 분석 사례 - 최근 Software Analytics, Repository Mining 등 데이터 분석 사례들이 있고, 최근 GitHub 이나 StackOverflow 분석과 같은 빅데이터 분석 연구들이 진행되고 있다.
4. Spark를 활용한 Word Count 예
5. Big Data Software Engineering - 큰 데이터 처리 외에도, 실시간 데이터 처리 (Velocity), 다양한 데이터 처리 (Variety) 부분에도 소프트웨어 공학 적용이 필요하다. 또한, Big Data Software를 Engineering하는 부분에도 관심이 필요하다. Big Data 분석 코드 역시 SE의 대상으로 바라보고, Test Driven Dev, Agile Methodology와 같은 개발 방법의 적용을 살펴볼 필요가 있다.
마지막으로, 현재 빅데이터 기술에 대한 진입 장벽은 많이 낮아졌고, 사용 가능한 오픈소스들이 많다. 소프트웨어 공학자라면 빅데이터 분석을 직접 시도해 볼 필요가 있고, 특히, Spark-Scala는 향 후 더욱 발전 확대될 기술이다.
This document discusses lung cancer diagnoses made using minimally invasive techniques on small samples obtained non-surgically. It outlines various procedures like fine needle aspiration that can acquire adequate tissue for molecular testing to guide targeted therapy. Key points include:
- Molecular drivers like ALK, ROS1, RET, and EGFR mutations are increasingly detected to select effective targeted therapies with fewer side effects than chemotherapy.
- Immunohistochemistry, fluorescence in situ hybridization, and next generation sequencing can identify these mutations using small samples from minimally invasive procedures.
- A single fine needle aspiration can provide a diagnosis, tumor subtype, and theranostic molecular information to personalize treatment.
Enterprise conference 2013 Microsoft BigData 사례발표자료환태 김
Microsoft의 엔터프라이즈 컨퍼런스 중 Microsoft의 Big Data Solution 체계에 대한 소개와 고객사(신세계)에서 적용한 사례 발표 내용입니다.
Open Source 기반의 저비용 Big Data 관리 체계에 더하여, 현 시점에서의 Open Source 진영의 취약점인 Big Data 활용 관점에서의 보완책으로 기존의 DW/BI 아키텍쳐가 결합된 사례 이며, 이를 위한 핵심 컴포넌트로 Polybase가 국내에서 최초로 적용되었습니다. Polybase에 대한 보다 자세한 내용은 다음 사이트 - Microsoft Gray SystemLab : http://gsl.azurewebsites.net/Projects/Polybase.aspx - 에서 확인하실 수 있습니다.
Back-end Infra인 Hadoop Echo 와 MPP 장비인 PDW 그리고 가장 활용성 높은 Microsoft BI 체계가 결합된 Big Data Hybrid Architect로 향후 상당 기간은 이와 유사한 아키텍쳐가 주류를 이룰 것으로 예상됩니다.
Dell's open networking vision is to make innovations like cloud, big data, mobility and security simpler, more affordable and accessible to all by disaggregating networking technologies. This includes separating the operating system software from the hardware, virtual networking from physical networking, and network control from the forwarding plane. Dell's strategy involves supporting open standards hardware, giving customers a choice of operating systems, and allowing the selection of third-party SDN and NVF controllers. Dell offers a portfolio of open networking switches that support this vision including the S3048-ON, S4048-ON, S4810-ON, S6000-ON and upcoming Z9100-ON.
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
빅데이터 기술의 소프트웨어 공학 적용
1. 빅데이터 기술의 활용 사례 - 빅데이터 기술은 이미 많은 적용 사례를 가지고 있고, IoT 기술과 더불어 일상의 기술이 되어 가고 있다 (Pervasive & Invisible Analytics).
2. Spark 플랫폼 - 이전에 Hadoop으로 대표되는 빅데이터의 분산 처리 기술은 계속 발전하고 있고, Spark는 메모리 기반 데이터 처리로 기존 대비 성능을 10~100배 개선하였다. 특히, Spark는 Scala라는 함수형 언어로 구현되었고, 이전에 Java 기반의 빅데이터 처리 코드를 보다 명료하고 Compact하게 구현할 수 있다. 데이터 분석에는 Imperative 언어보다 함수형 언어가 보다 적합하다.
3. 소프트웨어 공학에서의 데이터 분석 사례 - 최근 Software Analytics, Repository Mining 등 데이터 분석 사례들이 있고, 최근 GitHub 이나 StackOverflow 분석과 같은 빅데이터 분석 연구들이 진행되고 있다.
4. Spark를 활용한 Word Count 예
5. Big Data Software Engineering - 큰 데이터 처리 외에도, 실시간 데이터 처리 (Velocity), 다양한 데이터 처리 (Variety) 부분에도 소프트웨어 공학 적용이 필요하다. 또한, Big Data Software를 Engineering하는 부분에도 관심이 필요하다. Big Data 분석 코드 역시 SE의 대상으로 바라보고, Test Driven Dev, Agile Methodology와 같은 개발 방법의 적용을 살펴볼 필요가 있다.
마지막으로, 현재 빅데이터 기술에 대한 진입 장벽은 많이 낮아졌고, 사용 가능한 오픈소스들이 많다. 소프트웨어 공학자라면 빅데이터 분석을 직접 시도해 볼 필요가 있고, 특히, Spark-Scala는 향 후 더욱 발전 확대될 기술이다.
This document discusses lung cancer diagnoses made using minimally invasive techniques on small samples obtained non-surgically. It outlines various procedures like fine needle aspiration that can acquire adequate tissue for molecular testing to guide targeted therapy. Key points include:
- Molecular drivers like ALK, ROS1, RET, and EGFR mutations are increasingly detected to select effective targeted therapies with fewer side effects than chemotherapy.
- Immunohistochemistry, fluorescence in situ hybridization, and next generation sequencing can identify these mutations using small samples from minimally invasive procedures.
- A single fine needle aspiration can provide a diagnosis, tumor subtype, and theranostic molecular information to personalize treatment.
Enterprise conference 2013 Microsoft BigData 사례발표자료환태 김
Microsoft의 엔터프라이즈 컨퍼런스 중 Microsoft의 Big Data Solution 체계에 대한 소개와 고객사(신세계)에서 적용한 사례 발표 내용입니다.
Open Source 기반의 저비용 Big Data 관리 체계에 더하여, 현 시점에서의 Open Source 진영의 취약점인 Big Data 활용 관점에서의 보완책으로 기존의 DW/BI 아키텍쳐가 결합된 사례 이며, 이를 위한 핵심 컴포넌트로 Polybase가 국내에서 최초로 적용되었습니다. Polybase에 대한 보다 자세한 내용은 다음 사이트 - Microsoft Gray SystemLab : http://gsl.azurewebsites.net/Projects/Polybase.aspx - 에서 확인하실 수 있습니다.
Back-end Infra인 Hadoop Echo 와 MPP 장비인 PDW 그리고 가장 활용성 높은 Microsoft BI 체계가 결합된 Big Data Hybrid Architect로 향후 상당 기간은 이와 유사한 아키텍쳐가 주류를 이룰 것으로 예상됩니다.
Dell's open networking vision is to make innovations like cloud, big data, mobility and security simpler, more affordable and accessible to all by disaggregating networking technologies. This includes separating the operating system software from the hardware, virtual networking from physical networking, and network control from the forwarding plane. Dell's strategy involves supporting open standards hardware, giving customers a choice of operating systems, and allowing the selection of third-party SDN and NVF controllers. Dell offers a portfolio of open networking switches that support this vision including the S3048-ON, S4048-ON, S4810-ON, S6000-ON and upcoming Z9100-ON.
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
<1탄>왜 마이크로 서비스인가 - 마이크로서비스로 구성된 애플리케이션 소개
Session abstract:
이번 세션에서는 무엇이 마이크로 서비스고, 어떤 철학과 사상을 가지고 있는지 알아봅니다. 세션이 종료되면 참석하신 분들은 마이크로 서비스의 구성에서 어떤 내용이 중요한지 알게 됩니다. 전체 시리즈로 진행되는 첫 세션 입니다.
Session agenda:
-실 서비스용 데이터베이스를 종료한다면 어떤 일이 벌어질까
-마이크로서비스와 마이크로서비스가 아닌것
-어떻게 시작해야 하나
-마이크로서비스 애플리케이션 소개
-클라우드 네이티브(클라우드 최적화란)
[Agenda]
*토크쇼 주제: Cloud Native를 위한 컨테이너 플랫폼 구현과 활용 이야기
1. 시장 및 기술동향 소개 & Container & Kubernetes 소개
2. Red Hat OpenShift를 왜 써야 할까요?
3. OpenShift Infra 구성 방안은 어떻게 되나요?
4. OpenShift와 Kubernetes의 주요 차이점은 무엇일까요?
5. 완전한 오픈소스 기반 OpenShift로 PaaS를 빠르게 구축이 가능 하나요?
6.컨테이너플랫폼의 운영을 효율적으로 하기위한 표준화에는 어떤 것이 필요할까요?
7. Red Hat OpenShift를 이용하여 기존의 시스템을 마이그레이션 하는 방법은 무엇인가요?
8. 개발자와 운영자가 일을 수월하게 할 수 있도록 도움을 준다고 하는데 어떠한 부분인가요?
9. Red Hat OpenShift 구축 성공 사례가 있나요?
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
마이크로서비스로 시스템을 구성하면 서비스간에 연관관계가 줄어들면서 서비스 릴리즈 속도가 높아지고 유연하게 대처할 수 있지만, 관리포인트가 늘어나게 되어 운영상에 많은 어려움을 마주치게 됩니다. 배포 될 때마다 생성되고 소멸되는 마이크로서비스를 다른 마이크로서비스가 쉽게 참조하게 하고 마이크로서비스들의 설정 정보를 일관되게 관리하는 일은 쉬운일이 아닙니다. 이러한 문제를 해결하기 위해 Spring Cloud 프로젝트와 같은 도구를 비롯하여 Pivotal Cloud Foundry와 같은 클라우드 플랫폼등이 있습니다. 이번 밋업에서는 마이크로서비스를 운영할 때의 어려운점과 도움을 주는 다양한 도구들에 대해 알아보도록 하겠습니다.
이번 밋업에서는 다양한 프로젝트에서 도메인에 따라 데이터를 분리한 경험이 있는 엔지니어들이 직접 마이크로서비스에 대해 이야기 합니다. 특히 피보탈의 APAC에서 Application Transformation 을 주도하는 팀의 Sumant Singh Rana와, Satya Ranjan 두 수석 엔지니어들, 그리고 이들과 현재 한국에서 함께 프로젝트를 진행하고 계신 피보탈 한국 김영태 상무님이 함께 하십니다.
마이크로서비스에서 도메인 모델에 따른 데이터의 분리와 적절한 데이터 저장소의 선택은 가장 먼저 고려되어야 할 사항입니다. 피보탈은 다양한 엔터프라이즈 고객과의 프로젝트 수행을 통해 체계화된 서비스를 보유하고 있으며, 본 밋업에서는 그 경험과 과정을 공유하는 시간이 될 것입니다.
1. 2009. 10. 14
박찬짂
LG전자 CTO Software 센터
1. Software Evolution
2. Structural Bad Smells
3. Architectural Practices in Evolutionary Software Development
4. Architect’s Roles
Introduction of Architectural Practices in
Embedded Software Development
<< 제13회 소프트웨어 품질관리 심포지움, SQMS 2009>>
2. Challenges for Embedded Software
Complexity, Growing features
Software Moore’s Law (size)
Processor 및 Memory 성능 개선 및 가격 하락 => H/W보다는 S/W로 기능 구현
Diversity, Segmented market
복수 제품 모델들의 동시 출시 (Global market)
Segmented된 시장에서 단일 모델로 대응 어려움
Lead time, 제품화 시갂의 단축
1 / 18
3. Software Evolution
Law of program evolution, Lehman’s Law
프로그램이 변경되지 않으면 도태되고, 이러
한 개선 변경을 통해 더욱 복잡해짂다
Law of continuing change: A system that is being
used undergoes continuing change or degrades
in effectiveness.
Law of increasing complexity: A computer
program that is changed, becomes less and less
structured. The changes increase the entropy
and complexity of the program
Architecture degeneration by modification
침식과 표류(Architectural Erosion,
Architectural Drift, D. Perry)
Software Aging
Program, like people, get old. …. A sign that the
Software Engineering profession has matured will be
that we lose our preoccupation with the first release
and focus on the long term health of our products.
D. L. Parnas, Software Aging, 16th ICSE, 1994
2 / 18
4. Evolution phases
Blank Phase, 새로욲 소프트웨어 개발 시기
Integration
여러 사이트 혹은 Segment들의 요구사항 반영 위해 새로욲 기능, 외부 기능들을 통합
Market에서 성공하면 여러 Variation Model들이 만들어짐
Country Adaptation, Luxury vs. Cheap Model, Chipset Change for Cost Reduction, …
Magic
Maintenance의 어려움을 겪으며, 소프트웨어가 복잡해져서 새로욲 기능 추가한 새 모델
의 출시가 어려욲 시기
Value produced
Cumulative Cost
Blank
phase
Integration Magic
3-4 모델이 성공적으로
개발되고 안정화되는
시기
소프트웨어 변경
비용이 급증 (새
로욲 변경 대응
능력이 떨어짐)
J. klein, “How Does the Architect’s Role Change as the Software Ages?,” Proc. Of the 5th Working IEEE/IFIP
Conf. on Software Architecture (WICS’05), 20053 / 18
5. Evolutionary Software Development
이전 코드에 기반한 개발 작업
Copy & Modify
국가 및 사업자 요구사항 대응, 칩셋 변경, 새로운 기술의 적용(e.g. flash, widget, touch) 등
Major change와 Minor change
Base model, derived model
A 向 (A사업자)
B 向 (B사업자)
AA110XX001 ……
AA111
AA112
AA200AA120 AA210 AA220
Base CA
Touch
Screen
Dual Core
AA100
BB120YY001 ……
BB121
BB122
BB200BB130 BB210 BB220
CA
Touch
Screen
Dual Core
BB100
Base
C 지역 向 (C-I, C-II, C-III사업자)
CII100
ZZ001
CIII100
CII200
CIII200
Touch
Screen
Dual Core
CI100 CII110
CII110
CIII110
C 지역의
서로 다른
사업자 向
CI200
……
OOO Protocol
BB110
4 / 18
6. Bad smells – Code Clones
Copied code
버그 수정 및 기능 개선 시 동일 작업이 중복 요구됨, 작업 누락 시 품질 문제
Refactoring에 소극적 (코드 삭제/수정의 Side Effect 발생 우려)
5669개 Application
Code 분석 (CCFinder)
* 플랫폼 구조적 제약으로 인
한 중복 (e.g. 모든 Win32 응용
은 Event 처리 Loop를 가짐)
* 평균적으로 Duplicate code
와 Unused code는 전체 코드
의 10% 가량 (경험적)
5 / 18
8. Bad smells - Scattered changes
Model A를 Base Model로 하는 Derived Model B, C의 코드 변경량 분석
Application Source 분석
Model A
Model B
Model C
LCD Size 변경
Key pad Touch pad
Bar Slide
Evolutionary Software Development에서는 변경을 Localize할 수 있는 프로그램의 구조가 중요
- Display Size, 기능의 추가/다양성 (e.g. TV, BT), UI Customization, 표준 Protocol…
7 / 18
12.4
%
1.4%
86.2
%
7.7%
52.8%
39.5%
added
modified
unchanged
Model A B
SLOC File
40.9%
3.6%
55.5%
26.3%
57.2%
16.5%
added
modified
unchanged
Model A C
SLOC File
Minor 변경 임에도 불구하고, 전체 파일 수의 반 이상이 수정
많은 파일들을 살펴봐야 하므로, 작업 Effort가 커짐
(Delocalized Changes)
Major 변경의 경우, 80% 이상의 파일에서 추가/변경이 일어나
며 45%의 소스 코드가 수정됨
9. Model A B(Bar type에서 Slide type), Application 디렉터리 별 코드 변경률
14% 코드 라인 변경 (SLOC)에 61%의 파일들이 변경 (# of files)
Changed LOC Ratio
Changed File Ratio
추가된 Application[1]
변경률이 높은 Application[2]
Changed Ratio = (Added + Deleted + 2*Modified)/ (Base Code + Derived Code)
8 / 18
…
10. Bad smells – Gaps bet’n conceptual structure and physical structure
개념적 아키텍처와 실제 구현 아키텍처 갂의 차이
Linux Architecture
Conceptual Architecture Physical Architecture
Bowman et al., Linux as a Case Study: Its Extracted Software Architecture, ICSE’99
9 / 18
11. Platform Architecture
Platform Strategy (Platform Architecture)
Layered & Composable 플랫폼의 구축을 통해 플랫폼 Infrastructure를 구성하고, 시장 요
구 및 기술 성숙도에 따라 Strategic 플랫폼을 점짂적으로 구축
Product Focused Layered Composable Strategic
………… Device Driver Layer
Middleware Layer
Application Layer
……
Device Driver Layer
Application Layer
Middleware Layer
Platform Core
…… 부품 부품부품
Device Driver Layer
Application Framework
Middleware Layer
Platform Core
…… 부품 부품부품
* Product Focused : 시장에 처음 짂입하거나, 차별적이고 Unique한 소프트웨어를 개발 시, 기술 Solution이 대중화되어 자사
기술 확보 가치가 적을 때 (Outsourcing), 예상하지 못한 기술,시장의 급격한 변화에 빨리 대처할 필요가 있을 때
* Layered 플랫폼 : 시장의 변화가 심하지 않고 기능의 추가 요구가 적을 때, 제품 모델 갂 차별성이 적을 때, Device 의존성을
관리할 필요가 있을 때
* Composable 플랫폼, Strategic 플랫폼 : 다양한 요구에 따라 시장이 Segmented되어 있을 때, 다수의 모델을 동시에 출시할
필요가 있을 때, 기술 Convergence 형태가 다양할 때
10 / 18
아키텍처 분할: Evolution 시 변경 정도, Evolution 방식
12. Reverse Architecting Existing Code
Construct and Analyze As-is Architecture
Then, Propose To-be Architecture, Restructure Code, Check Conformance of Code
Code Architecture for FileManager Application
Flat architecture: 하나의 디렉터리 내에 38개 구현 파일
Grouping based on file name: 6 Module
Name Files
AdaptDRM AdaptDRM.h,AdaptDRM.c (DRM 관련)
ExternalAPI ExternalAPI.h,ExternalAPI.c
FileManager_Interface FileManger_Interface.h,FileManger_Interface.c
FileManagerLib FileManger_Util.h,FileManger_Util.c,FileMangerLib.h,…
Processor BrowseFolder.h,BrowseFolder.c,FileManager.c,
FMTouchInputTextP.h,FMTouchInputTextP.c,InfoPopup.h, …
11 / 18
모듈 갂 호출 Cycle – 서로에게 요청, 모듈의 책임이 불분명
13. Restructuring to Layered Architecture & MVC decomposition
Cycle 제거, Layered 구조로 변경: 모듈 갂 상호 호출 의존이 없도록
Model – View – Controller로 구분: 별도 파일을 정의하여 함수 이동
Model(재사용 가능한 Core Operation) , View (Draw 로직), Controller(이벤트 처리)
Processors: 화면 관렦 구현,
External: DRM, MMS와 같은 외부 구현과의 통싞
Controller: UI에 message가 전달되었을 때 처리
View: Call_Popup(popup box 관렦), View(drawing 관렦), …
Model: File operation
12 / 18
14. World Clock
DrawHvLine (void)
DrawTimePane(void)
DrawSubTitle (void)
…
Restructuring WorldClock with MVC Pattern
SEOUL
indicator
SAT MAY 31 4:30 PM
ASIA
Zoom in Back
World clock
OnDraw()
View
Controller
Model
void OnKeyDown(KEY Key) {
stNvRec * nvRec = NULL;
nvRec = SysHeap_Alloc(sizeof(…));
switch (Key) {
case SOFT1_K:
ChangeCity((int)-1);
…
OnDraw();
LOCAL void ChangeCity(int count) {
if ((PrimaryCityIdx >= MAX_CITY_NUM - 1) …
PrimaryCityIdx = 0;
else if(PrimaryCityIdx <= 0 && count < 0)
PrimaryCityIdx = MAX_CITY_NUM - 1;
….
선택된 City 정보 관리
Key와 같은 Event에 대한 처리
Draw로직
ChangeCity (int)
SetCurrentHomeID(int)
GetCurrentHomeID(void)
…
OnInit (void)
OnExit (void)
OnAwake (void)
OnKeyDown (KEY Key)
….
UI와 이벤트 처리 로직의 변경을 Localize
새로욲 GUI Framework로 대체 (Flash, Widget, …)
Model 코드의 재사용
13 / 18
15. Common Mobile TV Platform 구축 지원 (고정부-변동부의 구분)
[1] CBMS, BCAST, MBMS 등 다양한 방송 Protocol이 존재. 지역/사업자 마다 상이한 Protocol 채택
[2] Protocol 외, 사업자, Security, AV codec, Chipset, OS 등에 의해 MTV SW 구현이 서로 상이함 Variation point
Separating Protocol-Specific Part (TechnologyVariations)
14 / 18
플랫폼
담당
Common Mobile TV
Platform
After
Protocol[2]
MTV
Developer
Before
품질 문제 多
비용 ↑
커뮤니케이션 Overhead↑MTV
Developers
CBMS
CBMS BCAST MBMS
mixed
단일 Protocol[1]일 때,
Simple
But…
특정Protocol 에 집중
모델개발대응
Common MTV Platform 구축 통한 Variation 관리
다양한 방송 기술에 대해 효율적, 빠르게 대응
MTV
Developer
Architect
Architect consulting 주요 내용
• Variation Point들을 [2] 식별, 정리하고, expected 소프
트웨어 구조를 제시
• 기존 구조 와 Expected 구조 갂 코드 상의 Gap을 분석
하고, 소프트웨어 구조 개선 방법 가이드
• 현재짂행하는방향이맞는지?
• 코드Directory구조는어떻게?
• 개선상황을어떻게체크?
16. Porting Netflix with Abstract Factory
Netflix
Netflix is the largest online DVD rental service, offering flat rate rental-by-mail and online
streaming to customers in the United States. It has over 55 million discs and ship 1.6
million a day, on average
“BD 300” uses DirectFB for graphic engine. But, DTV Lab uses NanoX for graphic
engine.
15 / 18
17. 외부 Solution을 개발 코드와 Mix하지 않고, Interface를 통해 경계 명확화
Abstract Factory
Netflix 코드의 DirectFB Graphic 사용에 대한 Interface 정의
BD300과 DTV 소프트웨어에서 각각 Porting 하지 않고, 한 벌의 Netflix 코드를 사용하도록
외부 Solution Evolution에 대해 Adaptation 작업 중복 방지
16 / 18
18. UI Application Architecture
Challenges for UI Application Development
Various Platform: Android, LiMo, Window Mobile, Feature phone platform
New UI Scenario, UI Technology(S/W, H/W)
Application Mashup (SNS, Tagging, …)
Logic API 관리를 통해 화면 요소 변경 시 구현 코드 변경 최소화하고, Service API의
도입을 통해 UI Part 변경이 Phone 기능 구현과 병렧적으로 이루어질 수 있도록 함
LinearList
English
Circular List
España
Grid
中國
…
Service UIengine
Service API
Presentation
Logic
CDMAWISE
implementation
WISE1.2
implementation
Android
implementation
OS/Platform
…
PresentationVariation
Logic Variation
ServiceVariation
17 / 18
19. Architect’s Roles in Evolutionary Software Development
Tech. expert vs. software architect
DB Architect, Linux Architect, CDMA Architect?
Software Architect
Architect는 구조를 통해 소프트웨어 시스템을 분석하고
Decision을 할 수 있는 사람
Roles of Software Architect in Evolutionary Software
Dev.
각 기술 분야별 아키텍트(Expert)와 협업하여, 개발 효율
성 제고 및 생산성 향상을 위해 소프트웨어 구조 짂단 및
개선 방향을 제시
In Addition, Architecting for the first release of product
(Reusability, Performance, Security, …)
……
Product focused
Device Driver Layer
MiddlewareLayer
Application Layer
Platform
…… 부품 부품부품
Strategic
Device Driver Layer
Middleware Layer
Application Layer
……
Layered Composable
Device Driver Layer
Middleware Layer
Application Layer
부품
Platform 부품
부품……
Technical Expert &
Domain Expert
Software Architect
• S/W 구조 분석/개선 방향 제시
• S/W 개선 전략 수립 지원
• S/W 구조 추출/짂단 솔루션 개발
“Mr. Beck, what is software architecture?”
asked a participant at an OOPSLA
workshop in Vancouver in the fall of 1992.
“Software architecture?” replied Kent, now
famous for being the father of XP, “well, it is
what software architects do.” (Chuckles in
the audience.)
“So then, what is an architect?”
“Hum, „software architect‟ it‟s a new
pompous title that programmers demand to
have on their business cards to justify their
sumptuous emoluments.”
18 / 18