상세 컨텐츠

본문 제목

정보처리기사 필기시험 준비 [2]

정보처리기사/정보처리기사_필기

by JORDON 2023. 1. 29. 00:19

본문

반응형

소프트웨어개발방법론

소프트웨어 개발과정

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

소프트웨어개발 생명주기모델

- 소프트웨어를 어떻게 개발할 것인가에 대한 전반적이고 전체적인 큰 흐름

<폭포수모델>

  • 앞단계가 완료될 때까지 대기상태
  • 완성된 모습을 후반부가 되기 전에는 볼 수 없다. 
  • 고객이 원하는 모습이 아니라면 수정하기 어렵고 다시 앞단계로 돌아가서 처음부터 진행하게 된다.
  • 수정이 진행되게 되면 비용이 크게 증가한다.

<원형모델>

  • 점진적으로 시스테 개발해 나가는 방법
  • 프로토타입 즉, 원형을 가능한 한 빨리 개발한 후 고객과 검증 및 확인을 받아 진행한다.
  • 아파트의 모델하우스와 비슷한 개념

<나선형 모델>

  • 고비용의 시스템 개발이나 큰 시스템 구축 시 효과적이다.
  • 프로젝트 수행 시 발생하는 위협을 최소화하려는 목적
  • 개발자가 위험을 정학하게 분석하지 못한다면 심각한 문제를 발생시킨다.

※ 소프트웨어를 어떻게 개발할 것인가에 대한 전체적인 큰 흐름과 더불어 각 단계에서의 방법과 활동을 포함하며 보다 상세하고 구체적인 프로세스들의 집합을 통해 소프트웨어개발의 프로세스의 집합을 구성한다.

 

소프트웨어개발 구조적 분석

  • 효율적인 시스템분석 명세서를 작성하기 위한 방법
  • 도형중심의 분석도구를 이용하여 사용자 요구사항을 파악하고 문서화하는 체계적인 분석기법
  • 사용자 요구사항을 정확하게 작성할 수 있다.
  • 자료흐름도 -> 자료사전 -> 소단위명세서

자료흐름도

자료사전

 

= - 자료항목을 정의

* - 복합적인 자료요소를 구성

( 생략 ) - 생략

[ 선택 ] - 선택

{ 반복 } - 반복

** - 주석

| or : - 대체항목을 나열

시험에 자주 나오는 기호며 반드시 외울 것!

 

소단위명세서

  • 자료흐름도에 나타난 모든 최소단위의 처리에 대해 자료흐름이 변환되는 절차 또는 논리적인 활동을 기술하는 도구
  • 구조적 언어 or 의사결정표 or 의사결정도

(Agile) 애자일방법론

  • 2001년 애자일 연합결성
  • 가볍지만 충분하게 개발함
  • 프로세스와 도구, 문서화, 고객과의 협상에서 개인과의 상호작용, 제대로 동작하는 소프트웨어의 개발에 집중, 고객과의 협력이 추가된 개발방법론이다.

(Agile) 애자일방법론 유형

  • XP(eXtreme Programming) - 의사소통개선과 즉각적인 피드백, 존중, 용기, 단순성, 의사소통, 피드백
  • 스크럼(SCRUM) - 프로젝트 관리를 위한 상호. 점진적 개발방법론, XP와 달리 진행체계 수립, 역활, 정의에 중점, 폭포수모델이나 프로토타입과 같은 원형모델과 달린 모든 소프트웨어 라이프사이클을 담지 않는다. 존중, 용기, 확약, 전념, 정직
  • 린(LEAN) - 도요타사의 대표적인 생산방식, 인력, 생산, 설비 등을 필요한 만큼만 유지하면서 생산효율을 극대화하는 방식, 전적으로 고객관점

XP(eXtreme Programming)

  • 스토리 - 요구사항(고객으로부터 전달받음)
  • 스토리추정 - 스토리를 보고 기간과 강도를 결정(개발자의 판단)
  • 릴리즈 - 고객의 스토리를 기반한 스토리 추정을 통해 고객에게 구현된 제품을 배포
  • 반복 - 릴리즈 안에서 반복되는 작업
  • 드라이버 - 코드 작성자
  • 파트너 - 드라이버를 도와 조언해 주는 사람

XP(eXtreme Programming) 12가지 실천사항

  • 계획게임
  • 짝프로그래밍 (5분씩 릴레이 프로그래밍작업)
  • 짧은 릴리즈 주기
  • 코드 공동 소유
  • 메타포
  • 지속적인 통합
  • 단순 설계
  • 테스트우선개발
  • 주당 40시간 작업
  • 고객의 참여 (고객의 상주)
  • 리팩토링
  • 코딩표준

객체지향 방법론

  • 소프트웨어 개발과정은 기존 시스템을 분석하고 이를 표준화된 새로운 시스템환경으로 전환하는데 초점을 맞춤
  • 소프트웨어 개발 진행 시 작은 단위의 모듈을 구성하여 만들고 추루 이를 재사용하여 소프트웨어의 효율성을 높이는 생각에서부터 객체지향 방법론이 발전하게 됨
  • 여러 객체지향방법론이 난립하게 되고 표기법만이라고 통일하자는 제안에 의해 UML을 사용하게 됨
  • 객체, 클래스, 캡슐화, 데이터은닉, 상속, 조합, 다형성의 개념

객체

- 업무수행을 위한 대상이 되는 사람, 장소, 사물, 사건 및 개념

클래스

- 공통 속성과 행위를 가진 객체를 묶어 추상화한 개념

캡슐화

- 구현부가 외부에 노출되지 않도록 싸인 상태

데이터은닉

- 각각의 객체가 자신의 속성과 메소드를 다른 객체에게 숨기고 있는 것

상속

- 클래스가 가진 속성과 행위를 객체가 물려받는 것

조합

- 다른 객체를 사용하여 객체를 구성하는 것보다 복잡한 클래스를 만드는 일종의 조립

다형성

- 같은 메소드에 다르게 반응하는 것 (오버로딩)

 

SOLID (객체지향설계)

컴퓨터 프로그래밍에서 SOLID한 로버트 마틴이 명명한 객체지향 프로그램 및 설계의 5가지 기본원칙을 마이클 패더스가 두문자어 기억술로 소개한 것

럼바우의 OMT

  • 클래스와 외부 명세를 정의함
  • 객체모델링(객체다이어그램), 동적모델링(상태다이어그랭), 기능모델링(자료흐름도)로 분류
  • 소프트웨어 생명주기 지원 및 데이터베이스 구조화 특징

Booch 방법론

  • 시스템 형성구조를 모형화하는 DFD를 사용 
  • 클래스다이어그램, 객체다이어그램, 모듈다이어그램, 프로세스다이어그램
  • 실시간처리에 유용함
  • 설계를 위한 문서화기법을 강조
  • 분석단계가 취약

Cood / Yourdon 방법론

  • 객체지향 특징을 가장 충족시키는 방법론
  • 객체지향 CASE TOOL을 지원

sholer / Mellor 방법론

  • 하나의 시스템을 몇개의 영역으로 분할하여 서브시스템을 구성함
  • 정보모델링, 상태모델링, 처리모델링
  • 시스템의 분해성이 우수
  • 대형시스템개발에 유리
반응형

관련글 더보기

댓글 영역