반응형
자격증 준비하면서 내가 이해하기 편하게, 다시 보기 좋게 정리하는 정보처리기사의 내용 (자격증 상세 내용은 아래)
http://www.q-net.or.kr/crf005.do?id=crf00505&gSite=Q&gId=
요구사항 및 UML 정리 부분을 정리한 내용
소프트웨어 생명 주기
- 소프트웨어를 개발하기 위한 설계, 운용 유지보수 등의 과정을 각 단계별로 나눈 것
- 대표적인 생명 주기 모형 폭포수, 프로토타입, 나선형, 애자일 모형
폭포수 모형
- 고전적 생명 주기 모형이라고도 부름
- 각 단계를 확실히 끝내고 결과를 검토하여 승인 과정을 거친 후 다음 단계를 진행하는 개발 방법론
프로토타입 모형
- 실제 개발될 소프트 웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형
- 사용자와 시스템 사이의 인터페이스에 중점에 두고 개발
나선형 모형
- 보헴이 제안한 모형으로 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 최종 소프트웨어를 개발하는 모형
- 폭포수 모형과 프로토타입 모형의 장점 + 위험 분석 기능
- 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가 순으로 반복
애자일 모형
- 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형
- 대표적으로 스크럼, XP, 칸반, Lean, 기능 중심 개발(FDD)
애자일 개발 4가지 핵심 가치
- 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
- 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
- 계약 협상보다는 고객과 협업에 더 가치를 둔다.
- 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 둔다.
소프트웨어 공학
- 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문
- 소프트웨어의 품질과 생산성 향상을 목적으로 함
스크럼
팀이 중심이 되어 개발의 효율성을 높이는 기법
- 스크럼팀
- 제품 책임자(PO) : 요구사항이 담긴 백로그를 작성하는 주체로 이해관계자들 중 개발될 제품에 대한 이해도가 높고, 요구사항을 책임지고 의사를 결정할 사람으로 선정
- 스크럼 마스터 : 스크럼 팀이 스크럼을 잘 수행할 수 있도록 가이드 역할 수행
- 개발팀 : 제품 책임자와 스크럼 마스터를 제외한 모든 팀원으로 제품 개발을 수행
스크럼 개발 프로세스
- 스프린트 계획 회의 : 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기 일정을 수립하는 회의
- 스프린트 : 실제 개발 작업을 진행하는 과정으로, 보통 2~4주 정도의 기간 내에서 진행
- 일일 스크럼 회의 : 모든 팀원이 매일 약속된 시간에 진행 상황을 점검하는 회의
- 스프린트 검토 회의 : 부분 또는 전체 완성 제품이 요구사항에 잘 부합하는지 테스팅하는 회의
- 스프린트 회고 : 정해놓은 규칙 준수 여부 및 개선할 점을 확인하고 기록하는 것
XP(eXtreme Programming)
- 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 생산성을 향상하는 방법
- 핵심 가치 : 의사소통, 단순성, 용기, 존중, 피드백
XP 개발 프로세스
- 릴리즈 계획 수립 : 부분 혹은 전체 개발 완료 시점에 대한 일정을 수립하는 것
- 이터레이션 : 실제 개발 작업을 진행하는 과정으로, 보통 1~3주 정도의 기간으로 진행
- 승인 검사 : 하나의 이터레이션 안에서 부분 완료 제품이 구현되면 수행하는 테스트
- 소규모 릴리즈 : 요구사항에 유연하게 대응할 수 있도록 릴리즈의 규모를 축소한 것
XP의 주요 실천 방법
- 짝 프로그래밍(Pair Programming)
- 공동 소유 코드(Collective Ownership)
- 테스트 주도 개발 (Test-Driven Development)
- 전체 팀 (Whole Team)
- 계속적인 통합 (Continuous Integeration)
- 리팩토링 (Refactoring)
- 소규모 릴리즈(Small Releases)
서버의 이중화
운용 서버에 장애가 발생했을 때 대기 서버에서 서비스를 계속 유지되도록, 운용 서버의 자료 변경이 대기 서버에도 동일하게 복제되도록 관리하는 것
현행 시스템 파악 절차
- 1단계 : 시스템 구성, 시스템 기능, 시스템 인터페이스 파악
- 2단계 : 아키텍처 구성, 소프트웨어 구성 파악
- 3단계 : 하드웨어 구성, 네트워크 구성 파악
운영체제
- 컴퓨터 시스템의 자원을 효율적으로 관리
- 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어
- 가용성, 성능, 기술 지원, 주변 기기, 구축 비용 등 고려
데이터베이스 관리 시스템 (DBMS)
- 사용자와 데이터베이스 사이에서 요구사항에 맞는 정보를 생성
- 데이터베이스를 관리하는 소프트웨어
- 가용성, 성능, 기술 지원, 상호 호환성, 구축 비용 등 고려
웹 애플리케이션 서버(WAS)
- 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
- 가용성, 성능, 기술 지원, 구축 비용 등 고려
오픈 소스
- 누구나 제한 없이 사용할 수 있도록 소스 코드를 공개한 소프트웨어
- 라이선스의 종류, 사용자의 수, 기술의 지속 가능성 등 고려
요구사항
소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영하는데 필요한 제약 조건
- 기능 요구사항
- 시스템이 무엇을 하는지, 어떤 기능을 하는지 등의 기능이나 수행과 관련된 요구사항
- 사용자가 시스템을 통해 제공받기를 원하는 기능
- 비기능 요구사항
- 품질이나 제약사항과 관련된 요구사항
- 시스템 장비 구성, 성능, 인터페이스, 테스트 요구사항 등
- 품질 요구사항 : 가용성, 정합성, 상호 호환성, 대응성, 이식성, 확장성, 보안성
- 사용자 요구사항
- 사용자 관점에서 본 시스템이 제공해야 할 요구사항
- 시스템 요구 사항
- 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
요구사항 개발 프로세스
도출 → 분석 → 명세 → 확인
- 도출
- 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항을 식별하고 이해하는 과정
- 청취와 인터뷰, 설문, 브레인스토밍, 워크숍, 프로토타이핑, 유스케이스 등의 기법
- 분석
- 요구사항 중 명확하지 않은 부분을 걸러내는 과정
- 자료 흐름도(DFD), 자료 사전(DD) 등의 도구 사용
- 명세
- 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것
- 기능 요구사항은 빠짐없이, 비기능 요구사항은 필요한 것만 기술
- 확인
- 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동
- 이해관게자들이 검토
요구공학
요구사항을 정의하고, 분석 및 관리하는 프로세스를 요구하는 학문
요구사항 분석
개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동
구조적 분석 기법
- 자료의 흐름과 처리를 중심으로 요구하는 분석 기법
- 자료 흐름도(DFD), 자료 사전(DD), 소단위 명세서(Mini-Specv.), 개체 관계도(ERD)., 상태 전이도(STD), 제어 명세서 등의 도구 사용
자료 흐름도(DFD)
- 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
- 자료 흐름 그래프, 버블 차트라고도함
자료 사전(DD)
- = : ~로 구성되어 있다
- + : 그리고
- ( ) : 생략 가능한 자료
- [ ] : 또는
- { } : 자료의 반복
- **: 주석
요구사항 분석용 CASE(자동화 도구)
요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 도구
- SADT : SoftTech 사에서 개발한 것으로 시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위한 도구
- SREM(RSL/REVS) : TRW 사가 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 도구
- PSL/PSA : PSL과 PSA를 사용하는 자동화 도구
- TAGS : 시스템 공학 방법 응용에 대한 자동 접근 방법
HIPO(Hierarchy Input Process Output)
- 시스템 실행 과정인 입력, 처리, 출력의 기능을 표현한 것
- 하향식 소프트웨어 개발을 위한 문서화 도구
- 가시적 도표, 총체적 도표, 세부적 도표 등의 종류
UML(Unified Modeling Language)
시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적 객체지향 모델링 언어
- 사물 : 다이어그램 안에서 관계가 형성될 수 있는 대상들
- 구조 사물 : 시스템의 개념적, 물리적 요소를 표현 (클래스, 유스케이스, 컴포넌트, 노드 등)
- 행동 사물 : 시간과 공간에 따른 요소들의 행위를 표현 (상호작용, 상태머신 등)
- 그룹 사물 : 요소들을 그룹으로 묶어서 표현 (패키지 등)
- 주해 사물 : 부가적인 설명이나 제약조건 등을 표현 (노트 등)
- 관계 : 사물과 사물 사이의 연관성을 표현하는 것
- 연관 관계
- 2개 이상의 사물이 서로 관련되어 있는 관계
- 방향성은 화살표로 표현하고, 다중도를 선 위에 표기
- 1, n, 0.. 1, 0..* 등
- 집합 관계
- 하나의 사물이 다른 사물에 포함되어 있는 관계
- 포함하는 쪽과 포함되는 쪽은 서로 독립적
- 포함되는 쪽에서 포함하는 쪽으로 빈 마름모로 연결 표현
- 포함 관계
- 포함되는 사물의 변화가 포함되는 사물에 영향을 미치는 관계
- 포함하는 쪽과 포함되는 쪽은 서로 독립될 수 없고 생명 주기를 함께함
- 포함되는 쪽에서 포함하는 쪽으로 마름모를 연결하여 표현
- 일반화 관계
- 하나의 사물이 다른 사물에 비해 더 일관적이거나 구체적인 관계
- 더 일반적인 개념을 부모, 더 구체적인 개념을 자식이라고 부름
- 의존 관계
- 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
- 하나의 사물과 다른 사물이 소유관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계
- 실체화 관계
- 사물이 할 수 있거나 해야 하는 기능으로, 서로를 그룹화할 수 있는 관계
- 연관 관계
다이어그램
- 기능 모델링 : 개발될 시스템이 갖춰야 할 기능을 정리한 후 상용자와 공유하기 위해 그림으로 표현하는 것
- 유스케이스 다이어그램
- 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것
- 시스템(시스템범위) : 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현한 것
- 액터 : 시스템과 상호작용을 하는 모든 외부 요소로 주로 사람이나 외부 시스템을 의미
- 유스 케이스 : 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스나 기능을 표현한 것
- 관계 : 액터와 유스케이스, 유스케이스와 유스케이스 사이의 관계
- 활동 다이어그램 : 사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것
- 활동다이어그램 구성 요소
- 액션 : 더 이상 분해 할 수 없는 단일 작업
- 액티비티 : 몇 개의 액션으로 분리될 수 있는 작업
- 시작 노드 : 액션이나 액티비티가 시작됨을 표현한 것
- 종료 노드 : 액티비티 안의 모든 흐름이 종료됨을 표현한 것
- 조건 노드 : 조건에 따라 제어의 흐름이 분리됨을 표현한 것
- 병합 노드 : 여러 경로의 흐름이 하나로 합쳐짐을 표현한 것
- 포크 노드 : 액티비티의 흐름이 분리되어 수행됨을 표현한 것
- 조인 노드 : 분리되어 수행되던 액티비티의 흐름이 다시 합쳐짐을 표현한 것
- 스웜 레인 : 액티비티 수행을 담당하는 주체를 구분하는 선
- 활동다이어그램 구성 요소
- 클래스 다이어그램 : 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것
- 정적 모델링
- 사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 표현한 것
- 객체들 사이의 연관성을 구조적 관점(view)에서 표현
- 객체(object)들을 클래스(class)로 추상화하여 표현
- 클래스 다이어그램 구성요소
- 클래스 : 각각의 객체들이 갖는 속성과 오퍼레이션을 표현한 것
- 제약조건 : 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 적는 것
- 관계 : 클래스와 클래스 사이의 연관성을 표현
- 연관 클래스
- 연관 관계에 있는 두 클래스에 추가적으로 표현해야 할 속성이나 오퍼레이션이 있는 경우 생성하는 클래스
- 정적 모델링
- 시퀀스 다이어그램 : 시스템 안 객체들이 메시지를 주고받으며 상호 작용하는 과정을 그림으로 표현한 것
- 동적 모델링
- 시스템 내부 구성 요소들의 상태 변환 과정과 과정에서 발생하는 상호 작용을 표현하는 것
- 시스템 내부 구성 요소들 간에 이루어지는 동작을 관점(view)에서 표현
- 시퀀스 다이어그램의 구성 요소
- 액터 : 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미
- 객체 : 메시지를 주고받는 주체
- 생명선 : 객체가 메모리에 존재하는 기간으로, 객체 아래쪽에 점선을 그어 표현
- 실행 상자 : 객체가 메시지를 주고받으며 구동되고 있음을 표현
- 메시지 : 객체가 상호 작용을 위해 주고받는 메시지
- 객체 소멸 : 해당 객체가 더 이상 메모리에 존재하지 않음을 표현한 것
- 프레임 : 다이어그램의 전체 도는 일부를 묶어 표현한 것
- 동적 모델링
- 커뮤니케이션 다이어그램 : 시스템이나 객체들이 메시지를 주고받으며 상호작용하는 과정과 객체들 간의 연관을 그림으로 표현한 것
- 커뮤니케이션 다이어그램 구성 요소
- 액터 : 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 시스템을 의미
- 객체 : 메시지를 주고받는 주체
- 링크 : 객체들 간의 관계를 표현한 것
- 메시지 : 객체가 상호 작용을 위해 주고받는 내용
- 커뮤니케이션 다이어그램 구성 요소
- 상태 다이어그램 : 객체들 사이에 발생하는 이벤트에 의한 객체들의 상태 변화를 그림으로 표현한 것
- 상태 : 객체의 상태를 표현한 것
- 시작 상태 : 상태의 시작을 표현한 것
- 종료 상태 : 상태의 종료를 표현한 것
- 상태 전환 : 상태 사이의 흐름, 변화를 화살표로 표현한 것
- 이벤트 : 상태에 변화를 주는 현상으로 조건, 외부신호, 시간의 흐름 등
- 프레임 : 상태 다이어그램의 범위를 표현한 것
- 패키지 다이어그램 : 요소들을 그룹화한 패키지간의 의존 관계를 표현한 것
- 패키지 다이어그램 구성 요소
- 패키지 : 객체들을 그룹화한 것
- 객체 : 유스케이스, 클래스, 인터페이스, 테이블 등 패키지에 포함될 수 있는 다양한 요소들
- 의존 관계 : 패키지와 패키지, 패키지와 객체 간을 점선 화살표로 연결하여 표현
- 패키지 다이어그램 구성 요소
뒤로 이어지는 내용
https://edder773.tistory.com/172
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 통합 구현 정리 (0) | 2023.04.16 |
---|---|
[정보처리기사 실기] 자료구조와 정렬 정리 (0) | 2023.04.16 |
[정보처리기사 실기] 정규화 및 데이터베이스 보안 정리 (0) | 2023.04.16 |
[정보처리기사 실기] 데이터베이스와 관계형 데이터베이스의 개요 (0) | 2023.04.14 |
[정보처리기사 실기] 비용 산정 기법 & 소프트웨어 개발 정리 (0) | 2023.04.12 |
댓글