Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags more
Archives
Today
Total
관리 메뉴

개발의변화

1단원 기출 정리 본문

정보처리기사 준비

1단원 기출 정리

refindmySapporo 2023. 5. 11. 14:37
반응형

1단원

 

상향식 통합 테스트 (Bottom Up Integration Test)

하위 모듈 -> 상위모듈 

가장 하위 단계의 모듈부터 통합및 테스트가 수행되므로 스텁은 필요하지 않다

하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터는 필요하다

절차

- 하위 모듈을 클러스터로 결합

- 상위 모듈에서 데이터 입출력을 확인하기 위해, 모듈인 드라이버 작성

- 통합된 클러스터 단위로 테스터

 

하향식 설계

- 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다

- 레벨이 낮은 데이터 구조의 세부 사항은 설계초기 단계에서 필요하다

- 깊이 우선 통합법, 넓이 우선 통합법

- 상위 모듈에서는 tc를 사용하기 어렵다

- 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법


자료흐름도 4가지 구성요소

- 처리(Process) == 원

- 자료흐름(Data Flow) == 화살표

- 자료저장소 Data Stoe == 평행선

- 단말 Terminal == 사각형


UML: 객체 지향 시스템을 개발하는데 산출물을 명세화, 시각화, 문서화하는데 사용됨


UI 설계도구

1. 스토리보드: 디자이너와 개발자가 최종적으로 참고하는 작업지침서

2. 프로토타입: 와이어프레임이나 스토리보드 등에 인터렉션을 적용함으로써 실제 구현된 것처럼 테스트가 가능한 동적인 형태의 모형

3. 유스케이스: 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용 기술

4. 목업: 디자인, 사용방법 평가 등응ㄹ 위해 실제 화면과 유사하게 만든 정적인 형태의 모형


UML 다이어그램 

정적(구조적)다이어그램: 클래스, 객체, 컴포넌트, 패키지, 복합구조, 배치 (클캠컴팩복패)

동적구조: [유즈케이스,상태,활동,시퀀스,통신,상호작용,타이밍]


클래스 설계원칙

단일 책임원칙: 하나의 객체는 하나의 동작만의 책임을 가짐

개방-폐쇄의 원칙: 클래스는 확장에 대해 열려 있어야 하며 변경에 닫혀 있어야 한다

리스코프 교체의 원칙: 특정 메소드가 상위 타입을 인자로 사용할 때, 그 타입의 하위 타입도 문제없이 작동해야함

의존관계 역전의 원칙:  상위 계층 -> 하위 계층에 의존하는 전통적인 의존관계 반전


생성:추빌팩프싱 (추상-빌더-팩토리-프로토타입-싱글톤)


객체지향 분석기법

1. Rumbaugh(럼바우) 방법

모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법 (객체->동적->기능)

 

2. Booch기법

미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용

클래스와 객체들을 분석 및 식별

 

3. Jacobson 방법

Use Case를 강조하여 사용하는 분석 방법

 

4. Coad와 Yourdon 방법

E-R 다이어그램을 사용하여 객체의 행위를 모델링하는 기법

 

5. Wirfs-Brock 방법

분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법


입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어를 말하는 것: FEP(Front-End Processor)

EAI(Enterprise Application Integration): 기업 응용 프로그램 통합으로 기업용 응용 프로그램의 구조적 통합 방안


Method(메서드): 클래스로부터 생성된 객체를 사용하는 방법

Message(메시지):  객체 간 상호 작용을 하기 위한 수단, 객체에서 어떤 행위를 하도록 지시하는 바ㅇ법


요구사항 개발 프로세스: 도출 -> 분석 -> 명세 -> 확인 


1. 연상 코드: 항목의 명칭이나 약호와 관계 있는 숫자, 문자, 기호를 이용하여 코드를 부여

2. 블록 코드: 대상 항목에서 공통적인 것을 블록으로 구분하고 블록 내에 일련 번호를 부여하는 방법

3. 순차 코드: 일정 기준에 따라 최초의 자료부터 일련번호를 부여하는 방법

4. 표의 숫자 코드: 길이 넓이 부피 등 항목의 성질의 물리적인 수치를 그대로 코드에 적용시키는 방법


소프트웨어 설계 대표적인 추상화 기법

1. 자료 추상화

자료와 자료에 적용될 수 있는 기능을 함께 정의함으로써 자료 객체를 구성하는 방법

2. 제어 추상화

제어의 정확한 매커니즘을 정의하지 않고 원하는 효과를 정하는데 이용하는 방법

3. 과정 추상화

자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법

4.  자료 추상화

자료와 자료에 적용될 수 있는 기능을 함께 정의함으로써 자료 객체를 구성하는 방법


미들웨어 솔루션의 유형에 포함되지 않은 것은

1. WAS(웹 어플리케이션 서버)

- 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리함

- 웹 환경을 구현하기 위한 미들웨어

 

2. Web Server

- 클라이언트로부터 직접 요청을 받아 처리, 저용량의 정적 파일들을 제공하는 소프트웨어

 

3. RPC(Remote Procedure Call)

- 응용 프로그램이 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 미들웨어

 

4. ORB(Object Request Broker)

- 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현함

- 최근에는 TP-Monitor의 장점인 트랜잭션 처리와 모니터링 등을 추가로 구현한 제품도 있음

 

5. TP monitor: 트랜잭션 처리를 감시/제어하는 미들웨어


XP(eXtreme Programming) 5가지 가치

용기 (Courage): 고객의 요구사항 변화에 능동적인 대처

단순성 (Simplicity): 부가적 기능, 사용되지 않는 구조와 알고리즘 배제

