[정보처리기사 필기] 22년 1회 1과목 소프트웨어 설계
📍 22년 1회 1과목 소프트웨어 설계
📌 Q1.
인터페이스 설계 시 오류메시지나 경고에 관한 지침 : 소리나 색의 사용 등을 통해 정확하고 완벽하게 사용자에게 전달해야 함
📌 Q2.
애자일 소프트웨어 개발 : 개인과의 상호작용, 동작하는 소프트웨어, 고객과의 협력, 변환에 대응하기를 가치있게 여김
📌 Q3.
테스트 단계(요구사항 분석 X) : 소프트웨어 시스템이 사용되는 동안 발견되는 오류를 정리
📌 Q4.
Inheritance(상속성) : 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것
Polymorphism(다형성) : 하나의 클래스나 메서드가 다양한 방식으로 동작이 가능
📌 Q5.
하향식설계 :
통합 검사 시 인터페이스가 이미 정의되어 있어 통합 간단
레벨이 낮은 데이터 구조의 세부사항은 설계초기 단계 필요
상향식설계 :
최하위 수준에서 각각의 모듈들을 설계하고 이런 모듈이 완성되면 이들을 결합하여 검사
인터페이스가 성립되어 있어야 기능 추가가 쉬움
📌 Q6.
자료흐름도(DFD)
처리(Process) : 원
자료흐름(Data Flow) : 화살표
자료저장소(Data Store) : 평행선
단말(Terminal) : 사각형
📌 Q7.
모델(Model) :
개발대상을 추상화하고 기호나 그림 등으로 시각적으로 표현
소프트웨어에 대한 이해도를 향상시킬 수 있음
당사자 간의 의사소통 향상
향후 개발될 시스템의 유추 가능
📌 Q8.
UML(Unified Modeling Language) : 표준화된 모델링 언어
📌 Q9.
목업(Mockup) : 실제 화면과 유사하게 만든 정적인 형태의 모형
시각적으로만 구성요소를 배치하는 것으로 일반적으로 실제로 구현되지는 않음
스토리보드(Storyboard) : 디자이너와 개발자가 최종적으로 참고하는 작업지침서
📌 Q10.
스프린트(Sprint) : 실제 개발을 2~4주간 진행하는 과정
📌 Q11.
정적 다이어그램 : 컴포넌트, 배치, 패키지, 클래스, 객체
동적 다이어그램 : 순차(시퀀스), 유스케이스, 상태, 활동
📌 Q12.
생산성 = LOC / 노력(인월)
📌 Q13.
클래스 설계 원칙
개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려있고 변경에 대해 닫혀 있어야 함
단일 책임원칙 : 하나의 객체는 하나의 동작만의 책임을 가짐
리스코프 교체의 원칙 : 특정 메소드가 상위 타입을 인자로 사용할 때 그 타입의 하위 타입도 문제없이 작동해야 함
의존관계 역전의 원칙 : 상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 역전시킴으로써 상위 계층이 하위계층의 구현으로부터 독립되게 할 수 있음
📌 Q14.
GoF(Gangs of Four)
생성 : 추상 팩토리(Abstract Factory), 빌더(Builder), 프로토타입(Prototype), 싱글톤(Singleton)
구조 : 어댑터(Adapter), 컴포지트(Composite), 프록시(Proxy), 브릿지(Bridge)
행위 : 옵저버(Observer), 상태(State), 방문자(Visitor)
📌 Q15.
아키텍처 설계과정 :
설계 목표 설정 - 시스템 타입 결정 - 스타일 적용 및 커스터마이즈 - 서브시스템의 기능, 인터페이스 동작 작성 - 아키텍처 설계 검토
📌 Q16.
사용자 인터페이스 설계시 고려해야 할 가이드라인 :
사용성이 최우선
효율성을 높이게 설계
오류를 쉽게 수정 가능해야 함
사용자에게 피드백을 제공해야 함
📌 Q17.
디자인 패턴 : 소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법
📌 Q18.
럼바우기법(Rumbaugh Method) : 객체모형, 동적모형, 기능모형의 3개 모형을 생성
📌 Q19.
FEP(Front End Processor) : 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여줌
📌 Q20.
Class : 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현