ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Non-Functional requirements - Architectural Drivers (2)
    카테고리 없음 2024. 5. 20. 19:52

    Requirements의 종류(Architectural Drivers)

    • Functional requirements : 시스템의 기능을 정의
    • Non-Functional requirements
      • System Quality Attributes : 소프트웨어 품질에 대해서 정의
      • System Constraints : 프로젝트 중 제약사항에 대해서 정의

    System Quality Attributes

    시스템이 품질을 유지할 수 있는지, 특정 측면에서 설명한다. 

    품질 속성은 기능적 요구사항과 다르게 시스템을 나타내지는 않는다.

     

    시스템 품질의 범위로는 두 가지 경우가 있다.

    • 시스템 전체에 적용되는 요구사항 ex) 온라인 쇼핑몰은 99.9%의 시간을 사용할 수 있어야한다. 
    • 특정 기능에만 적용되는 요구사항 ex) 사용자가 검색버튼을 누르면 3초이내 결과가 표시되어야한다.

    System Quality Attribute의 중요한 고려사항

    1. Testability and Measureability

     

    요구사항을 통해 품질 속성을 객관적이고 지속적으로 측정할 수 없다면 소프트웨어의 품질을 보장할 수 없다.

    따라서 주관적인 표현보다는 측정할 수 있는 수치를 명시한다.

    검색결과는 빠르게 화면에 표시되어야한다.            (X)
    검색결과는 200ms이내로 화면에 표시되어야한다.   (O)

     

    2. TradeOffs

     

    소프트웨어 아키텍처는 모든 종류의 품질 속성을 제공할 수는 없다.

    품질 속성 중 서로 상충하는 속성들이 존재하기 때문이다.

    따라서, 품질 속성 중에서도 우선순위를 정하는 것이 중요하다.

     

    TradeOff between Performance and Security

     

    예를 들어서, 성능과 보안 속성은 서로 상충하는데

    어떤 요청의 보안을 높히기 위해서 요청 사이에 인증 절차를 추가한다면 수행 시간은 오래 소요된다.

    반대로 수행 시간을 줄이기 위해서 인증 절차를 생략한다면 보안에 취약해진다.

     

    3. Feasibility(실현 가능성)

     

    터무니없는 요구사항은 구현이 불가능하다.

    시스템은 가공, 압축되지 않은 영상을 무제한으로 저장할 수 있는 저장 공간을 무료로 제공해야한다.

     

    파일을 "무제한으로 저장"할 수 있는 저장공간을 "무료" 로 제공하는 것은 실현 가능성이 낮다.

     


    System Constraints

    제약사항은 시스템을 설계할 때 권한을 제한하도록 전체나 일부에 적용된 사항들을 의미한다.

     

    제약사항의 종류

    1. Technical constraints

    • 특정 Cloud / Hardware를 사용하는 경우 : AWS, AZURE
    • 특정 Programming Language, Database를 사용하는 경우
    • 특정 OS, 브라우저 등도 해당 : IE, Chrome

     

    2. Business constraints

     

    예산 / 마감일 등 프로젝트 내부 제약사항

     

    예를들어, 온라인 쇼핑몰 개발 프로젝트에서 프로젝트 마감일이 넉넉하지 않은 경우 카드 결제 모듈은 협력업체의 API를 사용함으로써 설계가 변경될 수 있다.

     

    3. Regulatory/legal constraints

     

    문화적/법적 제약사항

     

    예를들어, 특정 국가에서는 데이터를 저장하는 기간에 대한 제약이 있을 수있다.

     

     

     

     

Designed by Tistory.