Requirement Engineering Trends in Software Industry of Pakistan

Similar documents
Static Code Analysis A Systematic Literature Review and an Industrial Survey

REQUIREMENTS ENGINEERING

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

A Comparative Study of Requirements Engineering Process Model

An Overview of Software Process

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

The Extent of Risk Management Practices in E-Government Projects

Redefining the role of testers in organisational transition to agile methodologies

Information Technology Project Management, Eighth Edition. Note: See the text itself for full citations.

Requirements engineering

Proposal for Master Thesis in Software Engineering

Introduction to Software Engineering

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

Is Agile Project Management fit for small tech start-ups?

Comparison of Workforce Diversity in Public and Private Business Organizations

Organising Requirements

Requirements Engineering

Sistemi ICT per il Business Networking

Role of Agile Methods in Global Software Development

Prioritizing Stakeholders Role in Prioritization Process

A Study of Elicitation Techniques in Market-Driven Requirements Engineering

A Practical Approach to Project Management in a Very Small Company

Integrating Risk Management with Software Development: State of Practice

Safety Perception / Cultural Surveys

HYBRID APPROACH. Software Development Approaches. Agile. Rapid. Waterfall

Baselining Software Processes as a Starting Point for Research and Improvement

Extending an Agile Method to Support Requirements Management and Development in Conformance to CMMI

A Dialogue Act Modelling Approach to Web-Based System Modelling

Requirements Analysis

Introduction to the Testing Maturity Model Enhanced TM (TMMe)

Lecture 5: Requirements Engineering II. COSI 120b, Principles of Software Engineering

Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria

Requirements Engineering

Agile Development Processes. CSCE Lecture 3-08/31/2017

WNR Approach: An Extension to Requirements Engineering Lifecycle

Requirements Engineering and Agile Methodology

Software development activities

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

Course title: SOFTWARE ANALYSIS AND DESIGN

PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city) Bangalore

Software testing education and training in Hong Kong. Proceedings - International Conference On Quality Software, 2005, v. 2005, p.

Requirements Architecture - Agility

Fundamentals of Business Analysis including BCS Requirements Engineering

Software Testing Education and Training in Hong Kong 1 2

Information Technology Project Management, Eighth Edition. Note: See the text itself for full citations.

Requirements Engineering and Software Project Success: An Industrial Survey in Australia and the U.S.

Development Process Bennett, McRobb and Farmer 1

Business Analysis Essentials

Experiences from Lightweight RE Method Evaluations

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

Requirements Elicitation. Software Requirements and Design CITS 4401 Lecture 17

Explore Comparative Analysis Software Development Life Cycle Models

Organisational Readiness and Software Process Improvement

The Effectiveness of IT STRATEGIC Plans in Small and Medium Enterprises SMEs

Requirements Validation Techniques: An Empirical Study

Analysis of Spiral Model in Software Projects for the Software Houses of Pakistan

Mapping The Best Practices of XP and Project Management: Well defined approach for Project Manager

SDLC Models- A Survey

A Lightweight Incremental Effort Estimation Model For Use Case Driven Projects

Certified Team Coach (SA-CTC) Application - SAMPLE

Requirements Engineering

Critical Skills for Writing Better Requirements (Virtual Classroom Edition)

Requirements Knowledge Model. Business. Event. Business. responding. Business. Use Case 1.. Business tracing * * * * Requirement

An Automated Approach to Requirement Elicitation Using Stakeholder Recommendation and Prediction Analysis

Functional requirements and acceptance testing

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Factors Affecting Requirements Elicitation for Heterogeneous Users of Information Systems

Software testing education and training in Hong Kong

Social Success Factors Affecting Implementation of Agile Software Development Methodologies in Software Industry of Pakistan: An Empirical Study

TOGAF usage in outsourcing of software development

Keywords: Project Management Competencies, Project Complexities, Project Performance, Public Sector Infrastructure Projects of Pakistan.

arxiv: v1 [cs.se] 4 Apr 2017

Importance of Various Factors For Implementing The Advanced Manufacturing Technologies in Manufacturing Enterprises

On the Role of Communication, Documentation and Experience during System Testing - An Interview Study

Chapter 2: The Project Management and Information Technology Context

Scrum Alliance Certified Team Coach SM (CTC) Application SAMPLE

Requirements Elicitation

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Risk Management in BPA / BPI Projects

