sw change 발생 요인
- new technology : implement 향상 가능성 존재
- business change : 새로운 시스템 요구사항 등장
- changing platform : application 변화 필요성 존재
project process model
- 로켓 제어 시스템 :
waterfall model
safety critical system (require up-front analysis)
plan driven approach -> requirement carefully analysis
- 모바일 폰 게임 sw :
increment developement model
요구사항이 유저의 시스템에 대한 경험에 따라 변경됨
복잡한 user interface system로 stable과 reliable 요구됨
Requirement Engineering
- process to establish system & constraint
- requirement
시스템이 무엇을 할 수 있는가
high level abstract service statement~ detailed system specification
- 종류
user RE
- to customer
- natural language + service diagram
- high level statement
System RE
- structured DOC
- set detail description
(system function / service / operational constraint)
- contract : customer ~ contractor
functional RE
- state functionality & system service
- what system to provide, what system not to do
- how to react to 특정 input, how to behave in 특정 situation
non functional RE
- apply to whole system
- more critical
not meet RE -> useless system
- hard to state precisely
imprecise RE -> verify 어려움
use objectively test (Metric) measurement
- define system property & constraint
(reliablity, response time, storage RE 등)
- specify 프로그래밍 언어 & 개발 방법
- software quality characteristic
Domain RE
- constrain in system operation domain
- not satisfied -> not workable
Domain RE problem
- sw developement가 이해 X
application domain 분야의 언어로 표현되기 때문
- 명백한 domain RE 만들 생각 X
해당 분야의 전문가로 이해도가 높기 때문
Requirement 조건
- precision
부정확/모호한 RE -> 서로 다른 해석
- complete
모든 RE facility description 포함 해야함
- consistency
RE facility description 간의 충돌/모순 없어야 함
이론적 : complete와 consistency 모두 동시에 만족해야함
실제적 : complete와 consistency는 서로 trade off 관계임
Software Quality characteristic





Metric

SW requirement Document
-
official document
-
user RE & system RE
-
design vs RE
RE : what system shoulddgo
design : how system should do
-> 실제로는 이 두개 분리 불가능
-
구조
user RE definition : to user, natural language
system architecture : high level, graph/diagram
system RE specification : detailed RE, interface to other
system model : graphical system model + system 간 관계
system evolution : 예상되는 변화들 + 변화에 제약 많은 design 피함
-
system RE specification 쓰는 법
natural language
structured natural language
design description language
graphical notation
mathemathical specification
-
natural language 문제점
clarity 부족
RE confusion : 기능성 비기능성 요구 mixed up
RE amalgamation : expressed together
-
structured natural language
function, entity, input, output, action 정의
pre/post condition
side effect
-
tabular specification
natural language supplement
possible alternative action course 제공
Requirement engineering process

