본문 바로가기
정보처리기사

1. 소프트웨어 설계

by Sunyoung95 2024. 2. 18.

CASE (Computer-Aided Software Engineering)  도구 

  • 시스템 개발 방법론들의 자동화를 지원하는 소프트웨어 도구를 제공해 개발자의 반복적인 작업랴을 줄이도록 하는 것
  • 작업 과정 및 데이터 공유를 통해 작업자 간의 커뮤니케이션이 증대 된다.

제공요소

  • 차트와 다이어그램을 자동으로 생성하는 그래픽 기능, 화명과 리포트 생성기, 데이터 사전, 분석과 검사도구, 코드 생성기, 문서 생성기 등등

주요기능

  • 소프트웨어 생명주기(Software Lifecycle) 전 단계의 연결
  • 그래픽 지원
  • 다양한 소프트 웨어 개발 모형 지원 

GoF (Gang of Four) 디자인 패턴

  • 생성패턴
    • 추상팩토리(Abstract Factory) : 서로 연관된 객체들을 그룹으로 생성하여 추상적으로 표현
    • 빌더(Builder) : 동일한 객체 생성에도 서로 다른 결과
    • 팩토리 메소드(Factory Method) : 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정(Virtual-Constructor 패턴)
    • 프로토타입(Prototype) : 원본 객체를 복제
    • 싱글톤(Singleton) : 하나의 객체를 여러 프로세스가 동시에 참조할 수 없음.
  • 구조패턴 : 어댑터(Adapter), 브리지(Bridge), 컴포지트(Composite), 데코레이터(Decorator), 퍼싸드(Facade), 플라이웨이트(Flyweight), 프록시(Proxy)
  • 행위패턴 : 생성패턴과 구조패턴 외 모든 것들

자료사전  기호

기호 의미
= 자료의 정의
+ 자료의 연결
( ) 자료의 생략
[ | ] 자료의 선택
{} 자료의 반복
* * 자료의 설명

개발 기술 환경

미들웨어 

  • 솔루션 유형 
    • DB(Database) : 클라이언트에서 원격 데이터베이스와 연결하기 위한 미들웨어 (예 : ODBC)
    • RPC(Remote Procedure Call) : 원격 프로시저를 로컬 프로시저처럼 호출하는 방식
    • MOM(Message Oriented Middleware) : 메시지 기반의 비동기형 메시지 전달
    • TP-Monitor(Transaction Processing Monitor) : 사용자수가 증가해도 빠른 응답속도를 유지해야하는 업무에 주로 사용 

객체지향 설계 원칙(클래스 설계원칙)

  • SRP(단일 책임 원칙) : 클래스, 함수 등은 단 하나의 책임만을 가져야 한다.
  • OCP(개방-폐쇄 원칙) : 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야함.
  • LSP(리스코프 치환 원칙) : 서브타입은 어디에서나 자신의 기반타입(상위,부모)로 교체할 수 있어야함.
  • ISP(인터페이스 분리 원칙) : 자신이 사용하지 않는 기능(인터페이스)에는 영향을 받지 않아야함.
  • DIP(의존 역전 원칙) : 의존 관계를 맺을 때, 변화하기 쉬운 것보단 변화하기 어려운 것에 의존해야함.

요구사항 확인 기법

UML

활용 다이어그램

  • Behavioral 다이어그램(시스템의 동작을 표현하는 행위)
    • 유즈케이스(UseCase) 다이어그램
    • 시퀀스(Sequence) 다이어그램 : 항목액터, 활성객체(object), 라이프라인(생명선), 메세지, 제어삼각형 구성
    • 커뮤니케이션(Communication) 다이어그램
    • 상태(State) 다이어그램
    • 활동(Activity) 다이어그램
    • 상호작용개요(Interaction Overview) 다이어그램
    • 타이밍(Timing) 다이어그램
    • Collaboration : 주고받는 메시지 중심
  • Structural 다이어그램 : 배치(deployment) 다이어그램

기본구성요소

  • 사물(Things), 관계(Relationship), 다이어그램(Diagram)

관계

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

요구사항 명세 기법 

구분 정형 명세 기법 비정형 명세 기법
기법 수학적 원리 기반, 모델 기반 상태/기능/객체 중심
작성 기법 수학적 기호, 정형화된 표기법 일반 명사, 동사 등의 자연어를 기반으로 서술 또는 다이어그램으로 작성
특징 - 요구사항을 정확하고 간결하게 표현가능
- 요구하상에 대한 결과가 작성자에 관계없이 일관성이 있으므로 완전성 검증이 가능
- 표기법이 어려워 사용자가 이해하기 어려움
- 자연어의 사용으로 인해 요구사항에 대한 결과가 작성자에 따라 다를 수 있어 일관성이 떨어지고, 해석이 달라질 수 있다.
- 내용의 이해가 쉬워 의사소통이 용이함
종류 VDM, Z, Petri-net, CSP 등 FSM, Decision Table, ER 모델링, State Chart(SADT) 등

그 외 

  • FEP(Front-End-Processor) : 입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어
  • 자료 흐름도 (DFD, Data Flow Diagram)
    • 자료에 대한 흐름을 표현 (시간흐름 X)
    • 구조적 분석기법에 사용
    • 요소 : Process(원), Flow(선), Data Store(직선), Terminator(사각형)
  • Usecase 구성요소와의 관계
    • 연관 : use case와 actor와의 관계
    • 확장 : 기본 use case 수행 시 특별한 조건을 만족할 때 수행할 use case
    • 포함 : 시스템의 기능이 별도의 기능을 포함
    • 일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받는다
    • 그룹화 : 여러개의 use case를 단순화 하는 방

 

 

 

 

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

4. 프로그래밍 언어  (0) 2024.03.03
5.소프트웨어 개발  (0) 2024.02.29

댓글