월별 글 목록: 2005년 11월월

Software Architecture Design with FMC – part 1

소프트웨어 아키텍처를 설계하고 이를 문서화 하는데 표준처럼 정해진 규약은 없습니다.
정해진 규약보다는 설계한 아키텍처를 가장 잘 설명할수 있는 나름의 방식으로 문서화 하는것이 좋습니다.
종종 각 아키텍쳐를 설계하고 이를 문서화 하는 사람은 자신의 입맛에 맞는 Diagram과 Notation 방식을 사용하여 설명하며
이런 Diagram 은 기존에 알려진 UML을 비롯하여,Entity-Relationship Diagram, Data Flow Diagram 같은것들부터
Business Process Management(BPM)에서 사용하는 Fishbone, Cause&Effect 등 여러가지가 있습니다.

하지만 소프트웨어의 아키텍쳐는 내부 컴포넌트들뿐만 아니라 외부시스템들과의 연계, 이들 사이/내부에 대한 동적인 흐름도
보여주어야 하기에 UML 의 Class/Activity/Deployment.. Diagram들 만으로는 전체적인 구조를 나타내기엔 부족합니다.
UML 은 시스템의 구조보다는 소프트웨어의 구조를 나타내는데 더 어울린다고 봐야 할것입니다.

그럼 소프트웨어 개발의 단계에서 초기 요구사항 분석후에 전체적인 아키텍쳐 디자인이 이루어 지고,
그 다음에 상세설계인 클래스/시퀀스 설계단계로 이어지게 됩니다.
이때 요구사항 분석단계는 SRS(Software Requirements Specification)문서 정도로 정리된다고 보면
UML 의 Class/Sequence/Activity 다이어그램으로 이루어지는 상세설계단계까지의 기간에 공백이 생기게 됩니다.
마땅한 문서화 방법이 없어서 시스템구성도 라고 이름 덜렁 붙이고 이제까지 그냥 해왔던대로 네모/동그라미 그려서
전체적인 구성을 하거나, UML 의 Use Case / Deployment 정도 다이어그램을 가지고 표현을 하게 됩니다.

하지만 시스템이 복잡해 질수록 전체적인 아키텍쳐 디자인이 중시되고 있으며, Architectural Pattern 들에 대한 관심이
높아지면서 소프트웨어의 아키텍쳐를 나타낼수 있는 Notation 방식이 필요하게 되었으며,
분석과 상세설계사이의 Gap 을 메꾸기 위해 고안된것이 FMC(Fundamental Modeling Concepts) Notation입니다.

Software Lifecycle & gap

FMC 는 Dynamic 한 시스템의 구조를 일관되고 계획적인 방법으로 표현할수 있도록 만들어진 Notation 방법입니다.
Hasso-Plattner-Institute에서 개발하여 현재는 http://f-m-c.org/ 에서 관련자료를 배포중입니다.

FMC 는 시스템의 구조를 표현하기 위한 방법으로 3가지 Diagram 을 제시합니다.

  • Compositional Structures : Block Diagram
  • Dynamic Structures : Petri Net
  • Value Range Structures : Entity-Relationship Diagram

위 3가지 다이어그램이 사실 새로운 형태의 표시방법은 아닙니다. 기존에 쓰여왔던 방법을 좀더 S/W 구조표현에 유용하도록
정리를 시도한것이라고 보시면 됩니다.

아래는 HTTP Server 의 구조를 Block Diagram 으로 나타낸 예제입니다.

HTTP Server Block Diagram with FMC

Part 2 에서부터는 각각의 Diagram 의 표시법과 예제를 알아보도록 하겠습니다.

참고 Reference

* 이글은 제가 관심이 있어서 찾아보다가 정리해본 문서입니다. 주관적인 내용이 담겨있을수 있으니 참고하시기 바랍니다. ^^
* 그리고 이글은 제 블로그의 저작권표시와는 별도로, 제 블로그외의 어느곳에도 전재를 금합니다.

FireFox용 빠른 사전찾기 Extension : FastDic 0.2.7 업데이트