커뮤니케이션(Communication): 개발자, 관리자, 고객 간의 원활한 의사소통

피드백(Feedback): 지속적인 테스트


럼바우 객체지향 분석 기법

객체 =객체

동적 = 상태

기능 = 자료흐름도


집단화(is part of): 클래스 간의 구조적인 집약 관계 "클래스 A는 클래스 B와 클래스C로 구성된다"

일반화 is a : 클래스들 간의 개념적인 포함 관계 "클래스 A는 부모 클래스 B 일종이다", 일반화된 사물과 좀 더 특수화된 사물 사이의 관계

캡슐화: 속성(데이터)과 메소드(연산)을 하나로 묶어서 객체로 구성된다.

추상화: 공통 성질을 추출하여 수퍼클래스로구성

의존 관계: 한 사물의 명세가 바귀면 다른 사물에 영향을 주는 관계는 의존관계

연관: 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음을 말함


인터페이스 요구사항 검토 방법:

- 동료 검토: 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함 발견

- 워크스루(Walk Through): 검토 회의 전, 명세서를 미리 배포하여 사전검토 후에 짧은 검토 회의를 통해 결함 발견

- 인스펙션: 요구사항 명세서 작성자를 제외한 다른(소프트 개발 참옅) 검토 전문가들이 명세서 확인하면서 결함 발견


동적 다이어그램:

순차(sequence) 다이어그램

 

MOM(Message Oriented Middlware)

- 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어

- 온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 많이 사용

- 다소 느리고 안정적인 응답을 필요로 하는 경우에 많이 사용

 


익스트림 프로그래밍

- 애자일 방법론


유스케이스(Use Case) 

- 연관관계 (Association): 유스케이스와 액터간의 상호작용이 있음

- 포함 관계 (Include): 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형셩되는 관계

- 확장관계 (Extend): 확장 기능 유스케이스와 확장 대상 유즈케이스 사이에 형성 되는 관계

- 일반화 관계(Generalization): 유사한 유스케이스 또는 액터를 모아 추상화한 유스케이스 또는 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계

 

 

기능적 요구사항: 시스템이 실제로 어떻게 동작하는지에 관점을 둔 요구사항

비기능적 요구사항: 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 성능, 보안, 품질, 안정성등으로  실제 수행에 보조적인 요구사항

 

미들웨어: 미들웨어의 서비스 이용을 위해 사용자가 정보 교환 방법 등의 내부 동작을 쉽게 확인할 수 있다

 

오버로딩 - 같은 이름의 메소드를 중복하여 정의하는 것

오버라이딩 - 상속관계에서만 발생. 슈퍼클래스의 메서드를 서브클래스에서도 동일한 메서드를 재정의 하는 것

인터페이스: 서로 다른두 시스템이나 소프트웨어 등을 이어주는 부분 또는 접속 장치

 

유저 인터페이스 특성:

직관성(Intuitiveness): 누구나 쉽게 이해하고, 쉽게 사용함

유효성(Effectiveness): 정확하고 완벽하게 사용자의 목표 달성

학습성(Learnablity): 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작

유연성(Flexibility): 사용자의 인터렉션 최대한 포용, 실수 방지

 

소프트웨어 설계 대표적인 3가지 추상화 기법

- 제어 추상화: 제어의 메커니즘을 정의하지 않고 원하는 효과를 정하는데 이용한 방법

- 기능 추상화: 입력 자료를 출력자료로 변환하는 과정을 추상화

- 자료 추상화: 자료와 자료에 적용할 수 있는 기능을 함께 정의

- 과정 추상화: 자세한 수행 과정을 정의X, 전반적인 흐름만 파악할 수 있게 설계

- 데이터 추상화: 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현 대체

 

파이프 필터 아키텍처:

데이터는 파이프를 통해 단방향으로 흐르고, 필터 이동시 오버헤드 발생

 

시스템 구성요소:

입력(Input), 처리(Process), 출력(Output), 제어(Control), 피드백(Feedback)

 

클래스:

message: 객체에게 어떤 행위를 하도록 지시하는 명령

method: 객체에 소속된 함수를 의미

module: 실행코드와 객체들(함수, 클래스, 변수)의 묶음

 

시스템 품질 속성:

가용성,변경용이성, 성능, 보안성, 사용편의성, 시험용의성

 

CASE: 시스템 개발과정의 일부 또는 전체를 자동화

- 소프트웨어 생명주기의 전체 단계를 연겨해주고 자동화해주는 통합된 도구를 사용

-상위 CASE: 요구 분석과 설계 단계 지원 ( 모순검사 기능, 오류 검증 기능, 작성 기능)

-하위 CASE: 원시코드 생성 기능

-통합 CASE: 소프트웨어 개발 주기 전채과정 지원

 

GOF:

1. singleton pattern(단일체): 한 클래스에 한 객체만 존재 하도록 제한한다(생성패턴)
2. adapter pattern(적응자): 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이 스를 기존 인터페이스에 덧씌운다(구조패턴)

3. decorator pattern(장식자): 0개, 1개 혹은 그 이상의 객 체를 묶어 하나의 객체로 이용할 수 있다(구조패턴)
4. state pattern(상태): 동일한 동작을 객체의 상태에 따라 다르게 처리해야 할 때 사용하는 디자인 패턴(행위패턴)

 

반응형

'정보처리기사 준비' 카테고리의 다른 글

3단원 기출  (0) 2023.05.13
3-1 SQL 응용  (0) 2023.05.11
2단원 문제풀이  (0) 2023.05.09
2-3 제품 소프트웨어 패키징  (0) 2023.05.08
2-2 통합 구현  (0) 2023.05.08