요구사항 분석 시에 필요한 기술로 가장 거리가 먼 것은?
① 청취와 인터뷰 질문 기술
② 분석과 중재기술
③ 설계 및 코딩 기술
④ 관찰 및 모델 작성 기술

럼바우 객체 지향 분석과 거리가 먼 것은?
① 기능 모델링
② 동적 모델링
③ 객체 모델링
④ 정적 모델링
애자일 기법에 대한 설명으로 맞지 않은 것은?
① 절차와 도구보다 개인과 소통을 중요하게 생각한다.
② 계획에 중점을 두어 변경 대응이 난해하다.
③ 소프트웨어가 잘 실행되는데 가치를 둔다.
④ 고객과의 피드백을 중요하게 생각한다.
미들웨어 솔루션의 유형에 포함되지 않는 것은?
① WAS
② Web Server
③ RPC
④ ORB
UML에서 시퀀스 다이어그램의 구성 항목에 해당하지 않는 것은?
① 생명선
② 실행
③ 확장
④ 메시지
객체지향에서 정보 은닉과 가장 밀접한 관계가 있는 것은?
① Encapsulation
② Class
③ Method
④ Instance
디자인 패턴 중에서 행위적 패턴에 속하지 않는 것은?
① 커맨드 (Command) 패턴
② 옵저버 (Observer) 패턴
③ 프로토타입 (Prototype) 패턴
④ 상태 (State) 패턴
UI 설계 원칙 중 누구나 쉽게 이해하고 사용할 수 있어야 한다는 원칙은?
① 희소성
② 유연성
③ 직관성
④ 멀티운용성
코드의 기본 기능으로 거리가 먼 것은?
① 복잡성
② 표준화
③ 분류
④ 식별

UML에서 활용되는 다이어그램 중, 시스템의 동작을 표현하는 행위(Behavioral) 다이어그램에 해당하지 않는 것은?
① 유스케이스 다이어그램(Use Case Diagram)
② 시퀀스 다이어그램(Sequence Diagram)
③ 활동 다이어그램(Activity Diagram)
④ 배치 다이어그램(Deployment Diagram)
객체 지향 소프트웨어 공학에서 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현한 것은?
① 트랜지션
② 클래스
③ 시퀀스
④ 서브루틴

