SELECTING SOFTWARE PROJECT IMPLEMENTATION PROCESS MODELS BASED ON SOFTWARE PROJECT GOALS Evangelos Markopoulos1
[email protected] Javier Bilbao
[email protected] John-Chris Panayiotopoulos1
[email protected] 1
Department of Informatics School of Informatics University of Piraeus Piraeus (Greece)
2
Department of Mathematics School of Engineering University of the Basque Country Bilbao (Spain)
Abstract. Selecting a software process implementation model is a project by itself based an a number of organizational and project constraints that identify the project first, the project goals and then the process implementation process. This paper attempts to present this concept and even defend the idea that most of the software implementation process models are based one the one and only waterfall development approach. The development of many other implementation process modes was primarily done on attempts to approach project implementation by approaching the project constraints and project goals per case. By proving that most of the most well defined and internationally accepted software development models have no major theoretical and practical differences from the classic waterfall model, it also proved that the selection of the implementation process model is based solely on the identification of the project and the project goals.
1 INTRODUCTION. Software development has always be considered one of the most challenging engineering processes. Despite the fact that technology is the major ingredient to the changes in almost every professional field, the basic software development principles remain unchanged. This situation has often been referred to as the “software crisis” (1), (2). Even that this software crisis had been predicted and analyzed more than fifteen years ago, in now days not much has changed (3), (4). Over the last 40 years many information systems development models have been introduced, with each one of them approaching different development dimensions and strategies. From the all time classic waterfall model (5), to the extreme programming (6) and the AGILA methods (7), systems and software development has been evolved significantly covering all types of information systems and development goals. Despite the fact that new systems development techniques have been evolved based on system parameterization, system reuse and system integration, (8), (9), (10), most of the systems being build prefer the custom-made approach (11), with the human interaction factor in a very critical role. Developing successful information systems depends on many management perspectives, practices and approaches that will support the engineering goals (12), (13).
2 IDENTIFYING THE PROJECT NEEDS AND GOALS. The identification of the project goal is much more difficult than the implementation of the project itself.
Selecting Software Project Implementation Process Models based on Software Project Goals
Regardless the effort, the engineering expertise, the use of state of the art technologies, or the development tools and approaches, it is very critical to identify the project needs before the identification of the development approach. Projects are not categorized only by their complexity, technologies and expected results. A more complex set of parameters and characteristics determine the identification of the project and the identification of the project implementation methodology that is suitable to support the specific project (14). Those constraints can be initially placed in two categories, the organizational project constraints and the technical projects constraints (15). The organizational constraints deal with the maturity of the organization to implement a project based on a desired strategy. Such constraints are related with the experience of the implementation team on process models, quality assurance practices, management commitment, and other non technical but rather organizational and administrative issues. On the other hand the technical constraints are based not only on the technological complexity of the project, but also on the project schedule and budget against the expected quality. Once the puzzle of the project identification has been solved, the effort goes on a new one, related with the selection of the implementation approach.
3 SELECTING THE PROPER PROJECT IMPLEMENTATION PROCESS MODEL. The selection of the project implementation process model to be use in the execution of the implementation of a specific project, once defined, is the realization of the project identification and project goals effort. If a project needs to be developed using a conservative approach, then prototypes can be developed before the core implementation of the system begins. If on the other hand, the requirements are not clear, or not defined then a rapid prototyping approach can be selected that will help the project to be build piece by piece based on the development of the requirements. The selection of the project implementation process models is not base only on technical requirements related to the project goals but also on other techniques primarily related to the project goals. Evolutionary development can be used when a project needs to be delivered in tight schedules regardless the completeness of its operation. Reusability approaches can be used when there are budget issues and cost management is a prime concern. Selecting the proper project implementation approach is the second difficult and critical issue after the project identification. The least critical is the development of the software.
4 THE WATERFALL DEVELOPMENT PROCESS MODEL AND THE OTHER. The last 40 years up until now, there have been hundreds or software process implementation modes introduced by academic institutions, public organizations, private organizations, international organizations, bodies, etc. (16). Each one of the introduced methodologies indeed had a unique approach, but most of them followed the basic engineering principles and worked around their new methods based on specific projects needs, project target group, or engineering trends of that specific time period. The Waterfall process model (5), was the backbone of all the other software development process models presented after that. A very classic, but always reliable, process flow management model for managing the development life cycle is described in the waterfall process approach.
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
2/9
Selecting Software Project Implementation Process Models based on Software Project Goals
4.1 The Waterfall Development Model. In the waterfall model, the development of software or the development of other software and information technology projects, pass through a number consecutively depended phases. This phase transition takes place only when the activities of one phase are completed (or in some cases, partially completed). Turning back in the waterfall model is not a smart idea since much of the work will be re-done while risking the quality (17) of the system. A very simplified diagram of the waterfall model, presented in figure 1. The impact of the waterfall model in the software engineering community was very big and many other versions of the waterfall approach were developed by changing either the concept of some project implementation phases or their order. Figure 2 presents one of those waterfall model versions. Project Planning
Requirements & System Analysis System Design
Coding & Unit Testing System Integration & System testing
Delivery & Maintenance
Figure 1. The Waterfall Development Model The classic waterfall development model can be considered and error free approach, easy to use and suitable at any type of project but requires time to be completed since not many process overlaps and turn backs are accepted. Requirements Elicitation
User signature required proceeding with the implementation of the next phase
Implementation Plan User needs & System Design
Analysis & Design
Implementation
Source Code
Testing Analysis
Parametrization SW Installation Application Integration Test Results
OR
User needs Design
System Design
Installation and Operation
Implementation
Figure 2. One of the many variations of the Waterfall Development Model
4.2 The Incremental Development Model. Based on the Waterfall Model, another quite interesting and heavily used model was generated. The Incremental Development Model (18), presented in figure 3, supports the development of a system through a series of partial project components (increments) within the project’s implementation schedule. Even that scientifically has been stated that there are quite many process differences between the waterfall approach and the incremental approach, the model practically is a repeatable waterfall model (19).
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
3/9
Selecting Software Project Implementation Process Models based on Software Project Goals
Module n Module B Analysis & Design (Module A)
Module n
Module B Implementation (Module A) Testing (Module A)
Module n Module B
Module n Module B Installation & Operation (Mod. A)
Figure 3. The Incremental Development Model In the incremental development model each part of the development, no mater how small it is, covers the phases of the waterfall model. The incremental model is suitable for projects that can be broken into independent entities and be developed in parallel having their integration and system testing being done after the completion of all the software components (increments). This approach reduces the development time dramatically but is risky on the integration attempt.
4.3 The Rapid Prototyping Development Model. The Rapid Prototyping Model (20), presented in figure 4, has also the waterfall approach as the backbone of its operation, since it develops the final system through a series of the prototype iterations. A waterfall approach supports all the prototypes as well as the final one which is the final software version to be delivered (final iteration of the prototype process). The repetition of the waterfall model in as a whole in a project and not in project increments is considered the actual system’s development cycle. Project Planning Analysis & Design Integration Test Implementation
Installation & Operation
Figure 4. The Rapid Prototyping Development Model The Rapid Prototyping Model is suitable for the development of projects lacking on requirements definition or project goals identification. The development of a system based on evolving prototypes can be risky from project a management perspective since it is difficult to predict when the prototype type development shall end and when the core development shall start. 4.4 The Spiral Development Model. The Spiral Development Model (21), presented in figure 5 is the one with the most successful attempt to be differentiated from the waterfall concept successfully. The Spiral Model, when introduced, incorporative development approaches and techniques, not existed at that time as structured process models, like the prototyping development, the evolutionary development and others., and which later on got matured as intepentded development concepts. The spiral model initiates its activities based on the prototype concept and concludes with a waterfall approach.
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
4/9
Selecting Software Project Implementation Process Models based on Software Project Goals
Determine Objectives, Alternative Constraints Risk Analysis
Risk Analysis
Prototyping 1,
Requir. Analysis
Evaluate Alternatives, Identify, Resolve Risks
Risk Analysis
Prototype 2,
Operational Prototype
Req. Plan Change of Life Plan SW Operation Detailed Design SW Product Requirements Development Design Requirements Code, ParameIntegr. Plan Validation trization & Test Plan Design Valid. Unit & Verification Develop, Verify Next Test ImplemePlan Next Phases Acceptance Integration & Level Product ntation Test Test
Figure 5. The Spiral Development Model The spiral development model is the safest way to develop any software project but also a time consuming one since the maturity of the requirements and the project goals are evolved during the project and not before that or in other specific project implementation phases. The spiral model can be consider the best one in software product development, when planning and development time is available, but not that effective in software project development, with time, and budget restrictions.
4.5 Evolutionary Development. The Evolutionary Development Model is based on a very interesting interpretation of the waterfall model. The evolutionary approach is based on the versioning concept. The first version of the project is developed at once, and then the versions after that get the project mature through the completion of its requirements (figure 6). The whole evolutionary approach is based on a repetitive waterfall implementation. Unlike the rapid prototyping or other prototype based approaches, the evolutionary model is not a prototype based approach. The entire software is developed at the minimum operational version and then its is getting matured as a system and not as a system component.
Analysis Project Description
Implementation - coding Testing
Initial Version
Αρχική Intermediate Αρχική Versions Έκδοση Έκδοση Final Version
Figure 6. The Evolutionary Development Model The Evolutionary development model can be used best at projects with tight schedules and delivery deadlines.
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
5/9
Selecting Software Project Implementation Process Models based on Software Project Goals
4.6 Formal Transformation Development Model. The Formal Transformation Development Model uses a waterfall approach within the requirements analysis and system analysis phases. Unlike most of the software development models, which base the development process in phases with execution effort proportionally defined on the project complexity and schedule, the formal transformation emphasizes in the analysis of the system for which the software is being developed by a serried of requirements and system analysis transformations (figure 7). The waterfall concept is repeated in this case within a phase and not within the project as a whole. Requirements
Formal Specification
Transformation 1
Formal Transformation
Transformation 2
Formal Analysis
Improvement 1
Code v1
Code v2
Integration and Testing
Transformation n-1
Improvement 2
Transformation n
Improvement n-1
Code v n-1
Executable Code
Code v n
Figure 7. The Formal Transformation Model The formal transformation model can be used primarily in research type projects where the development is based on a number or prototyping iterations within the project analysis and project identification effort.
4.7 Reuse- Oriented Development Model. The Reuse Oriented Development model is identical to the waterfall development model with the only difference in the analysis and coding goals and techniques. The re-use approach, is a continuous upcoming development approach which is based in the reusability not only of specific code segments, functions, procedures, classes, etc, but on the reusability of specific components and even systems is many cases, if available (figure 8). Testing Coding and Integration
Component Analysis
Requirements Adjustments
Re-Use based Design
Requirements
Figure 8. The Re-Use Development Model The reuse development approach is primarily used when software engineering practices are precisely followed in an organization, allowing the identification, documentation and integration of software components in a project. The reuse approach is also suitable when there are common concepts of the project being developed with other projects being developed in the past.
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
6/9
Selecting Software Project Implementation Process Models based on Software Project Goals
4.8 Other Development Models. The software process development models can not be restricted in the ones presented in this paper. Many other very interesting software process development models and approaches like the intermezzo, the rapid application development, the extreme programming and many more are widely used today by the international software engineering community with each one using the waterfall concept differently and creatively based on the project goals and methodology orientation and philosophy.
5 THE SOFTWARE PROCESS FRAMEWORKS APPROACH. Software development, software project management and software process has been evolved and readjusted through time based on the evolution and the advancements of the technology and also on the maturity of the project owners being capable to identify more and more precisely the project goals and adjectives (22). Unfortunately none of the development process approaches can be considered as a silver bullet, capably to deal with all type of projects at all times. Nearly all the process models developed after the waterfall process models have been build around it, without major practical but rather conceptual differentiations. Following the principles of the waterfall model is not a bad idea. After all most of the other engineering disciplines have not much to present as far as the development principles. This does not mean that dramatic improvements in process development should not be expected, but they will require probably a change of mind and mentality to be understood. The process framework concept is a new idea that starts to be accepted more and more in many fields and primarily in the software engineering (23). The software development frameworks are based on the concept of determining the project implementation process by selecting the proper process to be executed in a workflow model based on the needs and goals of the specific project (24). This open mind, or liberal process tailoring concept has risks and benefits. The major risk is based on the maturity of the project manager or technical project manager to identify properly the needs and goals of the project. Based on that, the proper software process model must be developed and the executed during the development of the project. A wrong decision can easily create domino effect disasters. The benefits on the other hand are obvious, but closely associated with the risks.
6 RESULTS. The software implementation method and approach that can be used in a project is heavily based on the identification of the project, the project goals and the project organizational and technical constraints. Not all projects are alike but most of the process implementation models are. Despite the fact that after the introduction of the waterfall development model in 1969 by Winston Royce, hundreds of other development approaches were introduced, al of them successful with more or less innovation and practicality. Each new development model was developed to support specific types of projects or specific project goals, and all of them used the waterfall development model as their backbone. The fact that non of them is the big break through that could present a totally different approach or project implementation concept is not due to lack of creativity but due to the software crises in which the world, and the software community as well, is in since the beginning of the software history. Inadequate, incomplete, insufficient requirements lead to insufficient project
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
7/9
Selecting Software Project Implementation Process Models based on Software Project Goals
definitions, insufficient project goals, which lead into improper selection or the project implementation model. This crisis is primarily due to the lack of communication between the users and the engineers and it seems that it will go like that for much longer. Software development models need to be evolved into more adjustable process engineering concepts instead of process management concepts. The introduction of the process frameworks are heading towards a new way of developing implementation processes without the need or obligation to implement projects in defined, strict, or even more flexible project implementation models. Until then, the selection of the process models based on the project goals is a step towards the right direction despite the fact that the same development principles remain unchanged.
7 REFERENCES 1. Arthur, L. J. Measuring Programmer Productivity and Software Quality. New York: John Wiley, 1985. 2. Gibbs W., ‘Software’s Chronic Crisis’, Scientific American, vol. 271, no. 3, pp 86-95, 1994 3. Glass, R., ‘Is there really a software crisis’, IEEE Software, vol. 15, no. 1, January 1998, pp.104-105. 4. Gibbs W., ‘Software’s Chronic Crisis’, Scientific American, vol. 271, no. 3, pp 86-95, 1994 5. Royce W. W., ‘Managing the Development of Large Software Systems’, Proceedngs of IEEE WESCON, pp 1-9, 1970/ 6. Shore J., ‘Continuous Design’, IEEE Software, Vol 21, Issue 1, pp. 20-22, January 2004. 7. Ambler S., ‘Agile Modeling’ John Wiley & Sons 2001. 8. Khan A., ‘Implementing SAP with an ASAP Methodology Focus’, Writers Club Press, 2002/ 9. Yourdon E., ‘Sodtware Reuse’, Application Development Strategies, vol. 1, no. 12, December 1994, pp. 1-16 10. Sharon d., and Bell R., ‘Tools that Bind: Creating Integrated Environments’, IEEE Software, March 1995, pp. 76-85 11. Pressman, R., and Ince D., ‘Software Engineering. A practitioner’s approach. European Adaptation’ Fifth Edition, McGraw Hill, 2000 12. Humphrey W., ‘Introduction to the Team Software Process’, Addison Wesley, 2000 13. Humphrey W., ‘Managing The Software Process’, Addison Wesley, 1989 14. Markopoulos E., Panayiotopoulos J-C., ‘Selecting an information Technology project management methodology based on project constraints, goals and dimensions’, Proceedings of the WSEAS ‘05 International CSCC Conference, July 11-16, 2005 15. Markopoulos E., Panayiotopoulos J-C., ‘A Project Management Methodology Selection Approach based on Practical Project and Organizational Constraints’, WSEAS Transactions on Computers, Issue 8, Vol 4, pp 934-942, August 2005 16. Markopoulos E., Panayiotopoulos J-C., ‘An Evaluation, Correlation and Consolidation of Information Technology Project Management Processes’, Proceedings of the 2006
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
8/9
Selecting Software Project Implementation Process Models based on Software Project Goals
International Conference on Engineering and Mathematics , July 10-11, 2006, Bilbao, Spain. 17. Markopoulos Ε. A Methodological Approach in the Software Development Process, ECO-Q, Issue 23, August 2000, pp 30-34 18. Sommerville I. Software Engineering. 6th Edition, Addison Wesley. 19. Graham, D. Incremental Development and Delivery for Large Software Systems. http://home.swipnet.se/~w-26311/evo-gilb/graham1.htm. Sited 16-08-06. 20. Pressman, R. S. Software Engineering -- A Practitioner's Approach, McGraw-Hill. 21. Boehm B., ‘A Spiral Model of Software Development and Enhancement’, IEEE Computer, vol. 21, no. 5, May 1988 pp 61-72 22. Robertson S., Robertson J., ‘Mastering the Requirements Process’, acm press, Addison Wesley, 1999 23. Markopoulos E., Panayiotopoulos J-C., ‘An Information Systems Acquisition Management Framework’, Proceedings of the 10th WSEAS (World Scientific and Engineering Academy Society) International CSCC Conference, July 10-15, 2006, Athens, Greece. 24. Markopoulos E., Panayiotopoulos J-C., ‘Managing Information Technology Systems Acquisition Projects’, WSEAS Transactions on Communications, Issue 9, Vol 5, pp 1823-1831, September 2006.
Markopoulos E., Bilbao J., Panayiotopoulos J-C.
9/9