Software Processing Methodology
Understanding the Problem
Klyne Smith, DSE Candidate
Dr. Frank Coyle
Technical
Motivation
Research and Contribution Methods
Software Processing Methodologies
Waterfall Methodology
Strengths
Weaknesses
Opportunity
Threats
Iterative Methodology
Strengths
Weaknesses
Opportunities
Threats
Model Methodology
Strengths
Weaknesses
Opportunities
Threats
Where do we go from here (Spring 2010)?
Define measurement data points for Test Case analysis
Section IV
Creation and Validation of the predictive model
Section V
Summary Analysis
Practical Usage
Praxis Conclusion
Books
Articles / Web Information
Software Processing Methodology:
Understanding the Problem
Section I:
Introduction
In this work, I examine three different Software Processing Methodologies. I start with the iterative model, followed by the spiral model, and conclude with the V-model. Each of these methodologies are discussed in length to gain a clear understanding of their similarities and differences. This paper focuses on gaining a key understanding of the methodologies and when it is best to utilize each. Each serves a special purpose; the process of understanding the problem one must solve remains as complicated as actually solving the problem itself. In this work, I will investigate the intricacies required to formulate the problem while also selecting the appropriate methodology. I will analyze each of the methodologies, their pros and cons, given problem we are intending to solve. The pure nature of the problem will not only dictate which methodology, but also foreground why. The why becomes critical to providing a solid response.
This work also provides an analysis of historical projects and examines their chosen methodology. I provide a complete breakdown of the thought process for entry into the methodology as well as an examination and summary of the life cycle model based on the chosen methodology. I conclude each with a summary of possible different outcomes if another methodology would have been selected to solve the same problem.
The end results of this work is intended to provide a new setup entrance criteria to select a software processing methodology based on the problem. Given the enormity of software processing methodologies, this work will sub-focus on the requirement element of each model listed above.
Technical question
How to determine which software processing methodology provides the optimal delivery of a complex solution with regards to functionality, cost, schedule, and quality, also known as the quad constraint (PMI, 2007). Quad constraint an extension of the well-known triple constraint;, which consists of cost, functionality, and time. The triple constraint forms one of the most important concepts in the context of project management. However, as Reis (2008) pointed out that the execution of a given project includes the alteration of three or four legs of a ‘stool’ that comprises of cost, time, and functionality and now includes quality as the fourth leg or constraint. A change in functionality would lead an increase in project cost and time along with possible impacts to quality. This means that an alteration of one leg of the stool would mean a change in the other legs of the stool[footnoteRef:1]. This praxis will examine three different software processing methodologies. The end goal is to develop a model that will predict which model should be used to deliver the given solution. [1: See Reis (2008)]
Deploying a solution that optimizes the quad constraint remains crucial to the survival of all companies. The quantitative portion of this praxis will focus on the requirements aspects of each model, but a full understanding of each model will be required. Requirements are the cornerstones of driving a successful project. Failure to produce and deliver quality and accurate requirements is the main cause of project failure with regards to the quad constraint. This praxis will not spend cycles reproving the value of software processes, but will rely on already proven works. This work will examine the various models to set the background and understanding of the value of each. The comparison is relevant to creating the final model for selection.
The extended technical question that drives the overall thought process hinges upon what solution works best in the current customer environment to deliver and support the end solution within the overall strategic business case. Companies struggle with understanding the multitude of approaches to deliver a complex technical solution. When choosing a methodology, organizations must consider the current resources available people, processes, and technology within given environment. The combination of building and maintaining a solution within the cost and revenue guidelines causes most IT leaders to move with caution on any technical decision, let alone the methodology. The focus is to help those leaders choose the best methodology so as to ensure success.
Motivation
The importance of the problem involves improving the number of successful deliveries in the context of the quad constraint. Projects always deliver. That is not the concern. Optimizing the delivery and reducing overall costs to improve revenue are the motivating factors behind selecting the best fit methodology. The goal is to help organizations select the right methodology and ramp up resources to drive the requirements phase of the project. Focusing delivery using the best fit methodology has proven to reduce costs and provide a better quality solution.
Methodology
This work utilizes both academic and corporate theory to define a set of new entrance criteria for selecting the model to best solve the problem.
The following is the approach of this paper.
1. Introduction and Setup the Problem (Theory)
a. This information is provided in Section I and serves to set the stage for the problem we are attempting to solve. It also includes the rationale behind the work.
2. Analysis of three Software Methodologies (Theory)
This information is provided in Section II and will focus on defining the three methodologies along with the SWOT analysis for each. This section will conclude with recommendations on how to begin the definition of the data points required to build the predictive model for entrance criteria on methodology selection.
3. Define measurement data points for test case analysis (Theory plus Practical)
This information is provided in Section III and consists of evaluating six completed complex technical solutions using each of the models. The solutions selected are similar in nature and completed for a more comprehensive result. This section also defines the data points for the predictive model.
4. Creation and Validation of the predictive model (Practical)
This information is provided in Section IV and is the mathematical representation in Excel that provides a methodology recommendation based on the input parameters and data points defined in section III. The model that will be used has not been finalized because it will rely on the data points defined in Section III. We will review and determine if the model will use semantic, UML, SysML or a combination. The final model will take inputs from the determined model (s).
5. Conclusion
This section provides a summary analysis of the findings as it relates to the research. This section will also discuss the practical usage of the model in a corporate vs. academic environment.
Research and Contribution Methods
Textbooks, internet articles, current and past work experience, interviews with colleagues and discussions with other industry experts will guide and shape the outcome of this praxis. I plan to work with corporations, universities, and government agencies to acquire the required completed projects for the analysis against each methodology.
I will also take the predictive model into my current company and use it against new projects on the horizon. The goal of my praxis is to have three small projects created from start to finish using each of the three methodologies and conclude if the predictive model can be validated in a controlled sample.
Section II:
Software Processing Methodologies
Developing a system methodology means the structuring, controlling, and planning the development of a system of information (CMS,2005). There have been a number of frameworks developed over the many years with each framework exhibiting its uniqueness in recognized strengths and weaknesses. In this consideration, all system processing methodologies are not all good fits for all projects. Of course using the word “all” makes this statement true. The real focus is not which methodology does not fit, but rather which is the more optimal fit. In this section we explore the Waterfall, Iterative, and V-model methodologies. The end result of this section are to provide the path to the data points required in section III.
The background of software processing methodologies
According to Royce (1970), the explicit models in the context of software evolution can be traced to the earliest project that involved the development of very large software systems in 1950’s as well as 1960’s.In totality, the most obvious purpose for the development of these earlier software development methods/models was to present a conceptual scheme to be used for the rational management of the software development systems. These schemes served as the main basis used to plan, organize, staff, coordinate, budget as well as direct all of the software development activities.
Boehm (1976) pointed out that since the 1960’s several descriptions of the traditional (classic ) software life cycle have been postulated.Royce (1970) formulated the software life cycle by means of the now popular “waterfall” technique/chart. This is displayed in the figure below;
The “waterfall” chart effectively summarizes in one display how the development of large software is extremely difficult since it entails the execution of complex engineering activities/tasks that may need rework as well as iteration before the project is completed. These kind of charts are usually employed in the process of performing introductory presentations for customers of customized software. The audience usually comprises of individuals who are mainly unfamiliar with the rather technical problems as well as strategies that ought to be addresses whenever one is constructing a relatively large software system (Royce,1970).
Figure 1;The waterfall model (Royce,1970)
The classic software life cycle models mainly comprises of some elements of the following activities;
System planning
Requirement analysis
Functional specifications
Partition as well as selection
Software integration and testing
Documentation, model revision s well as system delivery
Deployment
Training as well as use
Maintenance
Software life cycle model
A software life cycle model is described as a descriptive or a rather prescriptive system characterization of how given software should be developed. A descriptive model effectively describes the history of development of particular software. Curtis, Krasner, Iscoe, (1988) points out those descriptive models can be employed as the basis for properly understanding as well as improvement of the existing software development processes. The descriptive models may also be used for the construction of empirically-based prescriptive models. The prescriptive models effectively prescribes how new software systems are to be developed. They are used as the frameworks as well as guidelines for organizing and structuring the various software development activities that are to be carried out as well as the order in which they are to be carried out. Ideally, it is much easier and common to clearly articulate the chosen prescriptive life cycle model that is to be deployed. This is very possible due to the fact that most of these models are intuitive as well reasoned. The implications of this are that several details that are idiosyncratic in the description of the software systems’ building can easily be ignored, deferred or generalized. Descriptive models may also be uses in the packaging of the development tasks as well as techniques used in the development of a certain category of software engineering tools.
Waterfall Methodology
The waterfall methodology is rather a sequential software development model for the entire solution (SBS,2011). It requires significant upfront activity and clear requirements. Most software development shops belittle the waterfall methodology as cumbersome and slow providing a sequence of steps that are orderly and as well as developmental steps that ensure that design, reviews and documentation enabled the quality, reliability, and maintainability of the resultant software (Chapman, 1997). Key factors for the waterfall methodology are Products and Processes (MIT,2002).
All projects are better managed if they are broken down into a hierarchy of phases with some overlap allowed between the phases. Other chunks in which a project can be divided include stages, tasks activities and steps. Simplistic rendition in a system development project is usually called waterfall methodology with a focus on time schedules, planning, budgeting as well as implementation of the whole system at a time. Also, in this methodology, extensive documentation and use of extensively written documentation is used to maintain a tight control over the project in its entire lifespan. The waterfall methodology has seven (7) products; communicated requirements, requirements specification document, design specification document, executable software models, integrated software product, delivered software product, and changed requirements (QTP Blog, 2009). This also includes approvals or sign-offs at the beginning of a new project phase. A waterfall methodology is as shown in figure 1 below.
Fig1.The waterfall methodology
Hamlet and Maybee (2001, p15)
It is important to note that figure 1 depicts a few crucial principles of a good methodology which provides for; working in stages, conducting content reviews between the stages, reviewing decision points and establishing quality gates for the purposes of continuation. In terms of modeling, we look at the input and output parameters for each of the phases and assign a numerical value as it relates to the final data points.
Strengths
The waterfall methodology is suitable for applications with inexperienced project teams and management or in a situation where the composition of the project team fluctuates. In this scenario, it supports the continuity of the software development fully well. When strict controls are merged with orderly sequence and design reviews, the maintainability, quality and reliability of the developed software is assured. In addition to the conservation of resources, the waterfall methodology also ensures that every progress of the system development becomes measurable by the team or the managers. The waterfall requires that the problem be well understood and requirements are well defined.
Weaknesses
Due to the set tight controls and significant structures, the waterfall methodology is not only rigid, cumbersome and costly, but also a slow method of system development (Hamlet and Maybee 2001). Also as the system development progresses, there are usually few steps backwards with this methodology. Since the users may not be able to clearly state what they actually need in the initial stages of the project, this methodology may not be suitable due to its dependence on early specification and identification of the requirements that should be included during the system development.
This methodology is often characterized by missing components, unexpected development needs as well as inconsistencies that are only discovered during system design and coding and in addition, most problems often go undetected until they reach a stage of system testing which may be a little late. While under this methodology, the performance of a system of software development cannot be tested until completion, underperformance may be difficult to correct and if changes are to be effected, they occur very late in a life cycle that are more costly. It has also been noted that this methodology involves numerous documentation steps which makes it difficult to update as process of development continues. Lastly, the waterfall methodology widens the gap between the developers and the users with a clear division of responsibilities.
Opportunity
One of the widespread uses of this methodology is its application in the development of a transaction-oriented batch or a mainframe-based system (CMS,2008). This methodology also finds application where a large, complicated and expensive program is to be developed and needs clear solutions and objectives. The methodology is only fit in situations where these is no pressure being mounted for immediate implementation of the developed software. In addition, this methodology also allows the project requirements to be put in a comprehensive and unambiguous manner in situations where the project requirements are stable and do not change throughout the time of development. Its applicability can also be valued when the community that uses it is fully knowledgeable in the application and business of the developed program. This is methodology fit for application in cases where the team members are inexperienced in the development or has not undergone a software development process. Consequently, when the system development team is expected to fluctuate or unstable due to the mobility of labor, this methodology may be appropriate in comparison to other methodologies.
Threats
This methodology is not fit for application in situations where there is a large project where the requirements are not understood or are changing for any reasons such as change in expectations, external changes, budget changes, or rapid a technological advancement since it is a less flexible process that does not allow dynamism (CMS,2008). The other weakness of the waterfall methodology is that it struggles when applied in implementing a Web Information System due to the usual pressure normally associated with any WIS project that need quick implementation, need for flexible and experienced team from various disciplines as well as the constant evolution of the requirements pertaining to the project. This methodology can also not be applicable in systems that are real time, even-oriented or driven or applications that require leading-edge technology. The challenge is also in partial implementing the rigor required for waterfall and thus falling out of process immediately. This methodology does not allow cleanly or quickly for such a situation.
Iterative Methodology
The iterative methodology is a sequential software development model with iterations prior to the end solution. It is similar to writing a Praxis, draft, refined draft, final paper – each step of the way a product is produced and then refined.
Wiley (2010) describes the iterative software development approach/model is a combination of eXtreme Programming (XP) and Rational Unified Process (RUP). The objective is to achieve the “right level” of process aligned required delivery to meet business needs. The right level of process formality in this approach is achieved through the understanding of the challenges that are faced by the business environments of operation and the kind of development team. Once these challenges are addressed, the exact process that is needed is applied in order to mitigate the risks involved. However, it is worth noting that there is never a one-size fits-it-all process irrespective of the weight of the process.
Source: CMS (2008).
The main values emphasized by this approach are:
1. Communication,
2. Simplicity,
3. Feedback
4. Iteration.
This model is used more often to handle certain portions and a rather larger and a more traditional methodology like incremental, Rapid Application Development (RAD) and spiral methodology. The methodology also attempts to reduce the inherent risks in the project through the breaking down of the project into minute segments and the provision of a more ease-of — change environment in the process of developing the software. The user of the software is also actively involved in the process throughout which aids in increasing their acceptance of the final project (CMS, 2008). There is also a design of small-scale mock-ups of the software system being developed via the iterative modification process up to the time the prototype is fully evolved in order to meet the requirements of the user. It is worth noting that even though most of the available prototypes that are developed with the ultimate expectation of being discarded; there exists a strong possibility in certain cases for an evolution to occur from a given prototype to a working system.
Strengths
The first strength is that it addresses the problem of inability of various users to specify their informational needs as well as the difficulty of the various system analysts to effectively comprehend the user’s environment and thereby providing the many users with a rather tentative system used for the experimental purposes at a time considered to be the earliest possible (Janson and Smith, 1985).
The second strength is that it can be used in order to realistically model very important aspects of a given system at each phase of traditional software development lifecycle as pointed out by Huffaker (1986)
The third strength of this methodology is that it can improve the participation of the users in the process of system development as well as enhancement of communication among the various project stakeholders.
The fourth strength is that is very useful in the resolution of unclear objectives and the development as well as the validation of various user requirements; thereby results in the experimenting with as well as comparing certain design solutions.
The fifth strength is that a great potential exists for the process of exploiting the knowledge that is gained at a process of early iteration as the subsequent iterations are developed.
The sixth strength is that the methodology aids in the easy identification of rather confusing and difficult functions as well as the identification of the missing functionality.
The seventh strength is that this methodology of software development may in a way generate certain specifications to be used in the production of a particular application.
The eighth strength is that this methodology encourages the achievement of innovative and flexible designs.
The ninth strength is that this methodology provides a rather quick implementation of an otherwise incomplete but developmentally functional application.
The tenth strength is the output of each iteration allows management and the customer to get an idea and change direction almost real time.
Weaknesses
The first weakness of this methodology is that the process of approval and control is never strict. Too many people can have input throughout the process.
The second weakness is that inadequate and incomplete problem analysis is inherent in methodology. This is more common where the most obvious as well as the superficial needs are the ones to be addressed. The result is the transfer of the existing inefficient practices into the newly built system.
The third weakness is that the software development requirements may frequently change in a significant proportion.
The fourth weakness is that the process of identifying non-functional elements is usually very difficult to document.
The fifth weakness is that the designers of systems may prototype the application too quickly thereby ending up with an inferior product as a result of having sufficient expected user needs analysis.
The sixth weakness is that the designers may in a way neglect the various documentations that are necessary for the process of development and thereby resulting in a justification that is insufficient for the process of justifying the final product as well as the keeping of insufficient records for use in the future.
The seventh weakness is that it can easily lead to a poorly designed system whereby unskilled designers could substitute the process of prototyping for a more sound design. The result could be a quickly developed system that lacks global configurations to be used in the integration of other elements.
The eighth weakness is that it can lead to an entirely false expectation in which the customer is made to mistakenly believe that the software system developed is “completed” when the fact is that the process is not completed. The system may look as well as possess adequate user interfaces but it is never truly functional.
The ninth weakness is that the iterations usually add to the project budgets as well as schedules. These must be weighed against the potential benefits. Relatively small projects may never be able to justify the increase time and money. On the other hand, only the high risk projects may be gainful from the process of prototyping.
The tenth weakness is that the prototype may not be fitted with sufficient checks and balances in its design.
Opportunities
There are various opportunities that exists for the use of this model
The first one is that it can be used for the development of online systems that require extensive user dialog and also for the development of a relatively well-defined software system used as an expert and decision making support system.
The second opportunity is that it can be used for the building of large projects having a wide user base, functions and interrelations. The kind of projects where there is a need to reduce the project risk that relates to the requirements of definition to be reduced.
The third opportunity is that it can be used for projects that have unclear objectives.
The fourth opportunity is that it can be used for projects where pressure exists for the need of immediate implementation of a projects.
The fifth opportunity is that it can be used where the functional requirements are prone to change frequently and in a significant amount.
The sixth opportunity is that it can be used where the user is not in a state of complete knowledge of the system to be developed.
The seventh opportunity is that the team members gain a lot of experience in the cases where the prototype is never a throw-away.
The eighth opportunity is that the methodology can be used in situations that requires a stable team composition
The ninth team opportunity is that the methodology can be used effectively in situations where the team managers have a high level of experience.
The tenth opportunity is that the methodology can be used in a situation that needs no minimum amount of resources.
The eleventh opportunity is that the methodology can be used in situations where no very strict requirements are in existence for the process of approving a certain milestone that is designated.
The twelfth opportunity is that this methodology can be used where analysts and users do appreciate the integral business problems that are involved in the design prior to the beginning of project actualization.
The thirteenth opportunity is that this methodology can be effectively be used in situations that demand innovative and yet flexible designs in which the accommodation of future changes is never critical.
Threats
The overall threat for this methodology deal with transaction-oriented batch systems or mainframe-based systems; web or e-business systems; weak project teams; when scalability issues are not considered; and other such items (CMS,2008). The biggest threat to the iterative model is when objectives and requirements are lucid. The model does not have a clear flow or process to handle such situations. The number of iterations, defects, and overall delivery will all play significantly into the data points needed for the model.
Spiral model
Spiral model (Boehm,1987)
The spiral model of software development as well as evolution is described as a risk driven approach of software process structuring and analysis (Boehm,1987). This method of software processing was pioneered by Barry Boehm and effectively incorporates the various elements of prototype-driven and specification-driven process methods. The classic software life cycle is also incorporated. This is done through a representation of the iterative software development cycles in an ever expanding spiral. The inner cycle denotes the early system analysis as well as prototyping stages while the outer cycles denote the classic software life cycle. The radial dimension in the model denotes the cumulative costs of development while the angular dimensions are denoting the progress that bis made in the accomplishment of each of the development spiral.
V-Model Methodology
V-shaped model, like any other methodology, sets up methods, procedures, tools and techniques that are employed to steer the process of software development into completion until it runs (Husin,2009). V-shaped model is one such models that may be used to control the system development process. In choosing an ideal and effective is important in making sure that it is carried out in time to meet the client or user’s specification or requirement. This model sets out phases that are important in guiding those who develop systems. The life-cycle model in the figure below is helpful in to developers in planning, managing, evaluation and control of the information on the project. The V-shaped model consists mainly of six phases as depicted in the figure below. These are; system requirement followed system analysis, object design, implementation, testing and lastly, system documentation.
Figure 3: V-shape lifecycle model
Source: Husin (2009)
Strengths
The strong points that would convince a team of system developers to adapt this software model are that the software requirements are already stated and clearly defined; the tools and technology that are used for software development are well in the knowledge of the team of developers. This life-cycle model is also a choice of many developers because it is easy and simple to use, and each of its phases have specific deliverables. This makes team managers to be able to quantify the amount of work that they have accomplished. There is also a likelihood of success since the test plans are developed earlier on in the life-cycle of the software development.
Weaknesses
Despite the strengths discussed above, the V-shaped model struggles with solutions that are required to handle concurrent events. Further, it is unadvisable to use this model to handle iterations or phases in the software development process and just like the waterfall methodology, this mode does not handle dynamic changes in the client or the user requirements as it is a bit rigid and finally, this methodology does not have provisions that can be used for risk analysis in the event that these activities are required.
Opportunities
When developers are interested in achieving systems that are highly reliable and excellent to the clients like patient control applications or reliable accounting software, the V-model comes in handy to such a team of system developers. In addition, all the requirements for such a system are known upfront and may not need alterations in the process of the development in a case where modification is necessary to handle the change in requirements, modification is still possible beyond the analysis phase and lastly, such a system in which the technology and solutions are known require very much the use of the v-model.
Threats
Just like the waterfall model, v-methodology does not allow changes to the system until the complete coding is done. Rapid development and prototyping are also hindered with this methodology.
SWOT Findings
Now that we have a better understanding of the methodologies that will be used to generate the model, we have to ask for the common theme that determines the direction of each methodology. The common theme or golden string focuses on requirements. The level of requirements directly identifies the impact of the methodology as it relates to the quad constraint. A elements discussed in each of the SWOT analysis above will be used as input into the overall model to ensure that consistency and bias are removed if we only use one of the strengths of one methodology vs. A combination. It is still is necessary to identify where the real problem exists in the domain of software development (CTG,1998). The functionality, cost, schedule, and quality quad constraints are a true portrayal of the exact problems that exists in software development. It cannot clearly be stated which model cost more, which will provide higher quality, which will impact functionality the greatest nor which is best for the schedule. The project needs and project constraints will predict which model should be used and will work best.
A summary of the strengths and weaknesses of the waterfall, incremental as well as Spiral models (STSC,2001).
Waterfall
Incremental
Spiral
STRENGTHS
Allows for the specialization of workforce
X
X
X
Orderliness that appeals to the entire management body
X
X
X
Can effectively be reported to the management and clients
X
X
X
Facilitates easy allocation of resources
X
X
X
Functionality is rather early
X
X
Never requires a complete set of requirements from the beginning
X
Resources can easily be held constant
X
Prototyping can be used to control risk and cost
X
WEAKNESSES
Requires an entire set of requirements from the beginning
X
The enforcement of largely non-implementation attitude hinders the communication between analysts and/or designers.
X
The reliance on less defined objectives from the initial stages may be deemed uncomfortable for active the management.
X
X
Needs clean interfaces to exists between the modules
X
Incompatibility with a given formal review as well as audit procedure
X
X
The general tendency for a rather difficult problems to be postponed so that the first promise of the initial increment is never met by future products
X
X
(IV) The incremental model can be employed with a complete set of development requirements or with general objectives which are less defined.
Where do we go from here (Spring 2011)?
1. Analysis the SWOT findings and each SWOT analysis and create a set of data points 3-5 that align with creating the appropriate model. What values need to be captured and how to provide a clear prediction of the “best” model to use.
2. Develop a model that will predict which of three different methodologies should be used to deliver the given solution based on functionality, cost, schedule, and quality as it relates to the initial and final requirements.
3. Determine how to incorporate quality and functionality as part of the model. Cost and schedule data will be good measures for the end results.
4. This will help drive sections III, IV, and V.
Section III
The measurement points for this paper are based on the quad constraints of functionality, cost, schedule, and quality that are involved in the implementation of the three main Software Processing Methodologies; Iterative model, spiral model as well as V-model.
Functionality
Functionality is defined by PCMag (2011) as the actions, operation, usefulness as well as capabilities of something like a software application. In this context however, functionality would refer to the usefulness and the ability of a given software development life cycle (SDLC) methodology. This is to say that the project involves a thorough evaluation of the functionality of the three Software Processing Methodologies. We evaluate the functionality of the iterative model, followed by the spiral model, and conclude with the V-model.
Cost
Cost of implementing a given software methodology can be measured in terms time or money (Bijay and Peter,2006). The high cost of developing software also carries other variables other that time and money. There are career as well as political costs of the software development methodologies. This is the reason as to why software development is referred to as an “electropolitical” problem as well as a high risk-project best described as a “death march” (Bijay and Peter,2006).
Schedule
Schedule in project management consists of a list of the terminal elements to be achieved as well as their intended start and finish dates. These terminal elements mark the lowest elements that exist in a given schedule. The items are usually estimated in accordance with the resource requirements, duration as well as budget and are linked by schedules as well as dependencies. Before a given software development project schedule is created, the designated project manager must come up with a work breakdown structure (WBS) in an bid to estimate the amount of effort required for each task. An appropriate resource list is also used depicting the availability of each and every resource. For a given schedule to be deemed healthy, Project Management Institute (2003) pointed out that the following criteria have to be met;
The given schedule must be updated constantly
The value of the EAC (Estimate at Completion) must be equal to the value of the baseline
The residual effort must be distributed appropriately among the various team members.
Quality
Quality of a given project (software methodology) may also be referred to as its scope. It denotes what has been agreed to be achieved by the given software methodology. In this case it will denote the functions, data, features as well as content involved within a given methodology.
These measurement are however to be applied upon the created predictive model which is reliant on the outcome of the SWOT analysis of the Software Processing Methodologies; Iterative model, spiral model as well as V-model. This is carried out using a SWOT matrix. The developed SWOT matrixes are indicated below.
SWOT Matrix (Swotmatrix.com,2011)
The SWOT analysis matrix
One of the most widely used tools in software development as well as strategic planning is SWOT (Strengths, Weaknesses, Opportunities, and Threats) analysis. Several software development companies and individuals employ SWOT analysis in their designs in one way or another.It is worth noting that the worth of a given SWOT analysis depends on the objective outlook of the software developers who conduct the SWOT analysis. If the software developer or development team is to come up with an objective and yet relevant information to be used for the analysis then the outcome would surely be useful to the software development process.
The SWOT analysis entails the software development team’s assessment of all of the internal positions through the identification of the methodology’s strengths and weaknesses. The team must also determine the external positions through the definition of opportunities as well as strengths.
The strengths represent the main characteristics of the software processing methodology as well as key assets of the given methodology. Examples include the ability of the waterfall model to be used by inexperienced teams. The weaknesses on the other hand represent the areas in which a given software processing methodology does not perform quite well in.
The opportunities on the other hand include those current as well as future circumstances which may provide favorable condition to the employment of a given software processing methodology. Threats on the other hand represent the current as well as the future circumstances in the market that may present unfavorable conditions to the employment of a given software development methodology.
Once the software development team has identified both the strengths and the weaknesses of given methodology then they may be able to determine the significance of each. A special design team should then be able to review all of the strengths as well as weaknesses in order to determine the significance level (either minor or major ) of the individual strengths and weaknesses. After the software development team has identified the strengths as well as the weaknesses, they would be able to determine the significance of each and every factor.
Section IV
Creation and Validation of the predictive model
What is predictive modeling?
Predictive modeling refers to the process that is employed in predictive analytics in order to come up with a statistical model that depicts the future behavior .Predictive analytics on the other hand is concerned with the data mining in regards to trends and forecasting probabilities. A predictive model comprises of a variety of predictors which are factorial variables that are most likely to influence the future behavior or outcomes. In this context, it would predict the likelihood of a given methodology to satisfy the most immediate business requirement in regard to the choice of the software methodology to be used in the completion of a given business software project. In predictive modeling, the needed data is collected the a statistical model is then formulated and the predictions made on the basis of the collected data. The model is then validated or subsequently revised as more data is made available. The predictive model may make use of a simple linear equation or an extremely complex and neural network-based equation that is mapped out by means of complicated software.
The process of data mining (source: IBIT,2011)
The creation of the predictive model
The predictive model to be used in choosing the most appropriate methodology is based on a variety of factors. These factors will act as the variables and constants in the created model. In order to come up with the best predictive model, it is important that all of the crucial factors that are active in the application of a given methodology be identified. It is however obvious that not all of these factors can be factored in the predictive model. An inclusion of all of the factors would result in a model that is skewed and too complicated to use in computation. Our model would therefore be a truncated one but bearing all of the most crucial parameters. The predictive model to be used in the selection of the most suitable software processing methodology is presented empirically as using the most important predictor variables. Cost and Schedule are the main factors that are to be used as the predictor variables for this given case. This is because they are quantifiable. The predictive model was developed using the dataset available in Table 1. In order to come up with the most appropriate predictive model, cost and schedule variable that were collected for the three software processing methodologies were incorporated into predictive model. The data was collected from 45 different software development firms/teams. The opinions were rated from 0-4 with 0 being the least magnitude (Less likely) and 4 being the greater magnitude (Most likely).The actual meanings of the value are; 0-No response 1-Undecided 2-Didagree 3- Agree 4-Strong Agree
They were asked to rate the software processing methodologies which they desired as well as rate the concept of time and schedule when selecting and implementing their methodologies.The creation of the predictive model depended on the equations derived from the data on the usage of the iterative model, Spiral model and the V-model. The second equation was developed from the predictors; cost and schedule. The independent variable in both equations is the preferred methodology. The equations were derived from these predictors using SPSS 16.0 software.
The predicted variable (dependent variable) = the slope * the independent variable + the intercept;
Variables Entered/Removedb
Model
Variables Entered
Variables Removed
Method
1
Schedule, Costa
Enter
a. All requested variables entered.
b. Dependent Variable: The prefered methodology
Model Summary
Model
R
R Square
Adjusted R. Square
Std. Error of the Estimate
1
.325a
.106
.064
.871
a. Predictors: (Constant), Schedule, Cost
ANOVAb
Model
Sum of Squares
df
Mean Square
F
Sig.
1
Regression
3.849
2
1.924
2.538
.091a
Residual
32.608
43
.758
Total
36.457
45
a. Predictors: (Constant), Schedule, Cost
b. Dependent Variable: The prefered methodology
Coefficientsa
Model
Unstandardized Coefficients
Standardized Coefficients
t
Sig.
B
Std. Error
Beta
1
(Constant)
4.970
.452
10.995
.000
Cost
-.076
.173
-.064
-.440
.662
Schedule
-.295
.136
-.314
-2.174
.035
a. Dependent Variable: The prefered methodology
From SPSS we find out that the preferred methodology is expressed by the formula;
Preferred methodology = -0.076X Cost -0.295 Schedule + 4.970(I)
Therefore the predictive model would be;
The most preferred methodology (Y)
y=-0.076x -0.295 z+ 4.970
The second equation is;
Variables Entered/Removedb
Model
Variables Entered
Variables Removed
Method
1
The teams who prefer V-Model, The teams who prefer Spiral Model, The teams who prefer Iterative Modela
Enter
a. All requested variables entered.
b. Dependent Variable: The prefered methodology
Model Summary
Model
R
R Square
Adjusted R. Square
Std. Error of the Estimate
1
.246a
.061
-.006
.903
a. Predictors: (Constant), The teams who prefer V-Model, The teams who prefer Spiral Model, The teams who prefer Iterative Model
ANOVAb
Model
Sum of Squares
df
Mean Square
F
Sig.
1
Regression
2.211
3
.737
.904
.447a
Residual
34.245
42
.815
Total
36.457
45
a. Predictors: (Constant), The teams who prefer V-Model, The teams who prefer Spiral Model, The teams who prefer Iterative Model
b. Dependent Variable: The prefered methodology
Coefficientsa
Model
Unstandardized Coefficients
Standardized Coefficients
t
Sig.
B
Std. Error
Beta
1
(Constant)
4.341
.320
13.583
.000
The teams who prefer Iterative Model
-.167
.108
-.233
-1.542
.131
The teams who prefer Spiral Model
.049
.098
.074
.497
.622
The teams who prefer V-Model
-.053
.102
-.078
-.515
.609
a. Dependent Variable: The prefered methodology
The preferred methodology can also be expressed as
Preferred methodology= 0.049X The teams who prefer Iterative Model -0.167X The teams who prefer Spiral Model-0.053X The teams who prefer V Model…(II)
Equation (I) and (II) can combined to evaluate the significance level of each methodology in relation to time and schedule.
Section V
Summary Analysis
The analysis indicates that cost and schedule plays an important role in the choosing of a give methodology. They are dependent variables whose importance is dictated by the type of project with disregard of the experience of the software development team.
Practical Usage
The practical usages of the results of this study are in the areas of software development project management. This is crucial in order for the corporations to maximize their returns in accordance to the chosen methodology. A successful methodology is one that aligns itself to the stipulated conditions that are guided by the choices made by the organization on the basis of the quad constraints
Praxis Conclusion
The praxis conclusion is based upon the outcome of the developed predictive model and it is clear that the best software processing methodology depends solely on the requirements of time and schedule that are laid down by a given organization.
References
Books
Alexander, Ian and Beus-Dukic, Ljerka (2009). Discovering Requirements – How to Specify Products and Services
Bass, Len and Clements, Paul, and Kazman, Rick (2003) – Software Architecture in Practice (2nd Edition)
Boehm, B.,(1976) Software Engineering, IEEE Trans. Computer, C-25,12,1226-1241
Chapman, JR ( 1997). Software Development Methodology a.k.a. System Development Life
Cycle
Cockburn, Alistair (2001). Writing Effective Use Cases – The Crystal Collection for Software Professionals
Curtis, B., H. Krasner, and N. Iscoe, (1988)A Field Study of the Software Design Process for Large Systems, Communications ACM, 31, 11, 1268-1287, November, 1988.
Easterbrooks, S (2001). Software Life cycles. Lecture notes from the University of Toronto,
Department of Computer Science
Janson & Smith (1985) “Prototyping for Systems Development: A Critical Appraisal,” MIS
Quarterly December 1985
Huffaker, D. “Prototyping Business Applications Within the Traditional
Life Cycle,” Journal of Information Systems Management, Vol. 3, No. 4,
Fall 1986, 71-74.
Lamsweerde, Alex van and Wiley John (2009). Requirements Engineering: From System Goals to UML Models to Software Specifications
Lewis, Jeremy (2008). SDLC 100 Success Secrets – Software Development Life Cycle (SDLS 100 Most asked Questions, SDLC Methodologies, Tools, Process, and Business Models
Project Management Institute (2008). A Guide to the Project Management Body of Knowledge (Pmbok Guide)
Robertson, Suzanne and Robertson, James C (2006). Mastering the Requirements Process (2nd Edition)
Royce, W.W., (1970) Managing the Development of Large Software Systems, Proc. 9th. Intern. Conf. Software Engineering,, IEEE Computer Society, 1987, 328-338 Originally published in Proc.WESCON
Royce, W.,(1990) TRW’s Ada Process Model for Incremental Development of Large Software
Systems, Proc. 12th. Intern. Conf. Software Engineering, Nice, France, 2-11, IEEE Computer
Society
Tian, Jeff (2005) Software Quality Engineering – Testing, Quality Assurance, and Quantifiable Improvement
Wiegers, Karl E. (2003). Software Requirements
Wiegers, Karl E. (2006). More About Software Requirements: Thorny Issue…
Articles / Web Information
MIT (2002).Waterfall model.
http://sunnyday.mit.edu/16.355/classnotes-process.pdf
Centers for Medicare and Medicaid Services (March, 2008). Selecting a development approach https://www.cms.gov/SystemLifecycleFramework/Downloads/SelectingDevelopmentApproach.pdf
Center for Technology in Government (1998). A Survey of System Development Process
Models
http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf
http://www.cs.toronto.edu/~sme/CSC444F/slides/L04-Lifecycles.pdf
Husin, N (2009). System methodology.
http://dspace.fsktm.um.edu.my/xmlui/bitstream/handle/1812/449/CHAPTER%203%20%20%20SYSTEM%20METHODOLOGY.pdf?sequence=4
IBIT (2011). What is a predictive model?
http://predictivemodels.ibit.org/beauty/
SWOT Matrix (2011).Welcome to the SWOT Matrix Guide
http://www.swotmatrix.com/
Wiley, A (2010).Iterative Software Development Approach. In NCI Wiki
https://wiki.nci.nih.gov/display/CommonProjects/Iterative+Software+Development+App roach
PC Magazine (2011). Functionality
http://www.pcmag.com/encyclopedia_term/0,2542,t=functionality&i=43589,00.asp
Appendix
Get Professional Assignment Help Cheaply
Are you busy and do not have time to handle your assignment? Are you scared that your paper will not make the grade? Do you have responsibilities that may hinder you from turning in your assignment on time? Are you tired and can barely handle your assignment? Are your grades inconsistent?
Whichever your reason is, it is valid! You can get professional academic help from our service at affordable rates. We have a team of professional academic writers who can handle all your assignments.
Why Choose Our Academic Writing Service?
- Plagiarism free papers
- Timely delivery
- Any deadline
- Skilled, Experienced Native English Writers
- Subject-relevant academic writer
- Adherence to paper instructions
- Ability to tackle bulk assignments
- Reasonable prices
- 24/7 Customer Support
- Get superb grades consistently
Online Academic Help With Different Subjects
Literature
Students barely have time to read. We got you! Have your literature essay or book review written without having the hassle of reading the book. You can get your literature paper custom-written for you by our literature specialists.
Finance
Do you struggle with finance? No need to torture yourself if finance is not your cup of tea. You can order your finance paper from our academic writing service and get 100% original work from competent finance experts.
Computer science
Computer science is a tough subject. Fortunately, our computer science experts are up to the match. No need to stress and have sleepless nights. Our academic writers will tackle all your computer science assignments and deliver them on time. Let us handle all your python, java, ruby, JavaScript, php , C+ assignments!
Psychology
While psychology may be an interesting subject, you may lack sufficient time to handle your assignments. Don’t despair; by using our academic writing service, you can be assured of perfect grades. Moreover, your grades will be consistent.
Engineering
Engineering is quite a demanding subject. Students face a lot of pressure and barely have enough time to do what they love to do. Our academic writing service got you covered! Our engineering specialists follow the paper instructions and ensure timely delivery of the paper.
Nursing
In the nursing course, you may have difficulties with literature reviews, annotated bibliographies, critical essays, and other assignments. Our nursing assignment writers will offer you professional nursing paper help at low prices.
Sociology
Truth be told, sociology papers can be quite exhausting. Our academic writing service relieves you of fatigue, pressure, and stress. You can relax and have peace of mind as our academic writers handle your sociology assignment.
Business
We take pride in having some of the best business writers in the industry. Our business writers have a lot of experience in the field. They are reliable, and you can be assured of a high-grade paper. They are able to handle business papers of any subject, length, deadline, and difficulty!
Statistics
We boast of having some of the most experienced statistics experts in the industry. Our statistics experts have diverse skills, expertise, and knowledge to handle any kind of assignment. They have access to all kinds of software to get your assignment done.
Law
Writing a law essay may prove to be an insurmountable obstacle, especially when you need to know the peculiarities of the legislative framework. Take advantage of our top-notch law specialists and get superb grades and 100% satisfaction.
What discipline/subjects do you deal in?
We have highlighted some of the most popular subjects we handle above. Those are just a tip of the iceberg. We deal in all academic disciplines since our writers are as diverse. They have been drawn from across all disciplines, and orders are assigned to those writers believed to be the best in the field. In a nutshell, there is no task we cannot handle; all you need to do is place your order with us. As long as your instructions are clear, just trust we shall deliver irrespective of the discipline.
Are your writers competent enough to handle my paper?
Our essay writers are graduates with bachelor's, masters, Ph.D., and doctorate degrees in various subjects. The minimum requirement to be an essay writer with our essay writing service is to have a college degree. All our academic writers have a minimum of two years of academic writing. We have a stringent recruitment process to ensure that we get only the most competent essay writers in the industry. We also ensure that the writers are handsomely compensated for their value. The majority of our writers are native English speakers. As such, the fluency of language and grammar is impeccable.
What if I don’t like the paper?
There is a very low likelihood that you won’t like the paper.
Reasons being:
- When assigning your order, we match the paper’s discipline with the writer’s field/specialization. Since all our writers are graduates, we match the paper’s subject with the field the writer studied. For instance, if it’s a nursing paper, only a nursing graduate and writer will handle it. Furthermore, all our writers have academic writing experience and top-notch research skills.
- We have a quality assurance that reviews the paper before it gets to you. As such, we ensure that you get a paper that meets the required standard and will most definitely make the grade.
In the event that you don’t like your paper:
- The writer will revise the paper up to your pleasing. You have unlimited revisions. You simply need to highlight what specifically you don’t like about the paper, and the writer will make the amendments. The paper will be revised until you are satisfied. Revisions are free of charge
- We will have a different writer write the paper from scratch.
- Last resort, if the above does not work, we will refund your money.
Will the professor find out I didn’t write the paper myself?
Not at all. All papers are written from scratch. There is no way your tutor or instructor will realize that you did not write the paper yourself. In fact, we recommend using our assignment help services for consistent results.
What if the paper is plagiarized?
We check all papers for plagiarism before we submit them. We use powerful plagiarism checking software such as SafeAssign, LopesWrite, and Turnitin. We also upload the plagiarism report so that you can review it. We understand that plagiarism is academic suicide. We would not take the risk of submitting plagiarized work and jeopardize your academic journey. Furthermore, we do not sell or use prewritten papers, and each paper is written from scratch.
When will I get my paper?
You determine when you get the paper by setting the deadline when placing the order. All papers are delivered within the deadline. We are well aware that we operate in a time-sensitive industry. As such, we have laid out strategies to ensure that the client receives the paper on time and they never miss the deadline. We understand that papers that are submitted late have some points deducted. We do not want you to miss any points due to late submission. We work on beating deadlines by huge margins in order to ensure that you have ample time to review the paper before you submit it.
Will anyone find out that I used your services?
We have a privacy and confidentiality policy that guides our work. We NEVER share any customer information with third parties. Noone will ever know that you used our assignment help services. It’s only between you and us. We are bound by our policies to protect the customer’s identity and information. All your information, such as your names, phone number, email, order information, and so on, are protected. We have robust security systems that ensure that your data is protected. Hacking our systems is close to impossible, and it has never happened.
How our Assignment Help Service Works
1. Place an order
You fill all the paper instructions in the order form. Make sure you include all the helpful materials so that our academic writers can deliver the perfect paper. It will also help to eliminate unnecessary revisions.
2. Pay for the order
Proceed to pay for the paper so that it can be assigned to one of our expert academic writers. The paper subject is matched with the writer’s area of specialization.
3. Track the progress
You communicate with the writer and know about the progress of the paper. The client can ask the writer for drafts of the paper. The client can upload extra material and include additional instructions from the lecturer. Receive a paper.
4. Download the paper
The paper is sent to your email and uploaded to your personal account. You also get a plagiarism report attached to your paper.
PLACE THIS ORDER OR A SIMILAR ORDER WITH US TODAY AND GET A PERFECT SCORE!!!
