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

정보처리기사 실기 - <소프트웨어> keyword 🔑 - 작성 중

by mihsyeh 2022. 5. 4.

소프트웨어 공학 3R

  • 역공학 Reverse Engineering : 기존 개발 시스템 > CASE 도구 이용 > 문서 추출
  • 재공학 Re-engineering : 기존 시스템 성능 업그레이드
  • 재사용 Reuse : 기존 소프트웨어 전체/일부분 다시 사용
    • 합성 중심, 생성 중심

 

소프트웨어 개발 단계

계획 - 요구사항 분석 - 설계 - 구현 - 테스트 - 유지보수

 

소프트웨어 개발 모델

  • 폭포수 모델 - 선형 순차모델, 추가 요구사항 반영 어려움
  • 프로토타이핑 모델
  • 나선형 모델 : 위험분석, 점증적 개발
  • RAD 모델 : 매우 짧은 개발 주기 강조
  • V 모형 : 분석-설계-구현-단위-통합-시스템-인수테스트
  • 4세대 기법 : 자동화도구 사용, 원시코드 자동 생성

 

애자일 방법론

  • XP : 핵심가치 - 용기(변화능동적대처), 존중, 의사소통, 피드백, 단순성
  • 스크럼 - 날마다 15분 회의, 스프린트 조절, 실제 동작 결과 제공
  • 그 외 크리스털 패밀리, 기능주도개발, ASD, Lean

 

프로젝트 핵심 관리 대상 3P

  • 사람, 문제, 프로세스

 

PMBOK

  • 프로젝트 관리 프로세스 및 지식 체계
  • 5단계 프로세스 - 착수 > 계획 > 실행 > 통제 > 종료

 

개발 비용 산정

1. 하향식 - 전문가 기법 / 델타이 기법

2. 상향식

  • LOC(원시코드 라인수) 기법 - (낙관치 + ( 4 * 중간치 ) + 비관치) / 6
  • 단계별 인원수 기법

3. 수학적

  • COCOMO 기법 - 조직형(Organic Mode/5만 이하), 반분리형 (Semidatached / 30만 이하) , 내장형 (Embeded / 30만 이상)
  • PUTNAM 기법 - SLIM 자동화 추정 도구
  • FP(기능점수) 기법 - ESTIMACS 자동화 추정 도구

 

개발 일정 산정

  • WBS : 프로젝트 목표 달성을 위해 필요한 활동, 업무 세분화
  • Network Chart
    • 임계 경로 : 프로젝트를 끝내기 위해 필요한 최소 소요기간
  • 간트 차트

 

플랫폼

  • 어플리케이션을 구동시키는데 필요한 하드웨어 + 소프트웨어 결합
  • 유형 : 싱글 사이드, 투 사이드, 멀티 사이드

 

미들웨어 #양쪽연결 #데이터주고받기 #중간매개역할

  • RPC
  • MOM
  • ORB
  • DB 접속 미들웨어
  • TP 모니터
  • WAS
  • ESB

 

 

요구공학 #고객요구 #요구사항도출관리

요구사항 개발 프로세스 #도분명확

  • 도출 - 분석 - 명세 - 확인

 

요구사항 분석 도구

  • CASE
  • HIPO : 하향식 소프트웨어 개발을 위한 문서화 도구

 

요구사항 분석 모델링

  • 모델링 : 복잡한 시스템을 쉽게 이해하기 위해 추상화하여 간단한 모델로 표현

구조적 분석 모델

  • 자료 흐름도, 자료 사전, 소단위 명세서, 개쳬 관계도, 상태 전이도

객체 지향 분석 모델

  • 럼바우 #객동기 
    • 객체 모델링 Object
    • 동적 모델링 Dynamic
    • 기능 모델링 Functional
  • 부치
  • Jacobson, Coad Yourdon, Wirfs-Brock 등

 

 

 

소프트웨어 설계

  • 상위 설계 - 아키텍처 설계 - 데이터 설계 - 인터페이스 정의 - 사용자 인터페이스 설계
  • 하위 설계 - 모둘 설계 - 자료 구조 설계 - 알고리즘 설계

 

소프트웨어 설계 원리

  • 분할과 정복
  • 추상화 #공통성질묶기 > 본질적문제에 집중
  • 단계적 분해
  • 모듈화
  • 정보 은닉

 

소프트웨어 아키텍처 #구조

4+1뷰

  • 논리적 관점
  • 구현 관점
  • 프로세스 관점
  • 배치 관점
  • 유스케이스 관점

 

소프트웨어 아키텍처 패턴

  • 파이프-필터
  • 피어 투 피어
  • 모델-뷰-컨트롤러
  • 등등

 

UML #이해관계자 #원활한의사소통 #표준화 #모델링언어

1. 사물 - 구조사물 행동사물 그룹사물 주해사물

