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

정보처리기사 필기 키워드 정리 - 1과목 : 소프트웨어 설계

by baam 2022. 4. 19.

[이기적 환상의콤비] 교재 2회독 후 교재를 바탕으로 키워드 암기를 위해 정리한 요약글입니다.

 

1. 소프트웨어 방법론

 1-1. 소프트웨어 분류와 특성

  • 시스템의 기본요소 : 입력, 출력, 처리, 제어, 피드백
  • 플랫폼의 성능평가 기준 : 가용성, 응답시간, 정확성, 사용률
  • 프레임워크의 특징 : 모듈화, 재사용성, 확장성, 제어의 역 흐름
  • 프레임워크의 기대효과 : 개발 용이성, 품질보증, 변경용이성, 유지보수 용이성, 재사용성 향상, 표준화율 향상, 상호 운용성 향상
  • 협약에 의한 설계를 따를 경우에 포함되어야 할 조건 : 선행조건, 결과조건, 불변조건

 1-2. 소프트웨어 개발 방법론 활용

  • 객체지향 방법론의 기본 원칙 : 캡슐화, 정보은닉, 추상화, 상속성, 다형성
  • 컴포넌트 기반 방법론(CBD) 분석 단계 산출물 : 사용자 요구사항 정의서, 유스케이스 명세서, 요구사항 추적표
  • 애자일 방법론 : 고객의 요구사항 변화에 민첩하고 유연하게 대응할 수 있도록 진행, XP, Scrum, 기능 중심 개발, 동적 시스템 개발방법, 경량개발, kanban
  • 제품 계열 방법론 : 임베디드 소프트웨어 개발에 적합
  • 테일러링 방법론 : ISO/IEC 12207, CMMI, SPICE 등의 소프트웨어 개발 프레임워크를 사용
  • 보안 개발 방법론의 종류 : MS-SDL, Seven Touchpoints(실무적으로 검증된 방법론), CLASP, CWE(보안 취약점을 유발하는 원인을 7가지로 정리한 방법론)
  • 하향식 비용 산정 기법 : 전문가 측정기법, 델파이 측정기법
  • 상향식 비용 산정 기법 : LOC기법, 단계별 인월수 기법
  • 소프트웨어 비용 추정 모형(수학식 산정 기법) : COCOMO 모델, Putnam 모델, 기능 점수 모델
  • COCOMO 모델 : 보헴이 제안, Organic(5만 라인 이하), Semi-Detached(30만 라인 이하), Embedded(30만 라인 이상)
  • Putnam 모델 : Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
  • 기능 점수 모델의 비용 산정 요소 : 입력 유형의 수, 출력 유형의 수, 사용자 명령어 수, 데이터 파일의 수, 인터페이스의 수
  • 소프트웨어 개발 표준 : ISO/IEC 12207, ISO/IEC 9126(기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성), CMM, CMMI, SPICE

1-3. 소프트웨어 생명 주기 모델

  • 폭포수 모델 : 단계별 결과물이 정확하게 산출
  • 프로토타입 모델 : 견본품
  • 나선형 모델 : 위험분석 기능 추가, 보헴이 제안, 점진적으로 개발, 유지보수 과정이 필요없다.
  • 애자일 모델 의 핵심가치 : 절차보다 상호작용에 더 가치를 둔다. / 실행되는 소프트웨어에 더 가치를 둔다. / 고객과의 협업에 더 가치를 둔다. / 변화에 대응하는 것에 더 가치를 둔다.
  • 스크럼 모델 : 제품 책임자(PO), 스크럼 마스터(SM), 개발팀(DT)
  • XP 모델 : 고객의 참여와 개발 과정의 반복을 극대화, 빠른 개발 목적, 의사소통, 단순성, 용기, 존중, 피드백
  • 프로젝트 관리 : PERT(소요 기간의 예측이 어려운 경우), CPM(소요 기간이 확실한 경우)
  • 형상 관리의 역할 및 특성 : 동일한 프로젝트를 여러 개발자가 동시에 개발이 가능해진다. / 불필요한 수정을 제한할 수 있다. / 배포본 관리에 유용하며 리비전이 가능하다.

