In this subdivision I will be researching Software Development Methodologies. However I will foremost research the Classic Waterfall Model. Models are an abstract representation of a series of actions performed as portion of a wider procedure. Methodologies are a aggregation of methods, theoretical accounts, techniques and guidelines to back up a peculiar attack to IT Systems. The ground I have chose to foremost research the “ Authoritative Waterfall Model ” is because it is one of the original and most good know procedures in the IT industry. I will hence be able to associate procedures within my chosen methodological analysiss back to the “ Authoritative Waterfall Model ” . The methodological analysiss I will be researching are “ Rapid Application Development ” and “ Object Oriented Analysis and Design ” .

3.2 Authoritative Waterfall Model

The waterfall theoretical account is one of the most good cognize procedure theoretical accounts and methodological analysis used theoretical accounts in the IT industry. It dates back to the 1970 ‘s when Royce { { 10 Royce, W. 1970 } } was the first to call the “ waterfall theoretical account ” as a procedure of development with the relevant phases in a package technology sense { { 4 Davis, A M. 1993 } } .

The theoretical account aims to steer the development flow in a stead downwards gesture, therefore the name “ waterfall theoretical account ” . A rigorous reading of Royce ‘s theoretical account would implement that Quality Control takes topographic point after each phase of the theoretical account and patterned advance to the following phase is merely acceptable one time the QC has been “ signed-off ” . If a mistake is found on a certain phase so the development will merely come on one time a suited solution has been found. No phases are repeated unless the range of the undertaking is changed { { 7 Weaver, Philip L. 2003 } } .

The waterfall method has been used for a assortment of undertakings. The most ill-famed being a deliverable for the U.S. Department of Defence ‘s contractors, defined in Department of Defence Standard 2167-A { { 5 Pfleeger, Shari Lawrence 2006 } } .

There are five chief phases of the waterfall theoretical account. they are { { 5 Pfleeger, Shari Lawrence 2006 } } :

Requirements Analysis

System and Software Design

Execution and Unit Testing

Integration and Acceptance Testing

Operation and Care

Requirements Analysis

During the “ Requirements Analysis ” stage, all of the possible demands of the systems a created. These demands define the set of maps which the terminal user and client expect from the system. The demands are gathered from sets of interviews with the terminal user and client. These demands are so analysed by the developer for incorporation into the system. Finally the Requirements Specification is created { { 19 Avison, David 2006 } } .

System and Software Design

The “ System and Software Design ” stage is of import as the developers need to understand what they need to make from the Requirements and make up one’s mind what the system should look like. This phase besides help stipulate what hardware and package demands will be required and the overall system architecture. By the terminal of this stage there will be a System Design Specification which will be required for the following phase of development { { 19 Avison, David 2006 } } .

Execution and Unit Testing

On this phase, the developers will have the Requirements Specification and the Systems Design Specifications. The work is so divided into faculties which are spread between the developers, and cryptography is started. The system is developed in little units, which are integrated at the following stage. Each unit is developed and tested to verify the unit meets the specifications { { 19 Avison, David 2006 } } .

Integration and Acceptance Testing

In this phase the units from the old stage are integrated into a complete system one time Unit testing is complete. During this stage the system is tested to guarantee that all units integrate right and the system behaves every bit specified. After a full system Acceptance Test, the package is delivered to the client { { 19 Avison, David 2006 } } .

Operation and Care

This stage of the theoretical account is the longest as jobs with the development appear one time practical usage of the system starts. This means that these issue will be resolved after the system deployment, ensuing in a new version of the package, which could ensue in the developers get downing from the “ Requirement Analysis ” stage and reiterating the whole procedure once more. Some jobs arise over clip, which is why this stage is the “ Maintenance ” stage

3.2.1 Advantages of the Classic Waterfall Model

