Enabling Reusability in Agile Software Development
|
|
|
- Florence Dixon
- 10 years ago
- Views:
Transcription
1 Enabling Reusability in Agile Software Development Sukhpal Singh M.E. (S.E.) Thapar University, Patiala Inderveer Chana Ph.D. (C.S.E.) Thapar University, Patiala ABSTRACT Software Engineering Discipline is constantly achieving momentum from past two decades. In last decade, remarkable progress has been observed. New process models that are introduced from time to time in order to keep pace with multidimensional demands of the industry. New software development paradigms are finding its place in industry such as Agile Software Development, Reuse based Development and Component based Development. But different software development models fail to satisfy many needs of software industry. As aim of all the process models is same, i.e., to get quality product, reduce time of development, productivity improvement and reduction in cost. Still, no single process model is complete in itself. Software industry is moving towards Agile Software Development. Agile development does not obviously fit well for building reusable artifacts. However, with careful attention, and important modifications made to agile processes, it may be possible to successfully adapt and put on agile methods to development of reusable objects. The model being proposed here combines the features of Agile Software Development and reusability. General Terms Software engineering, Software development, Software reuse. Keywords Agile software development, Reusability, Agile methodologies. 1. INTRODUCTION Essence of Agile Software Development is rapid development and less cost. Thus, it somewhere compromises with quality and also unable to provide reusability of its developed components. Agile Software Development provides specific solutions whereas Reuse and Component based Development have faith in generalized solutions. We need reusable artifacts to attain reusability. Reusable artifacts are code and other components (analysis and design documents, patterns, etc.) that can be reused from one project to another. In order to create components that are reusable, a big-depiction view must be taken while they are being developed, rather than simply aiming on the current use. What other types of systems might be able to benefit from this component? How many different ways might one want to use it? What are the requirements of the domain, as compare to simply this application in the domain? These are a few of the questions that must be asked when thinking about making components reusable and more general-purpose. When developing reusable artifacts, agile development s Documentation, Software Quality Assurance, Application-Specific Development, and Continuous Redesign assumptions may not be valid. quality product and to reduce development time. Rapid development and ability to accommodate changes at any level of development gives the competitive advantage to the agile processes over traditional processes. Bring comparatively new to software engineering; research on agile processes is going on as to combine light-weight processes and other processes. Recent research shows that only limitation of ASD is its inability to reuse components those are developed through agile processes. On the whole rapid software development ignores reusability. Japanese projects also exhibited higher levels of reuse while spending more time on product design as compared to American teams which spend more time on actual coding and concludes that Indian firms are doing great job in combining conventional best practices, such as specification and review, with more flexible techniques that should enable them to respond more effectively to customer demands. If such a trend is replicated across the broader population, it suggests the Indian software industry is likely to experience continued growth and success in future [1]. 1.2 Evolution of Software Development Processes The evolution of software development processes have been summarized in Fig. 1. Waterfall model was being followed where requirements are fixed and the next phase starts when the earlier one finished. It s the representative of the traditional methods [13]. To overcome the limitations of waterfall model evolutionary model and spiral model comes into picture where prototype is first made and then that is converted to the working software. But all have one common limitation that no process could handle the change of requirements at later phases. Agile development which includes many methodologies as XP, SCRUM, Lean Software Development, Feature Driven Development (FDM), Test Driven Development etc. is being accepted in industry because of adaptation to change even at the later stages of the development and also for rapid development [2]. 1.3 Reusability In computer science and software engineering, reusability is the likelihood a segment of source code that can be used again to add new functionalities with slight or no modification. Reusability modules and classes reduce implementation time, increases the probability that prior testing and use has eliminated bugs and localizes code modifications when a change in implementation is required [19]. 1.1 Agile Software Development Agile Software Development (ASD) methods and techniques are being followed in the industry from the last decade to get 33
2 Change Driven Plan Driven Ad-hoc 1950 Stagewise Model Code and Fix Model Waterfall Model Evolutionary Model Fig. 1: The Evolution of Software Process Models 2. LITERATURE REVIEW 2.1 Philosophies for Agile Software Development A common ground for agile software development was defined in 2001, when 17 experienced and recognized software development gurus, inventors and practitioners of different agile software development methods gathered together. Participants agreed and signed The Manifesto for Agile Software Development [3]. This manifesto declares the main values of agile software development [6]: We are uncovering better ways of developing software by doing it and helping others does it. Through this work we have come to value: Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan. That is, while there is value in the items on the right, we value the items on the left more [4]. 2.2 Agile Methodologies There are a variety of software development processes that currently claim to be agile. Space does not allow us to give an overview of all of the agile processes we have reviewed. However, since Extreme Programming (XP) is probably the most well-known agile process (Beck, 2000; Strigel, 2001), we use it to illustrate representative agile process concepts [10] Extreme Programming (XP) Agile Software Development Spiral Model Transform Model It can be argued that the popularity of XP helped pave the way for other agile processes. Kent Beck, one of the chief architects of XP [7], states that XP is a lightweight development method that is tolerant of changes in requirements [17]. It is extreme in that XP takes commonsense principles and practices to extreme levels. XP is based on the following values: Communication and Feedback: Face-to-face and frequent communication among developers and between developers and customers is important to the health of the project and the products under development. Feedback, through delivery of working code increments at frequent intervals, is also considered critical to the production of software that satisfies customer needs. Simplicity: XP assumes that it is more efficient to develop software for current needs rather than attempt to design flexible and reusable solutions. Under such an assumption, developers pursue the simplest solutions that satisfy current needs. Responsibility: The responsibility of producing high-quality code rests ultimately with the developers. XP consists of technical and managerial practices that are integrated in a complementary manner. The architects of XP take great care to point out that the individual techniques and practices of XP are not new; it is the manner in which they are woven together that is unique. They also stress that the techniques and practices have proven their worth in industrial software development environments [9] XP Process and Practices The four core activities [17] given by Roger S. Pressman have been summarized in Table 2.1. Activities Planning Design Coding Testing Table 2.1: The four core activities of XP Purpose It begins with the creation of stories that describe required features and functionality for software to be built It provides implementation guidance for a story as it is written (Refactoring). XP recommends that two people work together to at one computer workstation to create a code for a story (Pair programming). Test cases are specified by customer and focus on overall system features and functionality that are visible and reviewable by customer. Pair programming [11], one of the more well-known XP practices, is a technique in which two programmers work together to develop a single piece of code (Fraser et al, 2000; Williams et al, 2000; Williams & Upchurch, 2001). Refactoring occurs when a change to the internal structure of a system preserves the externally observable functionality of the system [17]. Refactoring is especially effective when large changes can be decomposed into smaller steps that can be carried out using refactoring s that have been developed by fowler and others Agile Approaches Refactoring: Refactoring is a fundamental to Agile Development. Refactoring is a development process for restructuring an existing code, altering its internal structure without changing its external behaviour [17]. It s a process of improvement to an existing software artefact. It improves the design of the software and makes software easier to understand. It helps to avoid errors and to maintain, and modify a program with more accuracy and speed. Code duplication is the main cause for bad smells in code. Eclipses (java), Jbuilder (Java), ReSharper (.NET), and Refactor for Visual Basic are a few names [8]. TDD (Test Driven Development): TDD is one of the most profound agile development practices. It TDD is an 34
3 evolutionary approach to development which instructs to have TFD (Test First Design) intent. TDD actually helps to meet deadlines by eliminating debugging time, minimizing design speculation and re-work, and reducing the cost and fear of changing working code [12]. TDD starts with writing a test to fail and then coding is being done to pass that test. If written code pass the test then code refactoring is being done otherwise again the code is being written and tested. It s a way to do unit testing. The cycle is repeated till the dead end. Unit framework family of open source tools is a very common used tool support for TDD in agile development. TDD is basically the combination of Test First Design and Refactoring [5]. The steps of Test first Design has been summarized in Fig. 2 in the form of flowchart. Start [Fail] Fig. 2: Steps of Test First Design [Pass, Development continue] [Pass, Development stop] Stop 2.3 Agile Software Development and SPI One key research area related to agile processes is in software process improvement (SPI). The differences [14] between software improvement initiatives of Traditional and Agile development have been summarized in Table 2.2. Table 2.2: Underlying differences of Traditional and Agile Software Development and SPI Criteria Process control Primary means of knowledge transfer Immediate focus of process improvement Create a test case Execute it Do little modifications Traditional Software Development and SPI Control on organization level Document based knowledge transfer Improvement of organisational software development process Agile Software Development and SPI Self-organizing teams Face to face communication Improvement of daily working practices of ongoing projects Software development Process 2.4 Reusability Universal approach and repeatable solution to provide high assurance Flexible approach adapted with collective understanding of contextual needs to provide faster development times, responsiveness to rapid changes, Increased customer satisfaction and lower defect rates. To share code between different applications is considered to be the reusability but a variety of assets [15] can be reused across software development processes are summarized in Table 2.3. Table 2.3: Possible Assets for Reuse Intermediate Artefacts Implemented Artefacts Project Management and Quality Assurance Artefacts Requirements System Process models Architectures Designs Algorithms Frameworks, components, modules, packages UML models, interfaces, patterns Libraries Planning models Cost models Review and inspection forms Documentations Test cases Analysis models Reusability increases not only the productivity of the developers but also the reliability and maintainability of the software products. Many software companies have repository to support the reusability. Object-Orientation also offers reusability. No of techniques are available to support reusability. Considerable research and development is going on in reuse; industry standards like CORBA have been created for component interaction; and much domain specific architecture, toolkits, application generators and other related products that support reuse and open systems have been developed [16]. 2.5 Reusability in Agile Software Development There are three ways or technologies discussed one by one below, by which reusability can be incorporated in agile software development. 35
4 2.5.1 Component Based Development (CBD) CBD is a reusability approach that can be found in Microsoft.NET Framework and J2EE (Java2 Enterprise Edition). Component Based Software Engineering (CBSE) process identifies not only candidate components but also qualifies each components interface, adapts components to remove architectural mismatches, assembles components into selected architectural style, and updates components [20] Refactoring to Design Patterns To provide a software system quality in terms of reusability, flexibility and extendibility, refactoring is a significant solution [5]. Use of design patterns in an application increases reusability and maintainability. One new emerging approach that refactoring to design patterns seems to have promising future in reusability discipline. Research is going on in the field of pattern mining as to find new approaches and new tools. Refactoring has been gained much more attention in the object oriented software development. Refactoring to Patterns suggests that using patterns to improve an existing design is better than using patterns early in a new design. We improve designs with patterns by applying sequences of low-level design transformations. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object oriented design patterns typically show relationship, interactions between classes or objects, without specifying the final application classes or objects that are involved Reusable Architectures Reusable architectures can be developed from reusable architectural patterns [18] as in FIM architecture [19] which operates at three different levels of reuse: Federation, domain and application. They focus on how non-functional property reusability relates to the software architecture of a system. They presented a suggested software process model for reuse based software development approach. 2.6 Risk Analysis From the past we learnt that any new development has some associated risks. Major risk is where the decisions are made on the vision and on the future scope of the project. Although its probability is low because we are considering that the team members are experts but its impact is high on project and on the organization itself. Another risk is technical risk which is a common to all of the organizations that what if the technology changes. A new technology comes in the market. Risk related to design patterns is of time as sometimes more than one design pattern seems to be the solution. Risk related to repository is that the assets are kept there which are not being used since a long time. It s related to the maintenance of the repository. The impact is low if the repository is small but as the repository grows the impact will also grow as the time to find the asset will increase. 2.7 Limited Support for Building Reusable Artifacts in Agile Reusable artifacts are code and other components (analysis and design documents, patterns, etc.) that can be reused from one project to another, in their entirety or at least in a major part. In order to create components that are reusable, a bigpicture view must be taken while they are being developed, rather than simply focusing on the current application [21]. This separation of the product-specific development environment from the reusable artifact development environment is a primary feature of the reuse-oriented framework called the Experience Factory developed by researchers at the University of Maryland at College Park (Basili, Caldiera, & Rombach, 1994). Continuous redesign is difficult when we are not developing application-specific artifacts. 3. PROPOSED SOLUTION A model capable of classifying, storing, searching and retrieving the components from the agile repository by using pattern matching algorithms has been proposed in this work is shown in Fig. 3. There are some different storage and retrieval methods are available for the classification of components in software library. This model will help to make searching faster based on classification of components. The flowchart of proposed model is shown in Fig. 4.. Agile Software Development Classification and Storage Executable Components Non-Executable Components Searching and Retrieval Semantic and Syntactic Matching Structural (UML) Classes and Packages (OO) Fig. 3: Proposed Model 36
5 Gather requirements Testing Analyse Choose model Design architecture Text Final product Storage and classification Non executable Implement features Start Iteration No Yes Fulfil requirements Keywords Executable Approx. Match Parameters Deploy increment Customer feedback S/w quality assurance Understand Formalise Search Send to Adapt No Fulfil requirements? Yes Certify Use Fig. 4: Flowchart of Proposed Model 3.1 Storage and retrieval criteria Information retrieval methods These are methods that depend on a textual analysis of software assets. It is important to acknowledge that the storage and retrieval of software assets is nothing but a specialized instance of information storage and retrieval. The registration component is retrieved with other information by using text software reuse is shown in Table 3.1. Component name Table 3.1: Informational retrieval methods Component id Label Language registration Text_6562 software reuse C Descriptive methods These are methods that depend on a textual description of software asset. While information retrieval methods represent assets by some form of text, descriptive methods rely on an abstract surrogate of the asset, typically a set of keywords, or a set of facet definitions. The feedback component is retrieved with other information by using keyword Agility is shown in Table 3.2. Table 3.2: Descriptive methods Component Component id Keyword Language name feedback Key_6522 Agility Java Operational semantics methods These are methods that depend on the operational semantics of software assets. This can be applied to executable code, and proceed by matching candidate assets against a user query on the basis of the candidates behaviour on sample inputs. The update.exe executable component is retrieved with other information by writing the executable name update is shown in Table 3.3. Table 3.3: Operational semantics methods Component name Component id Executable update.exe Exe_4329 update 37
6 3.1.4 Denotational semantics methods These are methods that depend on the denotational semantic definition of software assets are shown in Table 3.4. Unlike operational methods, they can also be applied to nonexecutable assets (such as specifications). The initial requirements non-executable component is retrieved with other information by writing the non-executable name requirements is shown in Table 3.4. Component name Initial requirements Table 3.4: Denotational semantics methods Component id nonexe_7215 Non Executable requirements Method s Informa tional Descrip tive Operati onal Table 3.7: Summary of Technical criteria Preci sion Rec all Technical Cove rage ratio Time compl exity Logic al compl exity Autom ation M H L L M H H H VH VL L VH VH H H M M VH Topological methods The main feature of topological methods is their goal, which is to identify library assets that minimize some measure of distance to the user query. The Support component is retrieved with other information by writing the identity port is shown in Table 3.5. Denotat ional Topolo gical VH H H VH VH M U U VH H M H Component name Table 3.5: Topological methods Component id Identity Structur al VH VH VH VL L VH Support Id_1213 port Table 3.8: Summary of managerial and human criteria Structural methods The main discriminating feature of structural methods is the nature of the software asset they are dealing with: typically, they do not retrieve executable code, but rather program patterns, which are subsequently instantiated to fit the user s needs. The class name city is retrieved with other information by writing the package name state is shown in Table 3.6. Table 3.6: Structural methods Package Class Pattern Language State City Object oriented Java Analysis of accessing criteria The technical, managerial and human criteria have been summarized in Table 3.7 and Table 3.8. The abbreviations used in these tables are VL=Very Low, L=Low, M= Medium, H= High, VH= Very High. The Analysis of retrieving criteria has been shown in Fig. 5. Metho ds Inform ational Descri ptive Operat ional Denot ational Topol ogical Struct ural Inves tment cost Managerial Oper ation al cost Pervas ivenes s State of devel opme nt Diffi culty of use Human Transp arency VL L H H M H H H H H VL VH L M M M L VH H H L L M M VH VH L L VH VH M L L L VL VL 38
7 Precision Recall Coverage ratio Time Logical Automation Investment cost Operational Pervasiveness State of Difficulty of use Transparency International Journal of Computer Applications ( ) Fig. 5: Analysis of accessing criteria 4. ADVANTAGE OF PROPOSED APPROACH Essence of Agile Software Development is rapid software development with reduced overheads. This proposed model will help to make searching faster based on classification of components and introducing reusability in Agile Software Development. It will be accepted widely if pattern based architecture designing, design patterns, UML based analysis and designing is incorporated. Pattern based architecture oriented agile development and use of OO patterns as refactoring to design patterns will make a space for reusability and reusable artifacts. 4.1 Related Work We had conducted a survey on the number of approaches existing for Agile Software Development [7, 17] and Reusability [19] individually, but the proposed model combines both Agile Software Development and Reusability into a single approach for achieving efficient classification, storage and retrieval of software components. Presently there is no such approach as presented in proposed model which combines Agile Software Development and Reusability. 5. CONCLUSION AND FUTURE SCOPE 5.1 Conclusion Agile Software Development has encouraging future in the software industry and is capable of fulfilling the requirements of the industry. Thus, at times it compromises with quality and is incapable of providing reusability of its developed modules. Agile Software Development offers particular solutions whereas Reuse and Component based Development believe in generalized solutions. Reuse based software engineering and agile development is an open research area in fast growth. 5.2 Future Scope The future scope of this work is to analyze and to incorporate risk factors in Agile Software Development systematically and find the critical success factors of the agile software development process and also identify the various risk factors using risk analysis of introducing reusability in agile software development and offer a model that will help us to achieve reusability in Agile Software Development. Reusability can also be automated in agile software development using an automated tool. 6. REFERENCES [1] Salo O., Enabling Software Process Improvement in Agile Software Development Teams and Organizations, ESPOO 2006, VTT Publications 618, pp149 +app.96 pp. [2] Jim Highsmith: Agile Software Development Ecosystems, Addison-Wesley, 2002 [3] Cusumano M., MacCormack A., Kemerer C.F., and Crandall W., A Global Survey of Software Development Practices, available at Intl_Comp.pdf. [4] Agile Manifesto, last accessed: [5] Zannier C., Tool Support for Refactoring to Design Patterns, Conference on OOP System Language and Applications, Companion of the 17th annual ACP SIGPLAN Conference on OOP Systems, Languages and Applications, Seattle, Washington, 2002, pp [6] Murauskaite A., Adomauskas V., Bottlenecks in Agile Software Development using Theory of Constraints (TOC) Principles, Master s Thesis, Gothenburg, Sweden [7] Turk D., France R., and Rumpe B., Limitations of Agile Software Processes, 3rd International Conference on XP and Agile Processes in Software Engineering (XP 2002), May [8] Dyba T., and Dingsoyr T., Empirical Studies and Agile Software Development: A Systematic Review, Information and Software Technology, 2008, vol. 50, pp [9] Hansson C., Dittrich Y., Gustafsson B., and Zarnak S., How Agile are Industrial Software Development Practices?, Journal of Systems and Software, Sept. 2006, vol. 79, issue 9, pp [10] Cronholm S., Using Agile Methods? Expected Effects, 17th International Conference on Information Systems Development (ISD 2008), Paphos, Cyprus, Aug 25-27, [11] Hanssen G. K., and Faegri T.E., Process Fusion: An industrial Case Study on Agile Software Product Line Engineering, Journal of Systems and Software, 2008, vol. 81, pp [12] Ge X., Paige R. F., Polack F.A.C., Chivers H., and Brooke P.J., Agile Development of Secure Web Applications, Proceedings of the 6th International Conference on Web Engg. 2006, pp [13] Boehm B., and Turner R., Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan- Driven methods, ICSE 2004, pp [14] Salo O., and Abrahamsson P., An Iterative Improvement Process for Agile Software Development available at [15] SE%20and %20reuse.pdf 39
8 [16] Garlen D., Allen R., and Ockerbloom J., Architectural Mismatch: Why Reuse is So Hard, IEEE Software, November1995, vol. 12, no 6, pp [17] Pressman R. S., Software Engineering, 7th edition, McGraw Hill Education, [18] Gomma H. and Farrukh G.A., Composition of Software Architectures from Reusable Architecture Patterns, Foundations of Software Engineering, Proceedings of 3rd International Workshop on Software Architecture, Orlando, Florida, US, 1998, pp [19] Gomma H., and Farukh G. A., A Reusable Architecture for Federated Client/Server Systems, Proceedings of the 1999 Symposium on Software Reusability, Los Angeles, California, US, 1999, pp [20] Paulisch F., Siemens AG, Software Architecture and Reuse an Inherent Conflict? 3rd International Conference on Software Reuse, Nov. 1994, pp [21] K.S. J., and Dr. Vasantha R., A New Process Model for Reuse based Software Development Approach, Proceedings of the World Congress on Engineering, London U.K, July 2008, vol. 1. Peterson, L. L Reasoning about naming systems.. 40
Comparing Agile Software Processes Based on the Software Development Project Requirements
CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical
Generalizing Agile Software Development Life Cycle
Generalizing Agile Software Development Life Cycle S. Bhalerao 1, D. Puntambekar 2 Master of Computer Applications Acropolis Institute of Technology and research Indore, India 1 [email protected],
Agile Framework for Globally Distributed Development Environment (The DAD Model)
Agile Framework for Globally Distributed Development Environment (The DAD Model) REHAN AKBAR, MUHAMMAD HARIS, MAJID NAEEM Department of Computer Science GC University, Lahore Pakistan. [email protected]
How To Understand The Limitations Of An Agile Software Development
A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry Apoorva Mishra Computer Science & Engineering C.S.I.T, Durg, India Deepty Dubey Computer Science
CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping
Agile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
CSE 435 Software Engineering. Sept 16, 2015
CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process
CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman
CS435: Introduction to Software Engineering! " " " " " " " "Dr. M. Zhu! Chapter 3! Agile Development! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman
Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles
Master thesis in Applied Information Technology REPORT NO. 2008:014 ISSN: 1651-4769 Department of Applied Information Technology or Department of Computer Science Bottlenecks in Agile Software Development
PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL
PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, [email protected] 2 Faculty
AGILE SOFTWARE DEVELOPMENT A TECHNIQUE
AGILE SOFTWARE DEVELOPMENT A TECHNIQUE Saurav Tiwari 1,Aasheesh Goel 2,Rajeev Sharma 3 1,2 Research Scholar,MCADept.,SRM University,NCRCampus,Modinagar 3 Asst. Prof.,MCADept.,SRM University,NCR Campus
Component Based Development in Software Engineering
Component Based Development in Software Engineering Amandeep Bakshi, Rupinder Singh Abstract--In today s world, Component Based development is an active research area for more than a decade in software
Role of Agile Methodology in Software Development
Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 2, Issue. 10, October 2013,
The Role of Agile Methodology in Project Management
Edith Cowan University Research Online Australian Information Warfare and Security Conference Security Research Institute Conferences 2010 Success of Agile Environment in Complex Projects Abbass Ghanbary
Introduction to Agile Software Development
Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)
Ontology Development and Analysis for Software Development Life Cycle Models
Ontology Development and Analysis for Software Development Life Cycle Models Sandeep Kumar, Surinder Singh, Kuldeep Kumar, Ankita Jain, and R. B. Mishra Abstract- In this current era of software development,
Agile Software Engineering, a proposed extension for in-house software development
Journal of Information & Communication Technology Vol. 5, No. 2, (Fall 2011) 61-73 Agile Software Engineering, a proposed extension for in-house software development Muhammad Misbahuddin * Institute of
Advanced Software Engineering. Software Development Processes
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development
Software Development Going Incremental, Iterative and Agile:
Software Development Going Incremental, Iterative and Agile: Advantages and Challenges An Industrial Case Study Prof. Claes Wohlin, Blekinge Institute of Technology, Sweden Professorial Visiting Fellow,
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software?
System/Software Development Life Cycle Anurag Srivastava Associate Professor ABV-IIITM, Gwalior Why Life Cycle Approach for Software? Life cycle is a sequence of events or patterns that are displayed in
Product Derivation Process and Agile Approaches: Exploring the Integration Potential
Product Derivation Process and Agile Approaches: Exploring the Integration Potential Padraig O Leary, Muhammad Ali Babar, Steffen Thiel, Ita Richardson Lero, the Irish Software Engineering Research Centre,
AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson 23.11.2005 Jyväskylä
AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson 23.11.2005 Jyväskylä Fact corner: SME of 250 developers Mobile & desktop sw Products sold globally EXAMPLE OF AN INNOVATIVE
A Capability Maturity Model (CMM)
Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability
AGILE vs. WATERFALL METHODOLOGIES
AGILE vs. WATERFALL METHODOLOGIES Introduction Agile and waterfall are two major methodologies that software developers and project managers have the option of using. Some of the goals of developers and
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
Comparative Analysis of Different Agile Methodologies
Comparative Analysis of Different Agile Methodologies Shelly M. Phil (CS), Department of Computer Science, Punjabi University, Patiala-147002, Punjab, India Abstract: Today s business, political and economic
Agile Projects 7. Agile Project Management 21
Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management
SOFTWARE PROCESS MODELS
SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation
Elite: A New Component-Based Software Development Model
Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-
SECC Agile Foundation Certificate Examination Handbook
Versions 2.0 Version Date Remarks 1.0 12/4/2012 Initial version 2.0 3/8/2008 REVISION HISTORY Updated knowledge areas Added questions examples Updated suggested readings section Page 2 of 15 Version 2.0
Software Engineering
1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, [email protected] 2 ABB Corporate Research,
A Contrast and Comparison of Modern Software Process Models
A Contrast and Comparison of Modern Software Process s Pankaj Vohra Computer Science & Engineering Department Thapar University, Patiala Ashima Singh Computer Science & Engineering Department Thapar University,
AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems
Global Journal of Computer Science and Technology: B Cloud and Distributed Volume 14 Issue 1 Version 1.0 Year 2014 Type: Double Blind Peer Reviewed International Research Journal Publisher: Global Journals
Applying Agile Methods in Rapidly Changing Environments
Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen
Agile Development Overview
Presented by Jennifer Bleen, PMP Project Services Practice of Cardinal Solutions Group, Inc. Contact: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others
BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE
TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW
Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of
Software Development Life Cycle Models - Process Models. Week 2, Session 1
Software Development Life Cycle Models - Process Models Week 2, Session 1 PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative
Agile Techniques for Object Databases
db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and
Extreme Programming: Strengths and Weaknesses
The International Arab Conference on Information Technology (ACIT 2013) Extreme Programming: Strengths and Weaknesses Ahmad dalalah Prep. Year Deanship University of Hail, SA [email protected] Abstract:
Web Application Development Processes: Requirements, Demands and Challenges
Web Application Development Processes: Requirements, Demands and Challenges THAMER AL-ROUSAN 1, BASEM HADIDI 2, SHADI ALJAWARNEH 3 1, 3 Faculty of Science and Information Technology, Isra University, Amman,
Agile Software Development
Agile Software Development Use case for Agile Software Development Methodology in an Oil and Gas Exploration environment. White Paper Introduction No matter what business you are in, there are critical
COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS
COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS *1 Mrs. Kalaivani S., * 2 Mrs. Kavitha S., *1 M.Phil Research Scholar, Department of Computer Science Auxilium College (Autonomous), Vellore, TamilNadu,
Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD
Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:
Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal [email protected]
Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal [email protected] Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software
USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS
Journal of Applied Economics and Business USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS Nevenka Kirovska 1, Saso Koceski 2 Faculty of Computer Science, University Goce Delchev, Stip, Macedonia
Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering
Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.
Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1
Collaborative Large scale Integrating Project Open Platform for EvolutioNary Certification Of Safety critical Systems Methodology: Agile development of safety critical systems to deliverable D1.1 Work
REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT
REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT 1 MALIK HNEIF, 2 SIEW HOCK OW 1 Department of Software Engineering, University of Malaya, Kuala Lumpur, Malaysia-50603 2 Assoc. Prof., Department of
Agile Processes and Methodologies: A Conceptual Study
Agile Processes and Methodologies: A Conceptual Study Sheetal Sharma Amity School of Engineering & Technology Amity University Noida [email protected] Darothi Sarkar Amity School of Engineering &
Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).
0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems
Evolving a Ultra-Flow Software Development Life Cycle Model
RESEARCH ARTICLE International Journal of Computer Techniques - Volume 2 Issue 4, July - Aug Year Evolving a Ultra-Flow Software Development Life Cycle Model Divya G.R.*, Kavitha S.** *(Computer Science,
Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations
International Journal of Recent Research and Review, Vol. VI, June 2013 Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations Uma Kumari 1, Abhay Upadhyaya
Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan
Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering Shvetha Soundararajan Thesis submitted to the faculty of the Virginia Polytechnic Institute and State University
A Review of an MVC Framework based Software Development
, pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University
Agile Development with C#
Agile Development with C# Paweł Jarosz, [email protected] Cracow University of Technology, Poland Jyvaskyla University of Applied Sciences, February 2009 Paweł Jarosz who am I? M.Sc. of Applied Physics
Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods
Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing
Umbrella: A New Component-Based Software Development Model
2009 International Conference on Computer Engineering and Applications IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore Umbrella: A New Component-Based Software Development Model Anurag Dixit and P.C.
Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study
Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study S. Vijayakumar [email protected] School of Computer and Information Science University of South Australia,
An Agile Project Management Model
Agile Project Management Jim Highsmith Chapter 5 An Agile Project Management Model We improve effectiveness and reliability through situationally specific strategies, processes, and practices. One of the
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand
Software Quality and Assurance in Waterfall model and XP - A Comparative Study
Software Quality and Assurance in Waterfall model and XP - A Comparative Study Dr. Sana a Jawdat Khalaf [email protected] Dr. Mohamed Noor Al-Jedaiah [email protected] Abstract: -Dealing with
XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories
XP & Scrum Beatrice Åkerblom [email protected] extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or
CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE
CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE Zahra Askarinejad Amiri 1 1 Department of Computer Engineering, Staffordshire University ABSTRACT [email protected] As Information
Introduction to Agile and Scrum
Introduction to Agile and Scrum Matthew Renze @matthewrenze COMS 309 - Software Development Practices Purpose Intro to Agile and Scrum Prepare you for the industry Questions and answers Overview Intro
Emergence Of Agile Software Development Methodologies: A Sri Lankan Software R & D Outlook
Emergence Of Agile Software Development Methodologies: A Sri Lankan Software R & D Outlook W.K.S.D Fernando, D.G.S.M Wijayarathne, J.S.D Fernando, M.P.L Mendis, C.D Manawadu Abstract: In software development
A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management
International Journal of Soft Computing and Engineering (IJSCE) A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management Jayanthi.R, M Lilly Florence Abstract:
An Appraisal of Agile Software Development Process
, pp.75-86 http://dx.doi.org/10.14257/ijast.2013.58.07 An Appraisal of Agile Software Development Process Muhammad Amir 1, Khalid Khan 2, Adnan Khan 3 and M.N.A. Khan 4 1,2,3,4 Department of Computing,
Success Factors of Agile Software Development
Success Factors of Agile Software Development Subhas C. Misra, Vinod Kumar, and Uma Kumar Carleton University, Ottawa, Canada Abstract Agile software development methodologies have recently gained widespread
Java course - IAG0040. Unit testing & Agile Software Development
Java course - IAG0040 Unit testing & Agile Software Development 2011 Unit tests How to be confident that your code works? Why wait for somebody else to test your code? How to provide up-to-date examples
Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;
Volume 4, Issue 4, April 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Document Driven
Introduction to Agile Software Development Process. Software Development Life Cycles
Introduction to Agile Software Development Process Presenter: Soontarin W. (Senior Software Process Specialist) Date: 24 November 2010 AGENDA Software Development Life Cycles Waterfall Model Iterative
INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal
INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison
Agile processes. Extreme Programming, an agile software development process
Agile processes Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development
Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.
Software Process Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind. Any process has these characteristics: The process prescribes all
Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan
YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile
Introduction to Software Engineering. 8. Software Quality
Introduction to Software Engineering 8. Software Quality Roadmap > What is quality? > Quality Attributes > Quality Assurance: Planning and Reviewing > Quality System and Standards 2 Sources > Software
Software Development Process
Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software
Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008
Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who wants to be involved in a BI project or program that is labeled slow or inflexible? While I don t believe
The traditional project management uses conventional methods in software project management process.
Volume 5, Issue 1, January 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Analysis of
Agile Software Development Methodologies & Correlation with Employability Skills
Agile Software Development Methodologies & Correlation with Employability Skills Dineshkumar Lohiya School of Computer and Information Science University of South Australia, Adelaide [email protected]
AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad-431003
AGILE SOFTWARE DEVELOPMENT BY Sysop Technology Aurangabad-431003 Abstract: Software development which can be delivered fast, quick adaptation to requirements and collecting feed back on required information.
Agile Methodologies and Its Processes
International Journal of Computational Engineering Research Vol, 03 Issue, 9 Agile Methodologies and Its Processes 1, Akanksha, 2, Akansha Rakheja, 3, Latika Kapur, 4, Kanika Ahuja 1,2,3,, Information
Testing in Agile methodologies easier or more difficult?
Testing in Agile methodologies easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości Systemów Informatycznych [email protected] [email protected] Professor in
Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1
Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of