근 1년만에 업데이트를 하는군요. Firefox 1.5 Beta 에서 안돌아 가서 버전 수정하는김에 조금 손을 봤습니다.
* 이 플러그인은 Firefox 1.0 이상에서 동작합니다.

FastDic 동작화면

FastDic 은 FireFox 웹브라우저에서 사용하는 빠른 사전찾기 Extension 입니다.
웹페이지를 보다가 모르는 단어(영어 및 그외)를 Alt,Ctrl,Shift + 마우스 클릭만으로 찾아볼수 있게 해줍니다.
자세한 설명은 FastDic 0.2 버전 배포페이지를 참조하시면 됩니다.
아주 조금이지만 추가된 부분은 다음과 같습니다.

  • Firefox 1.5 에서 잘 실행됩니다! ^^;
  • 작은창으로 띄울경우 윈도우의 크기를 지정할수 있게 설정창에 Width,Height 지정하는 옵션이 생겼습니다.
  • Preset 에 Naver 영어사전을 추가했습니다. (작은사전만 되서 불편하시다는 리플이 있어서 ^^)
  • Update 기능이 이제 제대로 동작합니다. 혹시 버전업이 되면 불여우가 알아서 업데이트하라고 메시지가 뜰겁니다.

FireFox 용 빠른 사전찾기 Extension : FastDic 0.2.7 설치
(FireFox 의 보안정책때문에 바로 설치할경우 보안경고가 뜨게 되므로 사이트를 추가해주시면 됩니다.)
* 2008.05.05 Firefox 3.0 이상에서도 동작하도록 수정되었습니다. 에러 및 기타수정없이 버전만 올렸네요. ^^;


내 중세시대의 직업은 꿈꾸는 음유시인 ?

간만에 RSS 리더를 살펴보던중, 차니님의 블로그에서 “중세시대의 직업을 알아보자” 라는것을 발견했습니다.
성격검사류의 것을 좋아해서 바로 해봤는데, 항상 느끼지만 왜 이리 잘맞는것처럼 보일까요 ^^;

중세시대의 직업으로 알아보는 당신의 인성은? Kingdomality 테스트 바로가기

당신의 인성 유형은 ‘꿈꾸는 음유시인(Dreamer-Minstrel)’이다. 꿈꾸는 음유시인은 중세에 번성했던 대부분의 왕국에 존재했던 역할이다. 당신은 어둡고 암담한 상황에서도 ‘희망’을 발견하는 사람이다. 밝은 면을 보고 긍정적으로 생각하라는 것이 당신의 좌우명이고, 세상만사가 결국엔 좋은 방향으로 흐르는 까닭을 이해하는 것이 당신의 목표이다. 당신은 온 인류에게 희망을 베푸는 낙관주의자로서, 악인에게도 선한 면이 있고 나쁜 일에도 좋은 면이 있다고 생각한다. 당신의 긍정적인 측면은 자발적이고, 카리스마가 있으며, 이상주의적이고, 감정이입에 능하다는 점이고, 부정적인 측면은 감정에 치우친 나머지 비현실적인 일에 치중하는 몽상가가 될 수도 있다는 점이다. 흥미롭게도 당신의 인성 성향은 오늘날의 기업 왕국에도 잘 들어맞는다.

낙관주의라는 단어가 딱 맞는듯합니다. 가능하면 좋게 생각하려고 노력하는데, 어찌보면 고민을 하기 싫어하는 성격인거 같기도 하네요.
언젠가 누군가가 저에게 지갑을 잃어버린경우에 대해서 낙관적인 생각을 하면 어찌되냐고 물어봤었는데
그때 저의 대답은.. “새 지갑 살수 있겠구나!” 였습니다. 낙관적인건지 소비적인건지 모르겠네요.

“비현실적인 일에 치중하는 몽상가” 역시 대충 맞습니다. 제가 좀 뻘짓을 많이 하거든요.
암만봐도 전혀 쓸데없는 일에 올인해서 시간을 쏟아붇는 경우가 많아요.

그럼 다시 꿈꾸러 갑니다. ^_^