본문 바로가기

TechNote/소프트웨어 공학(SW)17

017. UML (Unified Modeling Language) 1. UML(Unified Modeling Language)의 이해 가. UML의 정의 객체지향 분석(Analysis)과 설계(Design)를 위한 모델링 언어 Booch 방법론, Rumbaugh 등의 OMT(Object Modeling Technique), Jacobson의 OOSE 방법론 등을 연합하여 만든 통합 모델링 언어 UML은 말 그대로 여러 종류의 표현방법을 통합하여 나타내는 모델링 언어 나. UML의 목적 소프트웨어 집약적인 시스템의 개발 과정에서 발생하는 산출물을 시각화, 명세화, 구현 및 문서화함 2. UML의 가치 및 한계 가. UML의 가치 OMG(Object management Group 표준 소프트웨어 개발 주기 전체를 지원 다양한 Diagram을 포함 다양한 응용 분야 지원 사.. 2022. 10. 2.
016. 리펙토링_Refactoring 1. 소프트웨어 유지보수 생산성 향상을 위한 리펙토링의 개요 가. 리펙토링의 정의 프로그램 소스의 기능은 유지하고 소스코드의 내부를 수정, 보완하여 유지보수 생산성을 높이는 기법 나. 리펙토링의 적용 적용시기 : SW 개발, 유지보수 전공정, 버그 수정, 코드 검토 적용대상 : 중복된 코드, 긴 메서드, 거대한 클래스, 긴 파라미터, Switch문, 임시 필드, 주석 2. 리펙토링의 SW 개발 공정에서의 위치와 주요 기법 가. 리펙토링 방법 나. 리펙토링 구현에 활용되는 주요 기법 구분 기법 내용 결합도 측면 Move Method 타 클래스와 결합 높은 메소드 이전 Move Attribute 타 클래스와 결합 높은 속성 이전 Extract Class 여러 클래스 결합 처리 대신 신규 클래스 생성 응집도 .. 2022. 10. 1.
015. 디자인 패턴과 아키텍처 스타일 비교 1. 디자인 패턴과 아키텍처 스타일의 개요 가. 디자인 패턴과 아키텍처 스타일의 정의 구분 정의 디자인 패턴 - 자주 발생하는 설계상의 문제를 해결하기 위한 반복적인 해법 - 반복되며 유용한 구조 및 경험을 정리하여 일정한 형식으로 저장한 패턴 아키텍처 스타일 - 구조적 조직 관점에서 문제점을 해결하고 제약성을 제시한 상세화 솔루션 - 컴포넌트와 커넥터 유형의 어휘를 정의하고 이들이 결합되는 방식에 의한 제약 조건들 정의 나. 등장 배경 구현 단계가 아닌 분석/설계 단계에서의 생산성 향상 요구 증가 소프트웨어 재상 용성과 개발 향상성의 효율화에 대한 대안 요구 2. 디자인 패턴과 아키텍처 스타일의 차이와 상호 활용 가. 디자인 패턴과 아키텍처 스타일의 차이 구분 디자인 패턴 아키텍처 스타일 특징 - 구현.. 2022. 10. 1.
014. 디자인 패턴 1. 디자인 패턴의 개념 가. 디자인 패던의 정의 소프트웨어를 개발하는 동안 공통적으로 발생하는 문제점들의 해법을 재사용이 가능하도록 공통언어로 정형화한 소프트웨어 설계 양식. 소프트웨어 개발 시 일어날 수 있는 일반적인 문제점들을 유형에 따라 분류하고, 문제 해결을 위한 정형화된 소프트웨어 설계 양식. 재이용 가능한 객제지향 소프트웨어의 요소. 나. 디자인 패턴의 필요성 동일 문제의 해법으로 제시된 디자인 패턴을 사용하므로 개발기간을 단축함. 정형화된 디자인 패턴을 사용하므로 소프트웨어 개발 시 의사소통이 용이함. 소프트웨어의 디자인이 명료해지고, 재사용성, 확장성, 유지보수성이 향상됨. 다. 디자인 패턴의 등장배경 소프트웨어 개발시 자주 발생하는 문제들의 공통점을 찾아내어 해결하기 위해 등장. GoF.. 2022. 10. 1.
013. 관점 지향 프로그래밍 (Aspect Oriented Programming) 관점 지향 프로그램(Aspect Oriented Programming, AOP)의 개요 가. 관점 지향 프로그램의 정의 핵심 관심사(Core Concerns)에 대한 관점과 횡단 관심사(Cross-cutting Concerns)에 대한 관점들로 프로그램을 분해해 객체지향 방식(OOP)에서 추구하는 모듈을 효과적으로 지원하도록 하는 프로그래밍 기법. 나 관점 지향 프로그램의 특징 특징 내용 모듈화 횡단 관심사를 포괄적이고 체계적으로 모듈화함으로 혁신적인 횡단 관심사의 구현 방법을 도입함 캡슐화 AOP에서 횡단 관심사는 애스펙트라는 새로운 단위로 캡슐화함으로 모듈화가 이루어짐 단순화 핵심 모듈은 더 이상 횡단 관심사의 모듈을 직접 포함하지 않으며 횡단 관심사의 모든 복잡성은 애스펙트로 분리 융합화 AOP는 .. 2022. 10. 1.