03. 소프트웨어 아키텍처 개념 명지대학교 융합소프트웨어학부 김정호 교수.

Slides:



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

Popcon 이규태 김준수 강예진. 목차  Popcon 이란  개발동기 및 목적  필요성  차별성  설계  개발일정  기대효과 및 향후 계획.
Cinema Manager System 최종 발표 조 team05 발표자 : 임 창목 1.
ReadyNAS Surveillance for x86 platform (Version ) NETGEAR.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
MS SQL Server 학기, 소프트웨어 설계 및 실험 ( Ⅰ )
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
Entity Relationship Diagram
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
웹 애플리케이션 아키텍쳐 웹 클라이언트 서버 요청 응답 전송 애플리케이션 데이터베이스 커넥터 N-계층.
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
11 장 LAN 기본 개념과 Ethernet LAN
클라우드 컴퓨팅 아키텍처.
NJM Messenger 박상원 박연호.
컴퓨터응용과학부 Java Enterprize(DB) 제 15 주
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
26강. 포워딩(Forwarding) RequestDispatcher 클래스 HttpServletResponse 클래스
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
간지 Ⅰ. 시스템소개 Autoway Groupware User Manual Ⅰ. 시스템 소개 | 시스템 소개.
Method & library.
‘2012년 정보화 사업 교육 버그추적시스템(BTS) 사용 절차 2012, 02.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
RMI Messenger 지도 : 김정배 교수님 조봉진.
Spring 프레임워크의 이해 1.Architecture.
11. 소프트웨어 아키텍처 뷰 설계 예제 명지대학교 융합소프트웨어학부 김정호 교수.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Smart Workplace 개발자 가이드
USN(Ubiquitous Sensor Network)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
3 지식경영을 위한 인사·조직시스템 설계 현선해·차동옥 교수(성균관대학교 경영학부).
8장 쿠키와 세션 한빛미디어(주).
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
LabVIEW WiznTec 주임 박명대 1.
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
데이터마이닝, 빅데이터, 데이터과학: 정의 데이터마이닝(data mining)
※ 인터넷 옵션 조치 방법 ※ ★ 신뢰사이트 등록 (1) ★ 우리들을 신뢰해주세요^^* 방법이 복잡해 보일지 모르지만
데이터 베이스 DB2 관계형 데이터 모델 권준영.
웹사이트 분석과 설계 (화면 설계) 학번: 성명: 박준석.
07. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
Kangwon National Univ. | Computer Science
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
“웹과 모바일을 연동한 평가 간편 시스템” vol
경영정보시스템(MIS) management information system.
12. 소프트웨어 아키텍처 문서화 명지대학교 융합소프트웨어학부 김정호 교수.
Level 0 Level 1 Level 2 Level 3 공모전 후기 모음 웹 서비스 1. 웹 페이지 설계 2. 웹 서버 구현
조직화란 조직의 목표를 최상의 방법으로 실현할 수 있도록 인적자원과 물적자원을 결합하는 과정
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
.Net FrameWork for Web2.0 한석수
웹사이트 분석과 설계 (화면 설계) 학과:e-비즈니스 학번: 이름 :조인환.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
07. DB 설계 명지대학교 ICT 융합대학 김정호.
엑셀 리포트를 웹 클라이언트에서 사용시 설정 방법
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

03. 소프트웨어 아키텍처 개념 명지대학교 융합소프트웨어학부 김정호 교수

목 차 아키텍처 아키텍처 필요성 아키텍처 발생 아키텍처 역사 아키텍처 정의 아키텍처 가시화 아키텍처 예제

아키텍처 필요성 다양한 건축물

아키텍처 필요성 다양한 건축물

아키텍처 발생 소프트웨어 시스템의 복잡성이 증가 인간 능력의 한계 소프트웨어 기술의 신속한 변화 소프트웨어 시스템의 복잡성이 증가 Ubiquitous/pervasive computing Dependable/dynamic/self-healing systems 수만 라인의 코드 인간 능력의 한계 개발 프로젝트에 이해 관계자는 수백명에 이른다. 소프트웨어 기술의 신속한 변화 MFC, J2EE, Eclipse, MDA, SOA, Web2.0, etc.

아키텍처 발생 소프트웨어 개발 프로젝트의 이해 관계자들

아키텍처 발생 Product Product 돈, 시간 기 술 시스템의 대형화 기술의 복잡화

아키텍처 가시화 건축물 평면도

아키텍처 가시화 건축물 단면도

아키텍처 가시화 건축물 배치도

아키텍처 가시화 건축물 입체도

아키텍처 가시화 소프트웨어를 본적이 있는가? 소프트웨어를 만져본 적이 있는가? 소프트웨어 이해관계자의 소프트웨어 인지능력 차이 발생 소프트웨어 가시화 필요성 증대

아키텍처 역사 1980’s 1990’s 2000’s 격식 없는(Informal) 박스와 라인 다이어그램 사용 임의로(ad hoc) 진행 1990’s 아키텍처 설계에 대한 언어, 개념, 도구가 생기기 시작 개발 조직에서의 아키텍트의 가치 인정 2000’s 설계 언어와 도구에 아키텍처 개념 도입 아키텍처 설계 방법론 & 표준 등장 Translated from @2004, Antony J. Lattanze and David Garlan

