기본 콘텐츠로 건너뛰기

Software architecter





복잡성 : 이문제가 가장 중요한 부분이다.

복잡성을 극복하려면
-시스템의 전체구조를 봐야 한다. : 나는 개발할 때 전체를 보고 하는가? MC 도 그렇다.
- 시스템의 구성요소를 찾아야 한다. : 전체를 봐야 구성요소가 보인다.
- 시스템의 구성요소들은 일관성이 있어야 하고, 서로 조화를 이루어야 한다.
- 시스템의 구성요소들 사이의 관계가 명확해야 하고 일정한 규칙을 따라야 함

분할하여 정복하라.
-이는 software 공학의 기본원칙이다. 세상의 모든 곳에 이 원칙은 통한다.
복잡한 시스템을 이해하려면 이해할 수 있는 수준까지 계속 분해해서 이해하면 된다.
모든 시스템은 이렇게 해야 한다.

소프트웨어 아키텍쳐 는 중요한 것만 다룬다.
아키텍쳐는 상황에 따라 고려되어야 한다.
Software architecture 라고 해서 소프트 웨어만 다룬다는 생각은 바보 같은 짓이다.
하드웨어, 네트워크, 통신 프로토콜, 운영시스템 모든 영역에 대해 고려해야 한다.

모든 모델은 아키텍쳐를 기반으로 만든다.

아키텍쳐의 활동
-      비즈니스 케이스 생성
-      요구 사항 분석
-      아키텍쳐 구축

아키텍쳐는 이해관계자들이 시스템을 이해하고, 의사소통 할 수 있도록 돕는다.

이런 아키텍쳐를 UML 모델링 하는 것이 가장 효과적이다.
만들어야 하는 시스템을 이해하지 못하면 프로젝트는 결코 성공할 수 없다.
 아케텍쳐의 첫번째 역할은 이해관계자들이 시스템을 자신의 관심에 맞게 이해할 수 있도록 하는 것이다.

아키텍쳐를 한번 결정하면 나중에 바꾸는 것은 거의 불가능하다. 따라서 신중하게 선택해야 한다.
아키텍쳐는 시스템을 진화 시킨다.

아키텍트는 시스템이 수정 및 추가가 쉽도록 잘 설계해야 한다. 그래야 제대로 된 시스템이 된다. 즉 아키텍트가 어떻게 설계하는냐의 따라 시스템의 성공과 질이 보장된다.

PM 이 프로젝트 관리 분야에서 리더쉽을 발휘 한다면, 아키텍트는 기술 분야에서 리더쉽을 발휘 해야 한다.


아키텍트 의무
아키텍쳐를 정의하고 문서화하고 배포한다.
모든사람이 아키텍쳐를 정확하게 활용하도록 한다.
적합한 시기에 아키텍쳐를 발표하여 전체 조직에 일 을 할수 있게 하라.
소프트 웨어야 하드웨어가 조화를 이루도록 하라.
아키텍쳐의 전도사가 되라.
관리조직에게 아키텍쳐를 이해시켜라.
품질속성을 만족할수 있도록 제대로 설계하고 있는지 확인해라.
시스템 환경이나 개발 툴과 같은 문제를 제기하라.
이해관계자를 찾아서 상호작용하고 요구를 만족시켜 주어라.
아키텍쳐를 배치와 유지보수에도 적합하게 만들어라.
논쟁과 상충하는 문제들을 조율하라.
기술 문제를 해결하라.
훌륭한 설계나 인상 깊은 발표를 통해서 조직의 사기를 높여라.
새로운 기술을 도입했을 때 시스템이 나아가야 할 방향을 이해하고 제시하라.

아키텍쳐에 관련된 위험을 찾아 대비하라.

 
개념 모델 이해할 것


품질 속성

품질 속성이란 양이나 질로 관찰하여 수치로 측정할수 있는 시스템의 특성이다.

댓글

이 블로그의 인기 게시물

Java 환경변수 설정

자바의 classpath 를 사용하는 이유는 프로그램을 작성하면서 참조하는 다양한 라이브러리의 경로를 명시하여, jvm 구동시 이를 동적으로 링크하기 위함이다. 이를 지정하는 방법은 크게 두가지로 구분할 수 있다. 한가지는 시스템이 제공하는 환경변수 설정을 이용하는 방법, 두번째는 java 구동환경에서 option 을 설정을 통해서 명시적으로 지정하는 방법이다. 1.       환경 변수를 이용한 설정 운영체제는 시스템 운영상 필요한 경로를 시스템에 지정해두고서 참조하는 것이 가능하다. 이를 환경 변수라고 부르는데, 자바도 이곳에 필요한 경로를 설정해두고서 이용하는 것이 가능하다. 필요한 환경변수는 Path, CLASSPATH 두개의 환경변수가 필요하며, 첫번째 Path는 운영체제가 명령어를 실행하면서 해당 명령어에 맞는 실행파일을 찾아가는 순서를 명시한 환경변수이다. 이곳에 아래와 같은 식으로 설정을 함으로써 어떤 폴더에서나 자바의 컴파일러인 javac를 접근할 수 있다. PATH=C:\Program Files\Java\jre1.6.0_05\bin;%SystemRoot%\system32;%SystemRoot%; CLASSPATH= .;C:\Program Files\Java\jre1.6.0_05\lib\; 문제는 이렇게 환경변수를 설정하는 경우 컴파일시 다른 버전의 컴파일러를 실행하기 위해서는 변수 설정이 안됐을 때와 마찬가지로 절대경로로 접근해야하는 문제가 존재한다. 이런 상황에서 변리한 버전 변경을 위해서 아래와 같은 테크닉을 이용한다. 또한, 상기에서 보면 CLASSPATH에 현재 경로를 의미하는 . 를 추가했는데, 이는 자바 컴파일러가 명시적으로 CLASSPATH를 지정할 경우 현재 경로를 보지 않기 때문에 환경 변수상에서 현재 폴더를 추가해야만 정상적인 실행이 가능하기 때문이다. JAVAPATH= C:\Program Files\Jav...

Java 명령어 이해

1.java 명령어로 실행하기 java명령(Java.exe)의 사용법을 잘보면 다음과 같은 옵션이 있다.     -classpath <class search path of directories and zip/jar files>                   A ; separated list of directories, JAR archives,                   and ZIP archives to search for class files. 운영체제에 사용할 명령들이 포함된 경로를 'path'라는 곳에 저장(지정)하여 사용한다는 것을 다들 알 것이다. (자바를 위한 환경 설정에서 언급되고 있음) 그래서 여러분은 Javac.exe 또는 java.exe가 설치된 경로를 시스템(Windows) 환경변수 "path"에 지정해 두었을 것이다. 하지만 이는 운영체제를 위한 정보일뿐 자바를 위한 환경설정정보는 아닌 것이다. 자바는 VM(Virtual Machine)이다. 실행할 때 마치 또하나의 운영체제인것처럼 환경을 구성하고 그 안에서 실행한다. 그러므로 새로운 응용프로그램을 실행시킬 때마다 환경구성정보가 필요한 것이다. 위의 옵션은 응용프로그램을 구동시킬 때, VM이 알고 있어야할 경로들을 지정하는 것이다. 즉, 자바를 구동할 때 새로운 시스템인 것처럼 경로를 지정하고 실행시킬 대상 클래스를 지정해야만 자바(java.exe)는 대상파일(클래스)를 찾아 원활한 서비스를 할 수 있는 것이다. 이제 결론을 맺어보자. 위에서 java bin...