One advantage of the waterfall theoretical account is that it was the “ original ” Software System Development Lifecycle method for an attack to constructing computer-based applications that focused on the designation of specific phases and stages { { 19 Avison, David 2006 } } . This means that there are fluctuations of the original theoretical account, or loanblends, which expand upon the original thought, and integrate losing characteristics such as cringles and excess activities { { 5 Pfleeger, Shari Lawrence 2006 } } .

The waterfall theoretical account is helpful for developers and clients in understanding the construction of the system development, as it lays the development out in clear phases with clear undertaking aims. The simpleness of the theoretical account makes it easier to explicate the procedure to clients who may non be familiar with package development { { 5 Pfleeger, Shari Lawrence 2006 } } .

Another advantage of the Waterfall Model is that every stage has a defined start and terminal point which enable advancement to be once and for all identified by the developers and the clients { { 7 Weaver, Philip L. 2003 } } . This enforces subject with rigorous stage signoff demands in order to come on to the following stage. It overall makes the system really mensurable { { 5 Pfleeger, Shari Lawrence 2006 } } .

3.2.2 Disadvantages of the Classic Waterfall Model

One disadvantage of the Waterfall Model is that that the accent on the demands before development starts reduces the hazard of agenda holds and attempt in ulterior phases as the terminal consequences are set out at the beginning of the undertaking. However, due to hapless flexibleness within the waterfall theoretical account, in the fact that it is non adaptable, means that clients can non be alteration demands portion manner through the development stage. Clients are ill-famed for altering their demands, which means an iterative flexible theoretical account may be more realistic for structuring development { { 19 Avison, David 2006 } } . , Volatile undertakings, those which demands are likely to alter or can non be tightly specified in progress, should likely utilize another procedure manner for structuring development { { 7 Weaver, Philip L. 2003 } } . Besides that the over-rigid reading of the waterfall theoretical account can take to unneeded undertaking and bureaucratic holds. A manner around this is development in an iterative manner, which non merely builds assurance in the development squad, but besides the client through agencies of paradigm presentations, which is non integrated into the Classic Waterfall Model { { 7 Weaver, Philip L. 2003 } } .

Another disadvantage of the Waterfall Model is that developers find it hard to lodge to the simple system procedure, as developers instinctively jump from one procedure to another to garner a greater cognition of the job and the proposed solution { { 5 Pfleeger, Shari Lawrence 2006 } } .

The concluding disadvantage is that the theoretical account is non consistent with the manner in which codification is really developed because codification is usually developed in an iterative mode which the theoretical account does non integrate { { 5 Pfleeger, Shari Lawrence 2006 } } .

3.3 Object-oriented analysis and design ( OOAD )

In traditional methodological analysiss the accent is on processs, the concern procedure and the informations needed to back up the procedures. OOAD differs from these methodological analysiss because the focal point is on deemphasising the processs by uniting the procedures and informations into objects. It is non of import to concentrate on the processs because the object knows how to finish a undertaking or required behavior. This means that the focal point of the OOAD is “ What is the system supposed to make? ” Rather than the traditional “ How is the system traveling to make… ? “ .

There are five major activities to see in OOAD { { 19 Avison, David 2006 } } :

Finding Classs and Objects

Identifying Structures

Identifying Subjects

Specifying Properties

Specifying Servicess ( Methods )

These stages seem to convey an image of a additive series of stages. This nevertheless does non intend the analyst can non execute the design in an iterative manor. The purpose is to outcome the procedure with OOAD theoretical accounts and design, how the interior decorator gets there is up to them { { 19 Avison, David 2006 } } .

Finding Classs and Objects.

This phase is to increase the job apprehension by the analyst. The terminal consequence is to place the relevant categories and objects of the system. This will so organize the nucleus of the application.

The categories or objects are made up of three subdivisions.

Class/Object Name – this is usually a mention to a “ real-life ” object such as “ Student ”

Attributes – This is the information contained within the category such as “ Student Name ” and “ Student Number ”

Services/methods. – These are the methods for “ making ” things with the properties. Such as “ RegisterNewStudent ”

The result of the procedure of making the categories or objects forms the underlining construction of the system being developed.

Identifying Structures

