1 현행 시스템 분석
1 플랫폼 기능 분석
1 플랫폼의 개념
애플리케이션을 구동시키는데 필요한 하드웨어 + 소프트웨어, 동일 플랫폼 내에서는 상호 호환이 가능하도록 만들어진 결합체
공급자와 수요자 등의 복수 그룹이 참여하여 각 그룹이 얻고자 하는 가치를 공정한 거래를 통해 교환할 수 있도록 구축된 환경
2 플랫폼의 유형
싱글 사이드 플랫폼 | 제휴 관계를 통해 소비자와 공급자 연결 | 아이튠즈, 안드로이드 마켓 |
---|---|---|
투 사이드 플랫폼 | 두 그룹을 중개하고 모두에게 개방 | 소개팅 앱 |
멀티 사이드 플랫폼 | 다양한 이해관계 그룹을 연결하여 중개 | 페이스북, 인스타그램 |
3 플랫폼의 기능
비용 감소, 생산성 향상
커뮤니티 형성, 네트워크 효과 유발
* 네트워크 효과 : 수요에 따라 다른 사람들에게 영향을 미치는 현상
4 플랫폼 기능 분석 절차
- 현행 플랫폼 자료 수집
- 수집 자료 분석
- 결과 산출물 작성
2 플랫폼 성능 특성 분석
1 이유
사용자의 서비스 이용 시 속도의 적정성을 알 수 있다.
2 기법
- 사용자 인터뷰 : 인터뷰 결과서
- 성능 테스트 : 테스트 결과서
- 산출물 점검 : 벤치마킹 테스트 결과서
3 운영체제 분석
1 운영체제 개념
하드웨어 및 소프트웨어 자원을 효율적으로 관리하며 공통된 기능을 제공하는 소프트웨어
2 운영체제 현행 시스템 분석
품질 측면
- 신뢰도 : 장애 발생 가능성, 재기동 여부
- 성능 : 파일 작업 처리, 지원 가능한 메모리 크기
* 배치 작업 : 작업들을 하나의 작업 단위로 묶어 일괄 처리 cf ) 실시간 작업
지원 측면
- 기술 지원 : 오픈 소스 여부
- 주변 기기 : 하드웨어
- 구축 비용 : 하드웨어 비용, 라이선스 정책 및 비용, 유지/관리 비용
3 운영체제 종류 및 특징
PC
- Windows : 중/소규모 서버, 관리 비용 장점
- UNIX : 대용량 처리, 안정성 높은 엔터프라이즈급 서버
- Linux : 중/대규모 서버 대상, 높은 보안성
모바일
- Android : 다양한 기기의 호환성
- iOS : 높은 보안성과 고성능
4 네트워크 분석
1 개념
컴퓨터 장치들이 노드 간 연결을 사용하여 서로 데이터를 교환하는 기술
2 OSI 7계층
5. 세션 계층 (Session Layer)연결 접속, 동기제어SSH, TLS데이터
7. 응용 계층 (Application Layer) | 사용자와 네트워크 간 응용서비스 연결, 데이터 생성 | HTTP, FTP | 데이터 |
6. 표현 계층 (Presentation Layer) | 데이터 형식 설정, 부호교환, 암/복호화 | JPEG, MPEG | 데이터 |
4. 전송 계층 (Transport Layer) | 신뢰성 있는 통신 보장, 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어 | TCP, UDP | 세그먼트 |
3. 네트워크 계층 (Network Layer) | 단말기 간 데이터 전송을 위한 최적화된 경로 제공 | IP, ICMP | 패킷 |
2. 데이터링크 계층 (Data Link Layer) | 인접 시스템 간 데이터 전송, 전송 오류 제어, 동기화, 오류 제어, 흐름 제어, 오류검출 / 재전송 | 이더넷 | 프레임 |
1. 물리 계층 (Physical Layer) | 0과 1의 비트정보를 회선에 보내기 위한 전기적 신호 변환 | RS-232C | 비트 |
3 네트워크 현행 시스템 분석
네트워크 구성도를 통해 분석
네트워크 구성도의 작성을 통해 서버 위치, 서버 간 연결 방식 파악 가능
물리적 위치 관계 파악, 보안 취약성 분석 및 대응에 유리
대상 : 백본망, 라우터, 스위치, 게이트웨이, 방화벽, ...
- 백본망 : 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부
- 라우터 : 3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 전달
- 스위치 : 2계층 장치, 돌일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소로 빠르게 전달
- 게이트웨이 : 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간 통신
- 방화벽 : 보안 시스템
5 DBMS 분석
1 개념
DB를 생성하고, 저장 및 관리할 수 있는 기능을 제공하는 응용 프로그램
2 기능
- 중복 제거 : 동일한 데이터가 여러 위치에 중복 저장되는 현상 방지
- 접근 통제 : 권한에 따라 데이터에 대한 접근 제어
- 인터페이스 제공 : 사용자에게 다양한 인터페이스 제공(CLI, GUI, ...)
- 관계 표현 : 서로 다른 데이터 간의 다양한 관계 표현
- 샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 나누는 기능
- 무결성 제약 조건 : 무결성에 관한 제약 조건 정의 및 검사
- 백업 및 회복 : 데이터베이스 장애 발생 시 데이터의 보존 기능
3 데이터베이스 현행 시스템 분석
성능 측면
- 가용성 : 장애 발생 가능성, 백업 및 복구 편의성, DBMS 이중화 및 복제 지원
- 성능 : 대규모 데이터 처리 성능, 대량 거래 처리 성능, 튜닝 옵션 지원 여부, 최적화 지원 및 설정 최소화
- 상호 호환성 : 설치 가능한 OS 종류, 다양한 OS에서 지원되는 JDBC, ODBC
* JDBC(Java Database Connectivity) : 자바에서 DB를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스
* ODBC(Open Database Connectivity) : DB를 액세스 하기 위한 표준 개방형 응용 프로그램 인터페이스
지원 측면
- 기술 지원 : 오픈 소스 여부
- 구축 비용 : 라이선스 정책 및 비용, 유지/관리 비용
6 비즈니스 융합 분석
1 개념
융합을 통해 새로운 비즈니스 모델로 범위를 확대하는 것
2 유형
- 고객 가치(Why) : 개인, 사회, 인류의 행복과 번영을 위한 가치 창출
- 시장 유통(Whom) : 신시장 개척 또는 미래시장 선점
- 가치 제안(What) : 시장/고객의 욕구 대응, 신상품 개발
- 공급 역량(Who) : 신기술, 신규 역량을 활용한 상품 생산 및 판매
- 생산 방식(How) : 제품/서비스의 생산, 판매 프로세스 혁신
3 절차
- 기업전략 분석
- 영역 및 방향 설정
- 포트폴리오 선정
- 융합모델 설계/평가
- 비즈니스 융합 실행/개선
2 요구사항 확인
1 요구분석
1 개념
요구사항 간 상출 해결, 소프트웨어 범위 파악 -> 외부환경과의 상호작용 분석
2 기법
- 요구사항 분류 : 기능/비기능 구분, 소프트웨어에 미치는 영향 범위 파악, 소프트웨어 생명주기 중 변경 발생 여부
- 개념 모델링 : 문제 도메인의 엔터티들과 개별 관계 및 종속성 반영, Usecase 다이어그램 사용 多
- 요구사항 할당 : 요구사항을 만족시키기 위한 아키텍처 구성요소 식별, 추가 요구사항 발견 가능
- 요구사항 협상 : 상충되는 요구 합의
- 정형 분석 : 표현
2 UML(Unified Modeling Language)
1 개념
객체지향 소프트웨어 개발과정에서 모델링 기술과 방법론을 통합하여 만든 표준화된 범용 모델링 언어
2 특징
- 가시화 언어 : 오류 少, 의사소통 용이
- 구축 언어 : 실행 시스템에 대한 시각적 예측
- 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
- 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서
3 구성요소
- 사물 : 추상적인 개념, 주제 (명사, 동사)
- 관계 : 사물의 의미를 확장하고 명확히 하는 요소, 사물과 사물을 연결하여 표현 (형용사, 부사)
- 다이어그램 : 사물과 관계를 그림으로 표현
4 다이어그램
요구사항
- Usecase : 사용자 관점에서 시스템의 활동을 표현, 기능적 요구 정의
정적 모델링
- 클래스 : 속성과 동작으로 구성
- 객체 : 연관된 모든 인스턴스
- 상태 : 모든 상태와 전이, 진입 조건, 탈출 조건
동적 모델링
- 시퀀스 : 객체 간 상호작용을 메시지 흐름으로 표현
- 협업 : 객체 간 연관성
- 활동 : 활동의 순서대로 흐름 표현
- 컴포넌트 : 프로그래밍 작업
- 배포 : 컴포넌트 사이의 종속성
3 애자일 방법론
1 개념
개발과 함께 즉시 피드백을 받아 유동적으로 개발
* cf ) 폭포수 방법론 : 처음부터 끝까지 계획을 수립하고 개발
2 등장 배경
- 소프트웨어 개발 환경의 변화 : 개발 트렌드의 변화( -> 모바일 )
- 기존 개발 방법론의 한계 : 절차 위주 -> 신속한 대응이 어렵다
3 주요 원칙
- 개인과 상호작용 > 공정과 도구
- 변화에 대응 > 계획을 따르기
- 동작하는 소프트웨어 > 포괄적인 문서
- 고객과의 협력 > 계약 협상
4 유형
-
XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
* 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
-
스크럼 : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
* 주요 개념
- 백로그 : 제품과 프로젝트에 대한 요구사항
- 스프린트 : 짧은 개발 기간 동안 반복적 수행으로 개발 품질 향상
- 데일리 미팅 : 매일 15분 정도 미팅으로 To-Do List 계획 수립
- 스크럼 마스터 : 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
-
린(Lean) : 낭비 요소를 제거하여 품질을 향상시킨 방법론
* 7가지 원칙 : 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
5 비교 ( vs 전통적 방법론 )
애자일 방법론 | 전통적 방법론 | |
---|---|---|
계획 수립 | 유동적 범위 설정 | 확정적 범위 설정 |
업무 수행 | 팀 중심 업무 수행 | 관리자 주도적 명령과 통제, 개인 단위 |
개발/검증 | 반복 주기 단위 | 분석/설계/구현/테스트 순차적 |
팀관리 | 업무 몰입, 팀 평가 | 경쟁, 개별 평가 |
문서화 | 코드 강조 | 문서화 강조 |
성공 요소 | 고객 가치 전달 | 계획/일정 준수 |
3 분석 모델 확인
1 모델링 기법
1 개념
물리현상을 이용하기 쉬운 형식으로 표현
2 모델링 역할
상황에 대한 이해 증진, 해결책 설명
3 모델링 절차
- 요구사항 분석 : 현행 데이터의 문제점과 개선해야 할 점 확인 -> 개선점 도출
- 개념 모델링 : 데이터 모델의 전체적인 모양 결정
- 논리 모델링 : 개념 모델을 상세화
- 물리 모델링 : 논리 데이터 모델을 DBMS의 특성 및 성능을 고려하여 구체화
2 분석 자동화 도구
1 개념
요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 자동화도구(CASE)
* 자동화도구(Computer Aided Software Engineering) : 소프트웨어 생명주기의 전체 단계를 연결 주고 자동화해주는 도구 / 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경 조성
2 등장 배경
- 산업 측면 : 소프트웨어 위기의 극복 대응방안
- 관리 측면 : 사용자의 요구사항과 실제 시스템 간의 차이 / 재사용성, 생산성 및 유지보수의 어려움
3 특징
- 표준화 적용과 문서화를 통한 보고 -> 품질 개선 가능
- 변경 사항과 변경으로 인한 영향에 대한 추적이 쉽다
- 명세에 대한 유지보수 비용 축소 가능
4 분류
- 상위 CASE : 모델 간 모순 검사, 오류 검증, 자료 흐름도 작성 지원
- 중간 CASE : 상세 설계 작업, 화면 출력 작성 지원
- 하위 CASE : 시스템 명세서, 소스 코드 생성 지원
3 요구사항 관리 도구
1 개념
요구사항을 기반으로 프로젝트 관리, 설계, 개발, 테스트 등을 수행할 수 있는 역할을 지원하는 도구
2 기능
기본 기능
- 프로젝트 생성 : 템플릿, 재사용
- 요구사항 작성 : 고유 ID, 식별자 사용 구분
- 요구사항 불러오기/내보내기 : 다양한 확장자 제공
핵심 기능
- 요구사항 이력 관리 : 변경 이력 관리 기능 제공
- 요구사항 베이스라인 : 확정을 위한 베이스라인 제공
- 요구사항 추적성 : 이력 추정
부가 기능
- 협업 환경 : 동시 편집 기능 제공
- 외부 인터페이스 : 형상 관리 도구와의 연동
- 확장성 : 타 시스템 연동 제공
3 분류
상용제품
- 헬릭스 RM : 요구사항 재사용 -> 검증 시간과 반복 업무를 줄인다
- 지라 : 애플리케이션 생명주기 관리, 요구사항 관리
- 오르카노스 : 기업 대상 요구사항 관리용 단일 저장소 제공
- 리큐테스트 : 요구사항 파악 및 관리 프로세스를 단순화
오픈 소스
- 레드마인 : 웹 기반 프로젝트 관리, 버그 추적 기능
- 테스트링크 : 테스트 케이스와 요구사항의 매핑 지원
'자격증(IT) > 정보처리기사' 카테고리의 다른 글
정보처리기사 필기 2. 소프트웨어 개발 - Chapter 1. 데이터 입출력 구현 (0) | 2020.08.18 |
---|---|
정보처리기사 필기 1. 소프트웨어 설계 - Chapter 4. 인터페이스 설계 (0) | 2020.08.18 |
정보처리기사 필기 1. 소프트웨어 설계 - Chapter 3. 애플리케이션 설계 (0) | 2020.08.17 |
정보처리기사 필기 1. 소프트웨어 설계 - Chapter 2. 화면 설계 (0) | 2020.04.20 |
2020정보처리기사 (0) | 2020.04.18 |