Software Requirement Engineering Chapter 1: Requirement Requirement Engineering 1. Denition of RE: The process process of establishing establishing the services services that the the customer requires from a system & the constraints under which it operates & is developed. 2. Req.: may range from a high-level abstract statement of a service/of a system to a detailed mathematical functional specication. specication. . Type of Req.: - User Req.: statements in natural language ! diagrams of the services the system provides & its operational constraints. "ritten for customers. - System Re Req.: # structured document setting out detailed descriptions of the system$s function% services & operational constraints. ene what should be implemented so may be part of a contract between client & contractor. '. Funtiona! " #on-funtiona! Req. - (unctional )eq. o *tatements of services the system should provide% how the system should react to particular inputs & how system should behave in particular situations. o +ay state what the system should do )eq. ,mprecision o #mbiguous req. may be interpreted in di. ways by developers & users. o )eq. ompleteness & onsistency )eq. should be complete omplete They should include descriptions of all facilities required. onsistent They should be no con0icts/contradictions con0icts/contradictions in the descriptions of system facilities. - on-f on-fun unc ctio tional nal )eq )eq.. o onstraints on the services or function oered by the system such as timing constraints% constraint on the dev process% std.. Type of #on-funtiona! req. o
o
on-functional )eq. ,mplementation +ay aect the overall architecture of a system rather than individual +ay generate a number of related functional req. that dene system services that are required. +ay generate req. that restrict eisting req. on-functional )eq. lassications 3roduct )eq. )eq. which specify that the delivered product must behave in a particular way 4rgani5ational )eq. )eq. which are a consequence of organi5ational policies & procedures 6ternal )eq. )eq. which arise from factors which are eternal to the system & its dev. 3rocess 7oals & )eq. 7oal # general intention of the user such as ease of use. 9eriable on-functional )eq. # statement using some measure that can be ob:ectively tested +etrics for *pecifying on-functional )eq.
o
•
•
•
o
o
-
omain )eq. o onstraints on the system from the domain of the operation o 3roblems ;nderstandability )eq. epressed in language of the application domain ,mplicitness omain specialist understand the area so well that they do not thin< of ma
•
•
Chapter $: Requirements Engineering %roess 1. %roesses - 3rocess an organi5ed set of activities which transforms inputs to output 2. Software De&e!opment %roess - # structured set of activities required to develop a software system. - *oftware processes o *pecication o esign o 9alidation o 6volution . Software %roess 'o(e! - #n abstract representative of a process - 3resent a description of a process from some particular perspective - 3rocess descriptions may include o %ro(uts the outcomes of a process activity Ro!es re0ect the responsibilities of the people involved in the o process o %re- " %ost-on(itions statements that are true before and after a process activity has been enacted or a product produced - Types of Software %roess 'o(e! o 3lan-driven processes #ll of the process activities are planned in advance and progress is measured against this plan
)aterfa!!
*nrementa!
o
#gile processes 3lanning is incremental and it is easier to change the process to re0ect changing customer requirements. 3rinciple
+% %raties
'. Req. Eng. %roess - 7eneric #ctivities o )eq. 6licitation o )eq. #nalysis o )eq. 9alidation o )eq. +anagement
-
)6 3rocess ,nputs & 4utputs
-
)6 3rocess 9ariability o 9ary radically from one organi5ation to another o (actors Technical maturity isciplinary involvement 4rgani5ational culture #pplication domain =. )equirements 6licitation & #nalysis - )eq. gathering/)eq. discovery - ,nvolves technical sta wor
ST,E/0DERS? - Types of Staeho!(er o *oftware engineers responsible for system development o *ystem end-users who will use the system after it has been delivered o +anagers of system end-users who are responsible for their wor< o 6ternal regulators who chec< that the system meets its legal requirements o omain eperts who give essential bac
Req. prioriti2ation " negotiation 3rioriti5ing req. and resolving req. con0icts Req. speiation o )eq. are documented and input into the net round of the spiral - %ro3!ems: o *ta
the customer$s needs@ Consisteny . #re there any requirements con0icts@ Comp!eteness . #re all functions required by the customer o included@ Rea!ism. an the requirements be implemented given available o budget and technology 5eria3i!ity. an the requirements be chec
-
-
an the requirement be changed without a large impact on other requirements@
6. Req. 'anagement - 3rocess of managing changing req. during the req. eng. 3rocess & system dev. - ew req. emerge as system being dev - hanging )eq. o Ausiness & technical environment of the system always changes after installation o The people who pay the system & user are not the same people - hange #nalysis & osting
-
)eq. 6volution
-
)eq. +anagement 3lanning o ecision Requirements i(entiation 6ach req. must be uniquely identied so that it can be cross referenced with other req. , hange management proess This is the set of activities that assess the impact and cost of changes. , discuss this process in more detail in the following section. Traea3i!ity po!iies •
•
These policies dene the relationships between each req. and between the req. and the system design that should be recorded. Too! support Tools that may be used range from specialist req. management systems to spreadsheets and simple database systems. )eq. Traceability o ,nformation which helps you assess the impact of req. change. ,t linwhich may have preceded the req. document? to relevant req. •
•
-
o
Types of Traea3i!ity )eq.-sources traceability Bindependents and is dependent on?. )eq.-architecture traceability Bin
o
Bin
7. RE %roess %ro3!ems - Bac< of sta
Chapter 8: Feasi3i!ity Stu(y 1. Feasi3i!ity Stu(y - To nd out whether the system is worth implementing & if it can be implemented% given the eisting budget & schedule.
-
-
,nput to the feasibility study o # set of preliminary business req. #n outline description of the system & how the system is intended o to support business process 4utcome of feasibility study report to recommend on doing the )6 & system dev process or not
2. Feasi3i!ity Stu(y " ,na!ysis - Feasi3i!ity Stu(y C measure of how benecial/ practical the dev. of an information system to an organi5ation - Feasi3i!ity ,na!ysis C the process by which feasibility is measured. - haracteristic of feasibility study o ,nepensive o Duic< o #ccurate - 3urpose o Eelps answer the question of whether to go forward with the software requirements. o 6valuate alternatives The feasibility study helps to FframeG and F0esh-outG specic
requirements scenarios so they can be studied in-depth. o *tudy results 4utline in depth the various requirements scenarios eamined and the implications% strengths and wea
-
*chedule (easibility 6conomic (easibility >cost-benet analysis?
Chapter 9: Req. E!iitation 1. E!iitation ,ti&ities - #pplication domain understanding o Hnowledge of the general area where the system is applied. - 3roblem understanding o etails of specic customer problem where the system will be applied must be understood. - Ausiness understanding o +ust understand how systems interact & contribute to overall business goals. - ;nderstanding the needs & constraints of system sta
-
/3;eti&e Setting #n outline descriptions of the problem to be solved% why the system is o necessary & constraints on the system. -
o
o
onsistency & completeness chec
- Req. #egotiation o )eq. iscussion problematic req. being discussed )eq. 3rioriti5ation identify critical req. o o )eq. #greement solution to req. problems are identied '. E!iitation Tehniques - *pecic techniques which may be used to collect
•
•
•
•
• • • • •
o o o
4bservation & *ocial analysis )eq. reuse 3rototyping #n initial version of a system which may be used for eperimentation ;ser can eperiment the system and point out its strength & wea
•
•
•
•
•
•
•
•
•
•
•
•
•
•
o
a fourth generation language or other rapid development environment is used to develop an eecutable prototype
=. Req. ,na!ysis - To discover problems% incompleteness & inconsistencies in the elicited req. - ,nterleaves with elicitation as problems are discovered when the req. are elicited - 3roblem chec