본문 바로가기

소프트웨어12

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.
014. 디자인 패턴 1. 디자인 패턴의 개념 가. 디자인 패던의 정의 소프트웨어를 개발하는 동안 공통적으로 발생하는 문제점들의 해법을 재사용이 가능하도록 공통언어로 정형화한 소프트웨어 설계 양식. 소프트웨어 개발 시 일어날 수 있는 일반적인 문제점들을 유형에 따라 분류하고, 문제 해결을 위한 정형화된 소프트웨어 설계 양식. 재이용 가능한 객제지향 소프트웨어의 요소. 나. 디자인 패턴의 필요성 동일 문제의 해법으로 제시된 디자인 패턴을 사용하므로 개발기간을 단축함. 정형화된 디자인 패턴을 사용하므로 소프트웨어 개발 시 의사소통이 용이함. 소프트웨어의 디자인이 명료해지고, 재사용성, 확장성, 유지보수성이 향상됨. 다. 디자인 패턴의 등장배경 소프트웨어 개발시 자주 발생하는 문제들의 공통점을 찾아내어 해결하기 위해 등장. GoF.. 2022. 10. 1.
010. 3R (Reverse Engineering, Re Engineering, Re Use) 1. 소프트웨어 3R의 개요 가. 소프트웨어 3R의 정의 레포지토리를 기반으로 역공학, 재공학, 재사용을 통해 소프트웨어 생산성을 극대화하는 기법 나. 소프트웨어 3R의 등장 배경 소프트웨어 위기 극복 소프트웨어 개발 생산성 향상 유지보수 비용의 절감 소프트웨어 변경 요구사항의 신속한 대처 다. 소프트웨어 3R의 목표 소프트웨어 유지보수 오류 및 비용을 축소함 시스템의 이해, 변경, 테스트 용이 현 사용 시스템을 CASE 도구를 사용하여 유지보수 및 수정이 가능하도록 지원 현재 시스템의 컴포넌트를 재사용 소프트웨어 위기 극복 2. 소프트웨어 3R의 구성 가. 소프트웨어 3R의 관련 개념 순공학 : 주상개념의 현실화, 요구분석-> 설계-> 구현 재구조화 : 기능 변경 없이 소스코드의 재편성(표현의 변형) .. 2022. 10. 1.
009. 모듈화 1. 모듈화의 개요 가. 모듈화의 정의 시스템을 분해하고 추상화하여 소프트웨어의 성능을 향상하거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법 나. 모듈화의 장점 프로그램의 효율적인 관리 및 성능 향상 전체적인 소프트웨어 이해의 용이성 증대 및 감소 소프트웨어 시험, 통합, 수정 시 용이성 제공 기능의 분리가 가능하고 인터페이스가 단순 오류의 파급효과를 최소화 모듈의 재사용 가능으로 개발과 유지보수가 용이 다. 모듈화의 목표 모듈 간 결합도의 최소화 모듈 내 요소들 간의 응집도 최대화 2. 결합도와 응집도 가. 결합도 소프트웨어 구조 내에서 모듈 간의 관련성을 측정하는 척도 모듈 상호 간 낮은 결합도를 추구하며 에러 발생 시 전파되어 다른 에러의 원인이 되는 파급효과의 .. 2022. 10. 1.