230911 TIL #187 정처기 실기 - #1 요구사항 확인 - 1

김춘복·2023년 9월 11일
0

TIL : Today I Learned

목록 보기
187/571

Today I Learned

정보처리기사 실기 시험이 한달도 채 남지 않았다. 슬슬 공부를 시작하려 한다. 당분간 원서내고 시험공부하고 코테공부까지 같이 하려 한다.


요구사항 확인 - 1

소프트웨어 생명 주기

SW를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계로 나눈것.

소프트웨어 생명 주기 모형

  1. 나선형 모형 : 계획수립-위험분석-개발및검증-고객평가 단계를 여러번 반복해서 개발. 점진적으로 완벽한 SW 개발. 보헴이 제안
  2. 폭포수 모형 : 이전단계로 돌아갈수없음. 각 단계를 확실히 매듭짓고 다음으로 넘어감. 고전적 생명 주기 모형. 전통적
  3. 애자일 모형 : 고객의 요구사항 변화에 유연하게 대응하는 모형. 일정한 주기를 반복. 서류, 계약, 도구보다 개인, 상호작용, 실행, 변화에 초점

소프트웨어 공학

소프트웨어의 위기를 극복하기위한 방안으로 연구된 학문
여러 방법론과 도구를 통해 SW의 품질과 생산성 향상이 목적

  • 스크럼 개발 프로세스 중에서
    스프린트 : 실제 개발 작업. 2~4주간. / 일일 스크럼 회의(매일 15분간)

XP

요구사항에 유연하게 대응하기 위해 고객의 참여와 개발과정의 반복을 극대화해 개발 생산성을 향상시키는 방법. 짧고 반복적인 개발주기, 단순한 설계, 고객의 적극적 참여

  • XP의 5대 핵심 가치 : 의사소통, 단순성, 용기, 존중, 피드백(피존용 의단)

  • XP의 주요 실천 방법: 페어프로그래밍(공동의 책임. 같이 프로그래밍), 공동코드소유(개발 코드에 대한 권한과 책임을 공동 소유), TDD(테스트 주도 개발), CI(지속적통합, 작업이 마무리될때마다 지속적 통합), 리팩토링(프로그램을 쉽게 이해하고 수정해 빠르게 개발하기 위함)

  • DB 관리 시스템 (DBMS) : 사용자와 DB사이에서 사용자의 요구에 따라 정보를 생성해주고 DB를 관리하는 소프트웨어

요구사항

요구사항의 종류

  • 기능 요구사항 : 시스템이 무엇을 하는지, 어떤 기능을 하는지 등의 기능과 관련된 요구사항
    시스템이 반드시 수행해야하는 기능. 사용자가 시스템을 통해 제공받길 원하는 기능

  • 비기능 요구사항 : 품질이나 제약과 관련된 요구사항.
    성능, 인터페이스, 테스트, 보안, 품질, 제약 등의 요구사항

  • 요구사항 명세 기법 : 정형명세기법(수학적, 모델,정형화) / 비정형명세기법(상태,기능,객체 중심, 자연어)

  • 요구사항 개발 프로세스 단계 : 도출 -> 분석 -> 명세 -> 확인

요구사항 분석

개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동
타당성조사, 비용과 일정에 대한 제약사항 설정. 요구 추출을 통한 목표 수립.

  • 요구사항 분석 방법
  1. 자료흐름도(DFD) :자료의 흐름 및 변환 과정과 기능을 도형을 중심으로 기술하는 방법
    구조적 분석 기법에 이용된다. 버블차트라고도 한다.
    • 자료흐름도의 구성요소 : (중요!) 프로세스, 자료흐름, 자료저장소, 단말
  1. 자료사전(DD) : 자료흐름도의 자료를 더 자세히 정의하고 기록한 것. 메타데이터라고도 함
    자료사전 기호 : =(정의), +(연결), ( )(생략), [ ](선택), { }(반복), * * (주석,설명)

  2. HIPO : 시스템분석, 설계, 문서화에 사용되는 기법.
    시스템 실행과정인 입력, 처리, 출력의 기능을 표현한 것. 하향식 SW개발을 위한 문서화 도구

4. UML

시스템 개발과정에서 고객과 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어.

  • UML의 구성요소 : 사물, 관계, 다이얼그램

UML의 관계

  1. 연관관계 :화살표와 실선. 2개 이상 사물이 서로 관련되어있는 관계.
  2. 집합관계 : 빈마름모, 하나의 사물이 다른 사물에 포함되어있는 관계. 전체와 부분이 독립적.
  3. 포함관계 : 검은마름모, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계.
  4. 일반화관계 : 빈화살표, 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계.
    자식이 부모쪽으로 빈화살표로 연결. 일반적인 개념이 부모, 구체적인 개념이 자식
  5. 의존관계 : 화살표와 점선. 서로 연관은 있으나 필요에 의해 짧은 시간만 연관을 유지하는 관계
  6. 실체화관계 : 사물에서 기능쪽으로 점선 빈 화살표. 사물이 할수있거나 해야하는 기능.
    한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
  • 스테레오 타입 :UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현. <<>> 겹화살괄호 사용.

다이어그램

사물과 관계를 도형으로 표현한 것.

구조적 다이어그램

정적 모델링에서 사용
1. 클래스 다이어그램 : 클래스, 클래스의 속성, 클래스 사이의 관계를 표현
2. 객체 다이어그램 : 클래스에 속한 인스턴스를 특정시점의 객체와 객체사이의 관계로 표현.
럼바우 객체지향 분석기법에서 객체 모델링에 활용
3. 컴포넌트 다이어그램 : 컴포넌트간의 관계나 인터페이스 표현. 구현단계에서 사용
4. 배치 다이어그램 : 물리적 요소들의 위치를 표현. 구현 단계에서 사용
5. 패키지 다이어그램 : 모델 요소들을 그룹화한 패키지들의 관계를 표현
6. 복합체 다이어그램

행위 다이어그램

동적모델링에서 사용
1. 유즈케이스 다이어그램 : 사용자의 요구를 분석. 기능 모델링 작업에 사용
사용자와 사용 사례로 구성.
2. 순차 다이어그램 : 상호작용하는 시스템이나 객체들이 주고받는 메시지를 표현
3. 커뮤니케이션 다이어그램
4. 상태 다이어그램 : 상태가 어떻게 변화하는지 표현.
럼바우 객체지향 분석 기법에서 동적모델링에 사용
5. 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 처리의 흐름을 순서에 따라 표현
6. 상호작용 개요 다이어그램
7. 타이밍 다이어그램

profile
Backend Dev / Data Engineer

0개의 댓글