정보처리기사(소프트웨어 설계)

JUNHO YEOM·2023년 1월 15일
0

개념

목록 보기
3/6
문제 날짜풀이 날짜과목풀이 횟수/점수
2022.04.242023.01.15소프트웨어 설계(1과목)80점
2022.03.052023.01.15소프트웨어 설계(1과목)75점
2021.08.142023.01.15소프트웨어 설계(1과목)95점
2021.05.142023.01.15소프트웨어 설계(1과목)50점
2021.03.072023.01.15소프트웨어 설계(1과목)85점

UML 다이어그램
메시지 지향 미들웨어
익스트림 프로그래밍
유스케이스(Usecase)
요구사항 분석
요구사항 개발 프로세스
미들웨어
오버로딩
오버라이딩
Gof(Gang of Four) 디자인패턴
아키텍쳐 설계과정의 순서
상향식 설계와 하향식 설계
FEP(Front-End Processor)
목업(Mockup)
자료흐름도(DFD)
럼바우(Rumbaugh)의 객체분석 기법
소프트웨어 설계에서 사용되는 추상화 기법
CASE(Computer Aided Software Engineering)의 원천 기술
파이프 필터 구조
객체지향 분석 방법



UML 다이어그램

순차 다이어그램

  • 동적이고, 순차적인 표현을 위한 다이어그램
  • 시간 개념을 중심으로 모델링
  • 다이어그램의 수직 방향이 시간의 흐름을 나타냄
  • 회귀 메시지, 제어블록 등으로 구성된다.

Dependency(의존) : 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것
Realization(실체화) : 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정
Generalization(일반화) : 일반화된 사물과 좀 더 특수화된 사물 사이의 관계를 말합니다.('is-a')관계
Association(연관) : 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음을 말함 ('has-a')관계



메시지 지향 미들웨어

  • 메시지 기반 비동기형 메시지 전달하는 방식의 미들웨어
  • 온라인 업무보다 분산 데이터 시스템의 데이터 동기를 위해 사용


익스트림 프로그래밍

애자일 방법론 중 하나

  • 소규모 개발조직이 불확실 하고 변경이 많은 요구를 접했을때 적절한 방법
    상식적인 원리와 경험을 최대한 끌어 올려서 구동
    구체적인 실천 방법을 정의한다.
    개발 문서보다 소스코드에 중점을 둔다


유스케이스(Use Case)

시스템이 액터에게 제공해야 하는 기능으로 시스템 요구사항이자 기능을 의미

  • 사용자의 요구를 추출하고 분석하기 위해 사용됩니다.
  • 액터 시스템과 상호작용하는 모든 외부요소(사람, 시스템)

사용자 액터

  • 기능을 요구하는 대상이나 수행결과를 통보받는 기능 혹은 기능을 사용하게될 대상으로 유스케이스의 권한을 가지는 대상, 역할

사용자 액터

  • 사용자 액터가 사용한 유스케이스를 처리해주는 외부 시스템, 시스템의 기능 수행을 위해서 연동이 되는 또다른 시스템 액터

구성 요소 간의 관계

연간 관계 : 유스케이스와 액터 간의 상호 작용이 있음을 표현
포함 관계 : 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계
확장 관계 : 확장 기능 유스케이스와 확장 대상 유스케이스 사이에 형성되는 관계
일반화 관계: 유사한 유스케이스 또는 액터를 모아 추상화한 유스케이스, 액터와 연결시켜 그룹 만들어서 이해도 높이기 위한 관계

Usecase 구성요소와의 관계

  • 연관 : use case 와 actor의 관계
  • 확장 : 기본 use case 수행 시 특별한 조건을 만족할 때 수행할 usecase
  • 포함 : 시스템의 기능이 별도의 기능을 포함
  • 일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받음
  • 그룹화 : 여러개의 usecase를 단순화하는 방법


요구사항 분석

기능적 요구

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

비기능적 요구

시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 성능



요구사항 개발 프로세스

요구사항 도출 -> 요구사항 분석 -> 요구사항 명세 -> 요구사항 확인


미들웨어

클라이언트와 서버간의 통신을 담당하는 시스템 소프트웨어

  • 운영체제와 애플리케이션 사이에서 매개 역할을 하는 소프트웨어
  • 표준화된 인터페이스를 통해서 시스템간 데이터 교환에 일관성 제공
  • 이기종 하드웨어, 소프트웨어, 운영체제등의 환경에서 시스템간의 표준화된 연결을 제공


오버로딩(Overloading)

한 클래스 내에서 메서드의 이름은 동일하지만 매개변수의 수나 타입을 다르게 하여 재정의 하는것