INFORMATION AND COMMUNICATION TECHNOLOGY ADOPTION IMPACT ON FIRMS: A CASE STUDY OF UNIQUE TRUST BANK

The Systems Development Lifecycle

Core Issues Affecting Software Architecture in Enterprise Projects

Session 6.1. Software Engineering

Terms for audits by FWF audit teams

Chapter 3 Prescriptive Process Models

Information Technology Project. Information Technology Project Management, Sixth Edition

The State of Practice of Software Cost Estimation: Evidence From Thai Software Firms

A Comparative Study of Universally Accepted SDLC Models for Software Development

System Engineering and Analysis. system environments. Lecture Objectives. System Elements. Definition of System. Information system types

Software Development

Automated Statistical Testing Suite for Software Validation

Oi Requirements Communication in New Product Development

MCT610 Software Engineering Module Handbook

A Comparison Between Two Software Engineering Processes, RUP And Waterfall Models

Requirements Elicitation. Software Requirements & Project Management CITS3220

Software Engineering

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

STUDY ON BIM-BASED STRUCTURAL WORKING DRAWING DESIGN SYSTEM

! To solve problems. ! To take up new opportunities. ! Requirements - descriptions of. " Behavior. " Data. " Constraints (eg. cost and schedule)

How mature is my test organization: STDM, an assessment tool

Transcription:

Requirement Engineering Trends in Software Industry of Pakistan RoohulMunim Shakeel 1, Muhammad Shafi 1, Kamran Ghani 2 and Basharat Jehan 1 1 Department of computer software engineering, University of Engineering and Technology, Peshawar, Pakistan yourshakeel@yahoo.com, shafi@nwfpuet.edu.pk,, Basharat_jehan@hotmail.com 2 Department of CS & IT, University of Engineering & Technology Peshawar, Pakistan kamranghani@nwfpuet.edu.pk Abstract: Requirements engineering is very important activity of the software development process. Inadequate and incomplete requirements can produce expensive errors in the later stages. Although there are a number of techniques and methods proposed in the literature for requirement engineering but they are hardly used. Requirements engineering is essential for the software quality. Literature shows that most of the project failure occurs due to poor requirement practices. Pakistan has a fast growing software industry. In this study we examined the requirement engineering practices in the Pakistani software industry for which data was collected through questionnaire. It was found that most of the projects failed due to poor perception of the user requirements. Major aspects of software requirement engineering, namely requirement methodologies and techniques, tools, requirement management, quality metrics, and requirement engineering training and education were taken into consideration. The findings show that large organizations uses requirement methodologies but small organizations do not consider requirement methodologies important. However it is encouraging that most of the organizations tend to improve their requirement engineering practices with the passage of time. The finding of this work will help the software industry to enhance their requirements engineering practices. Keywords- Requirement Engineering, Requirement engineering methodology, Requirement quality, Pakistan. I. INTRODUCTION Requirements engineering can be defined as identifying a problem context, locating the customer s requirements with in that context and delivering a specification that meets the customer needs with in that context [1]. Improper understanding/ perception of the stakeholder requirements would make the task of framing a software system which sufficing the user genuine needs as impossible. Although there are a number of techniques/principles proposed in the literature for requirements engineering but they are hardly used because of the lesser understanding of the requirement methods and processes [2]. Their application depends upon the organization as well as the type of project. A number of requirements methods are used that claim to cover the subject in comprehensive fashion, such as scenario analysis [3] and UML [4]. The aim of the requirement engineering phase is to create and maintain a software system requirement document keeping in view the aspiration of the customer. The requirement process includes four high level requirements engineering sub processes. These processes assess that whether the system is useful to business for which it is being designed. These processes include: The feasibility study, discovering the requirements (elicitation and analysis), then conversion of these requirement into some standard form (specification) and checking the requirements whether they actually satisfy the customer needs (validation) [5]. The software industry has shown a rapid growth in last decades. A study in this regard shows that the investment in the field of software has increased manyfold. It has been estimated that about 1trillion dollars had been invested in field of IT such as hardware, software related services in 2005 [6]. 63

