정보처리 기사 2021년 1회 - 소프트웨어 설계

기록지·2022년 12월 11일
0

정처기

목록 보기
11/12

1강. 소프트웨어 설계

  1. 버전확인 -> uname -a
    ls -> 디렉토리 목록볼때 쓰임
    cat -> 합칠때
    pwd -> 지금 위치

  2. 포트할당, 클라이언트의 통신 요청시 클라이언트와 연결하는 내외부 송수신 연계기술?
    포트할당 -> 소켓 기술
    ssh 포트->22번
    포트 -> 집(ip)의 방문을 보고 포트라고 생각하면 됌
    예시) http : 80 ssl:443 mysql : 3306....

디비링크 -> 오라클에서 많이 쓰임
스크럼- 에자일 프로토타입 - 시제품

  1. 객체지향 개념에서 연관된 데이터와 함수를 함꼐 묶어 외부와 경계를 만들고 필요한 인터페이스만을
    밖으로 드러내는 과정 ?
    캡슐화(데이터와 함수를 묶는거야) - 정보은닉과 관련됌(밖으로 안보여줌)

참고) 메세지 , 다형성(형태가 다양쓰) , 상속(부모로 부터 상속)

객체지향 특징 시험 多

  • 캡슐화(Encapsulation)
  • 정보은닉
  • 상속
  • 다형성
    : 오버로딩 : add(a), add(a,b)...
    : 오버라이딩 : 부모처럼 살기싫어
  • 추상화
    : 리모콘을 만들고 이 껍데기로 에어컨에서 티비에서 구현하는거
  1. GoF(Gangs of Four) 디자인 패턴의 생성패턴에 속하지않는것은?
  2. 추상팩토리 -> 하위클래스에서 생성한다., 생성
  3. 빌더 -> 생성
  4. 어댑터 -> 정답, 구조패턴 끼워맞는거라고 생각하면 됌
  5. 싱글턴 - 객체 하나를 만들어 그걸 가져다 쓰는거 new 를 한번만 하는거, 생성

생성패턴
Factory method
singleton
Abstract factory
Builder
Prototype

구조패턴
Adaptor
Bridge
Composite
Decorator
Facade
Fly weight
Proxy

행위패턴
Teplate method
Interpreter
Command
Chain of Responsibility
State
Strategy
Mediator
Memento
Visitor
Observer

  1. 응용프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어는?
    -> 프로시저를 사용하여 원격
  2. RPC(Remote Procedure Call)

미들웨어 종류
RPC : 원격 프로시저 호출
MOM: 메세지 지향 미들웨어
ORB: 다른 시스템의 프로그램을 네트워크를 통해 호출할 수 있는 미들웨어
DB 접속 미들웨어
TP 모니터 -> 트랜젝션을 봄
WAS -> 웹에서 동적인 역할담당 로그인하면
ESB -> 메세지 버스

  1. 바람직한 소프트웨어 설계 지침이 아닌 것은?
    가능한 모듐을 독립적으로 생성한다 .+ 결합도를 최대화한다(X) -> 최대한 낮춰야함

  2. 객체지향 분석 방법론 중 Code-Yourdon 방법에 해당하는 것은?
    Code-Yourdon -> E-R 다이어그램이다 라고 생각하면 됌

객체, 동적, 기능 모델로 나누어 수행하는 방법 : 럼바우
미시적, 거지적 -> 부치
Use-Case 강조 -> 잡콘슨