2. 관계

  • 일반화곤계, 연관관계, 의존관계, 실체화관계, 집합-집약관계, 집합-합성관계

3. 다이어그램

  • 구조 다이어그램 #배네딕트컴복배치객클났다
    • 클래스 다이어그램 : 여러개의 클래스, 서로간의 상호작용 및 관계 표현
    • 접근제한자
      • Private - 해당 클래스 내에서만
      • Protected # 상속,동일 패키지 내에서만
      • Public + 어디서든
  • 행위 다이어그램
    • 유스케이스 다이어그램 : 시스템-사용자 상호작용 표현, 사용자 관점
    • System, Actor, Usecase, Relation
    • 시퀀스 다이어그램

 

UI

  • 유형 - CLI(마우스,키보드), GUL(아이콘,그래픽), AUI(청각, 알림음, 사운드), NUI (신체), VCI (목소리)
  • 설계 원칙
    • 직관성 : 누구나 쉽게 이해 쉽게 사용
    • 유효성 : 사용자 목적 정확하게 달성
    • 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 함
    • 유연성 : 사용자 요구사항 최대한 수용, 오류 최소화
  • 설계 도구
    • 와이어 프레임
    • 스토리보드
    • 프로토타입

 

UX - UI를 직/간접적 이용하며 경험한 모든 것

 

HTML5 - www를 통해 제공되는 정보를 나타낼 목적으로 사용되는 마크업 언어 (웹페이지 기본구조)

JavaScript 프레임워크

  • React : 페이스북, 유저인터페이스, 오픈소스자바스크립트
  • Vue.js : 자바스크립트
  • Ajax : 비동기적 웹 어프리케이션 제작

 

관련 용어

  • 인포그래픽 : 정보+그래픽 합성어, 복잡한 정보를 쉽고 빠르게 전달하기 위해 시각화한것
  • BI (브랜드 아이티티) : 사용자에게 전달하고자 하는 특정 브랜드의 가치와 의미를 반영한 심적 표상 
  • 네비게이션 : 하이퍼링크 따라 웹 공간 정보 요청, 웹사이트 탐색 도구

 

 

 

개발 소프트웨어

  • 요구사항 관리도구
  • 설계/모델링 도구
  • 구현도구
  • 테스트 도구
  • 형상관리 도구
    • 절차 #식통감기 : 형상 식별 - 형상 통제 - 형상 감사 - 형상 기록

 

IDE

  • 소프트웨어 개발에 필요한 많은 도구의 기능을 하나로 묶어 활용하는 소프트웨어
  • 이클립스, 비주얼 스튜디오, 엑스코드 등

 

버전 관리 도구

  • 유형 : 공유 폴더 방식, 클라이언트/서버 방식(CVS, SVN), 분산저장소 방식(Git)

 

빌드 자동화 도구

  • Ant
  • Jenkins
  • Gradle

 

프레임워크 #어플리케이션 구조

  • 모둘화 : 구현을 인터페이스 뒤에 감추는 캡슐화를 통해서 모듈화 강화
  • 재사용성 : 여러 어플리케이션 반복 사용 가느한 일반적인 컴포넌트를 정의
  • 확장성 : 다형성(오버로딩,오버라이딩)을 통해 프레임워크 인터페이스 확장
  • 제어의 역흐름 : 프레임워크가 외부의 이벤트에 대해 애플리케이션이 어떠한 메소드를 수행해야 하는지 스스로 결정

 

라이브러리 #어플리케이션 특정기능

API

 

단위 모듈 작성 원칙 #정명완일주

  • 정확성
  • 명확성
  • 완전성
  • 일관성
  • 추적성

 

 

결합도 #low good #자스제외공내

  • 자료 결합도 Data
  • 스탬프 Stamp Coupling
  • 제어 Control Coupling
  • 외부 External Coupling
  • 공통 Common Coupling
  • 내용 Content Coupling

 

응집도 #high good #기순통절시논우

  • 기능적 응집도 Functional Cohesion
  • 순차적 Sequential Cohesion
  • 통신적 Communication Cohesion
  • 절차적 Procedural Cohesion
  • 시간적 Temporal Cohesion
  • 논리적 Logical Cohesion
  • 우연적 Coincidental Cohesion

 

DBMS 접속 기술

  • 소켓통신 : 응용프로그램-DBMS 직접 통신
  • Vender API : DBMS 사에서 공개한 API를 통해 통신
  • JDBC Java DataBase Connectivity 
  • ODBC Open DataBase Connectivity : DB 접근하기 위한 표준 규격 > 모든 DBMS 접근 방법 통일

 

ORM

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 것

 

시큐어 코딩

  • OWASP

 