Besides this unprecedented growth and development, software industry is still confronted with new challenges in its respective domain for ensuring best possible product for its potential customer. Therefore requirement engineering requires more efforts and attention to develop the quality product because it is the first and the most important step in Software development. Requirement engineering consists of various steps and techniques based on scientific footings that could be utilized in devising the right system. However at present the IT community is facing with dilemma of inappropriate attention being paid to this vital important segment which ultimately reflects upon the quality of the end product. The purpose of the study is to investigate the recent requirement engineering methods and techniques in national software industry and pinpoint the bottlenecks if any. It is important to understand the problems faced by practitioners in order to develop better requirement methods. Apart from this, the study will also be helpful to determine the reasonability/relevance of the academic courses on the subject of requirement engineering being covered in curriculum of various institutions/universities at national level. The rest of the paper is organized as follow; section II presents related works, section III explain survey methodology, section IV presents research findings and analysis, section V discusses the survey findings and section VI concludes paper with future directions of the research. II. RELATED WORK Research in this area has already established the importance of proper requirement engineering for the success of a project. Faisal et al [7] investigated 16 software companies in Pakistan and found that requirement engineering is the main reason to bond the gap between the customer and developer. He also find out the customer involvement and their idea about the projects. He found that as the user has no clear idea about the project due to which their requirement are not constant. Amjed et al [2] investigated 27 software companies and discussed some of the problems in those companies. They found that although most of the organizations practicing the core requirement activities, however these firms do not practice activities like requirement conflict resolution and requirement inspection. Almost 80% of the software failure occurs due to the poor requirement. Hell et al [8] found that out of total 268 problems cited almost 50% (128) were the requirement problem. According to a Standish group the three of the top ten reasons for software failure were lack of user involvement, unstable requirement and poor project management [9]. According to Verner [1] the projects with well managed requirement have a success rate of 93%.Poor requirement have a negative impact on the project estimation; this can lead to schedule and cost underestimation. Sadraei et al [10] conducted a survey on requirements engineering practices in Australia. He investigated 16 software companies and examined the gap between theory and actual practices. Badariah et al [11] examined 63 software companies. They found that majority of the problems were requirement related problems rather than organizational level problems. Another survey conducted by Niazi et al [12] investigated 11 Australian software developing companies and determine the role of requirement engineering in the software development process. III. METHODOLOGY The data was collected through a questionnaire. Some of the organization were visited personally and were interviewed. Some of the data was collected by distributing the specified questionnaire. The questionnaire was composed of 31 pertinent questions. An online version of the questionnaire was also developed, and the link was sent to many organizations across the country (Pakistan). Out of 70 recipients, we got response from 41. The questionnaire was divided into five sections. An introductory section was incorporated to know about the respondent and about his organization. The other sections included were requirement tools, Requirement method, Process, and requirement quality. The participants were allowed to select more than one answer for certain questions. A. Organization Profile IV.SURVEY FINDINGS We collected data from 41 organizations. Out of the 41respondents of the survey 48.08% were developers, 25 % were project managers, 11.54 were requirement engineers and 11.54 % were testers as shown in the Table-I. Most of the respondents were master degree holders i.e. 50%, 47.50% were MS/M.Phil and 2.50%were PhD. Table-I respondents by their position Current position Response % Developer 25 48.08 64

Project Manager 13 25 Requirement Engineer 6 11.54 Tester 6 11.54 C.E.O 2 3.85 B. Organization Size Most of the organizations were small in size, i.e. 62.50% have employees less than 20. Some of the organizations were large in size that is 30 % containing above 100 employees. Most of them have significant experience in their fields. 67% have 2-5 year of experience in software development. 11.54% have more than 5 years of experience. 23.08% respondents claim 1-2 years of experience. Table-II organization size Size of the organization Responses % engineering 22.50% respondents indicated that they allocate 10% resources, While 25% of organizations spend 10-25% resources. C. Requirement engineering methodologies Most of the organizations use only one methodology for requirement collection i.e. via use cases written in English. 63.16% uses use cases, 34.21% uses semi-formal method (diagram pseudo code etc.) and 2.63% use formal method for requirement. Requirement elicitations were mostly performed by interviews. 32.65% claimed that they use interview, 16.33% use questionnaire, 15.31% use scenarios, 17.3 % uses prototyping, and 13.32%observe user at work and 6% uses Joint Application Development (JAD) and other methods for requirement elicitation. Less than 10 8 20 10-20 17 42.50 20-50 3 7.50 50-100 2 5 100-500 6 15 More than 500 4 10 As far as the development of the organization concerned, most of them use incremental and agile process model. 41% use incremental, 30% use agile, 10% use spiral model and 15% use waterfall model for the system development. Fig.1 Showing Process Model In the survey we found that 55.56% of the organizations have a dedicated RE(Requirement Engineering) team, while 44.44% indicated that they did not have a dedicated RE team for requirement. In terms of resources allocated to the requirement Fig-2elicitation methodology D. Requirement Engineering Tools A requirement engineering process is based on human decision and therefore it is very difficult to automate. However, the requirement engineers have now become very conscious to obtain benefit from these tools. There are more than 100 tools available for requirement engineering [13]. In this section we investigated requirement engineering tools being used software industry. Almost every organization considers it important but due to some barriers they are unable to use it. The main causes for not using tools are cost and unfamiliarity with these tools. In the survey we found that 15% use it in every project, 22.50% use in most projects while 32.50% use it rarely. 30% of the practitioners claim that they do not use any tool in any project. 65