The intent of this stage is to construction the categories and objects into a hierarchy. The benefits of heritage will so be realised. Diagrams are now produced to bespeak the categories, objects and relationships { { 19 Avison, David 2006 } } .

Identifying Subjects

Identifying topics is an of import stage for larger systems, incorporating over 20 categories or objects, as this stage aims at cut downing the complexness of the system diagrams produced. This is achieved by spliting the categories into common groups to finally supply a top-down position of the system. An illustration for a university system could be, Course and Module “ combined ” into one group for the intent of a simplistic system diagram

Specifying Properties

During this stage of the development the properties are defined. These are the data elements of the object or category. An illustration for the pupil category might incorporate properties such as name, reference, figure etc. For each property described, a description specifying the property will be provided.

Properties are non public presentation considered, nor are identification keys defined. This undertaking is differed to the design stage { { 19 Avison, David 2006 } } .

Specifying Servicess ( Methods )

The concluding stage of OOAD is to specify the procedures that deal with the informations, i.e. the “ methods ” or “ services ” . The methods are the procedures performed by the categories one time a message is received from elsewhere. These methods are required to, modify create, connect and entree other objects.

Once the methods have been structured, they will so be referenced to an English notation sing an action. An illustration for the Student category for registering a new pupil would be RegisterNewStudent { { 19 Avison, David 2006 } } .

3.3.1 Advantages of Object-Oriented Analysis and Design

Object Oriented Analysis and design has many advantages, one of them being that it simplifies the system development and mentality compared to traditional methods such as the waterfall. This can help dealingss between the company and developers as it makes it easier for the client to understand the system being developed.

The standardization of the development procedure in general utilizing a methodological analysis adds the advantage that the design apprehension is increased which in-turn decreases the overall hazard associated with undertaking development { { 32 Pefkaros, Kenneth 2008 } } .

Another advantage of OOAD is that fact that the concluding system developed will be more maintainable if the stairss of the methodological analysis are followed right. It will hold re-usable parts which are besides easier to do alterations to which overall will cut down the care costs of the system.

The objects created in the procedure of OOAD retroflex what worlds see in existent life, such as “ Order ” or “ Merchandise ” . This has the advantage of appealing to human knowledge { { 34 Thomason, Terri 1999 } } . It besides helps hammer a better apprehension of the system and reduces the hazards of clients and users non acquiring the system that they require.

3.3.2 Disadvantages of Object-Oriented Analysis and Design

There are some disadvantages of Object-Oriented Analysis and Design. one job that may happen in the analysis stage is that excessively many object could be identified, which could ensue in over perplexing the system and bring forthing something which is non really easy maintained. On the other manus the developers could place excessively few objects, ensuing in a system that is non full reusable or object oriented. It is non an easy undertaking to analysis the job and find all the needed categories of the system { { 32 Pefkaros, Kenneth 2008 } } .

Another disadvantage with OOAD is that the methodological analysis does non incorporate an execution stage, therefore the methodological analysis may necessitate to be used within another methodological analysis which could overcomplicate the development procedure. As with all methodological analysiss, OOAD is non the best to utilize for all fortunes. There could be a better attack for some systems.

OOAD does besides hold the disadvantage that it can be dearly-won to accommodate current development squads onto OOAD as they might hold a history of utilizing more “ traditional ” methods such as the Waterfall Model, although research has shown that reassigning to OOAD from traditional methodological analysiss does turn out to be more cost effectual in the long tally { { 35 Wang, Shouhong 1996 } } . There is besides the job that developers could concentrate on codification excessively much, alternatively of concentrating on what the client and stop user really desire { { 32 Pefkaros, Kenneth 2008 } } .

The concluding disadvantage with OOAD is that if the reuse processs are non popperly implimented, so many of the big graduated table systems that have been developed utilizing OOAD do non take to a successful reuse on a larger scale { { 27 Hantos, P 2005 } } .

3.4 Rapid Application Development ( RAD )

