ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 개발 기술 환경 파악, 요구사항 , 요구사항 분석, CASE와 HIPO
    정처기 공부/SW설계 2023. 2. 24. 19:24

    1. 개발 기술 환경 파악

    1) 개발 기술 환경

    - S/W 개발할때 어떤 종류의 OS (운영체제) , DBMS (데이터베이스 관리 시스템) , 미들웨어 (Middle Ware) 등을 선정할지

    - 선정 시 고려할 점은 뭔지

    - 오픈 소스 사용 시 주의할 점이 뭔지

    - 를 제시함

     

    2) 운영체제 (OS)

    - 컴퓨터 시스템의 자원들을 효율적으로 관리

    - 컴퓨터를 편리하고 효율적으로 사용 가능한 환경을 제공하는 S/W

    - 컴퓨터 사용자와 H/W 간의 인터페이스 역할

    - 다른 응용 프로그램이 잘 작업될 수 있는 환경 제공

    - 종류 (컴퓨터)

    • Window
    • UNIX
    • Linux
    • MacOS
    • etc.

    - 종류 (모바일)

    • iOS
    • Android
    • etc.

    2 - 1}  OS 관련 요구사항 식별 시 고려사항

    구분 내용
    가용성 1. 시스템의 장시간 운영으로 인해 발생 가능한 OS 고유의 장애 발생 가능성
    2. 메모리 누수로 인한 성능 저하 및 재가동
    3. 보안상 발견된 허점을 보완하기 위한 지속적인 패치 설치로 인한 재가동
    4. OS의 결함 등으로 인한 패치 설치를 위한 재가동
    성능 1. 대규모 동시 사용자 요청에 대한 처리
    2. 대규모 및 대용량 파일 작업에 대한 처리
    3. 지원 가능한 메모리 크기 (32 bit, 64 bit)
    기술 지원 1. 제작업체의 안정적인 기술 지원
    2. 여러 사용자들 간의 정보 공유
    3. 오픈 소스 여부 (Linux)
    주변 기기 1. 설치 가능한 H/W
    2. 여러 주변기기 지원 여부
    구축 비용 1. 지원 가능한 H/W 비용
    2. 설치할 응용 프로그램의 라이선스 정책 및 비용
    3. 유지관리 비용
    4. 총 소유 비용 (TCO)

     

     

     

    3) DBMS (데이터베이스 관리 시스템)

    - 사용자와 DB 사이에서 요구에 따라 정보 생성

    - DB 관리하는 S/W

    - 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성 문제 해결을 위해 제안됨

    - 모든 응용 프로그램들이 DB 를 공용 가능하도록 관리함

    - 책임지는 것

    • DB 의 구성
    • 접근 방법
    • 유지관리

    - 종류 : Oracle,  IBM DB2,  Microsoft SQL,  Server MySQL,  SQLite,  MongoDB,  Redis,  etc.

     

    3 - 1}  DBMS 관련 요구사항 식별 시 고려사항

    구분 내용
    가용성 1. 시스템의 장시간 운영으로 인해 발생 가능한 OS 고유의 장애 발생 가능성
    2. 백업이나 복구의 편의성
    3. DBMS 이중화 및 복제 지원
    4. DBMS 의 결함 등으로 인한 패치 설치를 위한 재가동
    성능 1. 대규모 데이터 처리 성능 (분할 테이블 지원 여부)
    2. 대용량 트랜잭션 처리 성능
    3. 튜닝 옵션의 다양한 지원
    4. 최소화된 설정과 비용 기반 질의 최적화 지원
    기술 지원 1. 제작업체의 안정적인 기술 지원
    2. 여러 사용자들 간의 정보 공유
    3. 오픈 소스 여부
    상호 호환성 1. 설치 가능한 OS 의 종류
    2. JDBC,  ODBC  와의 호환 여부
    구축 비용 1. 라이선스 정책 및 비용
    3. 유지관리 비용
    4. 총 소유 비용 (TCO)

     

     

    4) 웹 애플리케이션 서버 (WAS;  Web Application Server)

    - 미들웨어

    - 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리함

    - 특징

    • 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리 제공
    • 주로 DB 서버와 연동해서 사용

    - 종류 : Tomcat, GlassFish, JBoss, Jetty, JEUS, Resin, WebLogic, WebSphere, etc.

     

    4 - 1} 웹 애플리케이션 서버 (WAS)  관련 요구사항 식별 시 고려사항

    구분 내용
    가용성 1. 시스템의 장시간 운영으로 인해 발생 가능한 고유의 장애 발생 가능성
    2. 안정적인 트랜잭션 처리
    3. WAS 이중화 지원
    4. WAS 의 결함 등으로 인한 패치 설치를 위한 재가동
    성능 1. 다양한 설정 옵션 지원
    2. 대규모 트랜잭션 처리 성능
    3. 가비지 컬렉션 (GC; Garbage Collection) 의 다양한 옵션
    기술 지원 1. 제조업체의 안정적인 기술 지원
    2. 여러 사용자들 간의 정보 공유
    3. 오픈 소스 여부
    구축 비용 1. 라이선스 정책 및 비용
    3. 유지관리 비용
    4. 총 소유 비용 (TCO)

     

     

    5) 오픈 소스 사용에 따른 고려사항

    - 오픈 소스 : 누구나 별다른 제한 없이 사용 가능하게 소스 코드를 공개한 것

    - 사용 시 고려할 점

    • 라이선스의 종류
    • 사용자 수
    • 기술의 지속 가능성
    • etc.

     

     

    2. 요구사항

    1) 요구사항

    - 요구사항 : S/W 가 어떤 문제 해결을 위해 제공하는 서비스 에 대한 설명 + 정상적 운영에 필요한 제약조건 등을 나타냄

    - 특징

    • S/W 개발이나 유지 보수 과정에 필요한 기준과 근거 제공
    • 개발 하려는 S/W 의 전반적인 내용 파악 가능하게 함
    • 이해관계자들 간 의사소통을 원활하게 함
    • 요구사항이 제대로 정의 되어야 이후 과정의 목표 및 계획 수립 가능

     

    1 - 1} 요구사항 유형

    - 기술하는 내용에 따라  기능 요구사항 / 비기능 요구사항  으로 구분

    - 기술 관점과 대상의 범위에 따라  시스템 요구사항  /  사용자 요구사항  으로 구분

    유형 내용
    기능 요구사항
    (Functional requirements)
    1. 시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항
    2. 시스템의 입출력으로 무엇이 포함되어야 하는지, 시스템이 어떤 데이터를 저장하거나 연산을 수행해야 하는지에 대한 사항
    3. 시스템이 반드시 수행해야 하는 기능
    4. 사용자가 시스템을 통해 제공받기를 원하는 기능
    비기능 요구사항
    (Non-functional requirements)
    1. 시스템 장비 구성 요구사항 : H/W, S/W, 네트워크 등의 시스템 장비 구성에 대한 요구사항
    2. 성능 요구사항 : 처리 속도 및 시간, 처리량, 동적 정적 적용량, 가용성 등 성능에 대한
    요구사항
    3. 인터페이스 요구사항 : 시스템 인터페이스와 사용자 인터페이스에 대한 요구사항으로 다른 S/W, H/W 및 통신 인터페이스, 다른 시스템과의 정보 교환에 사용되는 프로토콜과의 연계도 표함하여 기술
    4. 데이터 요구사항 : 초기 자료 구축 및 데이터 변환을 위한 대상, 방법, 보안이 필요한 데이터 등 데이터를 구축하기 위해 필요한 요구사항
    5. 테스트 요구사항 : 도입되는 장비의 성능 테스트 (BMT)나 구축된 시스템이 제대로 운영되는지를 테스트하고 점검하기 위한 테스트 요구사항
    6. 보안 요구사항 : 시스템의 데이터 및 기능, 운영 접근을 통제하기 위한 요구사항
    7. 품질 요구사항 : 관리가 필요한 품질 항목, 품질 평가 대상에 대한 요구사항으로 가용성, 정합성, 상호 호환성, 대응성, 신뢰성, 사용성, 유지 관리성, 이식성, 확장성, 보안성 등으로 구분하여 기술
    8. 제약사항 : 시스템 설계, 구축, 운영과 관련하여 사전에 파악된 기술, 표준, 업무, 법 제도 등의 제약조건
    9. 프로젝트 관리 요구사항 : 프로젝트의 원활한 수행을 위한 관리 방법에 대한 요구사항
    10. 프로젝트 지원 요구사항 : 프로젝트의 원활한 수행을 위한 지원 사항이나 방안에 대한 요구사항
    사용자 요구사항
    (User requirements)
    1. 사용자 관점에서 본 시스템이 제공해야 할 요구사항
    2. 사용자를 위한 것으로 친숙한 표현으로 이해하기 쉽게 작성된다.
    시스템 요구사항
    (System requirements)
    1. 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
    2. 사용자 요구사항에 비해 전문적이고 기술적인 용어로 표현한다
    3. S/W 요구사항이라고도 한다.

     

     

     

    1 - 2} 요구사항 개발 프로세스

    - 사진 참고

    요구사항 개발 프로세스

    - 프로세스 진행 전 선행되어야 할 점

    • 정보수집 : 개발 프로세스가 비즈니스 목적에 부합되는지, 예산은 적정한지
    • 평가한 보고서를 토대로 한 타당성 조사

    - 요구사항 개발 - 요구공학의 한 요소

     

    ※ 요구공학 : 무엇을 개발해야 하는지 요구사항을 정의, 분석 및 관리하는 프로세스를 연구하는 학문

     

     

    1 - 3} 요구사항 도출 (Requirement  Elicitation, 요구사항 수집)

    - 시스템, 사용자, 시스템 개발에 관련된 사람들이 서로 의견을 교환하며

    - 요구사항이 어디 있는지, 어떻게 수집할지 식별하고 이해하는 과정

    - 특징

    • S/W 가 해결해야 할 문제를 이해하는 첫단계
    • 개발자와 고객 사이의 관계 생성 및 이해관계자 식별됨
    • 다양한 이해관계자 간의 효율적 의사소통이 중요
    • S/W 개발 생명 주기 동안 지속적으로 반복됨

    - 주요 기법 : 청취와 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타이핑, 유스케이스, etc.

     

     

    1 - 4} 요구사항 분석 (Requirement  Analysis)

    - 개발 대상에 대한 사용자의 요구사항 중 불명확하거나 모호한, 이해되지 않는 부분을 발견하고 걸러내는 과정

    - 특징

    • 요구사항의 타당성을 조사하고 비용 및 일정에 대한 제약 설정
    • 서로 상충되는 요구사항 (내용 중복, 하나로 통합 되야하는 등등) 을 중재함
    • 도출된 요구사항을 가지고 S/W 의 범위를 파악
    • 도출된 요구사항을 가지고 S/W 와 주변 환경이 상호 작용하는 방법을 이해

    - 사용되는 도구

    • 자료 흐름도 (DFD)
    • 자료 사전 (DD)
    • etc.

     

    1 - 5} 요구사항 명세 (Requirement  Specification)

    - 분석된 요구사항을 바탕으로 모델 작성 및 문서화하는 것

    - 특징

    • 문서화 시 기능 요구사항은 빠짐없이 완전하고 명확하게 기술
    • 문서화 시 비기능 요구사항은 필요한 것만 명확하게 기술
    • 사용자가 이해하기 쉽고 개발자가 효과적으로 설계 가능하도록 작성되야됨
    • 설계 과정에서 잘못된 부분 확인 시 그 내용을 요구사항 정의서에서 추적 가능해야함
    • 구체적인 명세를 위해 소단위 명세서 (Mini-Spec) 사용 가능

    - 요구사항 명세 기법

    구분 정형 명세 기법 비정형 명세 기법
    기법 수학적 원리 기반, 모델 기반 상태 / 기능 / 객체 중심
    작성 방법 수학적 기호, 정형화된 표기법 일반 명사, 동사 등의 자연어를 기반으로 서술 또는
    다이어그램으로 작성
    특징 1. 요구사항을 정확하고 간결하게 표현가능
    2. 요구사항에 대한 결과가 작성자에 관계없이 일관성이 있으므로 완전성 검증이 가능
    3. 표기법이 어려워 사용자가 이해하기 어려움
    1. 자연어의 사용으로 인해 요구사항에 대한 결과가 작성자에 따라 다를 수 있어 일관성이 떨어지고, 해석이 달라질 수 있음
    2. 내용의 이해가 쉬워 의사소통에 용이함
    종류 VDM, Z, Petri-net, CSP, etc. FSM, Decision Table, ER 모델링, State Chart (SADT), etc.

     

     

    1 - 6} 요구사항 확인 (Requirement  Validation,  요구사항 검증)

    - 개발 자원을 요구사항에 할당하기 전 명세서가 정확하고 완전하게 작성 됬는지 검토하는 작업

    - 특징

    • 분석가가 요구사항을 정확하게 이해 후 명세서를 작성했는지 확인 필요
    • 점검 - 실제 요구를 반영하는지, 서로 상충되는 요구사항은 없는지 등등
    • 매우 중요 - 왜냐하면 개발 완료 후 문제가 발견되면 재작업 비용이 발생하기 때문
    • 검증할 것 - 명세서 내용이 이해하기 쉬운지, 일관성 있는지, 회사의 기준에 맞는지, 누락된 기능은 없는지 등등
    • 요구사항 문서는 이해관계자들이 검토
    • 일반적으로 요구사항 관리 도구를 이용하여 요구사항 정의 문서들의 형상 관리를 수행

     

     

     

    3. 요구사항 분석

    - 요구사항 분석 : S/W 개발의 실제적인 첫 단계, 사용자의 요구사항 이해 및 문서화 (명세화) 하는 작업

    - 특징

    • 사용자 요구의 타당성 조사하고 비용 및 일정에 대한 제약 설정
    • 요구를 정확히 추출해 목표를 정하고 어떤 방식으로 해결할지 결정
    • 요구사항을 정확하고 일관성 있게 분석하여 문서화해야 함
    • S/W 분석가가 요구사항 분석  >  이것을 요구사항 분석 단계라고 함

    - 분석 도구 : UML, 자료 흐름도, 자료 사전, 소단위 명세서, 개체 관계도, 상태 전이도, 제어 명세서,  etc.

     

    1) 자료 흐름도 (DFD)

    - 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법

    - 자료 흐름 그래프, 버블 차트 라고도 함

    - 특징

    • 시스템 안의 프로세스와 자료 저장소 사이에 자료의 흐름을 나타내는 그래프
    • 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법 사용
    • 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화됨
    • 자료 는 처리 (프로세스)를 거쳐 변환될 때마다 새로운 이름 부여
    • 처리 는 입력 자료가 발생하면 기능을 수행한 후 출력 자료를 산출

    - 자료의 흐름과 기능을 4 가지 기본 기호로 표시

     

     

    2) 자료 사전 (DD)

    - 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것

    - 메타 데이터 : 데이터를 설명하는 데이터

    - 자료 흐름도에 시각적으로 표시된 자료의 정보를 체계적이고 조직적으로 모아 개발자나 사용자가 편리하게 사용가능

     

     

    4.  CASE와 HIPO

    1)  CASE

    - 요구사항 분석을 위한 자동화 도구

    - 요구사항 자동으로 분석 및 명세서를 기술하려고 개발된 도구

    - 장점

    • 표준화와 보고를 통한 문서화 품질 개선
    • DB 가 모두에게 이용 가능한 점에서 분석자들 간의 적절한 조정
    • 교차 참조도와 보고서를 통한 결함, 생략, 불일치 등의 발견 용이성
    • 변경이 주는 영향 추적의 용이성
    • 명세에 대한 유지보수 비용의 축소

    - 종류 : SADT, SREM, PSL / PSA, TAGS, EPOS, etc.

     

     

    1 - 1}  SADT  (Structured  Analysis  and  Design  Technique)

    - SoftTech 사에서 개발함

    - 시스템 정의, S/W 요구사항 분석, 시스템 / S/W 설계를 위해 널리 이용됨

    - 구조적 분석 및 설계 도구

    - 블록 다이어그램을 채택

     

     

    1 - 2}  SREM  (Software  Requirements  Engineering  Methodology)  =  RSL/REVS

    - TRW 사가 개발함

    - RSL & REVS 를 사용

    - RSL (Requirement Statement Language) : 요소, 속성, 관계, 구조들을 기술하는 요구사항 기술 언어

    요소 요구사항 명세를 개발하기 위해 사용되는 개체와 개념
    속성 요소를 수정하거나 수식하기 위한 것
    관계 개체들 간의 관계
    구조 정보 흐름을 묘사하기 위한 것

    - REVS (Requirement Engineering and Validation System)

    : RSL 로 기술된 요구사항들을 자동으로 분석하여 요구사항 분석 명세서를 출력함

     

     

    1 - 3}  PSL / PSA 

    - 미시간 대학에서 개발

    - PSL & PSA 를 사용함

    - PSL (Problem Statement Language) : 문제 (요구사항) 기술 언어

    - PSA (Problem Statement Analyzer)

    : PSL 로 기술한 요구사항을 자동으로 분석하여 다양한 보고서를 출력함

     

     

    1 - 4}  TAGS (Technology  for  Automated  Generation  of  Systems)

    - 시스템 공학 방법 응용에 대한 자동 접근 방법

    - 개발 주기의 전 과정에 이용 가능한 통합 자동화 도구

    - 구성 : IORL, 요구사항 분석과 IORL 처리를 위한 도구, 기초적인 TAGS 방법론

    - IORL : 요구사항 명세 언어

     

     

     

    2)  HIPO

    - Hierarchy Input Process Output 의 약자

    - 시스템 분석 및 설계나 문서화 시 사용됨

    - 시스템 실행 과정인 입력, 처리, 출력의 기능 나타냄

    - 구성 : 입력, 처리, 출력

    - 하향식 S/W 개발을 위한 문서화 도구

    - 특징

    • 체계적인 문서 관리 가능
    • 기호, 도표 등을 사용해서 보기 쉽고 이해하기도 쉬움
    • 기능과 자료의 의존 관계를 동시에 표현 가능
    • 변경, 유지보수가 용이

    - HIPO Chart

    : 시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층 구조로 표현한 것

     

    -HIPO Chart  종류

    • 가시적 도표 (도식 목차) : 시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree)  구조도
    • 총체적 도표 (총괄도표, 개요 도표) : 프로그램을 구성하는 기능을 기술한 것, 입출력 및 처리에 대한 전반적인 정보를 제공하는 도표
    • 세부적 도표 (상세 도표) : 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표

    댓글

Designed by Tistory.