정보처리기사 실기 준비 (개념) 1장 (17일차)

모코코개발자·2024년 3월 17일
post-thumbnail

1장 요구사항 확인

소프트웨어 생명주기

소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것

프로젝트 계획 > 요구분석 > 설계 > 구현 > 테스트 > 유지보수

  • 폭포수 모형 : 선형 순차적 개발 / 고전적, 전통적 개발 모형
  • 나선형 모형 : 보헴이 제안, 폭포수 모형 + 프로토타입 + 위험분석 기능 추가 / 정밀하고 유지보수 과정이 필요 X / 전진적 개발과정 반복
    ( 계획 수립 > 위험분석 > 개발,검증 > 고객 평가 )
  • 프로토타입 : 고객의 니즈를 파악하기 위해 견본 / 시제품을 통해 최종 결과를 예측, 요구사항 변경 용이
  • 애자일 모형 : 일정한 짧은 주기 반복하며 개발 진행 -> 고객 요구사항에 유연한 대응 가능
    ( 고객 소통 중시 )
    ex) 스크럼, 칸반, 기능중심 개발, XP 등
  • XP (extream programming) : 고객의 요구사항을 유연하게 대응하기 위해 고객 참여와 신속한 개발 과정을 반복하는 것.
    5가지 핵심가치 : 용기 / 단순성 / 의사소통 / 피드백 / 존중
    소스코드에 중점 (문서화X)

요구사항

  • 기능 요구사항 : 실제 시스템 수행에 필요한 기능 관련된 요구사항
  • 비기능 요구사항 : 성능, 보안, 품질, 안정성 등 실제 수행에 보조적인 요구사항

요구사항 개발 프로세스(순서 중요)

  1. 도출/추출 : 이해관계자들이 모여 요구사항 정리
    ex) 인터뷰, 설문, 브레인스토밍, 프로토타이핑 등
  2. 분석 : 사용자의 요구사항에 대한 타당성 조사 / 비용, 일정에 대한 제약 설정
  3. 명세 : 분석된 요구사항을 승인 가능하도록 문서화
  4. 확인/검증 : 요구사항 명세서가 정확하고 완전하게 작성되었는지 검토

요구사항 분석

  • 구조적 분석 기법 : 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법
    ex) 자료흐름도(버블차트) : 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
    시간의 흐름을 명확하게 표현 불가
    자료사전(DD) : 자료흐름도에 기재된 모든 자료의 상세 정의/설명

UML

: 고객/개발자 간 원활한 의사소통을 위해 표준화된 대표적 객체지향 모델링 언어

  • 구성
  1. 사물

  2. 관계
    -연관관계 : 2개이상의 사물이 서로 관련되어 있는 관계
    -집합관계 : 하나의 사물이 다른 사물에 포함되어 있는 관계
    -포함관계 : 집합관계에 특수한 형태로 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
    -일반화관계 : 한 사물이 다른 사물에 비해 일반/구체적인지 표현
    -의존관계 : 한 클래스가 다른 클래스의 기능을 사용할 때, 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
    -실체화관계 : 사물이 할 수 있거나 해야하는 기능으로 서로를 그룹화 할 수 있는 관계

  3. 다이어그램 : 사물과 관계를 도형으로 표현한 것

  • 구조, 정적 다이어그램(클객컴배복패)
    -클래스 다이어그램 : 클래스 사이의 관계 및 속성 표현
    -객체 다이어그램 : 인스턴스를 객체와 객체 사이의 관계로 표현
    -컴포넌트 " : 구현 모델인 컴포넌트 간의 관계 표현
    -배치 " : 물리적요소(HW/SW)의 위치/구조 표현
    -복합체구조 " : 클래스 및 컴포넌트의 복합체 내부 구조 표현
    -패키지 " : UML의 다양한 모델요소를 그릅화하여 묶음

  • 행위, 동적 다이어그램(유시커상활타상)
    -유스케이스 다이어그램 : 사용자의 요구를 분석(사용자 관점) -> 사용자+사용사례(유스케이스)
    -시퀀스(순차) 다이어그램 : 시스템/객체들이 주고받는 메시지 표현 -> 액터+객체+생명선+메시지+제어삼각형
    -커뮤니케이션 : 객체들이 주고받는 메시지와 객체간의 연관관계까지 표현
    -상태 : 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현
    -활동 : 객체의 처리 로직 및 조건에 따른 처리의 흐름을 순서에 따라 표현
    -타이밍 : 객체상태 변화와 시간 제약 명시적으로 표현
    -상호작용 개요 : 상호작용 다이어그램 간 제어흐름 표현

스테레오타입 ( << >> )

uml에서 표현하는 기본 기능 외에 추가적인 기능을 표현
ex) << include >> : 포함관계에 있는 경우
<< extend >> : 확장관계에 있는 경우
<< interface >> : 인터페이스를 정의하는 경우
<< exception >> : 예외를 정의하는 경우

클래스 다이어그램

  • 구성요소
    -클래스
    -제약조건
    -관계

순차(시퀀스) 다이어그램

  • 구성요소
    -액터 ex) 회원
    -객체 : 메시지를 주고받는 주체 ex) 로그인 화면, 회원정보, 상품선택화면 등
    -생명선 : 객체가 메모리에 존재하는 기간, 객체 아래로 점선 그어 표현
    -객체소멸 : 해당 객체가 더이상 메모리에 존재하지 않음을 표현, X를 그어 표현
    -실행상자 : 객체가 메시지를 주고받으며 구동되고 있음을 표현
    -메세지
    -프레임 : 다이어그램 전체 또는 일부를 묶어서 표현

