1. 운영체제 (OS , Operating System)
- 컴퓨터 시스템의 자원들을 효율적으로 관리, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있는 환경 제공 소프트웨어
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스
- Windows, Unix, Linux, Mac OS, Ios, Android
- 가용성, 성능, 기술지원, 주변기기, 구축비용
2. 데이터베이스 관리 시스템(DBMS)
- Database Management System
- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보 생성, 관리해주는 소프트웨어
- 데이터 종속성과 중복성의 문제 해결, 모든 응용 프로그램들이 공용할 수 있도록 한다
- 데이터베이스의 구성, 접근방법, 유지관리에 대한 총 책임
- Oracle, IBM DB2, Microsoft SQL Server, MYSQL, SQLite, MongoDB, Redis
- 가용성, 성능, 기술지원, 상호 호환성, 구축비용
3. 웹 애플리케이션 서버(WAS)
- 정적인 콘텐츠 처리를 하는 웹서버와 달리 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하는 미들웨어
- 데이터 접근, 세션 관리, 트랜잭션 관리의 라이브러리 제공
- 데이터베이스 서버와 연동해서 사용
- Tomcat, GlassFish, JBoss, Jetty, JEUS, Resin, WebLogic, WebSphere
4. 요구사항 정의
- 요구사항 : 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명, 정상 운영을 위한 제약조건 명시
기능 요구사항(Functional Requirements)
- 시스템이 무엇을 하는지 어떤 기능을 하는지
- 시스템의 입력이나 출력으로 무엇이 포함되어야 하는지, 어떤 데이터를 저장하거나 연산을 수행해야 하는지
- 반드시 수행해야 하는 기능
- 사용자가 제공받기를 원하는 기능
비기능 요구사항(Non-functional Requirements)
- 시스템 장비 구성 요구사항
- 성능 요구사항
- 인터페이스 요구사항
- 데이터 요구사항
- 테스트 요구사항
- 보안 요구사항
- 품질 요구사항
- 재약사항
- 프로젝트 관리 요구사항
- 프로젝트 지원 요구사항
5. 요구사항 개발 프로세스
- 개발 대상에 대한 요구사항을 체계적으로 도출하고 이를 분석한 후 분석 결과를 명세서에 정리한 다음 이를 확인 검증
- 도출(Elicitation) -> 분석(Analysis) -> 명세(Specification) -> 확인(Validation)
1) 요구사항 도출 (Requirement Elicitation)
- 시스템, 사용자, 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항이 어디에 있는지, 어떻게 수집할 것인지
식별하고 이해
- 청취와 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타이핑, 유스케이스
2) 요구사항 분석 (Requirement Analysis)
- 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호 한 부분 걸러냄
- 자료 흐름도 (DFD) , 자료사전(DD)
3) 요구사항 명세 (Requirement Specification)
- 분석된 요구사항을 바탕으로 모델을 작성하고 문서화
- 구체적인 명세를 위해 소단위 명세서(Mini-Spec) 사용
4) 요구사항 확인 (Requirement Validation, 요구사항 검증)
- 개발자원을 요구사항에 할당하기 전에 검토
6. 요구사항 명세 기법
- 정형 명세 기법 : 수학적 원리 기반, 모델 기반
수학적 기호, 정형화된 표기법
요구사항을 정확하고 간결 표현, 요구사항에 대한 결과가 작성자와 관계없이 일관성, 완전성 검증
사용자가 이해하기 어려움
VDM, Z, Petri-net, CSP
- 비정형 명세 기법 : 상태/기능/객체 중심
일반 명사, 동사 등의 자연어를 기반으로 서술 또는 다이어그램 작성
자연어의 사용으로 인해 요구사항에 대한 결과가 작성자에 따라 달라질 수 있어 일관성 떨어짐
사용자가 이해하기 쉬움
FSM, Decision Table, ER모델링, State Chart(SADT)
7. 요구사항 분석 개요
- 타당성 조사, 비용과 일정에 대한 제약 설정
- 사용자의 요구를 정확하게 추출하여 목표를 정하고 어떤 방식으로 해결할 지 결정
- 정확히 분석하여 문서화
- 소프트웨어 분석가에 의해 요구사항 분석이 수행되는 단계를 요구사항 분석 단계
- UML(Unified Modeling Language) , 자료 흐름도(DFD) , 자료 사전(DD), 소단위 명세서(Mini-Spec.), 개체 관계도(ERD),
상태 전이도(STD), 제어 명세서
8. 자료 흐름도(DFD)
- Data Flow Diagram: 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
- 자료 흐름 그래프, 버블 차트
1) 프로세스(Process)
- 자료를 변환시키는 시스템의 한 부분(처리 과정)
- 처리, 기능, 변환, 버블
- 원이나 둥근 사각형으로 표시하고 그 안에 프로세스 이름 기입
2) 자료 흐름(Data Flow)
- 자료의 이동(흐름)이나 연관관계를 나타냄
- 화살표 위에 자료의 이름을 기입함
3) 자료 저장소(Data Store)
- 시스템에서의 자료 저장소(파일, 데이터베이스)
- 도형 안에 자료 저장소 이름을 기입
4) 단말(Terminator)
- 시스템과 교신하는 외부 개체
- 입력 데이터가 만들어지고 출력 데이터를 받음
- 도형 안에 이름을 기입
9. 자료 사전(Data Dictionary)
- 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록
- 메타 데이터(Meta Data) : 데이터를 설명하는 데이터
= : 자료의 정의 (~로 구성되어 있다) (is composed of)
+ : 자료의 연결 (그리고) (and)
( ) : 자료의 생략 (생략이 가능한 자료) (optional)
[ | ] : 자료의 선택 (또는) (or)
{ } : 자료의 반복 (Iteration of)
{ }n : n번 이상 반복 / 최대로 n번 반복
{ }nm : m이상 n이하로 반복
* * : 자료의 설명 (주석) (comment)
10. 요구사항 분석을 위한 CASE(자동화 도구)
- 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 도구
SADT (Structured Analysis and Design Technique)
: SoftTech 사에서 개발, 시스템 정의 / 소프트웨어 요구사항 분석 / 시스템& 소프트웨어 설계를 위해
널리 사용되어 온 구조적 분석 및 설계 도구
SREM(Software Requirements Enginerring Methodology)
= RSL/REVS
: TRW사가 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술할
목적으로 개발 (RSL과 REVS를 사용하는 자동화 도구)
- RSL (Requirement Statement Language) : 요소, 속성, 관계, 구조들을 기술하는 요구사항 기술 언어
- REVS(Requirement Engineering and Validation System) : RSL로 기술된 요구사항들을 자동으로 분석하여
요구사항 분석 명세서를 출력하는 요구사항 분석기
PSL/PSA : 미시간 대학에서 개발, 자동화 도구
TAGS (Technology for Automated Generation of Systems)
: 시스템 공학 방법 응용에 대한 자동 접근 방법, 개발 주기의 전 과정에 이용할 수 있는 통합 자동화 도구
'자격증 > 정보처리기사' 카테고리의 다른 글
5과목 정보 시스템 구축 관리 (1) (0) | 2023.07.06 |
---|---|
1과목 소프트웨어 설계 (5) (0) | 2023.02.21 |
1과목 소프트웨어 설계 (4) (0) | 2023.02.21 |
1과목 소프트웨어 설계 (3) (0) | 2023.02.17 |
1과목 소프트웨어 설계 (1) (0) | 2023.02.15 |