객체지향 소프트웨어 설계시 디자인 패턴을 구성하는 요소로서 가장 거리가 먼 것은?
① 개발자이름
② 문제 및 배경
③ 사례
④ 샘플코드
자료 사전에서 자료의 반복을 의미하는 것은?
① =
② ( )
③ { }
④ [ ]
객체지향 설계 원칙 중, 서브타입(상속받은 하위 클래스)은 어디에서나 자신의 기반타입(상위클래스)으로 교체할 수 있어야 함을 의미하는 원칙은?
① ISP(Interface Segregation Principle)
② DIP(Dependency Inversion Principle)
③ LSP(Liskov Substitution Principle)
④ SRP(Single Responsibility Principle)
자료흐름도(Data Flow Diagram)의 구성요소로 옳은 것은?
① process, data flow, data store, comment
② process, data flow, data store, terminator
③ data flow, data store, terminator, data dictionary
④ process, data store, terminator, mini-spec
CASE(Computer-Aided Software Engineering)도구에 대한 설명으로 거리가 먼 것은?
① 소프트웨어 개발 과정의 일부 또는 전체를 자동화하기 위한 도구이다.
② 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.
③ 작업 과정 및 데이터 공유를 통해 작업자간 커뮤니케이션을 증대한다.
④ 2000년대 이후 소개되었으며, 객체지향 시스템에 한해 효과적으로 활용된다.
인터페이스 요구 사항 검토 방법에 대한 설명이 옳은 것은?
① 리팩토링 : 작성자 이외의 전문 검토 그룹이 요구사항 명세서를 상세히 조사하여 결함, 표준 위배, 문제점 등을 파악
② 동료검토 : 요구 사항 명세서 작성자가 요구 사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견
③ 인스펙션 : 자동화된 요구 사항 관리 도구를 이용하여 요구 사항 추적성과 일관성을 검토
④ CASE 도구 : 검토 자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 검토 회의를 진행하면서 결함을 발견
설계 및 코딩 기술은 요구사항 분석에 필요한 것이 아니라 설계나 구현에 필요한 기술이다.
Visitor패턴 : 작업 종류의 효율적 추가 및 변경이 가능하다.
Observer패턴 : 상태가 변경되면 다른 객체들한테 연락을 돌릴 수 있게 해준다.
Factory Method 패턴 : 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정하도록 하는 것이다.
Bridge 패턴 : 기능과 구현을 두 개의 별도 클래스로 구현한다.
객체 모델링, 동적 모델링, 기능 모델링
WAS(웹 애플리케이션 서버) : 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리함,
웹 환경을 구현하기 위한 미들웨어
Web Server : 클라이언트로부터 직접 요청을 받아 처리,
저용량의 정적 파일들을 제공하는 소프트웨어
RPC(Remote Procedure Call) : 응용 프로그램이 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 미들웨어
ORB(Object Request Broker) : 객체 지향 미들웨어로 분산 컴퓨팅 환경에서 프로그래머에게 다른 컴퓨터의 프로그램을 네트워크를 통해 호출할 수 있다.
액터, 객체(object), 라이프라인(생명선), 메시지, 실행
정보 은닉 : 캡슐화에서 가장 중요한 개념, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용
비지터, 탬플릿 메소드, 커맨드, 이터레이터, 옵저버, 스테이트, 스트래티지, 메멘토, Chain of Responsibility, 인터프리터, 미디에이터
직관성, 유효성, 학습성, 유연성
식별 기능, 분류 기능, 배열 기능, 표준화 기능
클래스에 대한 여거 가정을 공유하도록 명세한 것을 협약에 의한 설계라 함.
선행 조건, 결과 조건, 불변 조건
유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍
클래스는 공통된 속성과 연산을 갖는 객체의 집합, 객체의 일반적인 타입을 의미함,
동일 클래스에 속한 각각의 객체들은 공통된 속성과 행위를 가지고 있음
일반화 관계 : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현함,
일반적인 개념을 상위(부모), 구체적인 개념을 하위(자식)이라고 함,
하위 사물에서 상위 사물인 쪽으로 속이 빈 화살표를 연결함
패턴 이름, 문제, 솔류션, 사례, 결과, 샘플코드
{ } : 자료의 반복을 의미함
단일 책임 원칙(SRP) : 객체는 단 하나의 책임만 가져야 한다.
개방-폐쇄의 원칙(OCP) : 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다.
리스코프 치환 원칙(LSP) : 일반화 관계에 대한 이야기며, 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
인터페이스 분리 원칙(ISP) : 인터페이스를 클라이언트에 특화되도록 분리시키는 설계 원칙이다.
의존 역전 원칙(DIP) : 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것.
프로세스, 자료 흐름, 자료 저장소, 단말
CASE : 소프트웨어 공학의 자동화를 의미, 소프트웨어 공학작업을 자동화한 소프트웨어 패키지를 CASE도구라고 한다.
CASE도구들은 소프트웨어 관리자들과 실무자들이 소프트웨어 프로세스와 관련된 활동을 지원한다.
즉, 프로젝트 관리 활동을 자동화하고, 결과물을 관리하며, 엔지니어들의 분석, 설계 및 코딩과 테스트작업을 도운다.
CASE는 1980년대에 소개되었으며, 1990년대부터 자주 사용되었다.
CASE는 객체지향 시스템 뿐만 아니라 구조 시스템 등 모든 분야에 적용됨
동료 검토 : 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견
워크스루 : 검토 회의 전, 명세서를 미리 배포하여 사전검토 후에 짧은 검토 회의를 통해 결함 발견
인스펙션 : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 명세서를 확인하면서 결함을 발견