ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 요구사항 분석과 명세화
    Topcit/소프트웨어 개발 2018. 6. 11. 15:05
      1. 소프트웨어 요구사항 분석
        1. 요구사항 분석 개요
          1. 요구사항은 프로젝트 범위와 규모를 결정하는 가장 중요한 정보이다.
          2. 프로젝트 전체 과정 적극적인 변경, 추적 관리를 통한 현행화가 반드시 필요하다.
          3. 요청자의 요구사항을 개발하고자 하는 시스템의 범위와 특징에 맞추어 정제해 가는 과정
          4. 설계를 진행하기 이전 주어진 시스템에 대한 이해도를 높여가는 과정
          5. 요구사항 분석 단계의 주요 초점은 How 아닌 What 맞춰져 있다.
          6. 시스템이 수행할 가능에 초점을 맞추어 시스템의 목표를 기술하며 어떻게 수행 될지는 기술하지 않는다.
        2. 요구사항 분류
          1. 기능적 측면
            1. 기능적 요구사항
              1. 목표 시스템 구현을 위하여 요구되는 소프트웨어 기능과 속성
              2. 시스템에서 필요한 기능, 동작, 행위를 직접적으로 기술
            2. 비기능적 요구사항
              1. 시스템의 전체 품질, 특성을 정의하기 위한 요구사항
          2. 관리적 측면
            1. 지속적 요구사항
              1. 조직의 핵심 활동 관련 안정된 요구사항
              2. 문제 영역을 모델로부터 유도
            2. 휘발성 요구사항
              1. 시스템의 개발 환경이나 사용자의 요구에 의해 변화하는 요구사항
        3. 요구사항 분석의 어려움
          1. 문제영역에 대한 전문적인 지식보유가 어려움
          2. 참여자간 관점 차이로 인한 분석의 일관성 유지의 어려움
          3. 프로젝트 대규모화에 따른 의사소통 복잡성 증가로 인한 어려움
          4. 요구사항의 지속적인 변경으로 인한 추적관리의 어려움
        4. 기능적 요구사항, 기능적 요구사항 추출 방법
          1. 기능적 요구사항 추출 방법
            1. 기능
              1. 시스템의 수행 목적 파악
              2. 시스템의 수행 시점, 운용 수행 모드 파악
              3. 시스템의 변경, 확장 시점 파악
            2. 자료
              1. 입력, 출력 자료 자료형태
              2. 자료의 정확도 시스템에 유입되는 자료량
              3. 데이터 보관 기간
            3. 인터페이스
              1. 자료 전달에 사용되는 특정 미디어 유무 파악
              2. 외부 시스템에서 유출, 유입되는 입력 파악
              3. 데이터의 특정 형태 여부
            4. 사용자
              1. 시스템의 사용자 파악
              2. 사용자 그룹, 사용자 그룹의 컴퓨터 사용 경험 파악
              3. 사용자 그룹별 필요 교육 파악
          2. 기능적 요구 사항 추출 방법
            1. 자원
              1. 시스템 구축 유지보수 필요한 자원, 인력 파악
              2. 개발자가 갖추어야 역량
              3. 사용할 하드웨어의 특징
              4. 시스템의 전력, 온도, 습도에 대한 연구
              5. 개발 시스템의 저장 공간 제약 사항
            2. 성능
              1. 시스템 속도, 반응 시간, 처리율, 처리 자료의 크기
            3. 보안
              1. 자료, 시스템에 대한 접근 통제 여부
              2. 사용자의 역할, 책임 권한 할당
              3. 시스템 백업 기간 책임자
              4. 재난에 의한 대비책
              5. 물리적 보안 대책
            4. 품질
              1. 신뢰성, 가용성, 유지보수성, 보안 품질 특성에 대한 요구
              2. 시스템에 가동되는 평균 시간
              3. 시스템 작업 중단 복구 허용 시간
              4. 설계 변경의 용이성
              5. 자원 사용과 반응 시간 측정 방법의 효율성
      2. 모델링
        1. 정의
          1. 대상 시스템의 성능, 동작과정 분석을 위해 간단히 도식화 하거나 시스템의 특징을 수학적으로 표현하는 과정
        2. 관점
          1. 기능 관점
            1. 소프트웨어가 어떠한 기능을 수행하는 가의 관점에서 시스템을 기술
            2. 주어진 입력에 대하여 어떤 결과가 나오는가를 보여주는 관점
            3. 연산, 제약 조건 묘사
          2. 동작 관점
            1. 소프트웨어의 동작, 제어에 초점을 맞춤
            2. 시스템의 상태, 상태를 변하게 하는 원인을 묘사
          3. 정보 관점
            1. 시스템에 사용되는 정보 객체를 찾아내고 객체의 특성, 객체들 사이의 관계, 연관성 규명
      3. 구조적 분석 기법
        1. 정의
          1. 소프트웨어를 기능 관점에서 프로세스로 바라보고 처리 위주로 모델링하는 방법
        2. 자료 흐름도
          1. 전체적인 자료의 흐름을 표현하는 분석 산출물
          2. 최상위 배경도부터 필요한 수준까지 지속적인 분할 과정을 거쳐 완성된다.
        1. 소단위 명세
          1. 원시 프로세스가 어떤 기능을 수행하는지 기술하는
            1. 원시 프로세스 : 분할이 완료된 자료흐름도의 최하위 프로세스
        2. 자료 사전
          1. 자료 흐름도의 자료 항목에 대한 정의에 모아 놓은
      1. 객체지향 분석
        1. 정의
          1. 주어진 문제 영역을 세계 안에 존재하는 객체의 집합으로 보고 객체들 사이의 상호작용을 나타낸
          2. 객체의 재사용성, 참여자의 이해도를 높일 있다.
        2. 유스케이스
          1. 고객과 시스템 개발자 사이에 의사소통을 원활히 주며, 고객의 요구사항을 알아내는데 효과적이다.
          2. 고객의 적극적인 참여를 유도하여 고객의 요구사항을 빠르게 파악할 있다.
          3. 유스케이스 기법은 이해 관계자를 찾아내고 이를 액터로 분류한다.
          4. 액터가 사용하는 기능들을 유스케이스로 식별한다.
          5. 이러한 유스케이스에 대하여 시나리오를 작성한다.
        3. 정보 모델링
          1. 유스케이스 시나리오를 바탕으로 액터와 시스템이 주고받는 정보들을 찾아낼 있다.
          2. 정보들을 바탕으로 정보 모델링을 수행하고 클래스 다이어그램으로 나타낸다.
          3. 정보 모델링을 통해 시스템에서 요구되는 클래스, 클래스 사이의 연관성, 속성을 찾아낸다.
        4. 동적 모델링
          1. 객체의 상태, 동작의 변화, 상호 작용에 관심을 두고 클래스의 오퍼레이션을 찾는 과정
          2. 시퀀스 다이어그램을 사용하여 객체들 사이의 상호작용을 밝혀내고 클래스의 오퍼레이션을 도출한다.
        5. 기능 모델링
          1. 액티비티 다이어그램은 복잡한 프로세스의 처리 과정을 이해하거나 추가적인 오퍼레이션을 식별하는데 사용된다.
      2. 요구사항 명세화
        1. 정의
          1. 요구사항 분석 과정을 통해 사용자의 요구사항, 시스템의 기능이 규명되고 문서화되어야 한다.
          2. 요구사항 분석 과정의 산출물을 요구사항 명세서라고 한다.

       


    'Topcit > 소프트웨어 개발' 카테고리의 다른 글

    객체지향 설계 과정  (0) 2018.06.11
    소프트웨어 아키텍처 설계  (0) 2018.06.11
    소프트웨어 설계 원리  (0) 2018.06.11
    소프트웨어 기반 기술  (0) 2018.06.11
    소프트웨어 개발 및 관리  (0) 2018.06.11

    댓글