Date post: | 23-Jan-2015 |
Category: |
Technology |
Upload: | siyang |
View: | 253 times |
Download: | 0 times |
1
Unsolved Problems in Requirements Engineering
Anthony FinkelsteinUniversity College LondonDepartment of Computer ScienceandLondon Software Systems
Warning! Warning! Warning!
This is a personal view
2
Problems, Problems …
problems wehave madesomeprogress on
problems thatlook more
difficult thanwe initially
thought
solved problems
unsolved problems
problemsworthsolving
problemsnot worthsolving
more
more
essence
accident
Who …
• ‘We’ may not have solved the problem
• It may not be ‘our responsibility’ to handle theunsolved problems
• Despite the fact that my presentation is largely acatalogue of unsolved problems I am bullish aboutour prospects and achievements
• Rough code
– Solved
– Partially Solved
– Unsolved
3
Grand Challenges
• What they are and the benefits they can bring
• Why they are not necessarily the ‘be all and end all’ ofa future research programme
• Where we can hope to take advantage of them
Solved [?]
• We have the component parts of sound industrialstrength requirements engineering processesappropriate to varying scales of development
– Modelling techniques
– Tools
– Practices and standards
• We are less sure how to assemble these componentsinto a coherent development process
• We have not been able to persuade enoughpractitioners of the benefits of adopting them
4
Solved [?]
• This last may be attributable to two unsolvedproblems:
• We don’t have a clear ‘economic theory’ ofrequirements engineering that allows us to reasonabout it’s costs and benefits [see later]
• We don’t have proven educational and trainingmethods and materials to support the transfer ofknowledge in this area
Solved [?]
• We have made significant progress on the applicationof formal modeling. We can build significant sizedformal specifications and we can analyse them
• Theorem proving still requires very high skill levels
• We don’t have a good idea about how to formulateproperties to reason against
5
Solved [?]
• We have developed (or judiciously borrowed) a rangeof elicitation techniques
• These techniques are largely research tools that havenot been widely applied, used in combination or atscale
Solved [?]
• We have made very significant progress onexpressing and reasoning about non-functionalproperties such as reliability, security, performance
• There is a lot further to go …• And we run slap bang into a really BIG unsolved
problem– Compositional reasoning! Which given that virtually
all the systems we want to build are subject tochange and extension suggests a major headache
6
Unsolved [?]
• Lip service is paid to the notion of requirementsengineering as a lifecycle wide activity yet most of thework that has been done is based on implicit ‘up-frontness’
• We need to build requirements engineering processesthat are better integrated with, more accuratelystitched into the fabric of the wider softwaredevelopment process
Unsolved [?]
• We still do not understand the relationship betweenrequirements and system architecture
• We know however that it is the cornerstone ofsoftware development
• We need to make ‘twin peaks’ more than a drawing
7
Unsolved [?]
• We don’t have a good understanding of how to‘bound’ systems
• So we make ad hoc decisions resulting in eithersetting the scope of investigation too narrowly andover constraining the solution or extending the scopetoo widely and consuming excessive cost on gatheringincomplete requirements
Unsolved [?]
• We are still very poor at resource estimation. We areunable to reliably predict the cost/effort required tobuild a system.
• We may be fortunate and have built a very similarsystem before. Function points are precious littleassistance.
8
Unsolved [?]
• If, as not infrequently happens, budgets getsqueezed, deadlines shortened or there are timeoverruns it may be necessary to scale-backrequirements engineering processes. We do not knowhow to do this
• More particularly we do not know very much abouthow this affects project risk
Unsolved [?]
• Requirements are rarely cut and dried. Rather there isan assemblage of competing priorities, preferencesand expectations incompletely marshalled by acomplex set of stakeholders fulfilling different roles
• We have fiddled round the edges of this problemborrowing stuff haphazardly from decision theory. Weneed to find new ways of handling this that makesthe notion of value a first class object within therequirements engineering process
9
Unsolved [?]
• We know that change is a fundamental feature of allsoftware development processes and yet ourunderstanding of requirements volatility, both itsnature and consequences, is negligible
• We must achieve an understanding sufficient to beable to develop accurate impact analysis proceduresand tools
Unsolved [?]
• There are some ‘new’ classes of systems that we havea particularly poor understanding of how to establishand manage the requirements for
• These include but are not restricted to
– Systems that must adapt to context
– Systems embedding significant COTS components
– Systems that involve user scripting and‘pluggability’
10
Unsolved [?]
• We would like to build systems that exhibitrequirements reflection. In other words systems thatare able dynamically to give an account of theirrequirements and the extent to which they havesatisfied them
• Run-time monitoring is a contribution to this though itis only a small part of the story
Unsolved [?]
• We need to preserve knowledge and experience
gained in requirements engineering so that it can be
used in similar situations
• There have been numerous attacks on this problem -
domain modelling, requirements cliches,
componentised modelling schemes all partial and all
more or less flawed
• The most convincing is problem frames but this is
merely a sketch of a possible approach
11
Unsolved [?]
• It is well known that individuals exhibit largedifferences in programming ability - only partlycorrelated with training and experience. Anecdotallythe same applies to requirements engineering (andsoftware architecture). It would be good tounderstand this better …
• Might help us to understand the activity better andget a cheap productivity boost
Unsolved [?]
• The stakeholder ‘stuff’, finding, meeting, interpreting