IEEE Std에서의 Architecture 정의

1. 시스템의 환경 (HW, SW, OS, Network, 구동 실환경 등..)

2. 하나 이상의 컴포넌트들 간의 관계 (ICD)

3. 설계와 발전 (확장성, 품질, 생명 주기 등..)

1,2,3을 관리하는 원칙으로 이루어진 시스템 구조

 

Gof(Gang of Four)의 Ralph Johnson 의견

1. IEEE std에서 정의한 Architecture의 정의가 거시적임.

2. 실제 소프트웨어를 개발하는 개발자들의 상식이 소프트웨어 프로젝트를 이끄는데 중요하고, 아키텍쳐에 영향을 끼칠 것임. 

 

전문 개발자들은 정보를 공유함.

 

3. 중요한 것은 프로젝트에 대한 이해도가 개발자들 간에 잘 공유되어야함!!!

4. 결정들은 바꾸기 어렵다! (핵심 기능, 프래그래밍 언어 등..)

5. 올바른 결정은 요구하는 시스템에 대한 정보를 알아야한다.

 

6. 지식을 잘 공유하고, 바꾸기 어려운것 것들을 모두 포괄하여 SW를 설계하기 위해서는

시스템에서 무엇이 핵심인지 알아야한다!!

7. SW 아키텍처는 SW 장인 정신 보다는 경제적 관점을 중요시해야한다.

8. 우리의 SW를 사용하는 고객은 SW 좋은 디자인을 보는 사람은 아님, 친절한 UI, 적은 결함이 중요시 함.(사용자 경험 등..)

9. 그리고 좋은 SW 디자인은 장기간으로 봤을 때 유지비용 시간이 적고, 기능추가에 용이해짐!

10. SW의 퀄리티는 크게 2가지로 나뉨, 외부적 퀄리티, 내부적 퀄리티

 - 외부적 퀄리티 : 직관적인 UI, 적은 버그

 - 내부적 퀄리티 : SW 디자인

11. 디자인이 없는 SW는 기능을 추가 할 수록 시간이 매우 많이 들게 될 것임.

12. 꾸준한 리펙토링과 모듈화를 통해 기능을 분리한 SW를 시간이 지나도 SW 기능 추가가 쉬울 것임.

 

영상 링크 : https://www.youtube.com/watch?v=4E1BHTvhB7Y

+ Recent posts