배치프로그램 / 스케줄 관리

  • 크론탭
    • 분 시 일 월 요일 명령어
    • * 모든 값
    • ? 상관없음
    • - 범위
    • , 여러값
    • / 증분값 (*/20 : 매 20분 마다)
  • 스트링 배치
  • 쿼츠 잡 스케쥴러
    • 초 반 시 일 월 요일 연
    • @Scheduled(Cron="0 0 1 * * ?")

 

 

Port

 

내외부 모듈 연계 방식

  • EAI Enterprise Application Integration
    • Point-to-Point
    • Hub & Spoke
    • Message Bus
    • Hybrid
  • ESB Enterprise 기업 Service 서비스 Bus

 

연계 기술

  • DB Link
  • DB Connection
  • JDBC
  • API / Open API
  • Web Service
  • Hyper Link
  • Socket

 

  • SOAP
  • UDDI
  • WSDL

 

객체지향 설계

1. 구성 요소

  • 클래스, 객체, 속성, 메서드, 메시지

 

2. 특징

  • 캡슐화
  • 정보은닉
  • 상속
  • 형성
  • 추상화

 

3. 설계 원칙

  • 단일 책임 원칙
  • 개방 폐쇄 원칙
  • 리스코프 치환 원칙
  • 인터페이스 분리 원칙
  • 의존성 역전 원칙

 

4. GoF 디자인 패턴

  • 생성
    • Abstract Factory : 구체적인 클래스 의존X, 인터페이스 제공
    • Builder : 생성-표현 분리
    • Factory Method : 객체 생성 처리를 서브클래스로 분리, 캡슐화
    • Prototype : 원본 객체 복사-객체 생성
    • Singleton : 어떤 클래스의 인스턴스 하나를 어디서든 참조
  • 구조 
    • Adapter : 다른 인터페이스로 변환, 다른 클래스가 이용
    • Bridge : 구현부에서 추상층 분리, 각자 독립적 변형
    • Composite : 객체 간 관계 트리구조 구성, 복합-단일 객체 구분X
    • Deorator : 상황, 용도에 따라 객체 + 다른 객체 덧붙임
    • Facade : 하나의 통합된 인터페이스 제공, 서브시스템 앞쪽
    • Flyweight : 객체 매번 생성X 공유, 메모리 절약
    • Proxy : 접근 어려운 객체. 대행 객를 통해 접근
  • 행위
    • Chain of Responsibility : 요청 받는 객체를 연쇄적으로 묶어 처리가능한 객체 만날때까지 객체 chain을 따라 요청 전달
    • Command : 요청-객체로 감싸서 관리 (캡슐화)
    • Interpreter : 문법 정의, 해석
    • Iterator : 배열, 배열리스트 객체 처리
    • Mediator : 복잡한 관계 캡슐화 - 하나의 클래스에서 관리 / 여러 객체 간 중재자 - 통신 담당, 통제, 지시
    • Memento - 객체 상태 정보 저장 - 원하는 시점에 데이터 복원
    • Observer : 객체 상태변화를 관찰하여 옵저버에게 통지, 자동 갱신
    • State : 객체 상태에 따라 동일동작을 다르게 처리
    • Strategy : 알고리즘 여러개 중 상황에 따라 선택
    • Template Method : 특정 작업 처리 일부분 서브클래스로 캡슐화 - 구조 유지 - 특정 단계 재정의
    • Visitor : 실제 로직 객체를 적용할 객체에 방문하여 실행. 개방-폐쇄 원칙 적용

 

애플리케이션 테스트 관리

  • 필요성 - 오류 발견 관점, 오류 예방 관점, 품질 향상 관점

기본 원칙

  • 결함 집중 - 파레토 법칙

 

테스트 케이스

테스트 오라클

 

테스트 기법

정적

동적

 

 

화이트박스

기초 경로 검사

블랙박스

 

테스트에 대한 시각

검증

확인

 

 

테스트 목적

 

테스트 종류

 

테스트 커버리지

 

 

결함 관리

결함 추이 분석

 

테스트 자동화 도구

정적 분석 도구

테스트 실행 도구

성능 테스트 도구

테스트 통제 도구

테스트 장치

 

테스트 레벨 #단통시인

 

통합 테스트

 

애플리케이션 성능 분석 지표

처리량

응답시간

경과 시간

자원 사용률

 

 

FRT 정형 기술 컴토 회의

 

소스코드 품질 분석

동료 검토

워크스루

인스펙션

 

코드 스멜

스파게티 코드

외계인 코드

 

리팩토링

클린코드 작성원칙

 

 

소프트웨어 유지보수

수정, 적응, 향상, 예방

 

레거시 시스템

 

소프트웨어 품질 특성 #기신사효유이

CMM

CMMi

 

애플리케이션 패키징 수행 순서

릴리즈 노트

DRM

권리표현 종류

워터마킹

DRM 구성요소

 

댓글