Rapid Application Development ( RAD ) is a methodological analysis used to rush up information systems development utilizing a four phased life-cycle. RAD is used by companied to cut down the cost of development and cut the development clip. Traditional methods have show to take on mean about 20 % more clip than RAD { { 29 Magar, Prashant 2009 } }

RAD depends to a great extent on paradigms and stop user/customer engagement, and allows for working theoretical account to be demonstrated early in the procedure. This allows for the client to propose any alterations and item any jobs early in the development stage enabling and jobs to be rectified earlier, before it can go a dearly-won and timely hole.

The four phased life-cycle defined by RAD consists of: { { 19 Avison, David 2006 } }

Requirements Planing

User Design

Construction stage

Cutover stage

Requirements Planing

The demands be aftering stage combines elements of the traditional Software Development Life Cycle ( SDLC ) planning and analysis stages. This phase of RAD requires rather a batch of attempt as Users, directors and analysts discuss the concern system demands and the range of the undertaking. They so define the system demands. Once all these have been completed and agreed by all sides, the following phase can get down, usually with mandate from direction.

User Design

During the User Design stage, users meet with the analysts to develop paradigms that represent all or peculiar system processes, end products and inputs. The user design is a uninterrupted procedure. This enables the users to understand the design and better it. This will finally take to the user the design and working theoretical account once it meets their demands.

Construction Phase

The Construction stage aims at taking the user design prototypes through to the elaborate design and coevals of the application codification. IT focuses on the application development undertakings. These undertakings are similar to the undertakings in SDLC, nevertheless in RAD the users can go on to take part with suggestions and betterment as the “ existent ” merchandise is developed. The development of the codification in the stage is performed by SWAT squads ( “ skilled with advanced tools ” ) . These are technology experts of whichever development linguistic communication is chosen, so the codification is created rapidly cut downing the build clip.

Cutover Phase

The cutover stage resembles the concluding phases of the SDLC execution phase. This stage includes proving, informations transition if required, alteration over to the new system and user preparation. This can besides be run in analogue with the old system until it has proven its worth and the old system are phased out.

3.4.1 Advantages of Rapid Application Development

Rapid Application Development has many advantages over other methodological analysiss. One advantage is that it increases the velocity of development, which consequences in a quicker virtualisation of the terminal design. This allows for quicker package proving and package design enabling jobs to be rectified earlier. This velocity in development besides ensures that the undertaking is protected from market fluctuations due to the speedy turnover { { 19 Avison, David 2006 } } .

Another advantage of RAD is that the client and terminal users are able to see the design in the early phases adding input and suggestions to doing the design more end-user friendly. This therefore consequences in a system which the user really wants, instead than a system that the developers think the users want, which can sometimes go on in other methodological analysiss or the rigorous authoritative waterfall theoretical account { { 19 Avison, David 2006 } } .

RAD besides facilitates SCOPE for the system, which enables the client to actively supply inputs to the development procedure. This increases the quality of the terminal merchandise due to the heavy engagement of the users in the analysis and design phases { { 29 Magar, Prashant 2009 } } .

Finally RAD enables faster ascents to be designed and deployed by extinguishing excess stairss or by utilizing paradigms.

3.4.2 Disadvantages of Rapid Application Development

Due to the clip restraints within RAD, characteristics can be delayed for future versions in favor of hitting the timescale originally planned. This means that RAD can bring forth applications that contain less characteristics which may hold been included if other methodological analysiss were used { { 19 Avison, David 2006 } } .

Another disadvantage that RAD has is that there is reduced scalability because RAD focuses on prototyping which if developed into a full system could miss some of the saleability if the system had ab initio been developed from full { { 19 Avison, David 2006 } } .

RAD besides has the disadvantage that the terminal merchandise may be all right short-run, but non long-run. The company ‘s corporate and long-run objects may non be met with the system development being shorter than other methodological analysiss. Finally this The “ accelerated ” development life-cycle can take to a deficiency in quality, consistence and design criterions.

3.5 Decision

3.5.1 Methodology Choice