오버라이딩(Overriding)

상속 관계에서만 발생, 부모 클래스의 메서드를 자식 클래스에서도 동일한 이름으로 재정의 하는 것


Gof(Gang of Four) 디자인패턴

생성 패턴

  • 추상 팩토리 패턴(Abstract Factory)
  • 빌더 패턴(Builder)
  • 팩토리 메서드 패턴(Factory Method)
  • 프로토타입 패턴(ProtoType)
  • 싱글톤 패턴(Singleton)

구조 패턴

  • 어댑터 패턴(Adopter)
  • 브릿지 패턴(Bridge)
  • 컴포지트 패턴(Composite)
  • 데코레이터 패턴(Decorator)
  • 퍼사드 패턴(Pacade)
  • 플라이웨잇 패턴(Flyweight)
  • 프록시 패턴(Proxy)

행동 패턴

  • 역할 사슬 패턴(책임 연쇄 / Cain Of Responsibility)
  • 커맨드 패턴(Command)
  • 인터프리터(Interpreter)
  • 이터레이터(Iterator)
  • 중재자(Mediator)
  • 메멘토(Memento)
  • 옵저버(Observer)
  • 상태(State)
  • 전략(Strategy)
  • 템플릿 메서드(Template Method)
  • 방문자(Visitor)


아키텍쳐 설계과정의 순서

설계 목표 설정 -> 시스템 타입 결정 -> 아키텍쳐 패턴 적용 -> 서브시스템 구체화 -> 아키텍처 설계 검토


상향식 설계와 하향식 설계

하향식 설계

메인 컴퍼넌트를 분해해서 아래로 늘어트리면서 개발

  • 계층 구조상에서 시스템의 주요 컴포넌트들을 찾고 그것을 낮은 수준의 컴포넌트들로 분해하는 것으로 메인 모듈의 설계에서 시작하여 단계적으로 구체화 시키는것
  • 통합검사시 인터페이스가 이미 정의되어 있어 통합이 간단하다
  • 레벨이 낮은 데이터 구조의 세부 사항은 설계 초기 단계에서 필요하다
  • 모든것을 새로 개발하는 작업, 시스템 명세가 명학한 경우 적합하다.

상향식 설계

밑바닥부터 위를 향해서 설계 해 나가는 설게 방식

  • 가장 기본적인 컴포넌트들을 먼저 설계하고, 이것을 사용하는 상위수준의 컴포넌트를 만들어 나가는것
  • 최하위부터 모듈을 설계하고, 모듈이 완성되면 이들을 결합하여 검사한다
  • 기존 컴포넌트를 조합하여 시스템을 개발하는 경우는 상향식이 적합하다


FEP(Front-End Processor)

입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리해서 프로세서가 처리하는 시간을 줄여주는 프로그램



목업(Mockup)

디자인, 사용 방법 설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형
시각적으로만 구성 요소를 배치하고, 일반적으로 실제로 구현되지는 않음



자료흐름도(DFD)

처리(Process): 원
자료흐름(Data Flow): 화살표
자료 저장소(Data Store): 평행선
단말(Terminal): 사각형



럼바우(Rumbaugh)의 객체분석 기법

럼바우의 객체 지향 분석 기법 중 자료 흐름도를 이용 하는 것은 : 기능 모델링
객체 모델링 = 객체 다이어그램
동적 모델링 = 상태 다이어그램
기능 모델링 = 자료 흐름도



소프트웨어 설계에서 사용되는 추상화 기법

제어 추상화: 제어의 정확한 메커니즘을 정의하지 않고 원하는 효과를 정하는데 이용하는 방법
기능 추상화: 입력 자료를 출력 자료로 변환하는 과정을 추상화 하는 방법
자료 추상화: 자료와 자료에 적용 될 수 있는 기능을 함께 정의함으로써 자료 객체를 구성하는 방법



CASE(Computer Aided Software Engineering)의 원천 기술

  • 구조적 기법
  • 프로토타이핑 기술
  • 자동프로그래밍 기술
  • 정보 저장소 기술
  • 분산 처리 기술


파이프 필터 구조

서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복되는 아키텍처 스타일



객체지향 분석 방법

Coad Yourdon 방법: E-R 다이어그램을 사용하여 객체의 행위를 모델링 하는데 초첨을 둔 방법
럼바우 분석 기법: 객체, 동적, 기능 모델로 나누어 수행하는 방법
Booch 방법: 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 방법
Jacobson 방법: Use-Case를 강조하여 사용하는 방법

0개의 댓글