본문 바로가기

자격증고나리/🥇 정보처리기사

[Day 1] 1과목 소프트웨어 구축

1. 소프트웨어 구축

소프트웨어공학

소프트웨어 공학 : 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문

소프트웨어 공학의 3R : (소프트웨어 생산성 향상을 목적)

  • 역공학(reverse-engineering) : 기존 소프트웨어의 설계를 분석
  • 재공학(re-engineering) : 유지보수를 통해
  • 재사용(reuse) : 완성된 소프트웨어의 일부를 재사용

소프트웨어 개발 단계

  1. 계획
  2. 요구사항분석
  3. 설계
  4. 구현
  5. 테스트
  6. 유지보수 - 수정/향상/적응/예방 보수 4가

소프트웨어 개발 방법론

IT서비스관리

  • SLM(service level management) - SLA기반
  • ITSM(information technology service management) - ITIL기반

개발 방법론 5가지

  • 하향식 (구조적 방법론)
  • 상향식 (객체지향)
  • 정보공학 (회사 내부의 데이터 사용)
  • CBD(component based development),
  • 애자일

모델

  • 폭포수
  • 프로토타입
  • 나선형 : 폭포수 + 프로토타입, 계획 후 위험분석
  • RAD : 케이스도구를 이용해서 빠르게 개발 진행

애자일 방법론 종류

  • XP - 5가지 핵심가치 / 12가지 실천사
  • scrum - 백로그(요구명세)/스프린트(개발주기)/제품백로그/스프린트백로
  • 크리스털
  • FDD
  • ASD
  • Lean

프로젝트 계획

현업에서의 개발 진행 프로세스

  1. RFP(request for proposal) : 제안요청
  2. 제안서 → 제안PT
  3. 우선협상
  4. 개발
  5. 운영

프로젝트 핵심 관리의 3P

  • 사람
  • 문제
  • 프로세스 (전체 프로젝트를 관리하는 방법)

프로젝트 관리

  • PMBOK(project management body of knowledge) : PMI에서 제작한 프로젝트 관리 체계. 5단계 존재

1. 비용 산정

  • 추정 LOC = (낙관치 + (4*중간치) + 비관치) / 6

COCOMO 기법

LOC의 크기에 따라 각 비용을 산정하는 공식을 사용

  • 조직형 : 5만라인 이하, 일반 업무용 소프트웨어
  • 반분리형 : 5~30만라인, 운영체제/dbms
  • 내장형 : 30만라인 이상, 미사일 유도 시스템

PUTNAM 기법

  • SLIM : Rayleigh-norden곡선과 putnam예측모델을 기반으로 하는 자동화 추정 도구

기능점수 기법 (FP, Funtion Point)

  • 소프트웨어의 기능 개수를 기준으로 규모 측정
  • ESTMACS : FP모델을 기반으로 한 자동화 추정 도구

일정 산정

  1. WBS (work breaken structure) : 전체 작업을 작은 단위로 분해
  2. 네트워크 차트(PERT/CPM) 작: 각 작업의 순서 및 의존성 설정, (pert : 불확실상황, cpm : 확실)
  3. 임계 경로: 최소한의 소요 시간(가장 긴 작업기간)
  4. pert/cpm 수정 : 인력배치,기간을 고려하여 수정작업
  5. 간트 차트 : 시각적 가로 막대로 표시

요구사항 분석

CPND(content platform network device) : 콘텐츠를 플랫폼에 맞게 가공, 네트워크를 통해 단말기로 이루어지는 서비스를 표현하는 가치사슬

미들웨어의 종류 7가지

  • 미들웨어 : 양쪽을 연결하여 데이터를 주고받는 중간 매개 역할의 소프트웨어
  • RPC, MOM, ORB, DB, TPM, WAS, ESB
  • 원격 프로시저 호출(Remote Procedure Call)
  • 메시지 지향 미들웨어(Message Oriented Middleware) :클라이언트가 생성한 메세지를 저장소에 요청할 때 저장하는 비동기식 미들웨어(ex, n잡 스트리밍 시 각 클라의 영상 기록을 메세지로 전달. 수많은 메세지 발생으로 서버 부하 → 저장해뒀다가 추후 저장소로 업데이트하는 비동기 방식으로 진행)
  • ORB(Object Request Broker) : 객체지향시스템에서 사용
  • DB접속 미들웨어 : 앱과 dbms를 연결
  • TP모니터(Transaction Processing Monitor) : 분산시스템 지
  • 웹애플리케이션 서버(Web Application Server) : 톰캣 등
  • 엔터프라이즈 서비스 버스(ESB) : 메시지 기반. 기업간의 여러 데이터,시스템 연동

