익스트림 프로그래밍 (Extreme Programming, XP)
애자일(Agile) 방법론
중 하나
소프트웨어 품질을 높이고 변화에 유연하게 대응
하기 위해 고안된 개발 방법론
핵심목표
고객 요구의 빠른 반영
지속적인 소통과 피드백
변화에 강한 소프트웨어
높은 코드 품질과 생산성
XP 의 핵심 원칙
의사소통 (Communication)
개발자, 고객, 팀원 간의 지속적이고 활발한 소통
단순함 (Simplicity)
지금 필요한 것만 개발, 과도한 설계 지양
피드백 (Feedback)
고객과 테스트를 통한 빠른 피드백 루프
용기 (Courage)
잘못된 설계는 과감히 변경, 실수는 빠르게 인정하고 수정
존중 (Respect)
팀원 간 신뢰와 협력 기반의 문화
CASE(Computer-Aided Software Engineering, 컴퓨터 지원 소프트웨어 공학)
CASE의 원천 기술 6가지
소프트웨어 개발 방법론
구조적 방법론, 객체지향 방법론 등 다양한 개발 접근 방식이 기반이 됩니다.
개발 과정의 표준화, 단계화, 체계화를 가능하게 하여 일관된 품질을 유지할 수 있도록 합니다.
소프트웨어 개발 도구
코드 생성기, UI 설계 도구, 테스트 자동화 도구 등 다양한 개발 지원 툴이 포함됩니다.
반복적이고 복잡한 작업을 자동화함으로써 생산성과 정확성을 높여줍니다.
데이터베이스 기술
ERD 도구, DB 설계 툴, DBMS 등 데이터 중심 설계를 위한 기술이 사용됩니다.
정확한 데이터 구조 설계와 효율적인 데이터 관리를 가능하게 합니다.
사용자 인터페이스 기술
GUI 개발 도구, UX 설계 툴 등을 통해 사용자 친화적인 화면과 흐름을 구성할 수 있습니다.
사용성과 접근성을 고려한 개발이 가능합니다.
프로그래밍 언어 및 환경
객체지향 언어, 4세대 언어(4GL), 통합 개발 환경(IDE) 등이 포함됩니다.
효율적이고 유지보수하기 쉬운 코드 작성을 지원합니다.
소프트웨어 품질 관리 기법
형상 관리, 정적 분석, 테스트 자동화 도구 등 품질을 보장하는 다양한 기법들이 사용됩니다.
소프트웨어의 정확성, 신뢰성, 유지보수성을 높이는 데 기여합니다.
플랫폼 성능특성 분석에 사용되는 측정항목
경과시간(Turnaround TIme) : 작업 요청부터 처리 완료까지의 전체 소요 시간
사용률(Utilization) : 데이터 처리에 시스템 자원을 사용하는 정도
응답시간(Response Time) : 명령에 반응하는 시간
가용성(Availability) : 필요할 때 즉시 사용 가능한 정도, 여유 자원
정확성(Accuracy) : 기대한 값과 비교해서 얼마나 정확한지
소프트웨어 아키텍처 설계에서 중요한 품질 속성의 종류