객체지향 분석 방법론
Rumbaugh(럼바우)방법

  • 객체 모델(객체, 동적 모델(상태)--> 시험 多, 기능 모델(DFD)
    Booch(부치) 방법 ->시험 多
  • 미시적, 거시적 개발 프로세스 모두 사용
    Jacobson 방법 ->시험 多
  • Use Case 사용
    Coad와 Yourdon 방법 ->시험 多
  • E-R 다이그램을 사용하여 객체의 행위를 모델링
    Wirfs-Brock 방법
  • 분석과 설계간 구분 없음
  1. 팬인
    팬인 -> 나를 호출하고 있는거
    팬아웃 -> 내가 호출하는거

  2. 현행 시스템 분석에서 고려하지 않아도 되는 항목은?

  • 운영체제
  • 네트워크
  • DBMS
  • 미들웨어
  • 오픈소스( 라이센스, 서비스 지속 가능성 등)
  1. 분산 컴퓨팅 환경에서 서로 다른 기종간의 하드웨어나 프로토콜, 통신환경등을 연결하여
    응용프로그램과 운영환경 간에 원만한 통신이 이뤄질 수 있게 서비스를 제공하는 소프트웨어는?
  • 미들웨어
  1. CASE(COMPUTER AIDED SOFTWARE ENGINEERING) 에 대한 설명으로 틀린것은?
    -> 개발할때 나를 도와주는 도구 , 사용자와는 상관없음

  2. 소프트웨어 모듈의 재사용성이 향상된다 (0)

  3. 자동화된 기법을 통해 소프트웨어 품질이 향상된다(0)

  4. 소프트웨어 사용자들에게 사용방법을 신속히 숙지시키기 위해 사용된다. (X) -> 설명서

  5. 소프트웨어 유지보수를 간편하게 수행할 수 있다.

  6. UML(UNIFIED MODELING LANGUAGE)에 대한 설명 중 틀린 것은?
    -> 그림을 그린다고 생각하면 됌

  • 동적 다이어그램 : 정적 모델은 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조를 나타내며,
    UML 에서는 Class Diagram을 사용한다.
    동적 모델은 시스템의 내부 동작을 말하며 UML 에서는 Sequence Diagram, State Diagram, Activity Diagram을
    사용한다.
    State Diagram은 그 상태의 변화에 의한 동작의 순서를 나타낸다. Sequence Diagram은 객체들 사이의
    메시지 교환을 의미한다.

UML- 구조적 다이어그램

  • 클래스 다이어그램 : 클래스의 속성, 메서드로 구성된 정적 다이어그램
  • 컴포넌트 다이어그램: 컴포넌트들 간의 관계
  • 객체 다이어그램: 인스턴스
  • 컴포지트 구조 다이어긂 : 아키텍처 다이어그램
  • 배치 다이어그램: 컴포넌트들의 물리적 구성
  • 패키지 다이어그램 : 관련있는 모델링 요소들을 그룹화

UML- 행위 다이어그램

  • 활동 다이어그램 : 활동의 흐름
  • 유스케이스 다이어그램: 사용자 관점에서 바라본 시스템을 표현 -> 사용 多, 시험 多
  • 상태 다이어그램: 객체의 상태 변화
  • 시퀀스 다이어그래미 시간적 흐름에 따른 메시지 교환
  • 커뮤니케이션 다이어그램: 객체들이 주고 받는 메시지 표현
  • 인터렉션 오버뷰 다이어그램: 활동 다이어그램 + 시퀀스 다이어그램
  • 타이밍 다이어그램 : 시간의 흐름에 따른 상태 변화를 표현한 다이어그램

시험 多 -> 다음중 행위/ 구조적 다이어그램이 아닌것은? , 유스케이스 다이어그램은?

  1. 기본 유스케이스 수행 시 특별한 조건을 만족할 때 수행하는 유스케이스는?
    포함 -> << Include >> ->필수
    정답 -> 확장 -> << extend >> -> 필수가 아님

유스케이스 다이어그램

  • 사용자(Actor) 의 관점에서 시스템의 기능, 상호작용과 그들간의 관계를 표현
  • 구성요소
    : 시스템 : 개발하고자 하는 소프트웨어
    : 액터 : 시스템 외부에서 시스템과 상호작용하는 객체
    : 유스케이스 : 일련의 작업을 수행하기 위한 행위
    : 관계 : 2개의 액터 또는 유스케이스들이 서로 상호작용함을 나타냄

유스케이스 다이어그램 관계

  • 연관 관계 -> 유스케이스와 액터사이에 상호작용이 있음
  • 포함 관계 -> 필수 <>
  • 확장 관계 -> 특정상황
  • 일반화 관계 -> 부모 유스케이스와 자식 유스케이스들 간의 상속관계
  1. 요구사항 모델링에 활용되지 않는 것은?

  2. 애자일

  3. 유스케이스

  4. 시퀀스

  5. 단계 -> 정답, 아예 존재하지 x

  6. 디자인 패턴을 이용한 소프트웨어 재사용을 얻어지는 장점이 아닌것은?
    3R 어떻게든 재사용하자
    1) 역공학
    2) 재공학
    3) 재사용
    4) 재개발, 정답

  7. 럼바우 분석기법에서 정보 모델링이라고도 하며 시스템에서 요구되는 객체를 찾아내어 다이어그램을 표시
    하는 모델링?
    OBJECT

럼바우 방법 (쑨서대로 실행)
-객체 모델링- 객체 다이어그램
-동적 모델링-상태 다이어그램

  • 기능 모델링- 자료 흐름도(DFD) 이용 시험 多
  1. 소프트웨어를 개발하기 위한 비지니스를 객체와 속성, 클래스와 멤버, 전체와 부분등으로
    나누어서 분석해 내는 기법은?
  2. 객체지향 분석, 정답

구조적- 절차
기능적- 절차

  1. 애자일 소프트웨어 개발 기법의 가치가 아닌것은?
    -> 애자일: 여러기법 묶음, 민첩쓰,, 고객요구사항 맞춰주자
    XP: SCRUM ,FDD(기능주도개발), CRYSTAL, LEAN
    실제 작동하는 소프트웨어보다는 이해하기 좋은 문서에 더 가치를 둔다 (X), 정답
    -> 문서보다 실제 작동하는 소프트웨어에 더 가치를 둠

애자일 소프트웨어개발선언

  • 공정과 도구보다 개인과 상호작용을
  • 포괄적인 문서보다는 작동하는 소프트웨어를
  • 계약 협상보다는 고객과의 협력을
  • 계획을 따르기보다는 변화에 대응하기를
  1. UML 다이어그램 중 시스템 내 클래스의 정적 구조를 표현하고 클래스와 클래스의 속성 사이의 관계를
    나타내는 것은?
  • Class Diagram = 정적 = 구조
  1. 소프트웨어 설계시 제일 상위에 있는 main user function에서 시작하여 기능을 하위 기능들로 분할해
    가면서 설계하는 방식은?
  2. 하향식 설계

0개의 댓글