Requirement eliciation/analysis
- find application domain / service / system operational constraint
- tech staff + customer
- stakeholder
- problem
do not know what they really want to do
express RE in their term
different stake holder ~ conflicting RE
- stage
RE discovery
RE classification/organization
RE prioritization/negotiation
RE specification
- 방법 : Interview
formal 또는 informal
closed interview : 미리 준비된 질문 리스트
opened interview : 자유롭게 여러 이해관계자와 다양한 issue 논의
- 효과적 진행
spring broad
requirement proposal
prototype system
Requirement specification
- user case
uml, actor, all possible interaction
- high level graphical model + tabular description
- sequence diagram
- scenario
Requirement validation
- 걱정 : 유저가 원하는 시스템의 요구사항을 잘 정의 했는지
- high RE error cost
- RE check
validity : RE support customer's need?
consistency : any RE conflict?
completeness : all customer required included?
realism : in available budget/tech?
verifiablity : can be checked?
Requirement management
- manage changing RE process
- keep 각자의 RE
- maintain dependent RE's link
- make formal process
change proposal
linking system RE
model
대상을 특정 관점으로 표현
- sw model : sw 수행 기능
- logical model : system 기능
- physical model : 구현/기술
modeling
모델을 만드는 것
- 규약 : 요소 정의
- 표현 : 모델링 결과
- 명세 : 상세 서술
UML
- unified modeling language
- object - oriented design
UML view
필요성 : 하나의 관점만으로 sw 표현은 어려워 다양한 다이어그램 필요
- usecase view
- 외부 actor 관점
- 시스템 기능 측면
- user case diagram
- logical view
- 내부 시스템 기능 설계
- class/package/sequence/communication diagram
- component view
- component 간의 관계
- component diagram
- concurency view
- 시스템 요소 처리 방식 보여줌
(동기/비동기)
- 개발자와 시스템 통합 위함
(자원할당, 이벤트 처리, 병렬 수행 등)
- dynamic diagram : state/sequence/communication diagram
- implement diagram : component/deployment diagram
- deployment view
- computer & 주변 기기
- 시스템 실제 배치
- deployment diagram
user case diagram
외부 actor(시스템 사용자)와 use case(user visible function) 관계 도식화
user case scenario
- 시스템 사용 실제 예시
- 이름/행위자/정상 시나리오/동시 발생 가능한 내용
- optional : 목표/시작 선행 조건/예외 시나리오/종료 조건
user realation
- include
- uc가 다른 uc 포함함
- 생성법 :
여러 단계 중복 시나리오 빼기 -> 새로운 uc로 생성 -> 새로운 uc를 각 uc에 포함
- included usercase
단독 존재 불가능
오직 부분으로 존재 가능
(notation : 화살표 머리쪽)
- extend
- uc와 그 uc의 확장 관계
- 시나리오 조건에 따라 다른 uc로 확장됨
용어 | 용어 | 뜻 | notation |
---|
extended usercase | 확장 유저케이스 | 확장해서 사용하기 위해 참조됨 | 화살표 시작쪽 |
base usercase | 기본 유저케이스 | 참조하는 us | 화살표 머리쪽 |
extended point | 확장 포인트 | 확장 uc 참조하는 지 | |
- generalization
- uc 상속
- 자식 uc = 부모 uc의 모든 행동/의미 + 자신만의 행동
- actor 사이 적용 가능
class diagram
클래스와 그들의 관계 표현
class
- attribute(속성) + operation/method(메소드)
- 임의의 유사한 객체 명세 위한 스펙
- 템플릿으로 각 객체 생성
class relation
- Association
- 개념적으로 서로 연관됨
Qualifier (식별 정보)
필요성 : 일대다 관계의 다중 연관성관계에서 한 객체가 특정 객체 식별시 사용
효과 : 식별 정보 지정해 일대다 다중 연관관계에서 일대일 다중성으로 줄임
- Inheritance
- generalization
- is a kind of
- root class : no super class
- leaf class : no sub class
- Aggregation
- 클래스 하나가 여러개의 클래스로 구성됨
- part of, 부분-전체, has-a, consist of
- notation : 빈 마름모
- Composition
- 강한 집합 관계 (반드시 그 클래스로 이루어져야함)
- sub class는 오직 한개의 super class만 가짐
- notation : 채워진 마름모
- Dependency
- 한 클래스 operation이 다른 클래스를 사용함
interface & realization
- 클래스들의 일정한 behavior/같은 signature 가지는 operation 집합
- 다른 클래스에서 사용 가능
Abstruct class
package diagram
연관된 클래스 집합
MVC architecture
- entitiy classes
- 시스템 내부 기능 수행
- 시스템 중심 내용 모델링
- boundary classes
- 다른 사용자/환경 사이 인터페이스
- 시스템 내부 & 외부 사이 소통
- control classes
- usercase 속 연속적인 behavior 모델링
sequence diagram
- 시간 경과에 따른 객체 interaction 표현
- object, message, time, object life time, activation
- 시간 순 시나리오 표현
communication diagram
- 객체 간의 상호 관계 표현
- class 간 관계 파악 용이
비기능적 요구 사항
Requirements Engineering Process