[정보처리기사] 요구사항 분석 - 소프트웨어 개발 방법론
정보처리기사 실기에서 가장 출제 빈도가 적은 파트이지만, 문득 나오는 경우가 많기 때문에 꼭 보고 지나가야하는 파트중 하나입니다. 구조적 분석 방법, 객체 분석 방법들이 다양하기 때문에 키워드 중심으로 읽고 지나가시길 바랍니다.
목차
플랫폼이란?
다양한 응용프로그램, 서비스 또는 기능이 구축되거나 실행되는 기반 또는 환경
플랫폼이란 애플리케이션을 구동시키는 데 필요한 하드웨어와 소프트웨어의 결합.
생산자와 소비자가 서로 원하는 가치를 거래할 수 있는 매체
플랫폼의 기능
- 연결기능 : 만나는 장소를 제공
- 비용감소 : 그룹이 처리할 때 발생하는 시간과 비용 절감
- 브랜드 신뢰 기능 : 품질을 보장하여 신뢰감 향상
- 커뮤니티 형성 : 그룹간 상호 작용을 통한 커뮤니티 형성
플랫폼의 종류
- 하드웨어 플랫폼(Hardware Platform): 하드웨어 플랫폼은 하드웨어 시스템의 구성 요소와 인프라를 제공합니다.
- 컴퓨터, 스마트폰, 태블릿 등이 하드웨어
- 소프트웨어 플랫폼(Software Platform): 소프트웨어 플랫폼은 소프트웨어 개발 및 실행을 위한 환경을 제공합니다.
- 운영 체제, 프레임워크, 라이브러리 등
- 서비스 플랫폼(Service Platform): 서비스 플랫폼은 서비스 제공을 위한 환경을 제공합니다.
- 클라우드 서비스 플랫폼이 여기에 해당하며, 이를 통해 사용자는 인프라, 플랫폼 및 소프트웨어 서비스를 온디맨드로 이용할 수 있습니다.
- 거래 플랫폼(Transaction Platform): 거래 플랫폼은 금융 거래나 전자상거래를 위한 환경을 제공합니다.
- 결제 시스템, 전자 화폐, 거래 처리 시스템 등
- 생태계(Ecosystem) 플랫폼: 생태계 플랫폼은 다양한 개발자, 사용자 및 제품 간의 상호 작용을 지원하고 통합하는 환경을 제공합니다.
- 앱스토어, 스마트스토어 등의 애플리케이션 스토어와 같은 플랫폼으로 사용자와 개발자가 애플리케이션을 검색, 다운로드, 설치하고 사용할 수 있도록 합니다.
- 다면 플랫폼(Multi-sided Platform): 다면 플랫폼은 여러 이해 관계자 간의 상호 작용을 중개하고 조정하는 환경을 제공합니다.
- 페이스북과 같은 소셜 미디어 플랫폼은 다면 플랫폼의 대표적인 예시입니다. 사용자, 광고주, 콘텐츠 제공자 등 다양한 이해 관계자 간의 상호 작용을 조정하고 중개합니다.
플랫폼의 유형
- 싱글사이드 플랫폼(Single-Sided Platform): 싱글사이드 플랫폼은 주로 한 그룹의 이해 관계자(일반적으로 고객이나 사용자)를 대상으로 상호 작용을 중개합니다.
- 주로 제휴 관계를 통해 소비자와 공급자를 연결하는 형태
- 온라인 마켓플레이스가 이에 해당할 수 있습니다.
- 투 사이드 플랫폼(Two-Sided Platform): 투 사이드 플랫폼은 두 개의 주요 이해 관계자 그룹 간의 상호 작용을 중개하고 조정하는 형태입니다.
- 모든 이해 관계자에게 개방되어 있으며, 양쪽 그룹 간의 네트워크 효과를 이용하여 가치를 창출
- 스마트폰 플랫폼은 앱 개발자와 사용자 간의 상호 작용을 중개합니다.
- 멀티 사이드 플랫폼(Multi-Sided Platform): 멀티 사이드 플랫폼은 세 개 이상의 이해 관계자 그룹 간의 상호 작용을 중개하고 조정하는 형태입니다.
- 다양한 이해 관계자 간의 상호 작용을 조정하여 가치
- 소셜 미디어 플랫폼은 사용자, 광고주, 콘텐츠 제공자 등 다양한 이해 관계자 간의 상호 작용을 중개합니다.
CPND(Contentents Platform Network Device)
CPND는 콘텐츠를 관리하고 배포하는 데 사용되는 통합 솔루션입니다. 이것은 콘텐츠 제작, 플랫폼 관리, 네트워크 연결, 디바이스 지원 등을 포함하는 다양한 기능을 제공합니다. 무선 인테넷의 가치 사슬
Contentents
"콘텐츠"는 정보, 미디어, 또는 기타 형태의 자료를 나타냅니다. CPND는 이러한 콘텐츠를 관리하고 유통하기 위한 기반을 제공합니다. 이는 콘텐츠를 생성하고 편집하는 도구를 포함하여 다양한 형식의 콘텐츠를 다루는 데 도움이 됩니다.
Platform
"플랫폼"은 콘텐츠를 호스팅하고 관리하는 시스템을 의미합니다. CPND는 다양한 플랫폼에 대한 호환성을 제공하여 콘텐츠를 다양한 디바이스에서 쉽게 접근할 수 있도록 합니다.
Network
"네트워크"는 다양한 디바이스 간에 콘텐츠를 전송하고 공유하는 데 사용되는 인프라를 나타냅니다. CPND는 안정적인 네트워크 연결을 제공하여 콘텐츠의 신속한 전송을 보장합니다.
Device
"디바이스"는 콘텐츠를 소비하는 기기를 나타냅니다. CPND는 다양한 디바이스에서 콘텐츠를 지원하며, 이를 통해 사용자는 원하는 장치에서 언제든지 콘텐츠에 접근할 수 있습니다.
현생 시스템 분석
운영체제, 네트워크, DBMS, 미들웨어에 대해 배우는 파트입니다.
정처기 실기에서 미들웨어는 잦은 빈도로 출제되므로 꼭 확인하세요!
미들웨어
종류를 빠르게 확인하시고 지나가시는 것을 권유드립니다. 이 중 미들웨어를 골라라 혹은 아닌 것을 골라라와 같은 문제가 출제될 가능성이 높습니다.
원격프로시저 호출(Remote Procedure Call)
원격 프로시저 호출(Remote Procedure Call, RPC)은 네트워크를 통해 다른 컴퓨터나 프로세스에서 실행 중인 프로시저나 함수를 호출하는 기술입니다.
이 기술을 사용하면 클라이언트 프로그램이 서버 프로그램의 로컬 프로시저를 호출하는 것과 마찬가지로 원격에 있는 프로시저를 호출할 수 있습니다. RPC는 분산 시스템에서 프로그램 간의 통신을 위해 주로 사용됩니다.
- 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템
메시지 지향 미들웨어(Message Oriented Middleware)
클라이언트가 네트워크를 통해 원격에 위치한 서버에 있는 프로시저를 호출하는 메커니즘입니다. 클라이언트는 로컬 프로시저를 호출하는 것과 동일한 방식으로 원격 프로시저를 호출할 수 있습니다.
클라이언트가 생성한 메시지는 저장소에 저장
예를 들어, 영상을 시청하는 도중에 사용자가 어디까지 시청했는지 추적하기 위해 메시지를 모았다가 이를 나중에 데이터베이스에 저장하는데, 이러한 과정에서 메시지 지향 미들웨어가 활용될 수 있습니다.
- 실시간 처리가 어렵고, 모았다가 한 번에 처리가 됨
ORB(Object Request Broker)
객체 요청 브로커(Object Request Broker, ORB)는 분산 시스템에서 객체 간 통신을 관리하는 소프트웨어 컴포넌트입니다. ORB는 클라이언트와 서버 간의 통신을 중개하고, 객체의 생성, 호출, 소멸을 처리하여 분산 환경에서의 상호작용을 용이하게 합니다. CORBA(Common Object Request Broker Architecture)와 같은 표준 프로토콜을 기반으로 동작하며, 객체 지향 시스템에서의 분산 컴포넌트 간 통신을 가능하게 합니다.
객체 지향 프로그래밍에서 사용되는 미들웨어로, 클라이언트와 서버 사이의 통신을 관리하고 객체 간의 요청과 응답을 중개합니다.
브로커가 어디로 보낼지 판단하여 보내줌
DB 접속 미들웨어
- 데이터베이스(DB) 접속 미들웨어는 데이터베이스와 응용 프로그램 간의 통신을 관리하는 소프트웨어 계층입니다. 이 미들웨어는 데이터베이스 서버에 대한 연결을 설정하고 데이터베이스에서 데이터를 조회, 삽입, 수정, 삭제하는 작업을 처리합니다. 또한, 데이터베이스 연산 결과를 응용 프로그램에 반환하고 데이터베이스 연결을 관리합니다.
- JDBC (Java Database Connectivity)
- JDBC는 자바 언어를 사용하여 데이터베이스와 통신하기 위한 자바 표준 API입니다.
- JDBC API를 사용하면 자바 응용 프로그램에서 데이터베이스에 연결하고 SQL 쿼리를 실행하여 데이터를 조회, 수정, 삭제할 수 있습니다.
- 다양한 데이터베이스 관리 시스템(DBMS)과 호환되며, 데이터베이스 고유한 드라이버를 통해 각 DBMS에 대한 접속을 지원합니다.
- 자바 응용 프로그램에서 데이터베이스에 대한 효율적이고 안전한 접속을 제공하며, 자바의 객체 지향적 특성과 통합하여 사용됩니다.
- ODBC (Open Database Connectivity)
- C/C++ 언어를 위한 데이터베이스 접속을 지원하는 표준 인터페이스입니다.
- 데이터베이스와 응용 프로그램 간의 중간 계층으로서 동작하여 응용 프로그램이 ODBC API를 통해 데이터베이스에 접속하고 SQL 쿼리를 실행할 수 있습니다.
- 플랫폼에 독립적이며, 여러 다양한 데이터베이스에 대한 드라이버를 지원합니다. 또한, 다른 언어와 통합하기 쉽습니다.
- Microsoft에서 초기 개발되었으며, 여러 개발 환경 및 운영 체제에서 널리 사용되었습니다.
데이터베이스와 애플리케이션 사이의 통신을 관리하며, 데이터베이스 연결 및 쿼리 실행과 같은 작업을 담당
TP 모니터 (Transaction Processing Monitor)
- 트랜잭션 처리 모니터(Transaction Processing Monitor, TP Monitor)는 분산 환경에서 대량의 트랜잭션 처리를 관리하는 소프트웨어입니다. TP 모니터는 트랜잭션을 생성, 제어, 조정하고 분산된 서버 간에 트랜잭션을 분산하여 처리합니다. 이를 통해 분산 시스템에서의 트랜잭션 처리를 효율적으로 관리하고, 안정성과 확장성을 제공합니다.
트랜잭션 처리 시스템에서 발생하는 트랜잭션을 모니터링하고 관리하는 소프트웨어입니다.
웹 애플리케이션(WAS, Web Application Server)
웹 애플리케이션 서버는 클라이언트의 요청에 대한 웹 애플리케이션을 실행하고 관리하는 소프트웨어 환경입니다. WAS는 정적 및 동적 컨텐츠의 처리, 데이터베이스와의 상호작용, 보안, 트랜잭션 관리 등을 담당하여 웹 애플리케이션의 실행 환경을 제공합니다. 또한, 웹 서버와 연동하여 클라이언트에게 웹 애플리케이션 서비스를 제공합니다.
- 동적인 콘텐츠 관리 (게시판, 로그인, DB와 상호작용하는 페이지 등)
- Apache Tomcat
- IBM WebSphere
- Oracle WebLogic
웹 애플리케이션을 실행하기 위한 환경을 제공하는 미들웨어입니다. 클라이언트의 요청을 받아 서버 측에서 처리하고 결과를 반환
엔터프라이즈 서비스 버스(ESB, Enterprise Service Bus)
서비스 지향 아키텍처(SOA)에서 사용되는 중앙 집중식 통합 플랫폼으로, 다양한 시스템 간의 통합을 담당합니다.
ESB는 메시지 라우팅, 변환, 프로토콜 변환 등 다양한 통합 기능을 제공
- 통합 및 중계: ESB는 다양한 애플리케이션, 서비스, 데이터 소스 등을 통합하고 중개하는 역할을 합니다. 서로 다른 시스템 간의 통신을 중재하고 표준화된 메시지 교환을 제공하여 시스템 간의 상호 운용성을 촉진합니다.
- 메시지 라우팅 및 라우팅: ESB는 메시지를 동적으로 라우팅하고 필터링하여 목적지에 전달합니다. 메시지 라우팅 및 라우팅 기능을 통해 다양한 시스템 간의 통신을 관리하고 유연하게 메시지를 전달할 수 있습니다.
- 메시지 변환: ESB는 다양한 프로토콜, 데이터 형식 및 인터페이스를 지원하여 메시지를 변환하고 매핑하는 기능을 제공합니다. 이를 통해 서로 다른 시스템 간의 데이터 형식을 호환성 있게 처리할 수 있습니다.
- 보안 및 인증: ESB는 메시지의 보안 및 인증을 관리하여 데이터의 안전성과 무결성을 보장합니다. 데이터의 암호화, 디지털 서명, 인증 및 권한 부여 등의 보안 기능을 제공합니다.
- 모니터링 및 관리: ESB는 시스템 간의 통신을 모니터링하고 관리하는 기능을 제공합니다. 성능 모니터링, 오류 처리, 로깅 및 추적 등의 기능을 통해 시스템의 상태를 관리하고 문제를 해결할 수 있습니다.
요구공학(도분명확)
도출(Elictation)
*Elictation 뜻 : (정보·반응을 어렵게) 끌어내기
인터뷰, 관찰|문헌연구(Ethnography),사용자스토리, 시나리오, 설문조사, 브레인 스토밍, 포커스 그룹
분석(Analysis)
DFD(Data Flow Diagram)
- 내용: DFD는 데이터 흐름을 시각적으로 표현하는 다이어그램입니다. 시스템의 기능, 데이터 흐름, 데이터 저장소, 외부 개체 등을 나타냅니다.
- 구성 요소
- 프로세스(Process) or Function
- 프로세스는 시스템 내에서 실행되는 작업이나 활동을 나타냅니다.
- 주로 원으로 표현되며, 데이터를 입력받아 처리한 후 새로운 데이터를 출력하는 작업을 수행합니다.
- 소프트웨어에서 프로세스는 주로 컴퓨터 프로그램이 실행될 때 해당 프로그램이 컴퓨터의 CPU에서 실행되는 것을 가리킵니다.
- 프로세스는 일반적으로 시스템 리소스를 사용하며, 특정한 작업을 수행하거나 기능을 제공합니다.
- 데이터 플로우(Data Flow)
- 데이터 플로우는 시스템 내에서 데이터의 흐름을 나타냅니다.
- 화살표로 표현되며, 데이터가 어떤 방향으로 이동하는지를 보여줍니다.
- 데이터 플로우 다이어그램이나 데이터 플로우 모델링을 통해 데이터가 시스템 내에서 어떻게 생성되고, 전달되고, 처리되는지를 시각적으로 나타낼 수 있습니다.
- 자료 저장소(Data Store) or file/database
- 데이터 저장소는 시스템 내에서 데이터가 영구적으로 저장되는 장소를 나타냅니다.
- 주로사각형 표현되며, 데이터베이스나 파일 시스템 등의 저장 장치를 의미합니다.
- 이는 파일 시스템, 데이터베이스, 메모리 등 다양한 형태로 나타날 수 있습니다. 데이터 저장소는 시스템이 데이터를 유지하고 검색하는 데 사용되며, 데이터의 영구적인 보존과 관리를 담당합니다.
- 단말(External Entity)
- 외부 개체는 시스템 외부와 상호 작용하는 요소를 나타냅니다.
사용자, 다른 시스템, 센서, 외부 데이터 소스 등이 외부 개체에 해당할 수 있습니다. 외부 개체는 시스템과의 상호 작용을 통해 데이터를 입력하거나 출력하며, 시스템의 동작에 영향을 미칩니다.
- 외부 개체는 시스템 외부와 상호 작용하는 요소를 나타냅니다.
- 프로세스(Process) or Function
Data Dictionary(데이터 사전)
- 내용: 데이터 사전은 시스템에서 사용되는 모든 데이터와 해당 데이터의 속성을 문서화하는 도구입니다. 데이터 사전은 데이터 요소의 정의, 형식, 의미 등을 기록합니다.
- 구성 요소: 데이터 요소, 데이터 형식, 데이터 속성, 데이터 정의 등이 포함됩니다.
- =: 자료의 정의
- ~: 구성 요소를 나타냄 (is composed of)
- +: 자료의 연결 (and)
- ( ): 생략 가능한 자료 (Optional)
- [ ]: 선택적 자료 (or)
- { }: 반복되는 자료 (Iteration of)
- { }₂: 2번 이상 반복
- { }²: 최대 2번 반복
- *: 자료의 설명 (Comment)
- Mini-spec(단일 명세서)
- 내용: 단일 명세서는 시스템의 전체적인 요구사항을 포괄하는 단일 문서입니다. 프로세스, 데이터 요구사항, 사용자 인터페이스, 시스템 제약조건 등을 포함합니다.
- 구성 요소: 시스템 요구사항, 비기능적 요구사항, 시스템 제약사항 등이 포함됩니다.
- ERD(Entity-Relationship Diagram)
- 내용: ERD는 엔티티 간의 관계를 시각적으로 표현하는 도구입니다. 엔티티, 속성, 관계를 사용하여 데이터 모델을 표현합니다.
- 구성 요소: 엔티티, 속성, 관계가 포함됩니다.
- STD(Structured Textual Document)
- 내용: STD는 텍스트로 구조화된 문서로, 시스템의 요구사항을 자세히 기술합니다. 알고리즘, 데이터 구조, 시스템 동작 등을 설명합니다.
- 구성 요소: 요구사항 설명, 알고리즘 설명, 시스템 동작 설명 등이 포함됩니다.
명세(Specification)
정형 vs 비정형
정형 | 비정형 | |
작성기법 | 수학적, 논리학적 기호, 정형화된 표기법 | 자연어에 해당하는 일반 명사, 동사등으로 다이어그램 작성 |
장점 | - 구조화된 형식으로 명확한 문서 제작 가능 기계적으로 처리 가능한 데이터 형식으로 변환 가능 - 일관성 있는 문서 작성 가능 |
- 자유로운 표현이 가능하여 창의적인 아이디어 제시 가능 - 감정이나 복잡한 개념을 표현할 수 있음 - 신속한 작성 및 수정 가능 |
단점 | - 구조화된 형식에 얽매여 있어 유연성이 제한될 수 있음 - 모든 요구사항을 완벽하게 포착하기 어려울 수 있음<br>- 비전문가에게는 이해하기 어려울 수 있음 |
- 일관성이 부족할 수 있음 - 비구조화된 형식으로 인한 해석의 모호성 가능성 - 기계적인 처리가 어려움 |
작성 언어 | UML(Unified Modeling Language), ERD(Entity-Relationship Diagram), STD(Structured Textual Document), VDM(Vienna Development Method), Z, Petri-net, CSP(Communicating Sequential Processes) 등 | 자연어, 쉬운 언어, 다이어그램, 스케치, 프로토타입 등 |
기능 요구사항 vs 비기능 요구사항
기능 요구사항 (Functional Requirements) | 비기능 요구사항 (Non-functional Requirements) | |
정의 | 시스템이 수행해야 하는 작업 또는 기능을 설명하는 요구사항 | 시스템의 품질, 성능, 보안 등과 관련된 요구사항 |
목적 | 시스템의 기능성을 정의하고, 사용자의 요구를 충족시킴 | 시스템이 어떻게 동작해야 하는지에 대한 품질과 성능에 관한 요구를 제시 |
예시 | 사용자 인터페이스, 데이터 처리, 보안 기능 등 | 성능, 신뢰성, 보안, 사용성, 이식성, 확장성, 유지보수성 등 |
측정 가능성 | 측정 가능한 명확한 지표를 가지고 있음 | 측정하기가 상대적으로 어려울 수 있음 |
우선순위 | 주로 시스템의 사용 목적에 따라 우선순위를 결정 | 주로 시스템의 전반적인 품질과 성능에 따라 우선순위를 결정 |
확인과 검증
확인(validation) : 분석자가 요구사항을 이해했는지 확인, 개발 과정 테스트
검증(Verification) : 요구사항 문서가 일관성 있고 완전한지 검증, 제품의 결과 테스트
요구사항 분석 도구
CASE 도구
상위 CASE 도구 (Upper CASE Tools) | 하위 CASE 도구 (Lower CASE Tools) | |
정의 | 소프트웨어 개발의 전체적인 과정을 지원하는 도구 | 상세 설계, 구현, 테스트 등 특정 단계에서 사용되는 도구 |
목적 | 요구사항 분석부터 시스템 구현까지의 전 과정을 관리 | 상위 도구에서 생성된 모델이나 문서를 기반으로 특정 단계를 자동화 |
특징 | 요구사항 분석, 시스템 설계, 코드 생성 등을 지원 | 상세 설계, 코드 생성, 테스트 케이스 생성 등 세부 작업을 지원 |
예시 | 요구사항 관리 도구 (ex: IBM Rational DOORS) | UML 도구 (ex: Enterprise Architect), 코드 생성 도구 (ex: Eclipse) |
HIPO
하향식 소프트웨어 개발을 위한 문서화 도구로, 구조적 방법론(Structured Methodology)의 일환으로 개발되었습니다. HIPO는 시스템의 기능을 고유 모듈을 기준으로 작성하여 시스템의 구조와 기능을 명확하게 이해하고 문서화하는 데 도움을 줍니다.
시스템의 기능을 고유 모듈을 기준으로 작성
주요, 하위 프로세스
HIPOchart 종류
- 가시적 도표(Visible Chart): 주요 프로세스와 하위 프로세스를 표현하는 데 사용됩니다. 이 도표는 시스템의 전체적인 구조를 보여줍니다.
- 총체적 도표(Overview Chart): 입력, 처리, 출력을 나타내는 도표로, 시스템의 기능적인 측면을 보여줍니다. 각 프로세스의 입력과 출력을 기술합니다.
- 세부적 도표(Detail Chart): 상세한 내용을 기술하는 도표로, 각 프로세스의 세부적인 기능과 로직을 자세히 기술합니다.
요구사항 분석 모델링
요구사항 모델링은 복잡한 시스템을 단순하게 만들어 누구나 이해하기 쉽게 하기 위해 모델링하는 것을 의미
모델링 구분(기적동)
- 기능적 모델링(Functional Modeling)
- 관점 : 사용자
- 정의: 시스템이 수행해야 하는 기능이나 작업에 중점을 둔 모델링입니다.
- 다이어그램: 주로 유스케이스 다이어그램을 사용합니다.
- 설명: 유스케이스 다이어그램은 시스템이 사용자 또는 외부 시스템과 상호 작용하는 방법을 보여줍니다. 각 유스케이스는 시스템이 수행해야 하는 기능을 나타냅니다.
- 정적 모델링(Static Modeling)
- 정의: 시스템의 구조와 구성 요소 간의 정적인 관계를 표현하는 모델링입니다.
- 다이어그램: 클래스 다이어그램, 객체 다이어그램을 사용합니다.
- 설명: 클래스 다이어그램은 시스템의 구성 요소와 그들 사이의 관계를 보여줍니다. 클래스는 시스템의 구성 요소를 나타내며, 클래스 간의 관계는 연관, 상속, 의존 등으로 표현됩니다.
- 동적 모델링(Dynamic Modeling)
- 정의: 시스템의 동작과 상호 작용을 표현하는 모델링입니다.
- 다이어그램: 시퀀스 다이어그램, 상태 다이어그램을 사용합니다.
- 설명: 시퀀스 다이어그램은 시스템 내의 객체 간의 상호 작용을 시간 순서대로 보여줍니다. 상태 다이어그램은 시스템의 객체가 다양한 상태를 가질 때 이들 간의 전이를 보여줍니다.
구조적 분석 모델
- DFD(Data Flow Diagram) 기호
- 프로세스(Process): 원 모양으로 표현되며, 시스템에서 수행되는 작업을 나타냅니다.
- 데이터 플로우(Data Flow): 화살표로 표현되며, 데이터의 흐름을 나타냅니다. 데이터 흐름은 프로세스 간에 전송되는 데이터를 나타냅니다.
- 데이터 저장(Data Store): 평행선으로 표현되며, 시스템 내에서 데이터가 저장되는 장소를 나타냅니다.
- 외부 개체(External Entity): 직사각형으로 표현되며, 시스템 외부와 상호 작용하는 개체를 나타냅니다.
- DD(DATA DICTIONARY) 기호
- 데이터 요소, 데이터 형식, 데이터 속성, 데이터 정의 등의 정보를 문서화하는 데 사용됩니다. 일반적으로 표나 표 형식으로 작성되며, 각 데이터 요소에 대한 설명과 속성을 포함합니다.
- 회원 = ID+PW[21]
- 데이터 사전 기호
- = (Equal Sign)
- 등호는 데이터 요소의 값을 정의하는 데 사용됩니다. 예를 들어, "주문번호 = 12345"와 같이 사용하여 특정 데이터 요소의 값을 정의합니다.
- + (Plus Sign)
- 더하기 기호는 데이터 요소의 값을 결합할 때 사용됩니다. 예를 들어, "총 주문 금액 = 주문 금액1 + 주문 금액2"와 같이 사용하여 여러 데이터 요소의 값을 결합합니다.
- ** (Double Asterisks)
- 별표는 주석이나 설명을 나타냅니다. 예를 들어, "금액** : 주문의 총 금액"과 같이 사용하여 데이터 요소에 대한 추가 설명을 제공합니다
- () (Parentheses)
- 괄호는 데이터 요소의 그룹화를 나타냅니다. 예를 들어, "주소(도시)"와 같이 사용하여 주소의 도시 부분을 그룹화합니다.
- [] (Square Brackets)
- 대괄호는 선택적인 데이터 요소를 나타냅니다. 예를 들어, "[우편번호]"와 같이 사용하여 우편번호가 선택적인 데이터 요소임을 표시합니다.
- {} (Curly Braces):
- 중괄호는 데이터 요소의 집합을 나타냅니다. 예를 들어, "{상품1, 상품2, 상품3}"와 같이 사용하여 상품의 집합을 나타냅니다
- 소단위 명세서(프로세스 명세서):
- 각 프로세스에서 수행되는 작업을 자세히 설명하는 문서입니다. 프로세스의 입력, 출력, 처리 절차, 예외 상황 등에 대한 정보를 포함합니다.
- 개체관계도(ERD, Entity-Relationship Diagram) 기호:
- 엔티티(Entity): 직사각형으로 표현되며, 시스템에서 저장되는 사물이나 사람, 장소 등을 나타냅니다.
- 속성(Attribute): 타원으로 표현되며, 엔티티의 특징이나 속성을 나타냅니다.
- 관계(Relationship): 다이아몬드로 표현되며, 엔티티 간의 관계를 나타냅니다. 일대일, 일대다, 다대다 등의 관계를 표현할 수 있습니다.
- 상태전이도(State Transition Diagram, STD)
- 상태전이도(State Transition Diagram, STD)는 시스템이 갖는 상태와 각 상태 간의 전이를 시각적으로 나타내는 다이어그램
- 상태(State): 시스템이 가질 수 있는 상태를 나타냅니다. 예를 들어, 상태 전이를 나타내는 상자 안에 상태를 표기합니다.
- 전이(Transition): 상태 간의 전이를 나타냅니다. 이벤트 또는 조건에 따라 상태가 변경됩니다. 전이는 화살표로 표현되며, 이벤트 또는 조건이나 전이를 일으키는 조건이 화살표 위에 표시됩니다.
- 이벤트(Event): 상태 전이를 유발하는 외부적인 사건을 나타냅니다. 이벤트는 전이를 일으키는 원인이 됩니다.
- 조건(Condition): 전이가 발생하는 조건을 나타냅니다. 이 조건이 충족될 때만 상태 전이가 발생합니다.
- 시작 상태(Initial State): 시스템이 처음에 가지는 상태를 나타냅니다. 전이가 시작될 때 이 상태에서 시작됩니다.
- 종료 상태(Final State): 시스템이 마지막에 도달하는 상태를 나타냅니다. 전이가 종료되는 지점입니다.
- 상태전이도(State Transition Diagram, STD)는 시스템이 갖는 상태와 각 상태 간의 전이를 시각적으로 나타내는 다이어그램
객체 지향 분석 모델
- 럼바우 방법 (Rumbaugh Method)(객동기)
- 객체 모델링(Object Modeling)
- 시스템의 구성 요소를 객체로 표현하고, 이들 객체 간의 관계를 나타냅니다.
- 객체 다이어그램
- 동적 모델링(Dynamic Modeling)
- 객체들 간의 상호 작용과 행위를 모델링하여 시스템의 동작을 이해합니다.
- 상태 다이어그램
- 기능 모델링(Functional Modeling)
- 시스템의 기능을 객체의 행위로 표현하여 요구사항을 분석합니다.
- DFD
- 사용하는 도구
- UML(Unified Modeling Language)을 사용하여 클래스 다이어그램, 상태 다이어그램, 시퀀스 다이어그램 등을 생성합니다.
- 객체 모델링(Object Modeling)
- 부치 방법 (Booch Method)(미거)
- 미시적(Microscopic), 거시적(Macroscopic) 분석: 시스템을 상세 수준과 전체적인 수준에서 동시에 분석하여 시스템의 내부 구조와 전체적인 흐름을 이해합니다.
- 구조적 다이어그램(구조 다이어그램)과 행동적 다이어그램(행동 다이어그램)을 사용합니다. 클래스 다이어그램, 상태 다이어그램, 시퀀스 다이어그램 등이 포함될 수 있습니다.
- JACONSON ( USECASE )
- USECASE(사용 사례): 시스템의 기능적 요구사항을 사용자의 관점에서 나타내어 시스템의 행위를 정의합니다. 각 USECASE는 시스템이 사용자와 상호 작용하는 방법을 나타냅니다.
- COAD YOURDON(ERD)
- 객체 모델링(Object Modeling): 객체 지향 프로그래밍 개념에 기반하여 시스템을 객체와 클래스로 분해하여 모델링합니다.
- 사용하는 도구: 객체 지향 시스템 설계를 위해 ER(Entity-Relationship) 다이어그램과 클래스 다이어그램을 사용합니다. 또한 데이터 흐름 다이어그램(DFD) 등도 사용될 수 있습니다.
- WIRFS-BROCK 방법 (분석과 설계의 구분이 없음)
- 객체 모델링(Object Modeling): 시스템의 구성 요소를 객체로 표현하고, 이들 객체 간의 관계를 모델링하여 시스템을 분석합니다.
- : UML을 기반으로 하며, 클래스 다이어그램, 객체 다이어그램, 상태 다이어그램 등을 사용합니다.
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 6. 소프트웨어 아키텍처 - 1과목 소프트웨어 구축 (0) | 2024.03.15 |
---|---|
[정보처리기사] 5. 소프트웨어 설계의 기본 원칙 - 1과목 소프트웨어 구축 (0) | 2024.03.15 |
[정처기 실기] 3. 프로젝트 계획 및 분석 - 1과목 소프트웨어 구축 (0) | 2024.03.13 |
[정보처리기사] 2. 소프트웨어 개발 방법론 - 1과목 소프트웨어 구축 (0) | 2024.03.12 |
[정보처리기사] 1. 소프트웨어 공학이란? 1과목 소프트 웨어 구축 (0) | 2024.03.11 |
댓글