정보처리가사 어플리케이션 설계, 인터페이스 설계 부분의 기출 문제 풀이를 진행한다.
정답 : 협약
협약에 의한 설계 : 클래스에 대한 여러 가정을 공유하도록 명세한 것
- 선행 조건 : 오퍼레이션이 호출되기 전 참이 되어야할 조건
- 결과 조건 : 오퍼레이션 수행된 후 만족하여야 하는 조건
- 불변 조건 : 클래스 내부가 실행되는 동안 항상 만족하여야 하는 조건
SOLID
: 객체지향 설계는 긴 세월과 수많은 시행착오를 거치며 5가지 원칙이 정리되었다.
이것은 객체지향 설계의 5원칙이라고 하며, 앞글자를 따서 SOLID라고 한다.
- SRP (단일 책임 원칙; Single responsibility principle)
: 한 클래스는 하나의 책임만 가져야 한다.
- OCP(개방-폐쇄 원칙; Open/Closed Principle)
: 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다.
- LSP(리스코프 치환 원칙; Liskov Substitution Principle)
: 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 함
계약에 의한 설계를 참고하라
- ISP (인터페이스 분리 원칙; Interface Segregation Principle)
: 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.
- DIP(의존 관계 역전 원칙; Dependency Inversion Principle)
: 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.
의존성 주입은 이 원칙을 따르는 방법 중 하나다.
정답 : 절차 중심의 프로그래밍 기법이다.
절차중심의 프로그래밍은 C언어와 같이 순차적인 접근이 매우 중요한 방식입니다.
JAVA나 C#과 같은 객체지향은 메소드나 클래스를 이용하기 때문에 순서에 비교적 자유롭습니다.
정답 : 워크 스루
- 동료 검토(Peer Review)
: 요구사항 명세서 작성자가 명세서 내용을 직접 설명하고,
동료들이 이를 들으면서 결함을 발견하는 형태
- 빌드 검증
: 빌드 파일의 기본적인 구동 테스트 단계
세세한 예외사항보다는 핵심 기능들만 넓게 테스트 하는 방식
- 워크스루(Walk Through)
: 검토 회의 전에 요구사항 명세서를 미리 배포하여
사전 검토한 후 짧은 검토 회의를 통해 결함을 발견하는 형태
정답 : 논쟁이나 반박을 제한하지 않는다.
<정형 기술검토의 검토 지침 사항>
- 제품 검토의 집중성(수정이 아닌 검토)
- 문제 영역을 명확히 표현하라.
- 해결책이나 개선책에 대해서는 논하지 말라.
- 참가자의 수를 제한(3~5명)
- 사전 준비(검토를 위한 자료 사전배포)를 강요하라.
- 자원과 시간 일정을 할당하라.
- 모든 검토자들을 위해 의미있는 훈련을 행하라.
- 검토자들은 사전에 작성한 메모들을 공유하라.
- 검토의 과정과 결과를 재검토하라.
- 의제 제한성(의견을 제한하되 충분히 받아들임)
- 안건고수성
- 문제 공개성
- 논쟁 반박의 제한성
- 문서성(발견된 오류는 문서화)
정답 : IDL
IDL은 Interface Description Language로, SW개발자다 메시지를 정의할 수 있게 해주는 선언적 언어이며,
CORBA에서 정보를 송수신하는 데 필요한 언어이다.
IDL : 인터페이스 정의 언어. CORBA의 큰 특징 중 하나는 여러언어의 지원. // C,C++,자바 ,COBOL
ADL : 아키텍처 기술 언어.
소프트웨어 품질과 정확성을 증진하기 위해 소프트웨어 아키텍처를 모형화하고 분석하는 수단을 제공
CSL : 제어 시뮬레이션 언어
UML : 객체지향분석과 설계를 위한 모델링 언어. Booch, Rumbaugh, Jacobson이 주장하는
각각의 객체지향방법론 중에서 장점들을 통합하여 여러 가지 방법론들을 모두 표현할 수 있도록 만든 언어
정답 : 소프트웨어 사용자들이 소프트웨어 사용 방법을 신속히 숙지할 수 있도록 개발된 자동화 패키지이다.
CASE(Computer Aided Software Engineering)
: 소프트웨어 개발 과정의 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화 하는 것.
소프트웨어 생명 주기의 “어느 부분을 지원하느냐”에 따라 상위CASE, 하위CASE, 통합CASE로 분류됨.
1.상위CASE : 소프트웨어 생명주기의 ‘상위=전반’부분인 요구분석,설계단계를 지원하는 CASE
2.하위CASE : 소프트웨어 생명주기의 ‘하위=하반’부분인 코드의 작성과 테스트,
문서화하는 과정을 지원하는 CASE
3.통합CASE : 소프트웨어 생명주기에 포함되는 전체 과정을 지원하는 CASE
*참고 : 일반적인 소프트웨어 생명주기타당성 검토->개발 계획->요구사항 분석->설계->구현->테스트->유지보수
정답 : 다형성(Polymorphism)
다형성은 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때
하나의 메시지에 대한 각 객체(클래스)가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 의미한다.
캡슐화(Encapsulation)
- 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것을 의미
추상화(Abstraction)
- 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜나가는 것
다형성(Polymorphism)
- 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해
각각의 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력의 의미
- 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함
상속(Inheritance)
- 이미 정의된 상위 클래스(부모 클래스)의 모든 속성, 연산을 하위 클래스(자식 클래스)가 물려받는 것
'security > 정보처리기사' 카테고리의 다른 글
정처기 소프트웨어 개발 - 2.4 애플리케이션 테스트 관리 (0) | 2021.02.02 |
---|---|
정처기 소프트웨어 개발 - 2.3 제품 소프트웨어 패키징 (0) | 2021.01.26 |
정처기 소프트웨어 개발 - 2.2 통합 구현 (0) | 2021.01.25 |
정처기 소프트웨어 개발 - 2.1 데이터 입·출력 구현 (0) | 2021.01.25 |
정처기 소프트웨어 설계 - 1.4 인터페이스 설계 (0) | 2021.01.19 |
댓글