230912 TIL #188 정처기 실기 - #2 요구사항 확인 - 2

김춘복·2023년 9월 12일
0

TIL : Today I Learned

목록 보기
188/450

Today I Learned

오늘도 정처기 공부를 했다. 요구사항 확인 남은 파트에 대해 정리해보았다.


요구사항 확인 - 2

다이어그램

유즈케이스 다이어그램

사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것.

  • 구성요소
    시스템 : 네모박스. 시스템의 범위를 표현
    액터 : 시스템과 상호작용을 하는 모든 외부 요소.
    주액터 - 시스템으로 이득을 얻는 대상. 주로 사람.
    부액터 - 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템. 주로 조직, 기관.
    유즈케이스 : 타원안에글자. 시스템이 액터에게 제공하는 서비스나 기능
    관계 :
  • 포함관계(include, 점선화살표) : 두개이상의 유즈케이스에서 공통 기능을 별도로 분리해 새로 만든 경우 원래와 새로운 유스케이스의 관계.
  • 확장관계(extends,점선화살표) : "특별한 조건"에 부합되 기능이 확장될 때 원래와 확장된 유스케이스의 관계
  • 일반화(화살표)

활동 다이어그램

사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것.

  • 구성요소 : 액션, 액티비티, 시작, 종료, 조건, 병합, 포크노드

클래스 다이어그램 - A

클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것.

  • 구성요소
    클래스 : 클래스명, 속성(클래스의 상태나 정보), 오퍼레이션(클래스가 수행하는 동작, 함수or 메소드)으로 구성. 직사각형을 3개의 구획으로 나눠 클래스명, 속성, 오퍼레이션을 적는다.
    제약조건 : 속성오퍼레이션의 제약 조건을 메모지처럼 생긴 직사각형에 기입
    관계 : 클래스사이의 연관성을 표현. 연관,집합,포함,일반화,의존 관계가 있다.

연관 클래스

연관관계에 있는 두 클래스에 추가적으로 표현할 속성 or 오퍼레이션이 있을 때 생성하는 클래스
두 클래스의 연관관계를 나타내는 선 중간에 점선을 이어 표시한다.

순차 다이어그램

시스템이나 객체들이 메시지를 주고받으며 상호작용하는 과정을 그림으로 표현한 것

  • 구성요소
    액터, 객체, 생명선(점선, 객체가 메모리에 존재하는 기간), 실행상자(객체가 메시지를 주고받으며 구동됨을 표현), 메시지(객체가 상호작용을 위해 주고받는 메시지), 객체소멸, 프레임

커뮤니케이션 다이어그램

시스템이나 객체들이 메시지를 주고받으며 상호작용하는 과정과 객체들간의 연관을 그림으로 표현한 것.

  • 구성요소
    액터, 객체, 링크(객체들간 관계 표현), 메시지

상태 다이어그램

객체들사시에 발생하는 이벤트에 의한 객체들의 상태 변화를 그림으로 표현한 것

  • 구성요소
    상태, 시작상태(검은 원), 종료상태(검은원 + 밖에 원 둘레), 상태전환, 이벤트(상태에 변화를 주는 현상), 프레임

패키지 다이어그램 - A

요소들을 그룹화한 패키지 간의 의존관계를 표현한 것.

  • 구성요소
    패키지(객체들을 그룹화, 큰 폴더 아이콘처럼 생김), 객체, 의존관계(점선화살표, import, access)

구조적 방법론

정형화된 분석 절차에 따라 사용자의 요구사항을 파악하여 문서화하는 처리 중심의 방법론
자료흐름도, 자료사전, 소단위 명세서의 특징을 갖는 소프트웨어 개발 방법론이다.

컴포넌트 기반 방법론(CBD)

기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론. 컴포넌트의 재사용이 가능해 시간과 노력의 절감이 가능.

소프트웨어 재사용

이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발, 유지에 재사용

  • 합성중심 : SW 부품을 블록을 끼워 맞추듯 SW를 완성. = 블록 구성 방법
  • 생성중심 : 추상화 형태로 써진 명세를 구체화해 프로그램을 만드는 방법. = 패턴 구성방법

