정보처리기사 공부

소프트웨어 설계

0_TLS 2025. 2. 5. 18:41

플랫폼 성능 특성 측정 항목 : 경과시간, 사용률, 응답시간, 가용성(경사응가)

 

현행 시스템 분석 : 운영체제 현행 시스템 분석, 네트워크 현행 시스템 분석, DBMS 현행 시스템 분석

DBMS 현행 시스템 분석 시 고려사항

가성호기구

가용성 / 성능 / 상호 호환성 / 기술 지원 / 구축 비용

 

데이터 흐름도(DFD) 구성요소

프플스터

Process / Data Flow / Data Store / Terminator

    원     /    화살표    /  평행선(=)  /     사각형

 

UML기본 구성 요소 : Things, Relationship, Diagram

UML관계 유형

연관관계(Association) 2개 이상의 사물이 서로 관련된 상태
사물 사이를 실선으로 표현하고 방향성은 화살표로 표현
양방향 관계의 경우 화살표를 생략하고 실선으로 연결
의존관계(Dependency) 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간동안만 연관을 유지하는 관계
영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표
일반화관계(Generalization) 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지
상하위개념
하위에서 상위쪽으로 속이 빈 화살표
실체화관계(Realization) 한 객체가 다른 객체에 오퍼레이션을 수행하도록 지정하는 관계
사물에서 기능쪽으로 속이 빈 점선 화살표

UML 모델에서 사용하는 구조적 다이어그램(정적 다이어그램)

클객 컴배 복패

클래스
(Class)
- 시스템 내 클래스의 정적 구조를 표현
- 속성과 동작으로 구성
- 시스템의 구조를 파악하고 구조상의 문제점 도출 가능
-클래스와 클래스, 클래스와 속성 사이의 관계를 표현
객체
(Object)
- 클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
- 객체 인스턴스를 나타내는 대신 실제 클래스를 사용
- 연관된 모든 인스턴스를 표현
컴포넌트
(Component)
- 코드 컴포넌트 기반의 물리적 구조 표현
- 실질적 프로그래밍 작업에 사용
배치
(Deployment)
- 컴포넌트 사이의 종속성을 표현
- 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
복합체 구조
(Composite Structure)
- 클래스나 컴포넌트가 복잡 구조를 갖는 경우 그 내부 구조를 표현
패키지
(Package)
- 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현

 

행위적 다이어그램 / 동적 다이어그램

유시커 상활타

유스케이스
(Usecase)
- 사용자 관점에서 시스템의 활동을 표현
- 유스케이스는 시스템의 기능적 요구 정의에 활용
시퀀스
(Sequence)
- 객체 간 상호 작용을 메시지 흐름으로 표현
- 객체 사이 메시지를 보내는 시간을 표현
- 교류 다이어그램의 한 종류
- 객체, 생명선, 실행, 메시지
커뮤니케이션
(Commuication)
- 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지 뿐만 아니라 객체 간의 연관까지 표현
상태
(State)
- 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현
- 모든 가능한 상태와 전이를 표현
- 진입 조건, 탈출 조건, 상태 전이 등 기술
활동
(Activity)
- 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
- 활동의 순서대로 흐름을 표현
타이밍
(Timing)
- 객체 상태 변화와 시간 제약을 명시적으로 표현

 

 

XP의 5가지 가치 : 단순성, 의사소통, 피드백, 용기, 존중

객체 지향 분석은 상향식임.

객체 지향 방법론

Rumbaugh의 OMT 

  • 객체 모델링 - 객체 다이어그램
  • 동적 모델링 - 상태 다이어그램
  • 기능 모델링 - 자료 흐름도

(기능 모델링 순서 : 입출력 자료 정의 -> 자료 흐름도 작성 -> 기능 명세서 작성 -> 제약조건 파악)

 

Booch 방법론

  • DFD

Coad/Yourdon

  • E-R 다이어그램

shaler/Mellor 방법론

  • 정보 모델링, 상태 모델링, 처리 모델링
활동 다이어그램
(Activity Diagram)
시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
활동의 순서대로 흐름을 표현
상태 다이어그램
(State Diagram)
-하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현
-모든 가능한 상태와 전이를 표현
-진입 조건, 탈출 조건, 상태 전이 등 기술

클래스 다이어그램
(Class Diagram)
-시스템 내 클래스의 정적 구조를 표현
-속성과 동작으로 구성
-시스템의 구조를 파악하고 구조상의 문제점 도출 가능
-클래스와 클래스, 클래스와 속성 사이의 관계를 표현

 

 

UI의 종류

(1) CLI(Command Line Interface) : 정해진 명령 문자열을 입력하여 시스템 조작

(2) GUI(Graphic User Interface)

(3) NUI(Natural User Interface) : 직관적(터치, 음성 등) 사용자 반응

(4) OUI(Organic User Interface) : 모든 사물이나 물질들

(5) CUI(Cell User Interface) : 셀 기반의 사용자 인터페이스

(6) MUI(Mobile User Interface) : 모바일 장치, 사용자 경험(UX), 직관적

 

