728x90
4장. 서버 프로그램 구현
추상화 전체적이고 포괄적이 개념 설계 후 구체화시켜 나가는 것
정보 은닉 모듈 내부에 포함된 절차나 자료들의 정보가 감추어저 다른 모듈이 접근, 수정하지 못함
레이어 패턴 시스템을 계층으로 구분하여 구성하는 패턴
파이프-필터
패턴
데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
MVC 패턴 서브시스템을 모델, 뷰, 컨트롤러 구조화한 패턴
클래스 공통된 속성과 연산을 갖논 객체의 집합
캡슐화 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부 내용을 은닉
상속 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려 받는 것
다형성 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
객체지향 분석 객체, 속성, 연산, 관계 등을 정의하여 모델링하는 작업
럼바우 분석
기법
모든 소프트웨어의 구성 요소를 그래픽 표기법을 이용하여 모델링
객체 모델링 > 동적 모델링 > 기능 모델링
모듈 모듈화를 통해 분리된 시스템의 각 기능
결합도 모듈 간의 상호 의존하는 정도
내용 > 공통 > 외부 > 제어 > 스탬프 > 자료
응집도 모듈 내부 요소들이 서로 관련되어 있는 정도
기능 > 순차 > 교환 > 절차 > 시간 > 논리 > 우연
팬 인/아웃 인 : 제어 받는 모듈 수 / 아웃 : 제어 하는 모듈 수
IPC 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
공유 메모리, 소켓, 세마포어, 파이프, 메시지 큐잉
테스트 케이스 소프트웨어가 사용자의 요규사항을 정확하게 준수했는지 확인하기 위한 항목에 대한 명세서
코드 자료의 분류, 추출 등을 용이하게 하기 위해 사용되는 기호
순차, 블록, 10진, 그룹 분류, 연상, 표의 숫자, 합성 코드
디자인 패턴 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 예제. 생성, 구조, 행위
생성 패턴 클래스나 객체 생성과 참조 과정을 정의
추상 팩토리 : 인터페이스를 통해 객체들의 그룹으로 생성하여 추상적으로 표현
빌더 : 건축하듯이 조합하여 객체 생성
팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리
프로토타입 : 원본 객체를 복제
싱글톤 : 하나의 객체를 생성하면 어디서든 참조 가능하지만 여러 프로세스 참조는 안됨
구조 패턴 클래스나 객체를 조합하여 더 큰 구조로 만드는 패턴
어댑터 : 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환
브리지 : 독립적 확장 가능
컴포지트 : 복합 객체와 단일 객체를 구분 없이 다룸
데코레이터 : 결합을 통해 능동적으로 기능 확장
퍼싸드 : 상위에 인터페이스 구성하여 서브 클래스들의 기능을 간편하게 사용
플라이웨이트 : 인스턴스 공유하여 메모리 절약
프록시 : 객체 사이에서 인터페이스 역할 수행
행위 패턴 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
책임 연쇄 : 객체가 요청을 처리 못하면 다른 객체에 넘어감
커맨드 : 요청을 객체의 형태로 캡슐화
인터프리터 : 언어에 문법 표현을 정의
반복자 : 객체에 대해 동일한 인터페이스를 사용
중재자 : 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의
메멘토 : 특정 시점의 객체 내부 상태 객체화
옵서버 : 객체의 상태가 변화하면 상속되어 있는 다른 객체들에게 상태 전달
상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리
전략 : 동일한 계열의 알고리즘들을 별개로 캡슐화하여 상호 교환
템플릿 메소드 : 상위 클래스에서 골격 정의 후 하위에서 구체화
방문자 : 클래스의 데이터 구조에서 처리 기능을 분리하여 따로 구성
배치 프로그램 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램
5장. 인터페이스 구현
요구사항 검토 요구사항 명세서의 오류 확인 및 결함 여부를 담당자들이 수작업으로 분석
워크스루 : 명세서를 미리 배포하여 사전 검토 후 짧은 회의를 통해 결함 발견
미들웨어 운영체제와 응용 프로그램 사이에서 다양한 서비스를 제공하는 소프트웨어
RPC : 원격 프로시저 호출
TP-Monitor : 온라인 트랜잭션 업무에서 트랜잭션을 처리 및 감시
EAI 기업 내 각 종 애플리케이션 및 플랫폼 간의 상호 연동이 가능하게 해주는 솔루션
Point-to-Point, Hub & Spoke, Message Bus(ESB 방식), Bus Hybrid
JSON 웹과 프로그램 사이에서 데이터를 교환하기 위해 객체를 속성, 값의 쌍 형태로 표현한 포맷
AJAX 자바스크립트를 사용하여 클라이언트와 서버간에 XML 데이터를 주고받는 비동기 통신 기술
IPsec 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
SSL TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
S-HTTP 클라이언트와 서버 간에 전송되는 모든 메시지를 암호화 하는 프로토콜
xUnit 같은 테스트 코드를 여러 번 작성하지 않게 도와주며 테스트마다 예상 결과를 기억할 필요가 없게 하는 자동화된 해법을 제공하는 단위 테스트 프레임워크
STAF 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 제공하는 테스트 프레임워크
FitNess 웹 기반 테스트 케이스 설계 등을 지원하는 테스트 프레임워크
NTAF FitNess + STAF, NHN의 테스트 자동화 프레임워크
Watir 인터프리터 방식의 Ruby를 사용하는 테스트 프레임워크
APM 애플리케이션 성능 관리를 위해 다양한 모니터링 기능을 제공하는 도구
6장. 화면 설계
UI 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어
UX 사용자가 시스템을 이용하면서 느끼고 생각하게 되는 총제적인 경험
CLI 명령과 출력이 텍스트 형태로 이뤄지는 인터페이스
GUI 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행하는 그래픽 환경의 인터페이스
NUI 별도의 장치 없이 사용자의 자연스러운 움직임으로 기기를 조작하는 인터페이스
UI의 기본 원칙 직관성, 유효성, 학습성, 유연성
ISO/IEC 9126 소프트웨어의 품질 특성과 평가를 위한 국제 표준
기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
7장. 애플리케이션 테스트 관리
파레토 법칙 애플리케이션의 20%에서 전체 결함의 80%가 발견된다는 법칙
살충제
패러독스
동일한 테스트 케이스를 반복하면 더 이상 결함이 발견 안되는 현상
정적 테스트 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트
동적 테스트 프로그램을 실행하여 오류를 찾는 테스트
검증 테스트 개발자의 시각에서 생산 과정을 테스트 하는 것
확인 테스트 사용자의 시각에서 생산된 제품의 결과를 테스트 하는 것
화이트 박스
테스트
원시 코드를 오픈한 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
검증 기준 문장 검증 기준 : 소스코드의 모든 구문이 한번 이상 수행되도록
분기 검증 기준 : 모든 조건문에 대해 결과가 true와 false 한번 이상 수행되도록
조건 검증 기준 : 조건문에 포함된 개별 조건식의 결과가 ture와 false 한번 이상 수행되도록
블랙박스
테스트
각 기능이 완전히 작동되는 것을 입증하는 테스트
동치 분할 검사 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 테스트 케이스를 만들어 입력 자료에 맞는 결과가 출력되는지 확인
경계값 분석 입력 조건의 경계값에서 오류가 발생될 확률이 높다는 점을 이용해 경계값을 테스트 케이스로 선정하여 검사
원인-효과
그래프 검사
입력 데이터 간의 결과와 출력에 영향을 미치는 상황을 분석하여 다음 효용성이 높은 테스트 케이스를 선정하여 검사
V-모델 소프트웨어 개발 단계와 케이션 테스트를 연결하여 표현한 것
단위 테스트 모듈이나 컴포넌트에 초점을 맞춰 테스트
통합 테스트 단위 테스트가 완료된 모듈을 합쳐 하나의 시스템으로 완성시키는 테스트
인수 테스트 요구사항을 충족시키는지에 중점을 두고 테스트, 알파/베타 테스트
하향식 통합
테스트
상위 모듈에서 하위 모듈 방향으로 통합하여 테스트
스텁 : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
상향식 통합
테스트
하위 모듈에서 상위 모듈 방향으로 통합하여 테스트
테스트 드라이버 : 테스트 대상의 하위 모듈을 호출, 전달, 수행 후 결과를 도출하는 도구
애플리케이션
성능 측정 지표
처리량, 응답 시간, 경과 시간, 자원 사용률
정적 분석 도구 작성한 소스코드를 실행하지 않고 코딩 표준이나 결함을 확인하는 코드 분석 도구
동적 분석 도구 작성한 소스코드를 실행하여 메모리 누수나 결함 등을 분석하는 도구
728x90

+ Recent posts