본문 바로가기
자격증/정보처리기사

1과목 소프트웨어 설계 (2)

by 동욷 2023. 2. 15.

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)

: 시스템 공학 방법 응용에 대한 자동 접근 방법, 개발 주기의 전 과정에 이용할 수 있는 통합 자동화 도구

 

 

 

 

 

728x90