Fig.3 use of RE Tools requirement in almost every project. 44.74 use it in some cases, while 10.53% never perform any type of review or inspection. Most of the organizations rarely use metrics for gathered requirement and its related problems. We also found that most of the companies have no mechanism for change in requirements. 53.85% stated that they no mechanism for change in requirement while 46.15% stated that they have mechanism for it. We found that some organization uses standard template such as IEEE standard template for requirement while majority of the developing organizations do not use any template. 23.68% practitioners claim that they use slandered template, 73.68% do not use any template while 2.63% uses other templates for requirement. 1) Barriers in Adopting Requirement Engineering Tools The prime problem in adopting requirement tools is time (39.47%). While 34.21% participants stated that they were costly to use, and 10.53% reported that they are difficult to use. Table below summarizes the responses. Table III-Barriers to adopt RE tool Barrier Responses Rank Time consuming 39.47 1 Costly to use 34.21 2 Difficult to use 10.53 3 Don t think it is useful 7.89 4 Don t think there is any barrier Don t not know of any RE tool E. Requirement Quality 7.89 5 0 6 In this section the usage of quality metrics to measure the quality of requirement engineering is discussed. Requirement engineering process is considered important by most of the organization. Most of the organizations create requirement document for their project. Similarly inspection/review of the requirement is not considered important by some of the organizations. 44.74% of the organizations perform review of Fig. 4 use of standard template for RE F. Requirement Engineering Training and Education This section describes the extent to which the software developing organizations provide training to employees. This also shows the type of training employees are receiving in Pakistani software industry about requirement engineering in Pakistani software industry. Survey results show that 71.79% have knowledge of requirement engineering from the courses they studied in the universities. 25.64% responded that they did not receive any kind of training or studied about requirement engineering themselves. Majority of the organizations are in favor to train their personnel. This indicates that the software developing firms are aware of the importance of the requirement engineering and that it can produce a quality product. When asked about the prime hurdles in providing RE training. 42.50% participants indicated that the cost is the major hurdle followed by tight schedule of the projects (32.50%). 10% claimed that there is no hurdle in providing RE training. The responses from the survey are given in the Table-IV. Table IV barriers providing RE training 66

