Owl Life

5. Requirement Engineering 본문

Software Architecture

5. Requirement Engineering

Owl Life 2022. 12. 4. 17:50
반응형

Definition of SW Quality

주어진 요구사항을 만족시킬 수 있는 소프트웨어의 기능 및 특성.

 

Conventional NFRs in ISO 9126

Types of Quality Aspects

Process Quality

Quality of Life-cycle Process

Internal Quality

Quality of Intermediate Artifacts

External Quality

Quality of Implementation Code

Quality in Use

소프트웨어가 동작하는 환경에서의 사용자 관점에서의 퀄리티
ex) 실행 속도 등

소프트웨어 실행하면서 발생되는 결과로부터 평가

 


Quality Model of ISO 9126

6 Main Factors(FRUMPE) and Sub-Factors for each

Quality Model은 크게 External, Internal Quality로 나뉠 수 있음.

Functionality

기능 적합성. 소프트웨어가 사용자의 요구기능을 충족 시키는가? 목적했던 기능이 정확히 동작하는가?

Reliability

기능이 오차나 오류 없이 동작하는가? 일관된 결과가 도출되는가?

  • Maturity (성숙성)
    소프트웨어의 결함으로 인한 실패를 방지하는 소프트웨어 제품의 기능.
  • Fault Tolerance (결함 허용성)
    소프트웨어 결함 또는 지정된 인터페이스 침해의 경우에 특정 수준의 성능을 유지하는 소프트웨어 제품의 기능.
  • Recoverability (복구성)
    소프트웨어 제품이 지정된 수준의 성능을 재설정하고 장애 발생 시 직접 영향을 받는 데이터를 복구하는 기능
  • Reliability Compliance  (신뢰성 준수)
    신뢰성과 관련된 표준, 규약 또는 규정을 준수하는 소프트웨어 제품의 능력

Usability

쉽게 배우고 사용할 수 있는가?

Efficiency

기능을 수행하는데 적절한 자원이 소요되는가? 기능이 필요한만큼 빠르게 수해오디는가?

Maintainability

변경 및 오류 교정 시 쉽게 수정할 수 있는가?

Portability

다양한 플랫폼 및 하드웨어에서도 동작하는가?

 


Process of Requirement Engineering (REP)

요구사항을 정의, 문서화 및 유지 관리하는 프로세스. 시스템에서 제공하는 서비스를 모으고 정의하는 과정.

주요 과정

  1. 요구사항 추출
  2. 요구사항 모델링과 분석
  3. 요구사항 우선순위화
  4. 요구 명세
  5. 품질 요구
  6. 요구 검증과 변경 관리

요구사항 추출

프로젝트 도메인 및 요구 사항에 대한 지식을 얻는 데 사용되는 다양한 방법과 관련이 있음.

사용되는 기술에는 인터뷰, 브레인스토밍, 작업 분석, 프로토타이핑 등이 포함되어 있음.

이 단계는 이해된 요구사항의 공식 모델을 생성하지 않음. 대신 분석가의 도메인 지식을 넓히고 다음 단계에 입력을 제공하는데 도움이 됨.

 

요구사항 모델링과 분석

공식적인 소프트웨어 요구 사항 모델을 생성하는데 사용. 추상적 요구사항을 정확하고 상세하게 정의.

시스템 기능, 성능 및 인터페이스 등을 정의. 고객의 needs가 충족됨을 확인

이 단계에서 사용되는 모델로는 Enterprise Modeling, Data Modeling(DFD), Behavioural Modeling, Domain Modeling, NFR Modeling 등이 있다.

 

요구사항 우선순위화

고객의 Needs와 요구사항 사이의 match가 성공을 결정.

단계

  1. Define Priority classes
    High / Medium / Low // 1~10 score
  2. Assess Priority Data
    모든 참여자가 Priority Scale에 따라 분류
  3. Resolve Differences
    우선순위에 대한 Informal Agreement 확보
  4. Create schedules based on priorities
    각 요구사항의 작업 시작과 종료 시점

요구 명세

요구문서는 완전하고, 일관성이 있어야 한다.

명세는 모든 필요로 하는 요소를 포함하고 있어야 한다.

명세에 포함된 요소들 간에는 모순이나 충돌이 없어야 한다.

품질 요구

품질 속성은 기능, 비기능 관점을 모두 포함.

"Quality Model of ISO 9126" 참고

품질 속성 시나리오 활용. (Source, Stimulus, Artifacts, Environment, Response, Response Measure)

 

요구검증과 변경관리

변경을 이해하고, 관리하라.

요구사항 관리를 위한 커뮤니케이션을 제공.

요구사항 변경으로 개발에 대한 영향을 최소화.

Agile하게 고객의 Needs 변화를 요구사항 변경으로 반영

 


Agile Constructs for Requirement Management

요구사항 변경은 필연적임.

→ 개발 초기에 고객은 원하는 요구사항을 정확히 표현하지 못함.

그러므로 변경을 이해하고, 관리하라.

Agile하게 고객의 Needs 변화를 요구사항 변경으로 반영

 

Requirements for Platform Software

Q) How do you define / refine requirements for Platform Software?

비기능이기 때문에 Non Functional Requirements에 명세합니다.

 

Non-Functional Requirements (NFRs)

소프트웨어 기능들에 대한 조건(시스템의 속성)과 제약사항에 관한 요구사항

  • 기능적 요구사항보다 더 결정적인 부분이 될 수 있다.
    why? 이부분이 충족되지 않으면 시스템 이용가치 X

각각의 특징과 서비스보다는 전체적인 시스템에 적용

비기능적 요구사항 
제품 요구사항
(Product Requirement)
사용성(Usability)  :   사용자가 어떻게 쉽게 사용할 수 있는가
효율성(Efficiency) 성능(Performance)  :  특정 기능이 특정시간 내에 실행 
공간 (Space)  :  특정 기능 수행시 메모리를 최대 얼마까지 사용할 수 있는가 
신뢰성(Reliableility)  :  특정 기능 실행시 실패할 가능성이 몇 %보다 낮아야 하는가 
이식성 (Portability)  :  다양한 플랫폼 위에서 작동하는가 
조직 요구사항 
(Organizational
Requirement)
배포(Delivery)  :  소프트 웨어를 어떻게 배포할 것인가 
구현(Implement)  :  소프트웨어 구현 ; 어떤 방법론? 어떤 프로그래밍 언어?
표준(Standard)  :  소프트웨어 개발 시 어떤 표준을 따를 것인가 
외부 요구사항
(External Requirement)
상호 운용성 (Interoperability)
구현할 소프트웨어가 다른 소프트웨어와 어떻게 연동할지 정의 
윤리적 (Ethical)  :  소프트 웨어의 내용의 윤리적 범위을 정의 ex) 성인용 게임 19세 이상  
법적 (Legislative)  사생활(privacy)   ex) 공개범위 선택
안전성(safety)     ex) 자료 저장방식, DBMS 어떤것? 자료의 암호화 여부 

 

 

 

반응형

'Software Architecture' 카테고리의 다른 글

7. Skeleton / Core Architecture  (0) 2022.12.04
6. Software Architecture Styles  (0) 2022.12.04
GOF - Software Design Pattern  (0) 2022.12.04
3. Principles of SW Design  (0) 2022.12.01
2. OO Analysis and Design (OOAD)  (0) 2022.12.01
Comments