패키지 다이어그램

  • 구성요소
    -패키지
    -객체
    -의존관계
    << import >>
    << access >>

소프트웨어 재사용

: 이미 개발된 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지보수에 사용 하는 것

  • 합성 중심 방법(블록 구성 방법) : 전자칩과 같은 소프트웨어 부품, 즉 블록을 만들어 끼워 맞춰 소프트웨어를 완성시키는 방법
  • 생성 중심 방법 : 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법

  • 소프트웨어 재공학 : 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것

장점
-품질향상
-수명연장
-생산성 증가
-오류 감소

CASE

: 소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현 등 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것

  • 주요 기능
    -소프트웨어 생명 주기 전 단계 연결
    -다양한 소프트웨어 개발모형 지원
    -그래픽 지원

비용산정 기법

  • 상향식 비용산정 기법 : 프로젝트 작업단위 별로 비용 정산 후 전체 비용을 산정하는 방법
  • 하향식 비용산정 기법 : 과거의 유사한 경험을 바탕으로 개발자들이 참여하는 회의를 통해 비용을 산정하는 비과학적인 기법.
    ex) 전문가 감정 기법, 델파이 기법

*** 상향식 대표적인 기법

-LOC 기법(원시코드 라인 수) : 소프트웨어 각 기능의 원시코드라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법

-개발 단계별 인월 수 기법 : LOC기법 보완, 생명주기 각 단계별로 비용 산정**

산정 공식

a = 낙관치, b = 비관치, m = 기대치

예측치 = (a + 4m + b) / 6

노력 = 개발기간 * 투입인원 = LOC / 1인당 월 평균 생산 코드 라인 수
개발 = 노력 * 단위비용 ( 1인당 월 평균 인건비 )
개발기간 = 노력 / 투입인원

  • 수학적 비용산정 기법

1. COCOMO 모형 : LOC에 의한 비용산정 기법, 보헴이 제안
-조직형 : 중소규모 SW용 (5만 라인 이하)
-반분리형 : 30만 라인 이하
-내장형 : 30만 라인 이상의 최대형 규모 SW 관리

  1. Putnam 모형 : 생명주기 예측 모형, 생명주기 전 과정 동안에 사용될 노력의 분포를 예상하는 모형, 시간에 따른 함수로 표현되는 Rayleigh-norden 곡선의 노력분포도를 기초로 한다.
  2. FP모형(기능점수모형) : 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능 점수를 산출, 총 기능 점수와 영향도를 이용하여 비용산정하는 기법. 알브레히트 제안
  • 비용 산정 자동화 추정 도구

    -SLIM (Putnam에서 사용) : putnam을 기초로 하여 개발된 자동화 추정 도구
    -ESTIMACS (FP에서 사용) : FP를 기초로 하여 개발된 자동화 추정 도구

개발 일정 산정

  • WBS : 프로젝트 목표달성을 위한 활동과 업무를 세분화

-PERT : 프로젝트 작업 상호관계를 네트워크로 표현, 원노드와 간선으로 구성
작업 예측치 = (비관치 + 4*기대치 + 낙관치) / 6

-CPM(임계경로기법) : 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요기간을 예측하는데 사용하는 기법 -> 경로상 가장 오래 걸리는 시간

간트 차트 (시간선차트)

: 각 작업의 시작/종료 일정을 막대바 도표를 이용하여 표현

국제 표준 소프트웨어 생명주기 프로세스

ISO/IEC 12207

  • 기본 생명주기 : 개발, 운영, 유지보수 등
  • 지원 생명주기 : 검증, 확인, 형상관리 등
  • 조직 생명주기 : 관리, 훈련, 개선 프로세스 등

CMMI : 소프트웨어 조직의 업무능력 평가 모델

초기 -> 관리 -> 정의 -> 정량적 -> 최적화

SPICE(ISO/IEC 15504) : 정보시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제표준

-불완전 단계 : 프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계
-수행 단계 : 프로세스가 수행되고 목적이 달성된 단계
-관리 단계 : 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계
-확립 단계 : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
-예측 단계 : 프로세스가 목적달성을 위해 통제되고, 양적인 측정을 통하여 일관되게 수행되는 단계
-최적화 단계 : 프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무 목적을 만족시키는 단계

소프트웨어 개발 프레임워크

: 소프트웨어 개발에 공통적으로 사용되는 구성요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러가지 기능을 제공해주는 반제품 형태의 소프트웨어 시스템

  • 스프링 프레임워크 : 자바 플랫폼을 위한 오픈 소스 경량형 프레임워크
  • 전자정부 프레임워크 : 우리나라 공공부문 정보화 사업시 효율적인 정보시스템 구축 지원을 위해 필요 기능/아키텍처를 제공
  • 닷넷 프레임워크(.NET) : MS에서 개발한 윈도우 프로그램 개발, 공통언어 런타임이라는 가상머신 상에서 작동

소프트웨어 개발 프레임워크의 특성

  • 모듈화 : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질 향상
  • 재사용성 : 재사용 가능한 모듈들을 제공함으로써 생산성 향상, 예산 절감, 품질보증 가능
  • 확장성 : 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발 가능
  • 제어의 역흐름 : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김
profile
모코코개발자

0개의 댓글