Large Scale Software Architecture Software Architecture

소프트웨어 아키텍처란 무엇인가?

* IEEE1471에 있는 아키텍처 키 용어
  • System is set of components that accomplishes a specific function or set of functions
  • Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
  • Architectural Description is a set of products that document the architecture.
  • Architecture View is a representation of a particular system or part of a system from a particular perspective.
  • Architectural Viewpoint is a template that describes how to create and use an architectural view. A viewpoint includes a name, stakeholders, concerns addressed by the viewpoint, and the modeling and analytic conventions.
소프트웨어 아키텍처의 속성

● 문화적인 적응성(Cultural adaptability) - 다양한 언어와 문화적인 차이들을 지원함
● 보안(Security) - 인증되지 않은 접속을 차단함
● 데이터 무결성(Data integrity) - 나쁜 데이터를 제공하거나 데이터를 손상시키지 않음
● 유지보수 특성(Maintainability characteristics)
○ 이식성(Portability) - 소프트웨어가 다른 플랫폼에 포팅될 수 있다.
○ 가변성(Changeability) - 새로운 기능을 추가하거나 기존 기능을 변경할 수 있는 능력
□ Fragility - 연약한 소프트웨어를 변경하는 것은 기존의 기능을 손상시킬수 있다.
□ Rigidity - 소프트웨어가 간단한 것 조차도 변경하기 어렵다.
□Duplication - 여기저기 복제되서 존재하는 소프트웨어는 유지보수 하기가 더 어렵다.
○ 이해력(Understandability) - 소프트웨어 발생될 수 있는 변경을 잘 수용할 수 있다.
○ 디버깅 지원(Debugging support) - 온라인 디버깅의 다양한 레벨을 지원한다.
● 테스트 능력(Testability) - 소프트웨어는 효과적으로 테스트될 수 있어야 한다.
● 유용성(Usability) - 사용자 인터페이스의 유효성 측정
● 운용시스템 측면(Operational system aspects):
○ 효용성(Availability) - 시스템이 올바르게 동작하는 시간의 퍼센트
○ 관리능력Manageability) - 실행하는 컴포넌트들을 관리하고 점검하는 능력
○ 업그레이드(Upgradeability) - 시스템이 실행하는 중간에 업그레이드될 수 있고, 업그레이드 절차의 난이도
○ 신뢰성(Reliability) - 기술된 기간에 요구되는 기능을 수행하는 능력. 보통 1년에 시스템이 얼마나 다운됬는지 측정
○ 복구성(Recoverability) - 오류 상황에서 복구하는데 요구되는 시간
● 성능(Performance)
○ 응답(Response) - 일반적인 그리고 극도의 상황에서 시스템 응답이 충분히 빠른가?
○ 확장성(Scalability) - 시스템의 용량/처리량을 필요에 따라 증가 또는 감소 시킬 수 있다.
○ 용량/처리량(Capacity/Throughput) - 과부하를 다루고 여전히 정상적인 응답을 처리한다
● 안전성(Safety) - 시스템이 실세계에 위험한 상황을 만들지 않는다


1 2 3 4 5 6 7 8 9 10 다음