본문 바로가기

TechNote17

012. 객체 지향 1. 객체지향의 개념 가. 객체지향(Object)의 정의 프로그램에서 사용하기 위하여 데이터와 연산을 캡슐화와 정보은닉으로 묶는 방법 데이터는 속성(Attribute)으로 연산은 메서드(Method)로 구현됨 나. 객체지향(Object Oriented)의 정의 실세계의 개체(Entity)를 속성(Attribute)과 메서드(Method)가 결합된 형태의 객체(Object)로 표현하는 개념에 바탕을 두는 소프트웨어 설계 및 개발 방법 다. 객체지향의 등장 배경 구조적 기법의 문제점 객체지향 - 데이터와 프로세스의 분리 - 이해와 유지보수의 어려움 - 프로세스 중심 접근 방법으로 재사용성의 한계 - 외부환경 변화에 대처가 어려움 - 대규모 시스템 개발 및 유지보수 비효율적 -데이터와 프로세스의 캡슐화 - 자.. 2022. 10. 1.
011. 소프트웨어 역공학 1. SW보안 취약점 분석 기술, 소프트웨어 역공학 가. 소프트웨어 역공학의 의미 디어셈블러, 디컴파일러를 이용하여 바이너리로부터 원시 코드를 생성함 소프트웨어 실행 파일을 분석하여 소프트웨어 특성과 유용한 정보를 찾아냄 나. 역공학 방지 기술 코드 난독화 역공학을 통한 보안 취약점 공격에 대한 방지 기술로서 코드를 복잡하게 만들어 원시 코드를 알아보기 힘들게 하는 기술 프로그램의 의미를 유지하면서 배치, 논리, 자료, 구조 등을 변화시켜 역공 학자나 분석도구의 분석을 어렵게 하는 기술 2. 코드 난독화의 종류와 기술 가. 코드 난독화의 종류 (Layout obfuscation) 구분 종류 설명 기법에 따른 종류 배치 난독화 (Layout Obfuscation) 실행 파일에 포함되어 있는 문자열의 내용을.. 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.
008. 소프트웨어 유지보수 1. SW의 효율적인 운영을 위한 S/W유지보수 가. SW 유지보수의 정의 SDLC(Software Develop Life Cycle)의 마지막 단계로 소프트웨어의 생명을 연장시키는 운영 중심의 작업 단계 소프트웨어가 개발되어 폐기 때까지 이루어지는 일련의 SW 변경과 수정 작업 소프트웨어가 납품된 후 결합의 제거, 성능 향상, 변화된 환경에 적응토록 처리하기 위한 일련의 모든 소프트웨어 공학적 작업 나. 소프트웨어 유지보수의 목적 소프트웨어 성능개선, 하자보수 새로운 환경에서 동작할 수 있도록 이식 및 수정과 일련의 예방적 조치 다. 소프트웨어 유지보수의 중요성 중요성 설명 관리적 SW기능의 복잡화에 따라 문서화 등의 관리업무 증가 운영적 유지보수 운영비용이 전체 비용의 70~80% 차지 기술적 SW신.. 2022. 9. 30.