UI 설계 원칙

  • 직관성 : 누구나 쉽게 사용 가능하도록
  • 유효성 : 사용자의 목적을 정확하게 달성하도록
  • 학습성 : 누구나 쉽게 배우도록
  • 유연성 : 오류를 최소화하도록

 

응집도 : 높을수록 좋음

기 > 순 > 교 > 절 > 시 > 논 > 우

기능적 응집도
(Functional)
모든 기능이 단일한 목적을 위해 수행되는 경우
순차적 응집도
(Sequential)
한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
통신(교환)적 응집도
(Communication)
처리 순서에 상관없이 동일한 자료를 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
- 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동
절차적 응집도
(Procedural)
입출력 순서는 상관 없지만 배열된 순서로 수행되는 경우
시간적 응집도
(Temporal)
특정 시간에 처리되어야 하는 활동
논리적 응집도
(Logical)
유사한 성격, 특정 형태로 분류되는 처리 요소들
우연적 응집도
(Coincidental)
구성 요소들이 연관이 없을 경우

 

결합도 : 낮을수록 좋음

자 < 스 < 제 < 외 < 공 < 내

자료 결합도
(Data)
파라미터를 통해서만 모듈 간의 상호 작용
스탬프 결합도
(Stamp)
배열이나 오프젝트, 스트럭처 등을 전달
제어 결합도
(Control)
제어 요소를 전달
외부 결합도
(External)
외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유
공통 결합도
(Common)
전역 변수를 참조하고 전역 변수를 갱신
내용 결합도
(Content)
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용

 

소프트웨어 아키텍처 4+1 뷰

유논프구배

유스케이스 뷰
(Usecase View)
유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는 데 사용되는 뷰
논리 뷰
(Logical View)
시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰
프로세스 뷰
(Process View)
시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰
구현 뷰
(Implementation View)
개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
배포 뷰
(Deployment View)
컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

디자인 패턴

반복적으로 나타나는 문제점들에 대한 해결방안 제시, 공통되는 해결책을 묶은것

행, 생, 구

생성패턴
(Creational)
객체 생성에 관련된 패턴으로 간단한 블록의 코드로 여러 가지 다양한 객체를 생성할 수 있다.

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

구조 패턴
(Structural)
클래스나 객체를 조합해 더 큰 구조를 만드는 패턴으로, 복잡한 구조의 큰 시스템을 쉽고 효율적으로 만들 수 있게 해준다.

어댑터(Adapter), 브리지(Bridge), 컴포지트(Composite), 데코레이터(Decorator), 퍼사드(Facade), 플라이웨이트(Flyweight), 프록시(Proxy)
행위 패턴
(Behavioral)
반복적으로 일어나는 객체들의 상호작용을 패턴화해 놓은 것으로 객체들 간의 알고리즘이나 역할 분담에 관련된 것들을 정의해 놓았다.

책임연쇄, 커맨드, 인터프리터, 이터레이터, 미디에이터, 메멘토, 옵서버, 스테이트, 스트래티지, 템플릿메서드, 비지터

 

객체지향 방법론의 용어

  1. 객체(Object) - 정보를 효율적으로 관리하기 위한 개념적인 단위
  2. 클래스(Class) - 공통 속성과 행위를 가진 객체를 묶어 추상화
  3. 속성(Property) - 객체가 가지고 있는 데이터 값
  4. 메소드(Method) - 객체를 사용하는 방법이나 연산
  5. 상속성(Inheritance) - 상위 클래스의 자료구조와 연산을 이어 받는 것
  6. 다형성(Polymorphism) - 같은 연산인데 다르게 수행하는 것
  7. 메시지(message) - 객체들을 연결하는 수단
  8. 캡슐화(Encapsulation) - 자료구조와 연산을 묶어 놓은 것
  9. 추상화(Abstraction) - 문제를 단순화하는 과정
  10. 정보 은닉(Information Hiding) - 연산을 통해서만 그 자료에 접근

요구 사항 검증 방법

  • 동료 검토(Peer Review) : 2~3명이 진행하는 리뷰의 형태로 작성자가 요구 사항 명세서를 설명하고 이해관계자들이 결함을 발견하는 방법
  • 워크스루(Walk Through) : 검토 자료를 회의 전에 배포해서 사전 검토한 후, 짧은 시간 동안 회의를 진행하는 형태
  • 인스펙션(Inspection) : 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법

인스펙션 과정

계획 -> 사전 교육 -> 준비 -> 인스펙션 회의 -> 수정 -> 후속 조치

 

미들웨어 솔루션 유형 

DB미들웨어, RPC, MOM, TP Monitoring, ORB, WAS, 레거시웨어

 

아키텍처 설계 과정

설계 목표 설정 -> 시스템 타입 결정 -> 스타일 적용 및 커스터마이즈 -> 서브 시스템의 기능, 인터페이스 동작 작성 -> 아키텍처 설계 검토

 

 

 

'정보처리기사 공부' 카테고리의 다른 글

<실기> SQL 응용  (1) 2025.03.12
정보시스템 구축관리  (0) 2025.02.05
프로그래밍 언어 활용  (0) 2025.02.05
소프트웨어 개발  (1) 2025.02.04
네트워크 기초 활용  (1) 2025.01.25