CASE

소프트웨어 개발 과정에서 사용되는 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용해 자동화하는 것.

  • 주요기능 : SW 생명주기 전단계의 연결, 다양한 SW 개발 모형 지원, 그래픽 지원

LOC기법 - A

Line Of Code. 원시 코드라인 수 기법. SW 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정해 예측치를 구하고 비용을 산정하는 기법

공식

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

수학적 산정 기법

상향식 비용 산정 기법. 경험적 추정, 실험적 추정 모형이라고도 한다.
개발비용산정의 자동화를 목표로 한다.

  • 종류 : COCOMO, Putnam, 기능점수(FP) 모형

COCOMO 모형

LOC에 의한 비용 산정 기법. 보헴이 제시.
LOC를 예측한 후 이를 소프트웨어 유형에 따라 다르게 책정되는 비용 산정 방정식에 대입
결과는 노력(인월, Man-Month)로 나타난다.

COCOMO의 소프트웨어 개발 유형

  1. 조직형(Organic Mode)
    기관 내부에서 개발된 중,소규모의 SW. 5만라인 이하. 사무처리용, 업무용, 과학용 SW 개발에 적합
  2. 반분리형(Semi-Detached Mode)
    조직형과 내장형의 중간형. 30만 라인 이하. 컴파일러, 인터프리터, DBMS 같은 유틸 SW 개발에 적합
  3. 내장형(Embedded Mode)
    초대형 규모. 30만 라인 이상. 운영체제, 시스템 프로그램 개발에 적합

Putnam 모형

SW생명주기의 전 과정동안에 사용될 노력의 분포를 예상하는 모형
푸트남이 제안. 생명주기 예측모형이라고도 한다.
Rayleigh-Norden 곡선 노력 분포도를 기초로 한다.

기능점수(FP)모형

소프트웨어의 기능을 증대시키는 요인별로 가중치 부여, 가중치를 총 합산해 FP를 산출해 이를 이용해 비용을 산정하는 기법

  • SW기능 증대 요인 : 입력양식, 출력보고서, 명령어(사용자질의수), 데이터파일, 필요한 외부 루틴과의 인터페이스

비용 산정 자동화 추정 도구

  • SLIM : Rayleigh-Norden 곡선과 Putnam 예측 모델을 기초로 해 개발된 도구
  • ESTIMACS : FP 모형을 기초로 개발된 도구

프로젝트 일정 계획 기법

PERT

프로젝트에 필요한 전체 작업의 상호관계를 표시하는 네트워크
낙관적 경우, 가능성 있는 경우, 비관적 경우로 단계를 나눠 종료시기를 결정

CPM

임계경로 기법. 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법.
노드와 간선으로 구성된 네트워크.
임계경로의 소요 기일을 구하라고 하면 가장 오래 걸린 기일을 찾으면 된다.

간트 차트

각 작업들이 언제 시작하고 종료되는지에 대한 작업 일정을 막대 도표를 이용해 표시하는 프로젝트 일정표.
시간선 차트라고도 한다.


CMMI

SW 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델

  • CMMI의 프로젝트 성숙도
    초기 - 관리 - 정의 - 정량적관리 - 최적화

SPICE

ISO/IEC 15504. SW 품질 및 생산성 향상을 위해 SW 프로세스를 평가 및 개선하는 국제 표준

  • 단계
    0 불완전 - 1 수행 - 2 관리 - 3 확립 - 4 예측 - 5 최적화

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

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

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

  • 재사용성 : 다시 사용가능한 모듈을 제공해 예산절감, 생산성향상, 품질보증이 가능
  • 모듈화 : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화
  • 확장성 : 다형성을 이용한 인터페이스 확장이 가능해 다양한 형태와 기능의 애플리케이션 개발 가능
  • 제어의 역흐름 IoC : 개발자가 통제해야 하는 객체의 제어를 프레임워크에 넘겨 생산성 향상
profile
꾸준히 성장하기 위해 매일 log를 남깁니다!

0개의 댓글