요구사항 분석 프로세스

  1. 도출(elicitation) : 인터뷰/설문조사/브레인스토밍
  2. 분석(analysis)
    • 구조적 도구(DFD/DD/Mini-specification/ERD/STD:state transition diagram)
    • 객체지향 분석도구(UML, 모델)
    • 도메인 : 요구사항의 구체적 규칙 설정
  3. 명세(specification)
    • 정형 명세기법 : 수학, 논리
    • 비정형 명세기법 : 자연어, 그림(다이어그램)
    • 기능 요구사항 : 시스템에게 요구되는 기능, 로그인/주문 등
    • 비기능 요구사항 : 시스템의
    • 품질 관련 특성, 성능/보안
  4. 확인 및 검증(Validation & Verification)

CASE도구(Computer Adied Software Engineering)

  • 개발주기 전 단계에 걸쳐 사용됨
  • 상위 케이스 도구 : 계획, 분석,설계단계
  • 하위 케이스 도구 : 구현, 테스트

HIPO(Hierachical input Process Output) 도구

  • 하향식 개발에 적합. 기능과 자료의 의존관계 명시. 체계적 문서관리
  • HIPO Chart
    • 가시적 도표(Visual Table of Content): 시스템의 전체 기능과 흐름
    • 총체적 도표(Overview Diagram) : 입력,처리,출력에 대한 전반적 정보
    • 세부적 도표(Detail Diagram) : 총체적 도표의 내용이 더 복잡하게 서술

모델링

  • 자료흐름도 (Data Flow Diagram =버블차트 )
  • DD(data dictionary) : DFD의 모든 자료들에 대한 자세한 정의와 설명 제공
  • = : 정의, + 연결 , ()생략 , []선택, {}반복, ** 주석
  • 소단위명세서(Mini-specification) : DFD에서 각 처리가 수행하는 업무의 상세설명
  • ERD (Entity Relationship diagram) : dfd를 데이터베이스화하기 위해 관계를 도출

럼바우 분석 순서

  • 객체 : 객체다이어그램
  • 동기 : 상태다이어그램
  • 기능 : DFD

객체지향 분석 방법론

  • Booch 부치 방법 : 미시적+거시적 개발 프로세스
  • Jacobson : Use case 기반
  • Coad와 Yourdon : E-R다이어그램 사용
  • Wirfs-Brock : 분석과 설계 구분x 연속적으로 작업 수행

소프트웨어 설계의 기본원칙

소프트웨어 설계의 종류

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

소프트웨어 설계의 원리

  1. 분할과 정복(Divide & Conquer) : 큰 소프트웨어를 여러 개의 서브 시스템으로(개발)
  2. 추상화(Abstraction)
  3. 단계적 분해(Stepwise Refinement) : 기능을 점차 작은 단위로 나누어 구체화(설계)
  4. 모듈화(Modulization) : 각 모듈을 독립적으로 개발,테스트,유지보수
  5. 정보은닉(Information Hiding)
  6. 결합도와 응집도 : 결합도 높이기, 응집도 낮추

추상화 기법

  • 과정 추상화 : 상위 수준에서 수행 흐름만 설계
  • 데이터 추상화 : 데이터 구조를 간단한 표현으로 대체
  • 제어 추상화 : 명령들을 간단한 표현으로 대체

협약에 의한 설계

  • 고객과 미리 협약된 조건에 맞춰 개발해야함 → 클래스에 대한 조건들을 명세
  • 선행 조건 : 컴포넌트 오퍼레이션 사용 전 참이 되어야 할 조건
  • 결과 조건 : 사용 후 만족되어야 할 결과 조건
  • 불변 조건 : 오퍼레이션이 실행되는 동안 항상 만족되어야할 조건

 

'자격증고나리 > 🥇 정보처리기사' 카테고리의 다른 글

[Day 2] 1과목 소프트웨어 구축  (0) 2024.04.04