본문 바로가기
  • (개인)정보보호/최신ICT 정보 공유 블로그

나의 서재125

15.1 테스트 분류 구분 분류 설명 실행 정적 -프로그램을 실행하지 않고 테스트 수행 -워크스루, 기술적 검토, 인스팩션 동적 -프로그램을 실행하여 테스트 수행 -구현 단계 이후에 수행 -블랙박스, 화이트박스 테스트 -단위/통합/시스템/인수 테스트 관점 확인 -사용자 요구를 만족하기 위해 모든 프로세스가 만족되고 있음을 확인하는 테스트 -워크스루, 기술적 검토, 인스팩션 검증 -사용자 살제 요구를 만족하는지 검증하는 테스트 -시스템/인수 테스트 단계 단위 -단위 모듈에 대한 테스트 -모듈(컴포넌트) 테스트 -화이트박스 테스트 방법에 의해 설계된 테스트 데이터 이용 -드라이브, 스터브 활용 통합 -통합된 모듈 사이의 인터페이스나 상호작용을 테스트 -소프트웨어가 아키텍처 설계에 따라 올바르게 구현되었는지 확인 -화이트박스, 블.. 2021. 12. 19.
15. 테스트 1. 테스트의 개요 가. 테스트의 정의 -코드 실행 오류 검사 및 개발 프로세스 전반에 걸쳐 생산되는 문서를 검토하여 잠재 오류를 발견하는 기법 나. 테스트의 특징 -소프트웨어 잠재 오류 발견 -최소 시간과 최소 노력으로 오류 발견 -소프트웨어 품질을 높이기 위해 테스트 계획 수립 및 오류 발생 가능성이 높은 효율적, 효과적인 설계 필요 2. 테스트의 원리 가. 테스트의 원리 (발완초 집살정오) 테스트 원리 설명 테스트 방안 결함 존재 증명 -테스트은 결함 증명 -SW 완전성 증명 불가 -결함 발견에 초점 완벽한 테스트 불가 -모든 경우 테스팅 불가 -효율적 테스트 필요 -동등분할, 경계값 분석 등 효율적 테스트 수행 개발 초기 테스트 효율적 -조기 결함 발견 -수정 시 수정대상 대폭 감소 -결함 확산 .. 2021. 12. 19.
14.1 팬인(Fan-in) 및 팬아웃(Fan-out) 1. 팬인 및 팬아웃의 개요 가. 팬인 및 팬아웃의 정의 모듈을 계층적으로 분석하거나 시스템 복잡도를 측정 하기 위해 사용하는 기법 나. 팬인 및 팬아웃의 비교 구분 팬인 팬아웃 개념 -어떤 모듈을 호출하는 모듈 수 -어떤 모듈에 의해 호출되는 모듈 수 모듈 숫자 계산 -자신을 기준으로 모듈에 들어오면 팬인 -자신을 기준으로 모듈에서 나가면 팬 아웃 고려사항 -팬인이 높을 경우 재사용 설계 좋음 -단일 장애점(SFP) 발생 가능 -관리 및 테스트 비용 증가 -팬아웃이 높을 경우 불필요한 모듈 호출 증가 위험 -단순화 가능 여부 검토 필요 - 최적화를 위해 팬인은 높게, 팬아웃은 낮게 설계 고려 2. 팬인 및 팬아웃 계산 A B C D E F G 팬인 0 1 1 1 1 1 1 팬아웃 2 2 2 0 0 0 0 2021. 12. 18.
14. 모듈 설계 1. 모듈 설계의 개요 가. 모듈 설계의 정의 -소프트웨어 아키텍처를 구성하는 각 모듈 내부의 세부 처리 과정을 설계하는 기법 나. 모듈 설계의 특징 -(유형), 절차 지향 언어의 함수, 객체 지향 언어의 메소드 의미 -(모듈 설계), 컴포넌트 설계, 상세 설계, 절차 설계, 하위수준 설계 -(수행 순서), 데이터 설계, 소프트웨어 아키텍처 설계, 인터페이스 설계 후 수행 -(언어 독립), 구현 언어와 독립적이며 그래픽 혹은 텍스트 기반의 표기법 이용 2. 제어문의 유형 및 모듈 명세 도구 가. 제어문의 유형 유형 개념도 설명 순차 구조 -선택적 분기 없이 처음부터 끝까지 순서에 따라 실행되는 구조 반복 구조 -조건에 따라 실행 영역의 처음과 끝을 반복 실행하는 구조 -while, do-while 선택 .. 2021. 12. 18.
13.3 Template Method 패턴 가. 배경 -알고리즘의 기본 구조가 유사할 때 적용 나. 사용사례 -기본 구조는 슈퍼 클래스에 정의하고, 구체적인 구현은 서브 클래스에서 재정의 다. 샘플 코드 및 클래스 다이어그램 카페인 음료 public abstract class CaffeineBeverage { final void prepareRecipe( ) { boilWater( ); brew( ); pourInCup( ); addCondiments( ); } abstract void brew( ); abstract void addCondiments( ); void boilWater( ) { } void pourInCup( ) { } } 커피 차 public class Coffee extends CaffeineBeverage { public v.. 2021. 12. 15.
13.2 Adaptor 패턴 가. 배경 -기존 클래스를 외부의 표준 클래스로 대치하는 것이 필요할 때 적용 나. 사용사례 -내부 기존 클래스를 외부 표준 클래스로 대치하기 위해 많은 수정 필요 -최소한의 수정을 통해 기존 인터페이스와 대치 인터페이스가 동일 기능 제공 다. 샘플 코드 및 클래스 다이어그램 기존 인터페이스 대체 인터페이스 public interface TaxIF { public void findTax( ); } public class Tax implements TaxIF { public void findTax( ){ } } public class TaxTest { static TaxIF t; public static void main(String[ ] args) { t = new Tax( ); t.findTax( );.. 2021. 12. 14.
13.1 Singleton 패턴 가. 배경 -특정 클래스가 단지 하나의 객체만을 생성하는 것을 보장하고 외부 객체에게 해당 객체에 대한 용이한 접근을 제공할 필요가 있을 때 적용 나. 사용사례 -시스템 정보를 저장하는 레지스트리 설정 객체 -복수 작업 관리 쓰레드 풀 객체 -데이터베이스 연결 커넥션 풀 객체 -시스템 주요 제어 객체 다. 샘플 코드 및 클래스 다이어그램 public class OrderController { private static OrderController oc; private OrderController( ) { }; public static OrderController getOC( ) { if (oc == null) { oc = new OrderController( ) ; } return oc; } } 2021. 12. 14.
13. 설계 패턴 1. 설계 패턴의 개요 가. 설계 패턴의 정의 -객체 지향 시스템 개발 시 공통적으로 발생하는 문제를 해결하기 위하여 개발자의 경험을 정리한 기법 나. 설계 패턴의 특징 -검증된 설계 패턴을 재사용 -높은 생산성 -유지보수 용이 2. 설계 패턴의 분류 및 구성요소 가. 설계 패턴의 분류 생성 구조 행위 객체 생성을 위한 설계 패턴 클래스 사이의 구조에 대한 설계 패턴 클래스 사이의 상호 작용과 책임 분산을 다루는 설계 패턴 Factory Method Abstract Factory Builder Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Interpreter Template Method Chain of Resp.. 2021. 12. 14.
12. 객체지향 설계 방법 1. 객체지향 설계 방법의 개요 가. 객체지향 설계 방법의 정의 -분석 클래스 다이어그램으로부터 설계 클래스 다이어드램을 생성하는 기법 나. 객체지향 설계 방법의 특징 -분석과 설계의 구분이 명확하지 않고 분석활동에서 생성된 산출물을 정제하여 구체화 -분석은 도메인에 대한 이해 활동, 설계는 솔루션 결정 활동 -설계 클래스 다이어그램은 도메인에 존재하지 않는 다양한 솔루션 클래스(엔티티, 제어, 데이터 접근) 포함 -설계 클래스를 관련 그룹으로 묶어 패키지 다이어그램 작성 -클래스 사이의 관계나 속성 이름, 속성 타입, 메소드 스그니처에 대한 정보 파악 -설계 클래스 다이어그램의 품질을 높이기 위해 응집도와 결합도 고려 객체지향 분석 방법 객체지향 설계 방법 사용사례 다이어그램 활동 다이어그램 사용사례 .. 2021. 12. 12.
11. 구조적 설계 방법 1. 구조적 설계 방법의 개요 가. 구조적 설계 방법의 정의 -하향식 기능 중심으로 분해하는 소프트웨어 설계 방법 나. 구조적 설계 방법의 특징 -고전적 방법 -구조적 분석 방법을 적용하여 생성된 결과물인 DFD를 구조도로 변경 용이 구조적 분석 방법 구조적 설계 방법 DFD STD DD 구조도 2. 구조도의 정의 및 표기법 가. 구조도의 정의 -소프트웨어 아키텍처를 표현하기 위해 이용되는 다이어그램 나. 구조도의 표기법 구분 표기법 설명 모듈 -사각형 내부에 모듈 이름 작성 -구조도를 구성하는 기본 요소 -단순하고 독립적인 기능을 수행하는 프로그램 컴포넌트 -함수, 클래스, 패키지, 서브시스템 등 모듈 호출 -모듈 사이의 호출 -화살표 방향은 어떤 모듈이 어떤 모듈을 호출하는지 표시 데이터 -모듈 사이.. 2021. 12. 11.
10. 시스템 아키텍처 설계 1. 시스템 아키텍처 설계의 개요 가. 시스템 아키텍처 설계의 정의 -컴퓨터 시스템 개발을 위한 하부 구조를 수립하기 위해 하드웨어와 소프트웨어 컴포넌트들을 정의하고 이러한 컴포넌트들의 인터페이스를 정의하는 프로세스 나. 시스템 아키텍처 설계의 특징 -(개발 초기 분석 활동), 설계활동에서 수행하기보다 개발 초기 분석 활동에서 수행 -(설계 효율화 증가), 개발 초기 시스템 아키텍처 정의는 소프트웨어 아키텍처 설계, 데이터 설계, 인터페이스 설계 수행 시 효율성 증가 2. 시스템 아키텍처 설계의 종류 종류 특징 설명 중앙 집중형 아키텍처 -중앙 메인 프레임 컴퓨터 중심 -단순 구조 -중앙 컴퓨터를 중심으로 한정된 능력의 외부 단말장치를 연결하는 구조 클러스트 아키텍처 -같은 제조사 모델 -지근 거리에 서.. 2021. 12. 6.
9.2 설계 평가 & 명세 & 방법 1. 설계 평가 구분 구성요소 설명 결합도 자료 스탬프 제어 공통 내용 -모듈 사이의 상호 의존도 -결합도를 최소화하는 설계 필요 응집도 기능적 순차적 통신적 절차적 시간적 논리적 우연적 -한 모듈 내부의 구성요소 사이의 기능적인 관련 정도 -모듈 내부의 응집도를 최대화하는 설계 필요 *fan-in : 하나의 모듈이 제어받는 상위 모듈의 수 *fan-out : 하나의 모듈이 제어하는 하위 모듈의 수 모듈화 설계 휴리스틱 결합도 감소 응집도 증가 모듈 공유도 모듈 제어도 복잡하거나 불필요한 모듈 인터페이스 삭제 -좋은 품질의 모듈화 설계를 위한 휴리스틱(가이드라인) -시스템 복잡도 최적화를 위해서는 팬인은 높게, 팬아웃은 낮게 설계해야 한다. 2. 설계 명세 기법과 설계 방법 가. 설계 명세 구분 특징 설.. 2021. 12. 6.
9.1 추상화 구분 특징 설명 절차 추상화 이름이 부여된 함수, 서브루틴, 메소드 -기능 추상화 -기능을 수행하기 위해 필요한 일련의 절차를 추상화하는 기법 (모듈 이름) 문 열기 (모듈 절차) 문 손잡이를 돌린다. 문을 연다. 문을 통과한다. 문을 닫는다. 자료 추상화 추상 데이터 타입 -연관된 자료를 포괄적 의미의 자료로 추상화하는 기법 -추상화 결과로 연관된 자료는 자료 개체를 묘사 ('제조회사', '무게', '길이', '타입' 자료를 '문'이라는 자료 개체로 변환) 제어 추상화 동기화 세마포어 -내부 제어에 대한 구체적인 행위를 명세하지 않고 추상화하여 프로그램의 제어에 대한 효과만을 명세하는 기법 2021. 12. 5.
9. 설계 개요 1. 시스템 설계의 정의 구분 시스템 분석 시스템 설계 정의 -개발 시스템의 요구가 무엇(What)인지 깊이 이해하고 파악하여 정의하는 활동 -요구를 어떻게(How) 만족시킬 것인가에 대한 해결방안을 찾는 활동 구현 플랫폼 -구현될 플랫폼에 독립적인 논리적 모델 생성 -구현될 플랫폼에 의존적인 물리적 모델 생성 생성 모델 -논리적 모델 -물리적 모델 특징 -문제 도메인과 사용자 요구 중점 -문제 도메인과 비즈니스 프로세스 등을 표현한 분석 모델 개발 -기능 요구사항 파악 -분석된 요구사항 만족을 위한 기술적 솔루션 중점 -시스템 솔루션을 펴현한 설계 모델 개발 -비기능 요구 반영 2. 분석 결과물/설계 관계 및 설계 구성요소 가. 분석 결과물/설계의 관계 나. 시스템 설계의 구성요소 구성요소 결과물 설명.. 2021. 12. 5.
8. 객체지향 분석 방법 1. 객체지향 분석 방법의 개요 가. 객체지향 분석 방법의 정의 시스템에 대한 개념적이고 추상적인 다이어그램과 사용사례(유스케이스) 등을 추출하여 시스템 초기 계획을 수립하는 기법 나. 객체지향 분석 방법의 특징 -(객체지향 시스템), 상태 데이터와 기능으로 구성된 객체와 객체 간의 통신 기능 수행 -(다이어그램 이용), 분석, 설계, 구현 전반에 걸쳐 동일한 다이어그램 이용 유스케이스 다이어그램, 클래스 다이어그램, 상호 작용 다이어그램, 프로토타입(사용자 인터페이스) -(점진적 구체화), 초기에는 개념적 추상적으로 표현되고 점차 정제되어 구체적으로 작성 2. 요구사항 추출의 개념도 및 구성요소 가. 요구사항 추출의 개념도 나. 요구사항 추출의 구성요소 다이어그램 개념도 설명 활동 다이어그램 -비즈니스.. 2021. 12. 5.
7.5 UML 2.0 표준 1. UML 2.0 표준의 구성 영 역 내 용 다이어그램 호환 (Diagram Interchange) 영역 -CASE 도구 벤더들 간의 모델 호환 지원 OCL (Object Constraint Language) 영역 -모델 요소에서 제어와 제약을 위한 규약 정의 -특정 도메인에 대한 제한을 명시화하기 위해 사용 하부 구조 (Infrastructure) -MOF, UML, CWM(Common Warehouse Metamodel)과 같은 메타모델을 정의하는데 활용될 수 있는 메타언어 규약 -프로파일을 사용하여 UML을 커스터마이징 가능 -메타모델 간 상호 호환 지원 상부 구조 (Superstructure) -메타 모델을 사용하여 사용자 정의 모델의 구조와 행위를 정의 1) 구조형 다이어그램 Class, Co.. 2021. 12. 4.
7.4 UML (Unified Modeling Language) 1. UML의 개요 가. UML의 정의 -소프트웨어 시스템을 분석하고 설계를 돕는 그래픽 모델링 표기법 나. UML의 특징 -(모델링 언어), 시스템에 대한 분석과 설계 활동의 결과를 기술하는 표준 모델링 언어 -(객체 지향), 객체지향 방법을 위한 객체 모델링 외에 구조적 방법을 이용한 모델링 언어 -(다양한 관점), 다양한 관점에서 다양한 다이어그램을 지원 -(CASE 도구), UML 모델링을 지원하기 위한 CASE 도구 활용 -(OMG), 객체지향 표준화 단체, OMG에 의해 표준으로 채택 2. UML의 개념도 및 구성요소 가. UML의 개념도 나. UML의 구성요소 분류 다이어그램 설명 구조 클래스 다이어그램 클래스와 클래스 특징, 클래스 간의 관계 표현 객체 다이어그램 인스턴스 수준에서 클래스 .. 2021. 12. 4.
7.3. 모델링 1. 모델의 개요 가. 모델의 정의 -복잡한 시스템에 대한 이해를 돕기 위해 특정 관점에 집중하여 이해를 향상시키기 위해 기술하는 기법 나. 모델의 특징 -(이론 표현), 시스템(프로세스)의 동작에 대해 이해를 향상시키기 위해 이론적으로 기술 -(추상화), 특정 관점에서 문제를 추상화한 것 -(다양한 관점), 분석, 설계, 구현 등 여러 단계 또는 여러 관점에서 시스템 모델링 표현 2. 모델 표기법 구분 설명 서술적 모델 -텍스트 기반의 자연어를 이용하여 표현한 모델 그래픽 모델 -그래픽 다이어그램을 이용하여 표현한 모델 수학적 모델 -수학적 표기법이나 식을 이용하여 표현한 정형 모델 2021. 12. 4.