1과목 : 소프트웨어 설계
1.User Interface 설계 시 오류 메시지나 경고에 관한 지침으로 가장 거리가 먼 것은?
1.메시지는 이해하기 쉬워야 한다. 2.오류로부터 회복을 위한 구체적인 설명이 제공되어야 한다. 3.오류로 인해 발생 될 수 있는 부정적인 내용을 적극적으로 사용자들에게 알려야 한다. 4.소리나 색의 사용을 줄이고 텍스트로만 전달하도록 한다. |
1) 직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함.
2) 유효성(Effectiveness) : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작해야 함.
3) 학습성(Learnablilty) : 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작해야 함.
4) 유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작해야 함.
2.다음 중 애자일(Agile) 소프트웨어 개발에 대한 설명으로 틀린 것은?
1.공정과 도구보다 개인과의 상호작용을 더 가치 있게 여긴다. 2.동작하는 소프트웨어보다는 포괄적인 문서를 가치 있게 여긴다. 3.계약 협상보다는 고객과의 협력을 가치 있게 여긴다. 4.계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다. |
애자일 방법론 특징
1) 프로젝트 요구사항은 '기능' 중심
2) 공정과 도구보다 '개인'과 소통을 중요시
3) '변화'에 유연하고 신속한 대처
4) '고객'과의 피드백을 중요시
3.소프트웨어 설계에서 요구사항 분석에 대한 설명으로 틀린 것은?
1.소프트웨어가 무엇을 해야하는가를 추적하여 요구사항 명세를 작성하는 작업이다. 2.사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계이다. 3.소프트웨어 시스템이 사용되는 동안 발견되는 오류를 정리하는 단계이다. 4.소프트웨어 개발의 출발점이면서 실질적인 첫 번째 단계이다. |
개발과정 : 계획(비용산정 , 일정검토) > 분석 > 설계 > 구현 > 테스트 > 유지운영(가장 많은 돈이 든다)
요구 사항 개발 프로세스 : 도출 - 분석 - 명세 - 확인
⭐ 요구사항 검증 단계 3가지
인스펙션 : 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법
동료검사 : 2~3명이서 리뷰의 형태
워크스루 : 오류를 조기에 검출하는데 목적
⭐ 4.객체지향 기법에서 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것을 의미하는 것은?
1. Abstraction 2. Polymorphism 3. Encapsulation 4. Inheritance |
추상화(abstraction)
-데이터들의 공통된 성질을 추출해 슈퍼 클래스 선정
다형성(Polymorphism)
-하나의 메시지에 대해 각 객체가 갖고 있는 고유한 방법대로 응답하는 것을 의미
-하나의 클래스나 메서드가 다양한 방식으로 동작이 가능한 것을 의미
-오버로딩(같은 이름의 메소드를 여러개 가짐/매개변수 유형 개수 다름) 과
오버라이딩(상속관계에서만 가능 재정의) 이 존재
캡슐화(Encapsulation)
-데이터와 데이터를 처리하는 함수를 하나로 묶은 것
-캡슐화된 객체의 세부 내용이 은폐되어 변경이 발생해도 오류의 파급효과가 적음
-캡슐화된 객체들은 재사용이 용이함
-인터페이스가 단순해지고 객체간의 결합도가 낮아짐
상속성(Inheritance)
-객체지향 프로그래밍에서 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 상속(물려)받는 것
⭐ 5.설계 기법 중 하향식 설계 방법과 상향식 설계 방법에 대한 비교 설명으로 가장 옳지 않은 것은?
1.하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다. 2.하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계초기 단계에서 필요하다. 3.상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다. 4.상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능 추가가 쉽다. |
하향식 :
상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
모든것을 새로 개발하는 작업에 적합
스텁 / 인터페이스는 이미 설계되어 있다.
상향식 설계 :
하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트 하는 방법
기존 컴포넌트들을 조합하여 개발하는 경우 적합
드라이버 / 인터페이스는 이미 설계되어 있다
6.자료흐름도(DFD)의 각 요소별 표기 형태의 연결이 옳지 않은 것은?
① Process : 원 ② Data Flow : 화살표 ③ Data Store : 삼각형 ④ Terminator : 사각형 |
자료흐름도 4가지 구성요소
- 처리 Process : 원
- 자료흐름 Data Flow : 화살표
- 자료저장소 Data Store : 평행선
- 단말 Terminal : 사각형
7.소프트웨어 개발에 이용되는 모델(Model)에 대한 설명 중 거리가 먼 것은?
1.모델은 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다. 2.모델을 통해 소프트웨어에 대한 이해도를 향상시킬 수 있다. 3.모델을 통해 이해 당사자 간의 의사소통이 향상된다. 4.모델을 통해 향후 개발될 시스템의 유추는 불가능하다. |
- 모델 : 그림
8.다음의 설명에 해당하는 언어는?
① JAVA ② C ③ UML ④ Python |
9.다음 내용이 설명하는 UI설계 도구는?
① 스토리보드(Storyboard) ② 목업(Mockup) ③ 프로토타입(Prototype = 모형) ④ 유스케이스(Usecase) |
10. 애자일(Agile) 기법 중 스크럼(Scrum)과 관련된 용어에 대한 설명이 틀린 것은?
① 스크럼 마스터(Scrum Master)는 스크럼 프로세스를 따르고, 팀이 스크럼을 효과적으로 활용할 수 있도록 보장하는 역할 등을 맡는다. ② 제품 백로그(Product Backlog)는 스크럼 팀이 해결해 야 하는 목록으로 소프트웨어 요구사항, 아키텍처 정 의 등이 포함될 수 있다. ③ 스프린트(Sprint)는 하나의 완성된 최종 결과물을 만들 기 위한 주기로 3달 이상의 장기간으로 결정된다. ④ 속도(Velocity)는 한 번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추정 치로 볼 수 있다. |
애자일기법 종류
xp : 용기 단순성 의사소통 피드백 존중(용단의피존)
스크럼 : 스플린트 단위(한달) / 15분의 짧의 회의를 한다.
11.UML 다이어그램 중 정적 다이어그램이 아닌 것은?
① 컴포넌트 다이어그램 ② 배치 다이어그램 ③ 순차 다이어그램 ④ 패키지 다이어그 |
정적구조(구조) / (글객컴복패배)
클래스(Class) | 클래스, 속성, 동작 |
객체(Object) | 사물, 객체, 인스턴스 |
컴포넌트(Component) | 컴포넌트 |
복합체 구조(Composite Structure) | 복합 구조/ 아키텍처 |
패키지(Package) | 그룹화, 패키지 |
배치(Deployment) | 종속성 / 물리적 |
동적구조(행위) / (유시커상활타)
유스케이스(Usecase) | 사용자 관점, 기능적 요구 정의 |
시퀀스(Sequence) = 순차 | 시간의 흐름 메시지 |
커뮤니케이션(Communication) | 메세지 순서 + 연관 |
상태(State) | 상태의 변화 |
활동(Activity) | 활동 순서 |
타이밍(Timing) | 시간 제약 |
12. LOC기법에 의하여 예측된 총 라인수가 36000라인, 개발 에 참여할 프로그래머가 6명, 프로그래머들의 평균 생산 성이 월간 300라인일 때 개발에 소요되는 기간을 계산한 결과로 가장 옳은 것은?
① 5개월 ② 10개월 ③ 15개월 ④ 20개월 |
13. 클래스 설계원칙에 대한 바른 설명은?
① 단일 책임원칙 : 하나의 클래스만 변경 가능 해야한다. ② 개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어 야 하며 변경에 대해 닫혀 있어야 한다. ③ 리스코프 교체의 원칙 : 여러 개의 책임을 가진 클래 스는 하나의 책임을 가진 클래스로 대체되어야 한다. ④ 의존관계 역전의 원칙 : 클라이언트는 자신이 사용하 는 메소드와 의존관계를 갖지 않도록 해야 한다 |
단일 책임원칙 : 단 하나의 책임 / 응집도 높고 결합도 낮다
개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.
리스코프 교체의 원칙 : 자식 클래스는 언제든 부모 클래스를 대체할 수 있다. (재정의 x )
인터페이스 분리 원칙 : 의존 관계를 맺거나 영향을 받지 않는다.
의존관계 역전의 원칙 : 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존관계를 맺어야한다는 원칙
14.GoF(Gangs of Four) 디자인 패턴에서 생성(Creational) 패턴에 해당하는 것은?
- 디자인 패턴 : 이미 만들어진 패턴
① 컴퍼지트(Composite) ② 어댑터(Adapter) ③ 추상 팩토리(Abstract Factory) ④ 옵서버(Observe |
생성패턴 (추빌팩프싱)
- 추상팩토리(Abstract Factory)
- 빌더(Builder)
- 팩토리메서드(FactoryMethod)
- 프로토타입(Prototype)
- 싱글톤(Singleton)
구조패턴 (어브컴데파플프)
- 어댑터(Adapter)
- 브리지(Bridge)
- 컴포지트(Composite)
- 데코레이터(Decorator)
- 파사드(Facade)
- 플라이웨이트(Flyweight)
- 프록시(Proxy)
행위패턴
- 책임 연쇄(Chain of Responsibility)
- 커맨드(Command)
- 인터프리터(InterPreter)
- 이터레이터(Iterator)
- 중재자(Mediator)
- 메멘토(Memento)
- 옵서버(Observer)
- 상태(State)
- 전략(Strategy) - 알고리즘
- 템플릿메서드(Template Method)
- 방문자(Visitor)
15.아키텍처 설계과정이 올바른 순서로 나열된 것은?
1.㉮ → ㉯ → ㉰ → ㉱ → ㉲
16.사용자 인터페이스를 설계할 경우 고려해야 할 가이드라인과 가장 거리가 먼 것은?
① 심미성을 사용성보다 우선하여 설계해야 한다. ② 효율성을 높이게 설계해야 한다. ③ 발생하는 오류를 쉽게 수정할 수 있어야 한다. ④ 사용자에게 피드백을 제공해야 한다. |
1) 직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함.
2) 유효성(Effectiveness) : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작해야 함.
3) 학습성(Learnablilty) : 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작해야 함.
4) 유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작해야 함.
17.소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법을 무엇이라고 하는가?
① 모듈 분해 ② 디자인 패턴 ③ 연관 관계 ④ 클래스 도출 |
18.객체지향 분석기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은?
① Wirfs-Block Method ② Rumbaugh Method ③ Booch Method ④ Jacobson Method |
1) Rumbaugh(럼바우) : 객체모델링: 객체 다이어그램 동적모델링 : 상태 다이어그램 기능모델링 : 자료흐름도(DFD)
2) Booch(부치) 방법 : 미시적 / 거시적 모두 사용 하는 분석 방법
3) Jacobson 방법 : Use Case 를 강조
4) Coad와 Yourdon 방법 : E-R 다이어그램
5) Wirfs-Brock 방법 : 분석 설계 구분 없음/ 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행
19 .입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어를 말하는 것은?
① EAI ② FEP ③ GPL ④ Duplexing |
20. 객체 지향 개념 중 하나 이상의 유사한 객체들을 묶어 공 통된 특성을 표현한 데이터 추상화를 의미하는 것은?
① Method(행위) ② Class ③ Field ④ Message(인스턴스가 다른 인스턴스에 명령) |
📢 2과목 : 소프트웨어 개발
<문제 해설> 추상화 : 상위 클래스 프로그램 특성만 간략하게 나타냄, 하위 클래스, 상세내용 구현 메소드, 함수에서 구현 의존성 : 코드 변경이 다른 부분에 영향이 없게 작성 (독립성 ↑ 응집도 ↑ 결합도↓ > 재사용) 중복성 : 코드의 중복을 최소화 가독성 : 누구든지 읽기 쉽게 작성 단순성 : 한 번에 한 가지 처리만 수행한다. |
<문제 해설> 스텁(stub)은 하향식 드라이버(driver)는 상향식 |
단위테스트 : 개발자 진행 (동적 / 정적)
⭐ 통합테스트 : 상향식 / 하향식
⭐ 시스템테스트 : 기능 : 사용자의 요구사항이 만족 , 정확히 동작 / 비기능 : 성능, 보안, 품질, 안정,제약사항
인수테스트 : 알파 - 사용자 +개발자 같이 테스트 / 베타 - 사용자만 테스트
⭐ 자료구조 분석 - 스텍 LIFO(후입선출) /한쪽끝으로만 삽입(오버플로우) 삭제(언더플로)가 이루어짐 - 큐 FIFO(선입선출) 양방향에서 일어남 한쪽은 삽입 다른 한쪽은 삭제 - 데크 : 양쪽방향에서 입출력 모두 가능 (scroll: 입력 제한 데크 / shelf : 출력제한 데크) |
소프트웨어 프로젝트 관리 : 전체적인 일정관리해서 구멍나지 않게 관리 잘하는 것 |
정형기술검토(FTR)의 지침 - 오류 검출에 초점을 두고 해결책을 나중으로 미룸(제품 검토의 집중성) - 검토를 위한 자료를 사전에 배포하여 검토하도록 한다(사전 준비성) - 의견을 제한하되 충분히 받아들인다(의제의 제한성) - 안건을 세우면 고수한다(안건 고수성) - 논쟁과 반박을 제한한다(논쟁 반박의 제한성) - 문제 영역을 공개한다(문제 공개성) - 참가자의 수를 제한한다(참가 인원의 제한성) - 발견된 오류는 문서화한다(문서성) 인스펙션 : 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법 동료검사 : 2~3명이서 리뷰의 형태 (서로 검토) 워크스루 : 오류를 조기에 검출하는데 목적(팀 회의) ㄴ 리팩토링 : 소스코드 내부만 바꾸는 것 |
<문제 해설> Analysis: 기존 소프트웨어를 분석하여 재공학 대상을 선정하는 것 Migration: 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업 Restructuring: 기존 소프트웨어를 향상시키기 위하여 코드를 재구성하는 작업(기능과 외적 동작은 변하지 않음) Reverse Engineering: 기존 소프트웨어를 분석하여 소스코드를 얻어내는 작업(소스코드로 소프트웨어를 만드는 작업의 역공학) |
:
소프트웨어 패키징 : 사용자 중심으로 진행 |
n^2 : 선택 정렬 / 버블 정렬 / 삽입 정렬 nlog2n : 퀵 정렬 / 힙 정렬 / 병합 정렬 피벗 : Qunick Sort |
기초 경로 검사(Basic Path Testing)
조건 검사(Condition Testing)
루프 검사(Loop Testing)
데이터 흐름 검사(Data Flow Testing)
ISO/IEC 9126 : 기능성 신뢰성 사용서 효율성 유지보수 이식성 |
1. Critical Path Method(CPM, 임계 경로법) : 프로젝트를 일정 기일 내에 완성시키고 해당 계획이 원가의 최소값에 의해 보증되는 등의 최적 스케줄을 구하는 관리 방법. 3. Work Breakdown Structure(업무 분업 구조) :산업 관리 간접 부문의 기술 혁신형 업무-목표를 설정하여 소정 기간, 자원 내에서 달성하는 형태의 업무-를 효과적으로 수행하기 위한 수법. |
'ON > 자격증' 카테고리의 다른 글
[자격증] 내가 보려고 작성하는 정보처리기사 실기 1. 요구사항 확인 (1) | 2024.01.25 |
---|---|
SQLD 자격증 결과 미리보기 (3) | 2023.10.04 |
2023년 7월 회고 (정처기 필기합격) (0) | 2023.08.07 |
[자격증] CBT 분석 1회독 [2022년 4월 24일] (0) | 2023.07.01 |
[자격증] 정보처리기사 자격증 준비하기 (0) | 2023.05.25 |