2. 요구사항 확인

 2-1. 소프트 웨어 개발 환경 분석

  • DBMS : 종속성과 중복성의 문제를 해결해 준다.
  • 미들웨어 : DBMS, RPC, MOM, TP-Monitor, ORB, WAS

 2-2. 요구사항 정의

  • 도출, 분석, 명세, 확인
  • 요구사항 도출 기법 : 인터뷰, 설문조사, 프로토타이핑, 스토리텔링, 유스케이스
  • 유스케이스 다이어그램의 구성요소 : 시스템 범위, 유스케이스, 액터, 관계
  • 요구사항 분석 - 구조적 분석 도구 : 자료 흐름도(DFD), 자료사전(DD)(자료의 선택[], 자료의 반복 {}, 자료의 생략 ()), NS 차트, HIPO
  • 요구사항 검증 기법 : 요구사항 검토, 프로토타이핑, 모델 검증, 인수 테스트
  • 요구사항 검토 : 동료검토, 워크스루, 인스펙션, 프로토타입
  • CASE : 소프트웨어 생명주기 전반을 지원하는 자동화 도구 혹은 방법론의 결합이다.

2-3. UML

  • 객체지향 모델링 언어
  • 구성요소 : 사물, 관계, 다이어그램
  • 사물 : 구조사물, 행동사물, 그룹사물, 주해사물
  • 관계 : 연관관계, 집합관계, 포함관계, 일반화관계(상위,하위관계), 의존관계(짧은 시간 동안만 연관성 유지), 실체화관계
  • 구조적 다이어그램의 종류 : 클래스, 객체, 컴포넌트, 배치, 복합체, 패키지
  • 행위 다이어그램의 종류 : 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍

 3. 화면 설계

 3-1. UI 표준

  • UI의 종류 : CLI, GUI, NUI
  • UI 설계 기본 원칙 : 직관성, 일관성(학습성), 효율성(유효성), 유연성

 3-3. UI 설계

  • UI 개발 시스템의 필수 기능 : 프롬프트 기능, 명령 검증기능, 에러처리와 에러메시지 출력 기능, 도움말 지원 기능

4. 애플리케이션 설계

 4-1. 공통 모듈

  • 모듈 :  프로그램을 기능 단위로 분해한 것, 재사용 가능, 종속적으로 수행
  • 공유도(Fan-in) : 해당 모듈을 호출하는 상위 모듈들의 개수
  • 제어도(Fan-out) : 해달 모듈이 사용하는 하위 모듈들의 개수
  • 공통 모듈의 재사용 범위 : 함수와 객체 재사용, 컴포넌트 재사용, 애플리케이션 재사용
  • 재사용 모듈 설계의 유의사항 : 결합도는 약하게, 응집도는 높게, 공유도는 높이고, 제어도는 낮추어 설계한다.

 4-2. 모듈의 성능 평가

  • 결합도 :  (낮은순) 자료 > 스탬프 > 제어 > 외부 > 공통 > 내용
  • 자료 결합도(Data) : 인수과 매개변수, Call by Value
  • 스탬프 결합도 : 동일한 자료구조
  • 제어 결합도 : 제어 요소를 전달
  • 외부 결합도 : 두 모듈이 외부에 선언된 변수를 참조하는 경우
  • 공통 결합도 : 모듈이 다른 모듈의 내부 데이터를 참조하는 경우
  • 내용 결합도 : 모듈이 다른 모듈의 내부 기능과 데이터를 직접적으로 사용하는 경우
  • 응집도 : (낮은순) 우연적 > 논리적 > 시간적 > 절차적 > 통신적 >  순차적 > 기능적
  • 순차적 응집도 : 기능 수행의 결과를 다음 기능 수행의 입력으로 사용하는 경우
  • 절차적 응집도 : 모듈의 기능들이 하나의 문제를 해결하기 위해 순착적으로 수행되는 경우

 7-3. 소프트웨어 아키텍처

  • SOA 계층 : 표현계층, 프로세스 계층, 비즈니스 계층, 데이터 접근 계층
  • 코드의 3대 기능 : 식별, 분류, 배열
  • 코드의 분류 : 순차코드, 블록코드, 10진코드, 그룹 분류 코드, 연상코드, 표의 숫자 코드, 합성코드

 7-4. 디자인 패턴

  • 디자인 패턴의 구성 요소 : 패턴의 이름과 구분, 문제 및 배경, 솔루션, 사례, 결과, 샘플코드
  • 디자인 패턴의 단점 : 객체지향 개발 위주로만 사용할 수 있다.
  • 생성패턴 : Abstract Factory, Factory Method, Builder, Prototype, Singleton
  • 구조패턴 : Adapter, Bridige, Composite, Decorator, Facade, Flyweight, Proxy
  • 행위패턴 : Chain of Responsibilty, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Vistor

댓글