수제비 정처기 강의 수강 / 교재 공부 후 기록
1. 현행 시스템 분석
< 플랫폼 >
- 애플리케이션을 구동시키는데 필요한 소프트웨어 환경
- 유형 : 싱글 사이드(소비자-공급자) / 투 사이드(두 그룹 중개) / 멀티 사이드(다양한 이해관계 연결)
- 성능 특성 분석 기법 : 사용자 인터뷰 / 성능 테스트 / 산출물 점검
- 성능 특성 항목 : 경과시간(Trunaround Time) / 사용률(Utilization) / 응답시간(Response Time) / 가용성(Availability)
< 운영 체제 >
- 하드웨어 / 소프트웨어 자원을 효율적으로 관리하여 공통된 기능을 제공하는 소프트웨어
- 분석 : 품질 측면-신뢰도 / 성능
: 지원 측면-기술지원 / 주변기기 / 구축 비용
< 네트워크 분석 >
라우터 | 3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비 |
스위치 | 2계층 장비로서, 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC주소 기반으로 빠르게 전달하는 네트워크 장비 |
방화벽 | 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, 내/외부 네트워크의 상호 간 영향을 차단하기 위한 보안 시스템 |
DBMS(Database Management System) 분석 : 가용성 / 성능 / 상호 호완성 / 기술 지원 / 구축 비용
비지니스 융합 유형 : 고객 가치 / 시장 유통 / 가치 제안 / 공급 역량 / 생산 방식
2. 요구사항 확인
요구공학 프로세스는 요구사항 개발 단계와 요구사항 관리 단계로 구성
개발 : 도출 - 분석 - 명세 - 확인 및 검증
관리 : 협상 - 기술적 관리 - 변경 관리 - 확인 및 검증
< 요구분석 >
- 도출된 요구사항 간의 상충을 해결하고 소프트웨어의 범위를 파악하여 외부환경과의 상호작용을 분석하는 과정
- 요구사항 분석을 통해서 비용/일정 제약 설정을 하는 단계이고, 타당성 조사를 하는 단계
- 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용 가능
- 보다 구체적인 명세를 위해 소단위 명세서의 활용 가능
< 요구사항 분석 단계별 주요 기법 및 산출물 >
- 분류 - 개념 모델링 - 할당 - 협상 - 정형 분석 (자료 흐름 지향 분석 / 객체 지향 분석)
분류 | 요구사항이 기능, 비기능 요구사항인지 확인 |
개념 모델링 | 모델링 표기는 주로 UML을 사용 |
할당 | 다른 구성요소와의 상호작용 분석을 통해 추가적 요구사항이 가능 |
협상 | 요구사항이 서로 충돌되는 경우에 각각에 우선순위 부여 |
정형 분석 | 구문과 의미를 갖는 정형화된 언어를 사용하여 수학적 기호로 표현 |
< 요구사항 분석 기술 >
청취 | 이해관계자로부터 의견을 듣는 기술 |
질문 | 이해관계자를 만나 정보를 수집하고 이야기를 나누는 기술 |
분석 | 추출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 기술 |
중재 | 이해관계자들의 상반된 요구에 대한 중재기술 |
관찰 | 사용자가 작업하는 것을 관찰하면서 사용자가 언급하지 않은 미묘한 의미를 탐지할 수 있는 기술 |
작성 | 문서 작성 기술 |
조직 | 수집된 방대한 정보를 일관성 있는 정보로 구조화하는 능력 |
모델 작성 기술 | 수집한 자료를 바탕으로 제어의 흐름, 기능 처리, 동작 행위, 정보 내용 등을 이해하기 쉽도록 모델로 작성하는 기술 |
< 데이터 흐름도(Data Flow Diagram; DFD) >
- 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림
구성요소 :
처리기 Process |
입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정으로, 'ㅇ'으로 표시 |
데이터 흐름 Data Flow |
구성요소들 간의 주고받는 데이터 흐름을 나타내며,' ->' 로 표시 |
데이터 저장소 Data Store |
데이터가 저장된 장소이고, '='로 표시 |
단말 Terminator |
프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내고, 'ㅁ' 로 표시 |
< 자료 사전(Data Dictionary; DD) >
- 자료 요소, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적 명시하는 사전
- 자료 사전은 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지를 알려주기 위하여, 용어의 정의를 조정하고 취합하고 문서로 명확히 하는 목적
- DFD에 나타나는 어떤 자료도 자료 사전에 정의되어 있어야 함
= | 자료의 정의 |
+ | 자료의 연결 |
( ) | 생략 가능함을 나타냄 |
{ } | 자료의 반복을 나타냄 |
[ ] | 자료의 선택을 나타냄 |
** | 자료의 설명을 나타냄 |
- 자료 사전 작성 원칙 : 자료 의미 기술 / 자료 구성 항목 기술 / 동의어 규정 준수 / 자료 정의 중복 제거
< UML >
- 객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 시 사용되는 모델링 기술과 방법론을 통합해 만든 표준화된 범용 모델링 언어
- 특징 : 가시화 언어 / 구축 언어 / 명세화 언어 / 문서화 언어
- 구성요소 : 사물(Things) / 관계(Realationship) / 다이어그램(Diagram)
- 관계종류 : 연관 관계 / 집합 관계 / 포함 관계 / 일반화 관계 / 의존 관계 / 실체화 관계
< UML 다이어그램 >
- 구조적 다이어그램(정적 다이어그램; Structural Diagram) : 클래스(Class) / 객체(Object) / 컴포넌트(Component) / 배치(Deployment) / 복합체 구조(Composite Structure) / 패키지(Package)
- 행위적 다이어그램(동적 다이어그램; Behavioral Diagram) : 유스케이스(Usecase) / 시퀀스(Sequence) / 커뮤니케이션(Communication) / 상황(State) / 활동(Activity) / 타이밍(Timing)
*클래스 다이어그램 : 클래스 이름, 속성, 연산, 접근 제어자가 있음
*유스케이스 다이어그램 : 유스케이스, 액터, 시스템이 있음
*시퀀스 다이어그램 : 객체, 생명선, 실행, 메시지가 있음
< 스테레오 타입 >
- UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘
- 길러멧 ( << >> )기호를 사용하여 표현
< 애자일(Agile) >
- 즉시 피드백을 받아서 유동적으로 개발하는 방법
- 프로젝트의 요구사항은 기능 중심으로 정의
- 절차와 도구보다 개인의 소통을 중요하게 생각
- 작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응가능
- 소프트웨어가 잘 실행되는 데 가치를 둔다.
- 고객과의 피드백을 중요하게 생각한다.
< XP >
- 1~3주의 반복 개발 주기
- 가치 5가지 : 용기 / 단순성 / 의사소통 / 피드백 / 존중
- 기본 원리 :
짝 프로그래밍 | 개발자 둘이서 짝으로 코딩하는 원리 |
공동 코드 소유 | 시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리 |
지속적인 통합 (CI) | 매일 여러 번씩 소프트웨어를 통합하고 빌드해야한다는 원리 |
계획 세우기 | 고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야 한다는 원리 |
작은 릴리즈 | 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다는 원리 |
메타포 | 공통적인 일의 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리 |
간단한 디자인 | 현재의 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리 |
TDD(테스트 기반 개발) | 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리 |
리팩토링 | 프로그램의 기능을 바꾸지 않으면서 중복 제거, 단순화 등을 위해 시스템을 재구성 |
40 시간 작업 | 개발자가 피곤으로 인해 실수하지 않도록 일주일에 40시간 이상을 일하지 말아야 한다는 원리 |
고객 상주 | 개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야 한다는 원리 |
코드 표준 | 효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해야 한다는 원리 |
< 스크럼 >
- 주요요소 : 백로그 / 스프린트 / 스크럼 미팅 / 스크럼 마스터
< 린 >
- 낭비 요소를 제거하여 품질을 향상시킨 방법론
- 7가지 원칙 : 낭비 제거 / 품질 내재화 / 지식 창출 / 늦은 확정 / 빠른 인도 / 사람 존중 / 전체 최적화
3. 분석 모델 확인
< 모델링 >
- 실세계의 물리현상을 특정한 목적에 대응하여 이용하기 쉬운 형식을 표현하는 기법
- 절차 : 요구 사항 분석 / 개념 모델링 / 논리 모델링 / 물리 모델링
< 분석 자동화 도구 >
- 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 요구사항 분석을 위한 자동화 도구(CASE)
- 표준화 적용과 문서화를 통한 보고를 통해 품질 개선이 가능
- 변경사항과 변경으로 인한 영향에 대한 추적이 쉬움
- 명세에 대한 유지보수 비용의 축소가 가능
- 그래픽을 지원
- 소프트웨어 생명주기의 전 단계를 연결
- 다양한 소프트웨어 개발 모형을 지원
- 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공
- CASE : 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성
상위 CASE | 계획 수립, 요구 분석, 기본 설계 단계를 다이어그램으로 표현 모순 검사 및 모델의 오류 검증 자료 흐름도 프로토타이핑 작성 지원 및 UI 설계 지원 |
하위 CASE | 구문 중심 편집 및 정적, 동적 테스트 지원 시스템 명세서 생성 및 소스 코드 생성 지원 |
< 요구 사항 관리 도구 >
- 종류 : 헬릭스 RM / 지라 / 오르카노스 / 리큐 테스트 / 레드마인 / 테스트 링크
'8. 자격증 > 8-1. 정보처리기사' 카테고리의 다른 글
정처기 2-2. 통합 구현 (0) | 2021.08.01 |
---|---|
정처기 2-1. 데이터 입출력 구현 (0) | 2021.08.01 |
정처기 1-4. 인터페이스 설계 (0) | 2021.07.30 |
정처기 1-3. 애플리케이션 설계 (0) | 2021.07.27 |
정처기 1-2. 화면 설계 (0) | 2021.07.26 |