아키텍처 역사 @2004, Antony J. Lattanze and David Garlan

아키텍처 정의 당신의 정의는? 각각의 서버는 다수의 사용자 요청을 동시에 처리해야 하며 이 정보를 기업의 데이터 베이스에 넣어 서로 공유한다. 어떠한 클라이언트 프로그램도 DB에 바로 접속할 수 없다. J2EE를 사용한다. 골격, 기본, 틀

아키텍처 정의 "프로그램 혹은 컴퓨팅 시스템의 소프트웨어 아키텍처란 소프트웨어 구성요소, 이들 구성요소의 가시적인 속성, 그리고 구성요소 사이에 관계로 구성된 시스템의 전체적인 구조 또는 구조들을 말한다“ [Bass 03]. A software Architecture for a system is the structure or structures of the system, which comprise elements, their externally-visible properties, and the relationships among them.

아키텍처 정의 "소프트웨어 아키텍처는 소프트웨어 시스템들의 큰 규모의 구조와 실행에 관한 연구이다" [Shaw 89]. 소프트웨어 "아키텍처란 다음과 같은 것에 관한 중요한 결정들의 집합이다. [Jacobson 99][Kruchten 01] 1)시스템의 구조를 나타내는 구조적 구성요소와 그들을 결합시키는 인터페이스, 2)그들의 협동을 통해 나타나는 구조적 구성요소와 행위적 구성 요소들의 결합을 점진적으로 서브시스템에 맵핑을 하는 것, 3)구조를 이끌어 나가는 아키텍처 스타일의 선택"

아키텍처 정의 IEEE 1471 아키텍처 정의 소프트웨어 아키텍처란 "시스템의 근본적인 조직형태로써, 그것은 구성컴포넌트들과, 그들 서로와 환경에 대한 관계 그리고 그 설계와 진화를 관장하는 원칙들에 담겨있다"

아키텍처 정의 IEEE 1471 아키텍처 정의

아키텍처 정의 ISO/IEC 42010 아키텍처 정의 아키텍처란 "시스템의 근본적인 개념 혹은 특성으로, 환경에서의 시스템에 대해, 시스템의 요소 및 그 관계에 대해, 또한 그 설계와 진화의 원칙에 대한 것이다. The fundamental concepts or properties of a system in its environment embodied in its elements, their relationships, and in the principles of its design and evolution

아키텍처 정의 ISO/IEC 42010 아키텍처 정의

아키텍처 예제 Box and Line ?

아키텍처 예제 Stacks and Box ?

아키텍처 예제 계층? 시스템 통합 계층 프레젠테이션 계층 비즈니스 계층 기간계 데이터 계층 내부 사용자 계층 (대외 연계, 대내 연계(EAI)) 프레젠테이션 계층 (영업 화면 구성(JSP), 기간계 화면 구성(X-internet)) 비즈니스 계층 (Framework, RBMS, Image, Workflow, Batch) 기간계 데이터 계층 내부 사용자 보안 계층 (Login, Policy) 내부 사용자 계층 (현업 직원) 사용자 서비스 통합 계층 (사용자(EP)) 연동 시스템 계층 (대외 기관, 내부 채널) 운용자 계층 외부사용자 계층 (외부 영업(모집인, 대리점)) 외부 사용자 보안 계층 (Login, Policy, PKI) 영업 데이터

아키텍처 예제 서비스 흐름? EAM (Enterprise Asset Management) LDAP (Lightweight Directory Access Protocol)

목 차 아키텍트 아키텍트 필요성 아키텍트 정의 아키텍트 역량

아키텍트 필요성

아키텍트 필요성

아키텍트 정의 소프트웨어 아키텍트란? 이해관계자(고객, PM, 개발자 등)와 지속적인 대화를 통해 소프트웨어 시스템의 목표를 명확히 하는 communication의 달인 소프트웨어 아키텍트는 소프트웨어 시스템 구축을 위한 소프트웨어 아키텍처를 설계(수립) 하는 고급 엔지니어 소프트웨어 아키텍처를 수립하는 과정에서 발생하는 다양한 논쟁과 상충 사안을 해결하는 협상 전문가 소프트웨어 아키텍처가 시스템 구축에 정확하게 구축되도록 지속적으로 lead, Help, check하는 강력한 리더 이해관계자가 원하는 아키텍처를 작성할 수 있는 추상화 능력을 가진 사람

(Framework, DB, Java, etc.) 아키텍트 역량 소프트웨어 아키텍트가 갖춰야 할 자질 기능/ 품질 (참조) 아키텍처 패턴 아키텍처 평가 Business 도메인 (증권, 은행, 공공, etc.) 소프트웨어 아키텍처 설계(수립) Technology 도메인 (Framework, DB, Java, etc.) 리더십 의사소통

아키텍처를 이해시킬 수 있는가? – 정답: 추상화 아키텍트 역량 아키텍처를 이해시킬 수 있는가? – 정답: 추상화 human’s capability Abstract (less details) Concrete (more details)

아키텍트 역량 이런 아키텍처를 이해시킬 수 있는가?

아키텍트 역량 이런 아키텍처는 이해시킬 수 있는가?

Question ?