내가 보려고 작성하는 요약 : 1. 소프트웨어 설계 (작성중)
Chapter 01 : 요구사항 확인
1. 현행 시스템 분석
1. 플랫폼 기능 분석
(1) 플랫폼의 개념
플랫폼(Platform)이란? 애플리케이션을 구동시키는데 필요한 소프트웨어 환경
- 동일 플랫폼 내에서는 상호 호환이 가능하도록 만들어짐
- 공급자와 수요자 등 복수 그룹이 참여가능
- 각 그룹이 얻고자 하는 가치를 공정한 거래를 통해서 교환할 수 있도록 구축된 환경
(2) 플랫폼의 유형
유형 | 설명 | 사례 |
싱글 사이드 플랫폼 | 제휴 관계를 통해 소비자와 공급자를 연결하는 형태 | 아이튠즈, 안드로이드 마켓 |
투 사이드 플랫폼 | 두 그룹을 중개하고 모두에게 개방하는 형태 | 소개팅 앱 |
멀티 사이드 플랫폼 | 다양한 이해관계 그룹을 연결하여 중개하는 형태 | 페이스북, 인스타그램 |
(3) 플랫폼의 기능
- 소프트웨어 개발 및 운영 비용의 감소
- 생산성의 향상
- 동일 플랫폼의 커뮤니티를 형성하여 네트워크 효과를 유발
네트워크 효과란? 어떤 상품에 대한 수요가 형성되면 다른 사람들의 상품 선택에 큰 영향을 미치는 현상
(4) 플랫폼 기능 분석 절차
순서 | 절차 | 설명 |
1 | 현행 플랫폼 자료 수집 | 필요 자료 수집 및 파악, 인터뷰 결과서, 현행 플랫폼 구성도 도출 |
2 | 수집 자료 분석 | 수집된 자료를 취합/정제 작업 |
3 | 결과 산출물 작성 | 수집된 자료를 기반으로 플랫폼 기능분석도 작성 |
2. 플랫폼 성능 특성 분석
(1) 플랫폼 성능 특성 분석 이유
- 플랫폼 성능 분석을 통해 사용자의 서비스 이용 시 속도의 적정성 파악
- 사용자 요구사항 중 성능에 대한 개선요청 항목은 현재 시스템 플랫폼 성능이 느린 것으로 제기될 가능성이 높음
(2) 플랫폼 성능 특성 분석 기법
기법 | 설명 | 산출물 |
사용자 인터뷰 | 현행 플랫폼 사용자 인터뷰를 통해 속도의 적정성 확인 | 인터뷰 결과서 |
성능 테스트 | 현행 플랫폼을 대상으로 성능, 부하 테스트를 수행 | 성능 및 부하 테스트 결과서 |
산출물 점검 | 현행 플랫폼과 유사한 타사 제품의 성능 자료 등을 분석 | 벤치마킹 테스트 결과서 |
(3) 플랫폼 성능 특성 측정 항목
측정 항목 | 설명 |
경과 시간 | 애플리케이션에 작업을 의뢰(요구)한 시간부터 처리가 완료될 때 까지 걸린 시간 |
사용률 | 애플리케이션이 의뢰한 작업을 처리하는 동안 CPU, 메모리 등의 자원 사용률 |
응답시간 | 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간 |
가용성 | 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도 |
3. 운영체제 분석
(1) 운영체제의 개념
- 운영체제는 하드웨어 및 소프트웨어 자원을 효율적으로 관리 + 공통된 기능 제공하는 SW
- 사용자가 컴퓨터를 좀 더 쉽게 사용할수 있도록 지원 하는 SW
(2) 운영체제 현행 시스템 분석
관점 | 고려사항 | 설명 |
품질측면 | 신뢰도 | - 장기간 시스템 운영 시 운영체제의 장애 발생 가능성 - 운영체제의 버그로 인한 재가동 여부 |
성능 | - 대규모 및 대량 파일 작업(배치 작업)처리 - 지원 가능한 메모리 크기 (32/64 bit) |
|
지원측면 | 기술 지원 | - 공급사들의 안정적인 기술 지원 - 오픈 소스 여부 |
주변 기기 | - 설치 가능한 하드웨어 - 다수의 주변 기기 지원 여부 |
|
구축 비용 | - 지원 가능한 하드웨어 비용 - 설치할 응용 프로그램의 라이선스 정책 및 비용 - 유지 및 관리 비용 |
(3) 운영체제 종류 및 특징
구분 | 종류 | 저작자 | 특징 |
컴퓨터 | 윈도우 | MS | 중/소규모 서버, 일반 PC 유지 및 관리 비용의 장점 |
유닉스 | IBM,HP,SUN | 대용량 처리 안정성 높은 엔터프라이즈급 서버 |
|
리눅스 | 리누스 토르발즈 | 중/대규모 서버, 높은 보안성 하드웨어 및 소프트웨어 측면에서 가장 적은 비용 필요 |
|
모바일 | 안드로이드 | 구글 | 스마트폰, 태블릿PC, 다양한 기기의 호환성 |
iOS | 애플 | 스마트폰, 태블릿PC, 높은 보안성과 고성능 |
4. 네트워크 분석
(1) 네트워크의 개념
네트워크란? 컴퓨터 장치들이 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환하는 기술
(데이터 링크들은 광케이블과 같은 유선 매체 또는 와이파이와 같은 무선 매체를 통해 성립됨)
(2) 네트워크 현행 시스템 분석
- 현행시스템이 구성된 네트워크 구조를 네트워크 구성도를 통해 분석
- 네트워크 구성도의 작성을 통해 서버 위치, 서버 간 연결 방식을 파악
- 백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 대상으로 분석
- 물리적인 위치 관계 파악, 조직 내 보안 취약성 분석 및 대응이 쉬움
- 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용 가능
5. DBMS 분석
(1) DBMS의 개념
DBMS란? 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램
(2) DBMS의 기능
기능 | 설명 |
중복 제어 | 동일한 데이터가 여러 위치에 중복으로 저장되는 현상 방지 |
접근 통제 | 권한에 따라 데이터에 대한 접근 제어 |
인터페이스 제공 | 사용자에게 SQL 및 CLI, GUI 등 다양한 인터페이스 제공 |
관계 표현 | 서로 다른 데이터 간의 다양한 관계를 표현할 수 있는 기능 제공 |
샤딩/파티셔닝 | 구조 최적화를 위해 작은 단위로 나누는 기능 제공 |
무결성 제약조건 | 무결성에 관한 제약조건을 정의/검사하는 기능 제공 |
백업 및 회복 | 데이터베이스 장애 발생 시 데이터의 보존 기능 제공 |
(3) DBMS 현행 시스템 분석
관점 | 고려사항 | 설명 | ||
성능 측면 | 가용성 |
|
||
성능 |
|
|||
상호 호환성 |
|
|||
지원 측면 | 기술 지원 |
|
||
|
||||
구축 비용 |
|
6. 비즈니스 융합 분석
(1) 비즈니스 융합의 개념
비즈니스 융합이란? 융합 기술이 제공하는 기회나 융합의 원리를 적용해서 새로운 제품, 서비스, 산업을 창출하거나 기존 제품을 혁신하기 위한 기업 활동
산업 또는 시장 간 경계를 허물어 정보통신 기술을 적용해 새로운 비즈니스 모델로의 범위를 확대하는 것을 의미함
(2) 비즈니스 융합 유형
유형 | 설명 | 사례 |
고객 가치(Why) | 개인, 사회, 인류의 행복과 번영을 위한 가치 창출 | 신재생 에너지 개발, 친환경 농산물 생산 |
시장 유통(Whom) | 신시장 개척 또는 미래시장 선점 | 자율주행 자동차, 글로벌 통신망 |
가치 제안(What) | 시장/고객의 미충족 욕구 대응을 위한 신상품 개발 | 드론 배송, 협동 로봇, 소셜 로봇 |
공급 역량(Who) | 신기술, 신규역량을 활용한 상품 생산 및 판매 | 스마트 밴드, 스마트 헬스케어 |
생산 방식(How) | 제품/서비스의 생산, 판매 프로세스 혁신 | 스마트 팩토리, 옴니 채널 |
(3) 비즈니스 융합 분석 절차
산업/시장 내 기업 환경 요인과 경쟁 전략을 분석하여 핵심 비즈니스 융합 영역에 대해 분석 절차를 수립
순서 | 절차 | 설명 |
1 | 기업전략 분석 | 기업환경과 그에 대응하기 위한 경쟁전략 분석 |
2 | 영역 및 방향 설정 | 기업전략을 고려한 영역에 대한 설정 |
3 | 포트폴리오 선정 | 부합성, 생존성, 경쟁, 성장성 등을 평가 |
4 | 융합모델 설계/평가 | 구체적으로 수행할 비즈니스 모델을 설계 융합모델 유효성 평가 및 시범 적용 |
5 | 비즈니스 융합 실행/개선 | 프로토타이핑, 사업화 타당성 확인 |
2. 요구사항 확인
1. 요구분석 기법
(1) 요구분석의 개념
요구분석이란?
1. 도출된 요구사항 간 상충을 해결하고 소프트웨어의 범위를 파악하여 외부 환경과의 상호작용을 분석하는 과정
2. 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정
(2) 요구분석의 특징
- 요구 분석은 SW 개발의 실제적인 첫 단계
- 사용자의 요구에 대해 이해하는 단계
- 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용
- 보다 구체적인 명세를 위해 소단위 명세서가 활용
- 개발 비용이 가장 많이 소요되는 단계는 아님 (가장 많이 소요되는 단계 == 유지보수 단계)
- 요구 분석 중 도메인 분석은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 됨
소단위 명세서란?
데이터 흐름도에 나타나 있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서
(3) 요구사항 분석 단계 절차
요구사항 분석을 통해서 요구사항을 기술할 때
- 요구사항의 확인(Validation)
- 요구사항 구현의 검증(Verification)
- 비용 추정
이 가능해야 하도록 충분하고 정확하게 기술
순서 | 절차 | 설명 |
1 | 요구사항 분류 |
|
2 | 개념 모델링 생성 및 분석 |
|
3 | 요구사항 할당 |
|
4 | 요구사항 협상 |
|
5 | 정형 분석 |
|
(4) 요구사항 분석 기술
분석 기술 | 설명 |
청취 기술 | 이해관계자로부터 의견을 듣는 방법 |
인터뷰 & 질문 기술 | 이해관계자를 만나 정보를 수집하고 이야기를 나누는 기술 |
분석 기술 | 추출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 방법 |
중재 기술 | 이해관계자들의 상반된 요구에 대한 중재 기술 |
관찰 기술 | 사용자가 작업하는 것을 관찰하면서 사용자가 언급하지 않은 미묘한 의미를 탐지할 수 있는 기술 |
작성 기술 | 문서 작성 기술 |
조직 기술 | 수집된 방대한 정보를 일관성 있는 정보로 구조화하는 능력 |
모델 작성 기술 | 수집한 자료를 바탕으로 제어의 흐름, 기능 처리, 동작 행위, 정보 내용 등을 이해하기 쉽도록 모델로 작성하는 기술 |
(5) 요구사항 분석에 사용하는 기능 모델링 기법
1. 데이터 흐름도(DFD / Data Flow Diagram)
가. 데이터 흐름도 개념
데이터 흐름도란? 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림
- 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램
- 데이터 흐름도는 시스템의 모델링 도구로서 가장 보편적으로 사용
- 자료 흐름 그래프 또는 버블 차트라고 부른다
나. 데이터 흐름도 특징
- 구조적 분석 기법에 이용
- 데이터의 흐름에 중심을 두는 분석용 도구
- 제어의 흐름은 중요하지 않음
- 시간 흐름을 명확하게 표현하지 못하는 단점이 있다.
다. 데이터 흐름도의 구성 요소
구성요소 | 설명 |
처리기 (Process) | 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정. DFD에서는 원 모양으로 표시한다 |
데이터 흐름 (Data Flow) | DFD의 구성요소(프로세스, 데이터 저장소, 외부 엔터티)들 간의 주고받는 데이터 흐름을 나타내며, DFD에서는 화살표( -> )로 표시한다 |
데이터 저장소 (Data Store) | 데이터가 저장된 장소이고, 평행선(=)으로 표시하며, 평행선 안에는 데이터 저장소의 이름을 넣는다 |
단말 (Terminator) | 프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내고, 사각형으로 표시하며, 사각형 안에는 외부 엔터티의 이름을 넣는다. |
2. 자료 사전 (DD / Data Dictionary)
가. 자료 사전의 개념
자료 사전이란?
1. 자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전이다.
2. 자료 사전은 파일 혹은 데이터베이스에 있는 자료에 대한 자료 또는 각 자료 항목에 주어진 이름과 길이 그리고 서술과 같은 데이터를 포함하는 참조를 위한 작업이다.
나. 자료 사전의 작성 목적
- 자료 사전은 조직에 속해있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지를 알려주기 위하여, 용어의 정의를 조정하고 취합하고 문서로 명확히 하는 목적이 있음
- 자료 흐름도에 나타나는 어떤 자료의 흐름도 자료 사전에 정의되어 있어야 한다
다. 자료 사전 기호
라. 자료 사전의 작성 원칙
작성 원칙 | 설명 |
자료의 의미 기술 |
|
자료 구성 항목의 기술 |
|
동의어 규정 준수 |
|
자료 정의의 중복 제거 |
|
(6) 요구사항 분석이 어려운 이유
- 개발자와 사용자 간의 지식이나 표현의 차이가 크다 (즉, 상호작용의 어려움)
- 사용자의 요구사항이 모호하고 불명확함
- SW개발 과정 중에 요구사항이 계속 변한다
- 사용자의 요구에는 예외가 많아 열거와 구조화가 어렵다
2. UML
1. UML(Unified Modeling Language)의 개념
UML이란?
객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어
2. UML의 특징
특징 | 설명 |
가시화 언어 | 개념 모델 작성 시 오류가 적고 의사소통이 용이 |
구축 언어 | 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 UML을 소스 코드로 변환하여 구축 가능, 역 변환하여 역공학 가능 |
명세화 언어 | 정확한 모델 제시, 완전한 모델 작성 가능 |
문서화 언어 | 시스템에 대한 평가 및 의사소통의 문서 |
3. UML의 구성요소
구성요소 | 내용 |
사물(Things) |
|
관계(Relationships) |
|
다이어그램(Diagrams) |
|
4. UML 다이어그램
구분 | 다이어그램 | 설명 |
구조적 다이어그램 (Structural D.) 정적 다이어그램 (Static D.) |
클래스 (Class) |
|
객체 (Object) |
|
|
컴포넌트 (Component) |
|
|
배치 (Deployment) |
|
|
복합체 구조 (Composite Structure) |
|
|
패키지 (Package) |
|
|
행위적 다이어그램 (Behavioral D.) 동적 다이어그램 (Dynamic D.) |
유스케이스 (Usecase) |
|
시퀀스 (Sequence) |
|
|
커뮤니케이션 (Communication) |
|
|
상태 (State) |
|
|
활동 (Activity) |
|
|
타이밍 (timing) |
|
※ 컴포넌트, 배치 다이어그램은 구현 단계에서 사용되는 다이어그램이다.
인스턴스란? 객체 지향 프로그래밍에서 해당 클래스의 구조로 컴퓨터 저장 공간에서 할당된 실체
5. UML 상세
1. 클래스 다이어그램
가. 클래스 다이어그램 개념
클래스 다이어그램이란?
객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램
(클래스와 클래스, 즉 클래스 속성 사이의 관계를 표현)
나. 클래스 다이어그램 구성요소
※ 접근 제어자 (혹은 접근 제한자) : 속성과 메소드(연산)
구성요소 | 설명 |
클래스 이름 | 클래스의 이름 |
속성 | 클래스의 특징에 이름을 부여 |
연산 | 클래스에 속하는 객체에 적요오딜 메소드를 정의 클래스의 동작을 의미 UML에서는 동작에 대한 인터페이스를 지칭한다 |
접근제어자 | 클래스에 접근할 수 있는 정도를 표현한다 - 클래스 내부 접근만 허용 (private) + 클래스 외부 접근을 허용 (public) # 동일 패키지 및 파생 클래스에서 접근 가능 (protected) ~ 동일 패키지 클래스에서 접근 가능 (default) |
2. 유스케이스 다이어그램
가. 유스케이스 다이어그램 개념
유스케이스 다이어그램란?
시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램
나. 유스케이스 다이어그램 구성요소
구성요소 | 설명 | 표기법 |
유스케이스 |
|
|
액터 |
|
|
시스템 |
|
3. 시퀀스 다이어그램
가. 시퀀스 다이어그램 개념
시퀀스 다이어그램이란?
시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램
나. 유스케이스 다이어그램 구성요소
구성요소 | 설명 | 표기법 |
객체 | 객체는 위쪽에 표현되며 아래로 생명선을 가짐 객체는 사각형 안에 밑줄 친 이름으로 명시 |
|
생명선 | 객체로부터 뻗어 나가는 점선 실제 시간이 흐름에 따라 객체의 생명 주기 동안 발생하는 이벤트를 명시 |
|
실행 | 직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미 직사각형이 길어질 수록 오퍼레이션 수행 기간이 긺 |
|
메세지 | 객체 간의 상호 작용은 메세지 교환으로 이루어짐 한 |
Chapter 02 : 화면 설계
Chapter 03 : 애플리케이션 설계
Chapter 04 : 인터페이스 설계