Download presentation
Presentation is loading. Please wait.
1
Past, Present, and Future Trends
in Software Patterns 금오공과대학교 소프트웨어공학전공 구혜정
2
Future Trends in Software Patterns
Past, Present, and Future Trends in Software Patterns IEEE SOFTWARE July/August2007
3
Contents. Patterns Past Trends Present Trends Future Trends
4
Patterns
5
Patterns ? 어디서 많이 본 것 같기는 한 데… 처음이야… 어디서부터 시작해야 할까… 예전에 비슷한 걸 해봤지 그때하고 비슷한 방법을 쓰면 되겠군. 그 때하고 이 부분은 조금 다른 걸.
6
Pattern Story #1 게으르고 영악한 건축가 이야기 봄이 되자 건축가는 겨우내 찍어 두었던 사진들을 보고 통행로를 설계했다. 완성된 통행로는 돌아다니기도 편했고 주변 대학 건물과도 훌륭한 조화를 이뤘다. - Brian Foote
7
Pattern Story #2 Christopher Alexander 다른 문제들이 상존하는 상황에서 특정 문제에 대한 해결책이 반복되면 이 해결책은 패턴이 된다. 패턴을 항상 같은 방식으로 적용할 수는 없지만 계속 반복해서 재사용할 수 있다. - The Timeless Way of Building, Oxford University Press, 1979
8
패턴의 의의(意義) 설계 생산성 증가 전문가의 경험 의 빠른 전달 -> 초보자 초보자-> 빨리 수준있는 해결책 제시
문제와 해결책 문서화 문제와 해결책에 대한 경험과 영감 공유 문제와 해결책 간단 명료하게 설명가능 쉬운 협력, 쓸 데 없는 논쟁제거
9
Patterns Languages 패턴 언어 일정한 규칙에 따른 패턴(Vocaburary)들의 모임
이유 개별 패턴으로 해결하기 힘든 복잡한 문제 해결
10
Software Patterns 소프트웨어 공학의 기본 어휘 & 언어 거의 모든 분야에 패턴이란 개념 적용
디자인 패턴, 아키텍처 패턴, 유스케이스 패턴, 분석 패턴, 구현 패턴, 배포 패턴, 일정관리 패턴, 형상관리 패턴, 요구사항관리 패턴, 사용자 인터페이스 패턴, 버그 패턴, … 전문가의 경험을 모아 문제 해결법을 제공하는 학문으로 발전 중
11
A brief history
12
History 70’s 無관심 90’s GoF의 디자인 패턴 80’s 독립분야 but 비주류 그리고 그 후…
13
Stand-alone patterns & pattern collections
90년대 중 후반 Stand-alone patterns are “point solutions” Examples Iterator Strategy Wrapper
14
Stand-alone patterns & pattern collections
Iterator : 내부 표현 방법을 노출하지 않고 복합 객체의 원소에 순차적 접근 방법 Strategy : 클라이언트에 영향을 주지 않고 독립적으로 알고리즘 변경 방법 Wrapper : 호환성이 없는 인터페이스 때문에 함께 사용할 수 없는 클래스를 개조하여 함께 작동할 수 있게 하는 방법
15
개별패턴 사용 예 MVC(Model/View/Controller) Model : 어플리케이션 객체
표 바 챠트 파이 챠트 A:50 B:30 C:20
16
개별패턴 사용 예 Observer : 특정 객체를 두어, 변경이 일어난 객체가 반영이 필요한 객체를 신경 쓸 필요 없게 뷰와 모델 분리 Composite:단일객체처럼 복합객체 사용 여러 버튼이 포함된 복합 뷰->하나의 뷰 Strategy : 알고리즘을 표현하는 객체 알고리즘 대체 시 사용 유용 뷰와 컨트롤러의 관계
17
Pattern relationships
강한 연관관계 : 패턴 언어에서 제시하는 문제영역의 관계가 분명하고 밀접 Pattern is not island 독립적으로 존재하는 것보다 서로 조밀한 연관관계를 맺을수록 그 위력이 강력해지고 패턴이 보여주는 마법이 심오
18
Pattern relationships
Pattern complements 패턴이 완성되기 위해 다른 패턴을 사용 Pattern compounds 패턴을 복합해서 새로운 패턴 창조 Pattern sequences 패턴의 종결 부분이 다른 패턴의 도입 부분으로 연결
19
Pattern languages 패턴들이 함께 모여 시스템을 형성한 것 구성 그 문제영역
문제영역 관의 관계에 맵핑을 하는 패턴 패턴 간 관계들의 집합
20
패턴언어의 적용 1. 해당 도메인의 패턴언어를 살펴본 후 개발에 필요한 패턴 집합을 선택 2. 선택된 패턴들을 구현 3. 패턴으로 채워지지 않은 문제영역 구현
21
Domains and technologies documented by patterns
도메인에서 자주 발생하는 문제영역을 정의하고 문제영역에 맵핑이 되는 패턴들의 모음 효과 : 그 도메인의 문제영역과 그들 간의 관계 및 맵핑이 되는 솔루션을 빨리 습득할 수 있는 기회획득
22
Domains and technologies documented by patterns
과거 구현한 자료구조나 라이브러리들을 많이 가질수록 개발에 자신감 현대 해당되는 도메인(언어)에 대한 이해정보(패턴)가 많을수록 관련 생각할 수 있는 지평이 넓어질 것
23
Domains and technologies documented by patterns
Distributed computing. Language- and domain-specific idioms. Fault tolerance and management. Security. Embedded systems. Process and organizational structure. Education.
24
Where patterns are now
25
성공적 측면 패턴에 대한 이해와 지식 증가 많은 프로젝트에 성공적으로 적용 각 대학 연구 활동 활발
패턴과 패턴 언어의 증가 추세 지난 몇 년 보다 더!
26
실패적 측면 패턴에 대한 잘못된 이해 디자인 패턴 이후
27
Where patterns may go
28
Where patterns may go 패턴과 패턴언어의 증가 Since 1996
패턴언어에서 재사용 자산은 도메인 개발자의 디자인 경험, 지식이고 그 결과물은 패턴으로 형상화 경험,지식 -> 문서화 -> 패턴
29
Future Trends Service-oriented architecture
Generative software technologies Distributed real-time and embedded systems Quality of service for COTS-based distributed systems Mobile systems Software architecture
30
Future Trends Group interaction Web 2.0
Business transaction and e-commerce systems Process and organizational structure The Gang of Four Pattern theory
31
Thank you
Similar presentations