ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OOP/UML] UP - Inception 단계
    Learn/OOP&UML 2022. 9. 18. 00:23

    # 개요

    보통 1주간 진행되는 짧은 단계로 아래의 질문들에 대해 생각해본다. 

    • What is the vision and business case for this project?
    • Feasible?
    • Buy and/or build?
    • Rough unreliable range of cost: Is it $10K-100K or in the millions?
    • Should we proceed or stop?

    대부분 Brief format (3줄 정도) 수준으로 작성한다. 

     

    # Artifacts

    그렇게 많은 UML을 그리지 않는다. 필요한 만큼만 그린다. 

    # Requirements

    시스템을 만족하기 위한 Capabilities와 Conditions를 뜻한다. 

     

    Requirement를 찾는 것을 Requirement analysis라고 하는데,

    UP에서는 iteratively하고 skillfully하게 진행한다. 

    • waterfall에서는 초기에 다 찾아야 하므로 iteratively 하지 않다. 
    • 고객과 함께 requirements workshop을 하고 계속해서 데모를 보여주며 확인한다. (agile방식)

    ## 종류

    요구사항은 아래 다섯 가지 카테고리와 기타로 나뉘는데 약자를 따서 FURPS+라고 한다. 

    Supportability 대신 요즘은 Security를 많이 쓴다. 

    • Functional : features, capabilities, security
    • Usability : human factors, help, documentation
    • Reliability : frequency of failure, recoverability, predictability
    • Performance : response times, throughput, accuracy, availability, resource usage
    • Supportability : adaptability, maintainability, internationalization, configurability

    위는 오래된 방식이고, 보통은 쉽게 Functional / Non-Functional Requirements로 구분한다. 

     

    Functional RequirementsUse case로 작성하고,

    Non-Functional RequirementsSupplementary Specification으로 작성한다. 

     

    Non-Functional Requirements는 Quality attributes/requirements라고도 부른다. 

    시스템에 따라서는 이게 더 중요하고 아키텍쳐에 영향을 많이 준다. (특히 Security쪽)

     

    이 모든게 elaboration 단계에 가면 Software Requirements Specification (SRS)에 작성된다. 

     

    ## Non-functional requirements

    Use Case에 적히는 요구사항 외에 Glossary, Vision, Business Rules 등이 있는데

    이런 것들은 모두 Supplymentary Specification에 적힌다. 

     

    예시는 아래와 같다. 

    # QUIZ

    정답: 1번. Elaboration phase에서 한다. 

    3번 - Elaboration에서는 구현해보면서 해결하는 것이고 Inception에서 찾긴 해야 한다. 

    4번 - Inception 단계에서는 feasibility 확인을 위해 prototype을 만든다. 

     

    정답: 3번. 기능 요구사항도 아키텍쳐에 큰 영향을 미치지만 비기능 요구사항도 아키텍쳐에 큰 영향을 미친다. 

     

    다만 비기능 요구사항은 기능 요구사항만큼 큰 문제를 일으키진 않는다. 

    가령 속도가 느리다고 출시가 안되는건 아니다. 

    정답: 2번. Use Case는 요구사항을 뽑아내기 위한 것이므로 OOAD뿐만 아니라 C나 C++에서도 효과적이다. 

     

    Use Case를 작성할 때는 구체적인 시스템이 확정된 단계가 아니므로 더더욱 맞지 않다. 

    'Learn > OOP&UML' 카테고리의 다른 글

    [OOP/UML] UP - Elaboration 단계 / OOD  (0) 2022.09.21
    [OOP/UML] UP - Elaboration 단계 / OOA  (0) 2022.09.18
    [OOP/UML] OOAD, UP 기본 개념  (0) 2022.09.17
    [OOP/UML] Component Diagram  (0) 2022.08.17
    [OOP/UML] Activity Diagram  (0) 2022.08.17

    댓글

Designed by Tistory.