Barrier Responses Rank Cost 42.50 1 Time 32.50 2 Course 15.00 3 Don t think there is any barrier V. DISCUSSION 10.00 4 If sample does not represent the population then we can t make specific generalization of the population [14]. Similarly, due to the small sample size here cannot be used to strongly approve or disprove our research questions. However, this survey provides us insight into the state of requirement engineering practices in the software industry of Pakistan. Good requirement engineering practices have a positive effect on project. We examine the current RE practices with aim to identify the least and most practiced activities. In Pakistan, cost/finance is a major hurdle due to which requirement tools; requirement engineering methodologies and training of requirement personnel are not being practiced. Although requirement engineering is most important segment of the software development, still most of the organizations do not have a complete requirement engineering phase. Lack of expertise is another impediment. Most of the organizations do not have dedicated and well trained personnel for requirement engineering. Most of the requirement engineers have studied requirement engineering in the universities. Majority of the organizations use incremental and agile model for the development process and there is less emphasize on the requirement (Fig-1). Most of the work is performed by the system developers. A mix response is recorded from the organizations that use phase wise development, in which RE have complete phase. Most of the organizations use interviews for requirement gathering (Fig-2) and they use simple natural language for requirement. Most of the organizations tend to carryout review of the gathered requirement. However, no metric for requirement and requirement related problems are used. Requirement tools are now very popular and there are a number of tools available for requirement engineering but they are not often used in Pakistan because of cost, tight schedule and lack of expertise (Table-III). The survey results also show that Pakistani software industry has limitation in some component. But there are some aspects which are very encouraging. Past work shows that 25% of the total resources should be spent on requirement engineering [15]. According to our survey, most of the respondents i.e. 32% said that 20 to 30% of the resources are spent on the requirement engineering which is according to past research. Most of the organizations consider that requirement engineering is important for the success of the projects and most of the organizations tend to provide training to their employees or hire trained people to deliver better software which meet customer needs. In the instant study, different parameters/aspects, where the local software industry is lagging (especially in the context of requirement engineering) have been covered. Adaption of these tools to improve the requirement engineering practices and hence to deliver a better end product is the major concern of this work. However, the capabilities and willingness of the industry to accept and adopt these practices are yet to be determined which shall be investigated in the future studies. VI. CONCLUSION AND FUTURE WORK This paper analyzed the requirement engineering trends in Pakistani software industry. The sample size is not ideal but the finding shows the current requirement engineering trends in the software industry. From the survey findings it is also clear that the current education and training in requirement engineering has not been prudently addressed in Pakistani education system. It is therefore suggested that the respective current curriculum of education institutions may be reviewed. The inference of the survey is clear to determine the best relationship between requirement engineering methods and software quality which meets customer requirement. Although, there are some limitations but the results of the survey may be helpful in RE practices. In the next stage of the survey it is recommended to increase the sample size and those firms or experts, who were contacted but could not respond, shall be given opportunity to participate so as to get pragmatic results of the current trend in the local industry. In future a comparative study between Pakistan and other developing countries could also be managed in this regard. 67

REFERENCES [1]. J.Verner, K. Cox Requirement engineering and Software Project Success: An Industrial Survey in Australia and U.S., 2007 [2]. A. Tahir and R. Ahmed Requirements Engineering Practices-An Empirical Study, IEEE 978-1-4244-5392-4/10, 2010. [3]. Caroll, J(ed), Scenario-Based design envisioning work and technology in system development Wiley Publications, 1995 [4]. Booch, G, Rumbah, J., Jacobson, The UML User Guide, Addison Wesley, 1999. [5]. Software Engineering by I. Sommerville, 7th Edition, Pearson Education, 2004. [6]. P.Charette, R. N. Why software fails, IEEE Spectrum, September, Vol. 42, 2005. [7]. F.S. Butt,M. Liaqat, R.M.A.H.R. Khan, W. Nisar, E.U. Munir Common Factors In Successful Software Projects in Pakistan Software Industry, World Applied Sciences Journal 23 (9): 1176-1185, 2013. [8]. T. Hall, S. Beecham and A. Rainer, Requirements Problems in Twelve Software Companies: an Empirical Analysis. IEEE Software proceedings Software Vol. 149 pp. 153-160 2002. [9]. Standish Group Chaos: A Recipe for success, Standish Group International, 1999. [10]. E. Sadraei,A. Aurum, G. Beydoun and B. Paech, A Filed Study of The Requirements Engineering Practice in AustralianSoftware Industry, Requirements Engineering Journal vol.12. pp. 145-162. 2007. [11]. S. Badariah, S. Shamsul, A.A. Ghani Requirements Engineering Problems in 63 Software Companies in Malaysia, Presented in International Symposium on Information Technology, Malaysia, 2008. [12]. M.Niazi and S.Shastry Role of Requirements Engineering in Software Development Process, An Empirical Study, 7 th International Multi Topic Conference 2003. [13]. J.M.C.D.Gea, J. M. Nicolas, L.Jose,F. Aleman, A.Toval, C. Ebert, and A. Vizcaino Requirements engineering tools: Capabilities, survey and assessment, Information and Software Technology, 54(10), 1142-1157., 2012. [14]. B. Kitchenham and S. L. Pfleeger, Principles of Survey Research, Part 5: Populations and Samples, ACM SIGSOFT, Software Engineering Notes, Vol. 27, (5), pp. 17-20, 2000. [15]. I. Alexander and R. Stevens, Writing Better Requirements Pearson education, 2000. 68