Article

Software Development Methodologies, Trends and Implications: A Testing Centric View

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

The practice of software development has evolved steadily over the decades. Numerous methods and models (e.g., life cycle models and agile methods) have been proposed to enhance its efficiency and effectiveness. This study provides a testing centric view of software development practices. Specifically, it reviews software development methodologies (i.e., methods and models), identifies the latest trends in the industry and discusses their implications. The review of methodologies, the identification of these trends and the discussion of their implications will be useful to software development educators, students, practitioners and researchers.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... The model of progressive development is also called incremental delivery or phased implementation. It delivers the software with limited functionality that is termed as the interim version (a common practice in software development), that results in reduced time to market [4]. Models like the PV, traditional V or waterfall may be used for development in each of the phases inside the life cycle of progressive model [4]. ...
... It delivers the software with limited functionality that is termed as the interim version (a common practice in software development), that results in reduced time to market [4]. Models like the PV, traditional V or waterfall may be used for development in each of the phases inside the life cycle of progressive model [4]. Following are the benefits of using the Progressive Development model [1]: ...
... In the Sequential model, there is smooth progress of developmental efforts through phases that are very well demarcated [4] e.g. PV Model, Traditional V and the waterfall models. ...
... Based on Shaw's recommendation, we looked into (1) literature predicting future SE Trends, and (2) existing systematic reviews in SEE research. [19], Shaw [20] 1990's Usability, User Experience, HCI Boehm [19] 2000's Agility, Agile Software Development Boehm [19], Zhang et al. [24] 2000's Dependability, i.e. Safety, Security and Trust Boehm [19], Shaw [20] 2005 ...
... Enterprise Agile, Large-scale Agile Fitzgerald and Stol [26] 2010's Global Software Engineering Boehm [19], Monashore et al. [21], Clear and Beecham [22,23] 2010's Lean Startup Education Jarvi et al. [28], Devadiga et al. [29] , Fitzgerald and Stol [26] 2010's Continuous Software Engineering Krusche and Alperowitz [30], Zhang et al. [24] 2010's System of system engineering Boehm [19], Shaw [20] 2012 ...
Article
Full-text available
Context Software has become ubiquitous in every corner of modern societies. During the last five decades, software engineering has also changed significantly to advance the development of various types and scales of software products. In this context, Software Engineering Education plays an important role in keeping students updated with software technologies, processes, and practices that are popular in industries. Objective We investigate from literature the extent Software Engineering Education addresses major Software Engineering Trends in the academic setting. Method We conducted a systematic mapping study about teaching major Software Engineering Trends in project courses. We classified 126 papers based on their investigated Software Engineering Trends, specifically Software Engineering processes and practices, teaching approaches, and the evolution of Software Engineering Trends over time. Results We reveal that Agile Software Development is the major trend. The other Trends, i.e., Software Implementation, Usability and Value, Global Software Engineering, and Lean Software Startup, are relatively small in the academic setting, but continuously growing in the last five years. System of Systems is the least investigated among all Trends. Conclusions The study points out the possible gaps between Software Industry and Education, which implies actionable insights for researchers, educators, and practitioners.
... Software engineering students usually focus primarily on computer science. Their ca- [19], Shaw [20] 1990's Usability, User Experience, HCI Boehm [19] 2000's Agility, Agile Software Development Boehm [19], Zhang et al. [24] 2000's Dependability, i.e. Safety, Security and Trust ...
... Enterprise Agile, Large-scale Agile Fitzgerald and Stol [26] 2010's Global Software Engineering Boehm [19], Monashore et al. [21], Clear and Beecham [22,23] 2010's Lean Startup Education Jarvi et al. [28], Devadiga et al. [29] , Fitzgerald and Stol [26] 2010's Continuous Software Engineering Krusche and Alperowitz [30], Zhang et al. [24] 2010's System of system engineering Boehm [19], Shaw [20] 2012 ...
Preprint
Full-text available
Context: Software has become ubiquitous in every corner of modern societies. During the last five decades, software engineering has also changed significantly to advance the development of various types and scales of software products. In this context, Software Engineering Education plays an important role in keeping students updated with software technologies, processes, and practices that are popular in industries. Objective: We investigate from literature the extent Software Engineering Education addresses major Software Engineering Trends in the academic setting. Method: We conducted a systematic mapping study about teaching major Software Engineering Trends in project courses. We classified 126 papers based on their investigated Software Engineering Trends, specifically Software Engineering processes and practices, teaching approaches, and the evolution of Software Engineering Trends over time. Results: We reveal that Agile Software Development is the major trend. The other Trends, i.e., Software Implementation, Usability and Value, Global Software Engineering , and Lean Software Startup, are relatively small in the academic setting, but continuously growing in the last five years. System of Systems is the least investigated among all Trends. Conclusions: The study points out the possible gaps between Software Industry and Education, which implies actionable insights for researchers, educators, and practitioners.
... This had been the starting point of the evolving of software development. (Zhang et al.,2010) During 1950s, the software developing process used to have only two steps: an analysis step followed by a coding step. ...
... During 1950s, the software developing process used to have only two steps: an analysis step followed by a coding step. As per Zhang et al. (2010) this indicates that there had been no or a little emphasis on the testing of a particular product. Author has mentioned it often the testing had been carried out by the developer themselves or the end users to ensure that the software works for the expectations. ...
Thesis
In today’s world web applications are everywhere, from a simple site to a corporate web application. Basically web applications have become a normal aspect in day to day life. Most of the companies use web applications to solve company needs due to the advantages of web applications as in easy collection of information, speed search of information, communication facilities and etc. The growth of web applications has shown a tremendous improvement with the time. When there is such a demand these web applications need to be functions adequately to serve the customer requirements and with this popularity and the importance testing web applications has become a crucial process. Test Automation Frameworks are used to do the testing more efficiently and accurately. The main objective of this research is to study about the different frameworks used in the industry and to analyze whether they facilitate the necessity to handle different types of issues and frequent dynamic changes in a proper manner. This study followed a quantitative research method and examined a random sample of hundred and twenty QA engineers who are familiar with Test Automation Frameworks. The research examines about the different types of frameworks using in the industry. It also identified how several issues were facilitated through the current frameworks. As another factor the research focused on studying about frequent dynamic changes in regards with the framework. In addition, research proposed a framework using a model based approach as a novelty suggestion which can be used to generate test cases in more efficient and accurate manner. From the findings of the research it was concluded that most of the issues arise when using a Test Automation Framework depend on the type of the framework used. But this differed at the point on getting help from other experts who are outside from the QA team. Also the research concluded that some of the frequent dynamic changes depend on the type of framework while some do not depend on the type. Finally a novel approach for testing was suggested using two different type of behavioral models to enhance the accuracy and efficiency of testing.The findings of the research will be useful for QA engineers who are in the automation field, especially in the Sri Lankan context since the model based approach is not currently used in testing web applications.
... Software development methods have evolved steadily over the decades (Zhang, Hu, Dai, & Li, 2010). Starting in the 1950s with a two-step process: analysis followed by coding, in 1970s life cycle models were developed. ...
... Такива модели са били създадени и развивани през 70-те, 80-те и 90-те години на миналия век. През този период моделите, по които се е разработвал софтуер, се класифицират като последователни, прогресивни (поетапни) и итеративни [23]. С разрастване и усъвършенстване на различните модели, процесът на създаване на софтуер по определен модел е започнал да се изследва като софтуерен процес с изграден жизнен цикъл. ...
Article
Full-text available
В статията се проследява развитието на обучението по информатика и софтуерно инженерство на българското висше образование. Анализират се предпоставките за развитие на софтуерното инженерство в учебните дисциплини на бакалавърски и магистърски учебни планове. Направен е преглед на развитието и тенденциите при методите и инструментите за създаване на софтуер. Разработен е модел разкриващ перспективите пред обучението и образование в областта на информатиката и софтуерното инженерство.
... Типове модели с жизнен цикъл. В зависимост от потока на работа и дейностите в етапите на разработка моделите се класифицират като последователни, прогресивни (поетапни) и итеративни [4]. При някои модели етапите на работа се прилагат последователно като фази, при други те са разделени на множество практики, които, обединени като дейности по определени критерии, се изпълняват итеративно. ...
Article
Full-text available
В работата се разглежда развитието на софтуерните модели и гъвкави методи, тяхната роля в жизнения цикъл на софтуерните процеси и мястото им в обучението по компютърни науки. Предложени са решения за изучаването им, като е направено разграничение между нуждите на гимназиалното и висше образование и обучението в софтуерната индустрия.
... Over the years, many project methodologies [16] have been proposed and employed in software development. It is interesting to note that from the traditional development methodologies such as the waterfall to modern agile rapid development methodologies [18] [19] [20][21] [22] [23], one thing is usually at stake, that is, completion of a project on schedule(S) on budget(B) and on purpose(P). Thus, we can express project in terms of a function as follows: ...
Article
Full-text available
Software development is a core component in the academic training curriculum in various computing disciplines in universities, colleges, polytechnics, and vocational institutes respectively. In many of the said academic curricula there is often a superficial treatment of vital project management elements such as scheduling, costing, risk and quality management, and basic legal concepts of contracts. Every software developer/engineer is expected to have basic knowledge of the said elements which go a long way to boosting his/her professionalism during contract negotiations and execution of software-based contracts. The absence of the use of real-life cases during academic training undermines the extent of project management knowledge transferred to the trainee software engineer/developer. This paper is presented using a real-life software development contract involving a private secondary healthcare provider in Lagos Nigeria. This paper provides a concise but informative case study report emphasizing on basic project management methodology. This paper reflects on how project costing and analysis of return on investment is key to determining the reality of small/medium-sized software contracts.
... Due to the extensive use of components, the CBSD process is quite different from the traditional waterfall approach. The waterfall approach considers that the software development method is linear and sequential [2]. Once a phase of development, the development proceeds to the next phase and there is no turning back. ...
Article
Full-text available
One of the most critical processes in component based software development (CBSD) is the choice of suitable commercial off-the-shelf components (COTS) that meet the user requirements. An important step in the component selection process is the evaluation of components using quality models. This paper presents the most relevant of current quality models proposed in the literature. A comparative analysis among them was performed and some issues related to CBSD were identified. Additionally, the main benefits and limitations associated with each quality model were highlighted and explored.
... Такива модели са били създадени и развивани през 70-те, 80-те и 90-те години на миналия век. През този период моделите, по които се е разработвал софтуер, се класифицират като последователни, прогресивни (поетапни) и итеративни [23]. С разрастване и усъвършенстване на различните модели, процесът на създаване на софтуер по определен модел е започнал да се изследва като софтуерен процес с изграден жизнен цикъл. ...
Article
Full-text available
This paper traces the development of teaching informatics and software engineering in Bulgarian higher education, which follows and pursues professional and scientific development of these areas. Prerequisites are analysed of software engineering to evolve from a discipline to bachelors and masters degree programmes. A review is made of developments and trends in the methods and tools for creation and implementation of software in the terms of software production. A model was developed based on critical analysis and evaluation, revealing prospects for future education in informatics and software engineering. Several levels of training are presented with different abstraction and difficulty called „Software practices“, „Object-oriented approaches, techniques and practises of software development“, „Modelling, creation, and application of software processes“, and „Management and implementation of software projects“.
... In the business world, IT has been widely deployed as a competitive tool to address organizational problems and opportunities [11,30,66]. McFarlan and McKenney [40] formally recognize the facilitating role of IT in strategic decision making. ...
... According to Dix and Zang, respectively [11] and [12] data structures and models used in developing effective system's architecture must follow three types of diagrams namely. These three diagrams have been used to design the data modelsand structures in this paper and the paragraphs below show their description. ...
Article
Full-text available
Registering a business in Ghana has over the years been the greatest challenge of most entrepreneurs and investors, both local and expatriates. The current system in use at various branches of the Registrar General's Department do not synchronize properly with their central database and checking for redundancy of data takes a lot of time. This paper therefore seeks to develop an automated business name reservation and registration system which will provide a conducive mean of registering business in real time. Four main phases were involved in this project, namely planning phase, analysis phase, design phase, and implementation phase. The functionalities of the system are presented by UML diagrams that consist of a use case diagram and sequence diagram. A database was created with MySQL software to manage the registration process and an interactive web component was added to enable people to make reservations. The system was finally deployed at the Registrar General's Department of Ghana and evaluations show that it is very reliable, time saving and user friendly. It also provides extensive reporting and business intelligence. General Terms Database programming, UML diagram, Web application, human computer interaction Keywords Sequence diagram, use case diagram, user interface design, business registration, MySQL database.
Article
The Agile effort estimation involves project-related and people-related factors. This research objective is to find the factors that influence Agile effort estimation significantly through path analysis using a structural equation model. This research built an agile effort estimation path coefficient model from six constructs from theories and previous studies. Project-related factors represent by requirement and design implementation constructs. People-related factors are measured by the construct of experience, knowledge, and technical ability. The last construct is the effort itself. SmartPLS is employed for the confirmatory composite analysis and the structural model assessment. The confirmatory composite analysis indicated that all constructs are reliable and valid. Furthermore, the structural model assessment found that all factors of project-related constructs have a positive relationship and significant influence, showing a coefficient path value of 59.1% between requirement and design implementation constructs. All constructs represent people-related factors indicated by the coefficient path value of 67% between experience and knowledge, 42.6% between experience and technical ability, and 54.4% between knowledge and technical ability. In addition, all constructs proved influential simultaneously to effort by 31.1%. Positively contribute provided by requirement, experience, and technology’s ability. Significantly influenced provided by constructs of the developer’s knowledge and technical ability. The largest effect is given by technical ability, knowledge, and experience on medium and small scales. Contrarily, both constructs from project-related effects can be negligible because there was no influence. Based on the result, this study concludes that the significant factors in Agile effort estimation are technical ability, knowledge, and experience.
Thesis
Higher education shapes the future of each individual and as well as an entire nation. Selecting an appropriate path to continue higher education is a crucial factor in the successful completion of higher studies. Today when a student steps into the higher education domain there are numerous decisions to make from the beginning itself such as selecting a proper course to follow from available choices. But due to the complexity of the current higher education domain, making these decisions are not easy. Usually, at the point of starting higher education, most of the students are not fully aware of their preferences or potential of being successful in a particular pathway. So they are trying to seek supportive recommendations at this point. Even Though there are several existing mechanisms to make recommendations, those mechanisms are unable to match students' psychological behavioral factors with a success probability of a particular course in a quantitative way. There are many research-level approaches to predict student success in higher education. But most of these approaches have several limitations and gaps. Because of that even though these proposed mechanisms are helpful to achieve some research target or do some educational data mining they are unable to come out as a solution that can be used by any student and any higher education institute as a solution to the mentioned problem. The aim of this research project is to identify the gaps between existing solutions and the actual requirement and build a feasible system to overcome those limitations. This system will have the feasibility to provide pedagogical support throughout the academic pathway which will not be limited to providing proper pathway recommendations but also can be used in many other related use cases. This proposed system will have the ability to adapt to the changes in curriculums without a system architectural or development change. This can be identified as an essential requirement when considering the long-term sustainability of such a system. The author conducted this research project under the supervision of educational domain experts to ensure the required ethical and social aspects are considered. Several functional, architectural, and algorithmic decisions were made during this research to make sure that the outcomes of this research are feasible to achieve the research aim. Keywords: Decision Making in Higher Education, Recommendation System, Machine Learning, Psychometrics, Pedagogy, Personalized Recommendation, ML Automation
Chapter
Software testing is becoming a critical component of software development, especially because of the proliferation of complex, interconnected, and real-time business applications. As a result, information technology (IT) managers are struggling with pragmatic governance mechanisms for integrating testing with development. Governance issues pertaining to how software testing is organized at strategic, tactical, and operational levels, however, have not received adequate attention in the literature. This study explores the impact of three specific governance mechanisms, including the existence of a distinct corporate testing unit, developers and testers reporting to different executives, and the existence of one-to-one matching between developers and testers, on the organizational integration of testing with development. A national survey of 196 software development and testing professionals was undertaken to investigate the impact of these governance variables on a set of dependent variables comprising organizational, group, and individual outcomes. The results indicate that these governance mechanisms have significant impacts and need to be considered for successful integration of development and testing.
Article
The report presents the measurement of vehicular speed using a smartphone camera. The speed measurement is accomplished by detecting the position of the vehicle on a camera frame using the LBP cascade classifier of OpenCV API, the displacement of the detected vehicle with time is used to compute the speed. Conversion coefficient is determined to map the pixel displacement to actual vehicle distance. The speeds measured are proportional to the ground truth speeds.
Article
Task coordination poses significant challenges for globally dispersed teams (GDTs). Although various task coordination mechanisms have been proposed for such teams, there is a lack of systematic examination of the appropriate coordination mechanisms for different teams based on the nature of their task and the context under which they operate. Prior studies on collocated teams suggest matching their levels of task dependence to specific task coordination mechanisms for effective coordination. This research goes beyond the earlier work by also considering additional contextual factors of GDT (i.e., temporal dispersion and time constraints) in deriving their optimal IT-mediated task coordination mechanisms. Adopting the structural contingency theory, we propose optimal IT-mediated task coordination portfolios to fit the different levels of task dependence, temporal dispersion, and perceived time constraint of GDTs. The proposed fit is tested throughasurvey and profile analysis of95 globally dispersed software development teamsina largefinancial organization. We find, as hypothesized, that the extent of fit between the actual IT-mediated task coordination portfolios used by the surveyed teams and their optimal portfolios proposed here is positively related to their task coordination effectiveness that in turn impacts the team's efficiency and effectiveness. The implications for theory and practice are discussed.
Article
Full-text available
Software testing is becoming a critical component of software development, especially because of the proliferation of complex, interconnected, and real-time business applications. As a result, information technology (IT) managers are struggling with pragmatic governance mechanisms for integrating testing with development. Governance issues pertaining to how software testing is organized at strategic, tactical, and operational levels, however, have not received adequate attention in the literature. This study explores the impact of three specific governance mechanisms, including the existence of a distinct corporate testing unit, developers and testers reporting to different executives, and the existence of one-to-one matching between developers and testers, on the organizational integration of testing with development. A national survey of 196 software development and testing professionals was undertaken to investigate the impact of these governance variables on a set of dependent variables comprising organizational, group, and individual outcomes. The results indicate that these governance mechanisms have significant impacts and need to be considered for successful integration of development and testing.
Article
Full-text available
Software is considered to have high quality, only if it has undergone a series of good test cases. Testdriven development is a software Development practice that leads to better quality and fewer defects in code. The purpose of study of this paper is to evaluate the difference between a traditional testing and agile testing, the testing techniques involved in agile projects, the different modes of testing, the do's and don'ts of testing and also about the set of activities an agile tester needs to keep in mind while working on agile projects. A study has been conducted in a software firm in Chennai, India. Two different testing modes have been proposed. Based on the testing modes that is projected in this article, the do's and don'ts of a software tester and their activities has been formulated. A simple yes/no type questionnaire is included in this article which is given to the testers before testing. Answering the simple yes/no questions makes a tester to be an efficient tester in his job. By following the do's and don'ts guidelines and the activities of a tester given in this article, it is found that the efficiency of an employee involved in agile testing has been improved considerably. It is concluded that testing plays a vital role for any project. Testing would be more efficient if a parallel testing could be done in par with the development team. Better quality could be achieved if the project team follows a continuous integration with a continuous delivery and a continuous feedback from the customer.
Article
The consequences of Global Software Development (GSD) on software development processes are evolutionary. It has reshaped and reformed the traditional software development approaches. The preferences of the developers and priorities of the client have tremendously been changed. A set of new generation of processes, agile methodologies, has been appeared in response to the GSD. Many researchers have presented a good quality study on agile based methodologies. In this study we have discussed the work of the various researchers on GSD. A review of the prominent study ofthe researchers and practitioners on agile based methodologies is presented. The combined effects of both GSD and agile methodologies on overall software development paradigms are discussed. Based on the analysis of existing models and frameworks produced by the researchers and practitioners, the study suggests the future directions of the software development processes as required by the software industry. This study provides a guideline to the researchers and actual practitioners in formalizing and shaping up their future research works. Finally, the research findings emphasize on the need of applied and practical approaches of software development and contribution of the researchers in this regard.
Conference Paper
This paper is introducing the research topic of proposal "Understanding socio-technical factors influencing testers in software development organizations", which using qualitatively and quantitatively analysis, is looking at elements affecting the testing activities in software development companies. The scope of the research is to improve our understanding of the challenges faced on daily basis in testing activities, and to propose improvements for the testing practice and for the image of testing and testers, while taking into consideration the socio-technical nature of testing activities. This study is a first stepping stone into research of the testing practices, testers' experience, and the outside world's perception of their work.
Article
The primary role of testers is to verify and validate the software produced by developers to ensure its quality. Testing is designed to catch problems in the software and report them for correction, so it is a conflict-laden, confrontational, and judgmental process. This "audit" role of testing is inherently adversarial, ensuring the development of components of interpersonal conflict judgments between developers and testers. Prior research indicates that such conflict is likely to be negatively associated with software quality and job satisfaction, producing negative judgments about the artifact production process and about the job itself. This study addresses the question: How do judgments of conflict between developers and testers impact the software development process? The authors develop and empirically test a research model which proposes that the conflict judgment targets of both the tasks and the persons who perform them will have direct impact on both software quality and job satisfaction judgments. Results of testing this model indicate that interpersonal judgments arising from conflict, as well as judgments made by testers and developers about the conflict targets of tasks and persons negatively influence subsequent software quality and job satisfaction judgments. Implications for theory and practice are discussed.
Article
Full-text available
The activity of testing begins during system development and spans all subsequent phases. Some system development life cycles describe testing which is performed after the coding phase, but this may cause the software to be delivered without sufficiently testing. In this paper, we present a software system development life cycle model, called the Test design Stages Processed model (TSP model), in which we emphasise that iterative test design stages should be processed during each phase of the software development life cycle. Therefore, when a phase has been completed, the testing for the phase should also be completed at that time. Furthermore, within this paper we have added unit, integration and system testing processes into Booch's micro design process to generate a new design and test model. This shows the process of iterative and incremental software development. Comparing this with our model, we explain how the TSP model can be used for developing and testing an object-oriented software system.
Article
Full-text available
CONFLICT BETWEEN SOFTWARE TESTERS AND DEVELOPERS IS INEVITABLE, BUT MINDFUL MANAGERS MINIMIZE ITS EFFECT ON DEVELOPMENT PROJECTS THROUGH COMMUNICATION, MUTUAL RESPECT, EVEN SOCIAL INTERACTION.
Article
In a field study of thirty-two business application systems, the relationship between the time spent in various phases of the development life cycle and the outcome of the development was examined. Results indicate that systems which spent more time in the analysis phase required less time to code, resulted in greater user satisfaction, and were developed in agreement with established budgets and deadlines. These results suggest preferred strategies for the development of application systems and have implications for their successful management and control.
Article
Information systems have always been developed through social processes, wherein actors playing a variety of specialized roles interact to produce new business applications of information technology. As systems development practices continue to evolve, an ongoing assessment of their social implications is required. This paper develops a framework for understanding the potential social implications of an emerging, component-based development paradigm. Like two alternative paradigms for systems development, the traditional life-cycle and the iterative-incremental paradigms, the new component-based paradigm requires that certain generic roles be performed to build a desired application. For each paradigm, we identify the actors who play different roles, specify the nature of their interdependence, and indicate the requirements for managing conflicts constructively. The framework may guide research into the social dynamics of system development and serve as a tentative guide to the management of information systems development.
Conference Paper
This experience report discusses a large scale team transitioning from waterfall to Agile while going through all phases of Tuckman's model. I describe the issues we encountered, lessons we learned, and how we coped with difficult situations in each of the four phases of the Tuckman's model of team development.