✍️ Get Writing Help
WhatsApp

P10518055 MSc Software Engineering

Expert Systems-based Supports for Agile Requirements
Engineering
Yoshihiro Kawamura
P10518055
MSc Software Engineering
De Montfort University
January 21, 2011
Introduction
Requirements Engineering (RE) is a necessary process to develop requirements by analysing the
inputs with the various documentation for resulting observations, and validating the correctness of the outputs. Developing high-quality requirements results in developing a dependable
system. Agile software development, which is suitable for recent developing-fast and changeable
software requirements, does not adapt structured RE methodologies that are given in the existing waterfall software development model. A number of research papers struggle with achieving
the unique RE approach for the agile method. The agile method uses the customer-oriented
approach for RE: system metaphor, on-site customer and many-times acceptance testing.
Even though focusing on customers, the lapse in requirements understanding between customers and developers is still broad because of their different technical domain knowledge.
Expert systems are one of the solutions to remove ambiguity based on knowledge taken from
experts. The aim of this research is to adapt the expert systems to RE for the agile in order
to augment comprehension of requirements between clients and developers as well as reduce
ambiguity.
1 Background
Agile Methods
The innate problems with software projects which differ from those with so-called general
projects make it difficult to ensure quality in the software project. Intangibility, complexity and
flexible changeability in terms of the requirements of clients result in disturbing the projects to
be successful [3]. Recently, agile software development has been acquiring a stronger standpoint
than the traditional waterfall model because it conforms with frequent requirement changes
and the demands of the rapid development process. When it comes to the traditional waterfall
model, the RE deals with the requirements of the system by acquiring them unambiguously
from customers, documenting them formally and transferring the documents to developers to
implement the defined system [8]. The reason why the formalised documents are used is because
the waterfall model has a role which is to deal with the defined stage step by step. Therefore if
requirement defects attributable to unambiguous requirements treatment are found, restarting
from the beginning stage, which is requirement acquisition, wastes time and costs too much.
Compared to that model, the agile method combines iterative development and prototyping
together. The RE methodology for the agile method is simpler and more customer-based than
the existing methodology, which uses a rigid process. The system metaphor is to present a
1
brief system story about how it works by explaining the main process flow. It makes sure the
gap between customers and developers is found and corrected in a short time [4]. The on-site
customer is not a particular approach, but the principle for customers to follow. According
to this principle, customers should be a fellow worker or developer during the development
process, who refine and correct their requirements [4]. At the end of one iterative cycle of
development, the achievement of the cycle is tested by acceptance testing. Acceptance testing
is another methodology for customers to provide feedback in terms of the achievement, based
on the requirements specified by the customers [4]. After the prototype is accepted, the system
metaphor is carried out to elicit the requirements for the next iteration.
Expert Systems
Expert systems mimic human experts by using rules of thumb or heuristics to find out the
answers logically [7]. Expert systems are one of the subcategories of artificial intelligence,
therefore implementing expert systems needs to consider how to represent human knowledge,
how to decide the answers logically and how to manage that knowledge. Lenat and Guha [10]
state ”if a program is to perform a complex task well it must know a great deal about the world
in which it operates”. This idea notifies how expert systems can be used in specific domain
effectively.
Basic architecture divides expert systems into knowledge base, inference engine and user
interface. Knowledge base is the collection of rules and facts, which are acquired from expertise
and used to search for the appropriate answers [6]. The inference engine is the bridge between
knowledge base and user interface to answer the users’ questions by selecting rules and facts
taken from the knowledge base [6]. User interface provides the environment where users can
interact in expert systems without any specific domain knowledge, and can trace the rules for
reasoning if the users know why the inference is produced [1].
2 Literature Review
The advantages of expert systems are more persistent than human expertise [1]. Generally, agile
requirement analysis provides the on-site customer approach, but it seems to be not achieved
partly because customers have their own works and their own schedule. Furthermore, considering the increasing demands of outsourcing software development to reduce the costs of human
resources, communication by means of the on-site customer approach does not work because the
physical distance is so great and the time difference is so large that it is difficult for customers
to meet developers whenever they require their help [9]. Another advantage of expert systems is
that they can solve the problem by transferring the expert system itself onto any PCs through
the network and utilising it anywhere [1].
Iorgulescu [6] has struggled to validate the expert systems technology used in system engineering by presenting some conceptual applications and examples implementing the technology.
The process of system engineering is divided into requirement definition, system integration and
requirement verification [6].
The disadvantage of expert systems is that implementing the systems takes considerable
time to interview domain experts to acquire rules and the inference model. Tang et al. [12]
introduced the expert system-based approach to select appropriate RE techniques. Its approach achieved their goal by using online questionnaire to collect domain knowledge from 50
respondents and translating a large amount of data into knowledge in spite of the disadvantage.
2
3 The Aim of the Research
The aim of this research is to mingle the techniques of agile methods and expert systems in
order to achieve unambiguousness of requirements without losing the rapidity of development,
which is one of the agile methodologies. This aim is divided into the following sub-objectives.
1. Design algorithms to convert raw data collected from a number of expertises into knowledge
2. Create an expert system model for agile RE
3. Develop a software implementing the expert system
4. Assess whether the expert system can support the agile software project efficiently
Knowledge is different from data because knowledge can actively generate and derive new information, but data itself does not express information [1]. The first sub-objective is considering
how to generate knowledge based on the data used for agile RE. The second and third subobjectives are sequential. Before implementing the expert system, the model for agile RE is
identified and created to make sure it is possible to implement the expert system clearly following the model. The fourth sub-objective will be achieved by applying the systems in software
organisations and assessing the effects of that.
To achieve these sub-objectives, it is necessary to tackle many obstacles found passing
through the literature review.
4 Methodology
The methodology to achieve the aim of this research as well as to take care of the problems
is determined briefly in this section. An abstract process model adapting our methodology is
depicted in Figure 1. The main part of the process model is based on the basic architecture
of expert systems [6]. The difference between the existing expert systems and the model is
the raw data is acquired from the experts locating anywhere by using online questionnaire. To
realise that, a new algorithm to translate the data into knowledge used in knowledge base is
applied. It is beneficial for agile method because it reduces the costs and time to interview
some experts. In addition, the unique data related to individual agile projects is taken from
the developers and customers during their projects by interviewing them directly. This model
puts agile method and expert systems together, thereby this model can reduce the ambiguity
generated in the agile development without losing agile principles [2], customer-based, rapid
and iterative development and good-interaction between customers and developers.
The first work package will be the literature review. The wider knowledge in terms of expert
systems, what kinds of models are introduced in relevant research and how to implement it,
increases the feasibility of this research. As well as that, the categories of requirements of the
agile method are clarified by reviewing papers relevant to requirements engineering and IEEE
standard 610, 12-1990 [5] to collect appropriate data in the third work package.
The second work package will be to identify the expert system model. It should be the
model that can bridge the respective domain knowledge of developers and customers as well
as keep agility and flexibility for the agile method. In order for an expert system for agile RE
to be identified, what rules in the knowledge base have to be collected, and how to represent
knowledge (e.g. semantic networks and logics), and which inference strategies are used (e.g.
deductive, inductive), must be determined in this package [1].
The third work package will be to produce an online questionnaire to collect data used for
the knowledge base in an expert system for agile RE. The online questionnaire is based on the
characteristics of the requirements collected over the literature review. By defining agile RE
3
Figure 1: Expert system-based process model
scenarios in the online questionnaire, they implicitly ask answers of the questions related to the
requirements characteristics.
The fourth work package will be to collect raw data from some experts by means of the online
questionnaire. It is better to select those who have been working in the software development
project for many years. The collected data is not processed to generate rules for the knowledge
base in this package.
The fifth work package will be to design an algorithm to convert raw data collected by online questionnaire into valuable knowledge. First of all, clustering algorithm, which is generally
used for statistical analysis by assembling the similar elements and defining the boundaries of
each subset, is enhanced for the use of this research.
The sixth work package will be to develop software implementing the expert system. When
it comes to knowledge base and inference engine, the development is carried out relying on the
expert system model identified in the second work package. The user interface of the expert
systems provides different views for developers and customers. The view for developers focuses
more on how to design or implement a system based on customers’ defined requirements, such as
what characteristics of requirements should be achieved and constraints to implement the system
with the requirements. On the other hand, the view for customers focuses more on defining
the exact requirements and ensuring the developers follow their requirements to develop the
systems.
After the software is developed, the final work package will be to assess it by using it in
projects in software development organisations. The aim of this package is to evaluate the
impact of combinations of expert systems and agile RE. The interview takes place while the
software is being used. It includes questions about the usability of the software, the extent
of satisfaction with use for their project, and the quality difference between those which are
4
produced before using the software, and after using the software. The usability is used to
evaluate whether the user interface of the expert system is implemented or not. Whether the
answers from the expert system are appropriate or not is evaluated from the satisfaction. By
sampling the difference in quality of the accomplishments, whether to meet defined requirements
can be evaluated [13].
5 Relevance to Beneficiaries
This research is expected to influence positively software development organisations, in particular those who adapt the agile method to a software development project. According to
the report for NASA [11], around 52.5% of errors result from ambiguously understanding and
implementing requirements. Furthermore, the report [11] shows that the cost to remove requirements failures during the development stage is 130 times as expensive as the cost to remove
them before the development stage. Considering these issues and the increasingly rapid software
development adaptation, the expert systems for RE will help software developers and clients to
define their requirements appropriately and reduce the ambiguity which the agile method has
innately had.
If the software is one part of a system which has to take great care of risks, such as telecommunications, medical systems and airplane systems, then an acceptable quality must be achieved
to prevent unexpected risks [14]. Our research is expected to mitigate the possibility of risks
by ensuring software developers to understand the requirements clearly.
Academically, this research will be referenced by other researchers who have the same research interest, and it will provide evidence for their research. In the process another influential
methodology to deal with a difficult problem (whether requirements from clients are transferred
to customers correctly or not) will be introduced.
6 Justification of Resources
The online support of experts is required to create a knowledge base. The experts can freely
access and answer the online questionnaire, but it may be necessary to contact some experts to
make sure that the least required feedback is provided.
To design and develop the software implementing expert systems, two post doctoral researchers or postgraduates expected to be appointed. The requirements of the persons to be
appointed are possessing technical programming skills and know-how to adapt expert systems
to applications. To make sure that the software development process proceeds smoothly, there
are a desktop computer suite which is connected in LAN network, full-sized displays, keyboards
and a mouse for each computer. The payment for recruitment is determined based on the usable
funds out of total funds.
Furthermore, the collaboration of some organisations which have agile software projects is
necessary to assess how the new methodology influences their projects practically. By searching for the research institutes or software development companies and explaining our research
overview, the admission for the collaboration is acquired.
References
[1] K. Darlington. The essence of expert systems. Prentice Hall, 2000.
[2] M. Fowler and J. Highsmith. The agile manifesto. Software Development, 9(8):28–35, 2001.
[3] B. Hughes and M. Cotterell. Software Project Management. McGraw-Hill Higher Education, London, 5 edition, 2009.
5
[4] Ming Huo, J. Verner, Liming Zhu, and M.A. Babar. Software quality and agile methods.
In Computer Software and Applications Conference, 2004. COMPSAC 2004. Proceedings
of the 28th Annual International, volume l.1, pages 520–525, Sep 2004.
[5] IEEE. Ieee standard glossary of software engineering terminology. IEEE Std 610.12-1990,
page 1, 1990.
[6] D. Iorgulescu, D. Giere, and C. Giffen. Artificial Expertise in Systems Engineering. In
IEEE/AIAA Digital Avionics Systems Conference, 10-th, Los Angeles, CA, pages 405–
410, 1991.
[7] P. Jackson. Introduction to expert systems. Addison-Wesley Longman Publishing Co., Inc.
Boston, MA, USA, 1998.
[8] G. Kotonya and I. Sommerville. Requirements engineering. 1998.
[9] J.N. Lee, M.Q. Huynh, R.C.W. Kwok, and S.M. Pi. IT outsourcing evolution—: past,
present, and future. Communications of the ACM, 46(5):84–89, 2003.
[10] D. Lenat and H. Guha. Building large knowledge based systems: the cyc project. Reading,
MA, 1991. Addison-Wesley.
[11] Bennett T. and Wennberg P. The use of a virtual system simulator and executable specifications to enhance software validation, verification, and safety assurance. In Final Report for
the NASA Office of Safety and Mission Assurance, Software Assurance Research Program,
Research Initiative 583, May 2004.
[12] Yan Tang, Kunwu Feng, K. Cooper, and J. Cangussu. Requirement engineering techniques selection and modeling an expert system based approach. In Machine Learning and
Applications, 2009. ICMLA ’09. International Conference, pages 705–709, Dec 2009.
[13] M.V. Zelkowitz. Advances in Computers: Quality Software Development. Elsevier, 2006.
[14] Shi Zhong, T.M. Khoshgoftaar, and N. Seliya. Unsupervised learning for expert-based
software quality estimation. In High Assurance Systems Engineering, 2004. Proceedings.
Eighth IEEE International Symposium, pages 149–155, March 2004.
6
Workplan
Figure 2: Project work plan
Figure 3: Diagrammatic workplan
7

For faster services, inquiry about  new assignments submission or  follow ups on your assignments please text us/call us on +1 (251) 265-5102