소프트웨어 구조
소프트웨어 구성요소간 관계 표현 및 설계, 업그레이드의 지침 및 원칙
소프트웨어 구조 또는 소프트웨어 아키텍처(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다.
소프트웨어 개발 프로세스 | |
---|---|
활동과 단계 | |
요구사항 분석 · 기능 명세 구조 · 설계 구현 · 테스팅 배치 · 유지보수 | |
개발 모형 | |
애자일 소프트웨어 개발 · 클린룸 DSDM · 순차점증적 개발 · 반복형 개발 RAD · RUP · 나선 모형 폭포수 모델 · 익스트림 프로그래밍 스크럼 · V 모델 · TDD | |
지원 활동 | |
구성 관리 · 문서화 품질보증 · 프로젝트 관리 사용자 경험 설계 | |
도구 | |
컴파일러 · 디버거 · 프로파일러 GUI 디자이너 · 통합 개발 환경 | |
역사
편집소프트웨어 설계와 구조 간의 비교는 1960년대 말에 처음 그려졌지만[1] 소프트웨어 구조라는 용어는 1990년대에 모습을 드러냈다.[2]
동기 부여
편집소프트웨어 아키텍처는 복잡한 시스템을 "지적으로 이해할 수 있는" 추상화이다.[3] 이러한 추상화는 여러 가지 이점을 제공한다:
- 소프트웨어 시스템을 구축하기 전에 소프트웨어 시스템의 동작을 분석할 수 있는 프레임워크를 제공한다. 미래의 소프트웨어 시스템을 실제로 구축하지 않고도 이해관계자의 요구 사항을 충족하는지 확인할 수 있어 상당한 비용 절감과 위험 감소 효과를 제공한다.[4] 효과적인 아키텍처는 이러한 요구 사항을 충족할 뿐만 아니라 향후 확장성 및 유지 관리도 용이하게 해준다.[5]
- 아키텍처는 요소와 솔루션을 재사용할 수 있는 프레임워크를 제공한다. 전체 소프트웨어 아키텍처 또는 개별 아키텍처 전략 및 솔루션과 같은 일부 요소를 이해관계자가 유사한 품질 속성 또는 기능을 요구하는 여러 시스템에서 재사용할 수 있으므로 설계 비용을 절감하고 설계 오류의 위험을 줄일 수 있다.[6]
- 시스템의 개발, 배포 및 수명에 영향을 미치는 초기 설계 결정을 지원한다. 일정과 예산 초과를 방지하려면 영향력이 큰 초기 의사 결정을 올바르게 내리는 것이 중요하다.
- 이해관계자와의 커뮤니케이션을 용이하게 하여 이해관계자의 요구를 더 잘 충족하는 시스템을 만드는 데 기여한다. 이해관계자의 관점에서 복잡한 시스템에 대한 정보를 제시하면 이해관계자가 명시된 요구사항의 의미를 이해하고 이를 기반으로 설계 결정을 내리는 데 도움이 된다.
- 이는 리스크 관리에도 도움이 된다. 소프트웨어 아키텍처는 위험과 실패 확률을 줄이는 데 도움이 된다.[7]
- 비용 절감에 도움이 된다. 소프트웨어 아키텍처는 복잡한 IT 프로젝트에서 위험과 비용을 관리하는 수단이다.[8]
같이 보기
편집각주
편집- ↑ Naur, Peter; Randell, Brian, 편집. (1969). “Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 Oct. 1968.” (PDF). Brussels: NATO, Scientific Affairs Division,. 2012년 11월 16일에 확인함.
- ↑ P. Kruchten, H. Obbink & J. Stafford (2006). “The past, present and future of software architecture”. 2012년 11월 12일에 확인함.
- ↑ “Software Architecture in Practice”. books.google.com. 2023년 11월 2일에 확인함.
- ↑ “Software Architecture Review and Assessment (SARA) Report” (PDF). pkruchten.files.wordpress.com. 2023년 11월 2일에 확인함.
- ↑ “Softwarearchitektur: Der ultimative Leitfaden”. tectrain.ch. 2023년 11월 2일에 확인함.
- ↑ “Foundations for the Study of Software Architecture” (PDF). users.ece.utexas.edu. 2023년 11월 2일에 확인함.
- ↑ “Just Enough Software Architecture: A Risk-driven Approach”. books.google.com. 2023년 11월 2일에 확인함.
- ↑ “RCDA: Architecting as a risk- and cost management discipline”. zenodo.org. 2023년 11월 2일에 확인함.
외부 링크
편집이 글은 기술에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |