Assignment A – Planning the development of a softwaresolution in EngineeringIn this assignment I am going to be examining the differentproject job roles and methodologies involved in typical software developmentprojects. In addition to this, I am going to writing a detailed reportsummarising all of these findings and giving real life examples.The first methodology that I am going to be talking about isRapid application development which is associated within the code of Netflix.This Is used as an alternative to the waterfall model of software development,where it places a great deal of emphasis on the client during the softwaredevelopment process. It is a software development methodology that uses minimalplanning and less of a thought process in favour of rapid prototyping.
The ideaof this methodology is to start developing as early as possible so that theclient can give improvements and make changes to suit their needs. With RAD,the client is involved in a lot of the process, which is an important featureof the methodology. Some people argue over the quality of the final productwhen it comes to rapid application development as it prioritises the client’sdemands over the effectiveness of it. As a result of this, it gains high usagebecause of the extent of user involvement in the development.
RAD replaceshand-design and coding processes, which are dependent upon the skills of certainindividuals, with automated design and coding, which is an inherently more stableand arguably faster process.(BBC, RAD, n.d.)The first stage of rapid application development isrequirement planning. In this stage, it staff, managers and users agree onbusiness needs, project scope (the part of project planning that involvesdetermining and documenting a list of specific project goals, deliverables,tasks, costs and deadlines) and systems requirements that are best suited. Thisis important for the final productThe second stage of rapid application development is userdesign tasks. This is where the user interacts with the systems and developsmodels and prototypes.
In this stage a user can do JAD type sessions. This is aJoint application design where the user collects business requirements whiledeveloping new information systems for a company.In the next stage of rapid application development, the userconducts construction tasks such as coding. The user is involved with theprogram and application development. This is similar to the systems developmentlife cycle however RAD involves the user more, as they can still suggestchanges and improvements that can be made.Finally, the last stage of RAD is the cutover phase. Thisstage resembles the final tasks in the SDLC implementation phase, including:• Data conversion• Full-scale testing• system changeover • user training” Advantages Disadvantages ” Flexible and adaptable to changes It can’t be used for smaller projects It is useful when you must reduce the overall project risk Not all application is compatible with RAD It is adaptable and flexible to changes When technical risk is high, it is not suitable It is easier to transfer deliverables as scripts, high-level abstractions and intermediate codes are used If developers are not committed to delivering software on time, RAD projects can fail Due to code generators and code reuse, there is a reduction of manual coding Reduced features due to time boxing, where features are pushed to later version to finish a release in short period Due to prototyping in nature, there is a possibility of lesser defects Reduced scalability occurs because an RAD developed application begins as a prototype and evolves into a finished application Each phase in RAD delivers highest priority functionality to client Progress and problems accustomed are hard to track as such there is no documentation to demonstrate what has been done With less people, productivity can be increased in short time Requires highly skilled designers or developers ” “The second methodology that I am going to be talking aboutis the waterfall methodology. This methodology places a great deal ofimportance on the process of developing software.
It is one of the lessiterative and flexible approaches, as progress flows in one direction, like awaterfall, through the phase of • Analysis· Design· Implementation· Testing· Documentation· Evaluation· MaintenanceUnlike the rapid application development methodology,waterfall prioritises the process that should be followed rather than the finalsolution and the client’s needs. Waterfall follows the traditional step by steporder, as follows:Analysis, Design, implementation, testing, documentation,evaluation, maintenance. The waterfall methodology is typically used in gamedevelopment. The developers who develop a game such as ‘FIFA’ create a rigidstructured process however because it puts the process over the clients needs,it might not be exactly what the developer wants from the game, therefore it won’tbe the best final product. The first step of waterfall game development is analysis. Thisis where a development team plan out the structure of the game and they focus onplanning the game to get the best result.
The next stage of the waterfallmethodology is the design phase. Similarly, this is where they plan the structureof the game, however they focus more on the graphical/visual aspects. Inaddition to this, the software developers might plan out how the game is goingto flow. After design, it moves onto implementation.
This is where the ideasand planning get implemented into code that makes up the game. Next, voluntary every-daygamers as well as high level game developers will test the game in a ‘beta’phase. The purpose of this is to highlight any errors in the code, resulting inbugs or glitches. Feedback will be presented to the developers so that they candebug the problem and make the game the best that it can be. After testing, documentationoccurs.
After this, the team will do an evaluation on the game. This is wherethey rate the game for specific age groups, the complexity of the game,interaction, playing time etc. At this point, developers will usually refer tothe analysis and design phases to check that they have met the requirements andobjectives. Additionally, they will check that they have fixed any errors in thetesting phase. Finally, the next step is maintenance. This occurs after thelaunch of the game and the purpose of it is to keep the game running smoothlywith minimal glitches/errors. If there are any errors they will debug them, thenan update file will be available for the user to download the latest version ofthe game.
In game development, the purpose of analysis is to set goalsand objectives for what you want the game to be like. This is significant becauseby setting goals you are giving yourself something to work towards rather thanjust writing code and hoping for the best. A job role in this phase would be ananalyst. The purpose of this job is to conducts analysis and give ideas.
Thepurpose of the design phase is to give the program a start, without the designphase you could not begin the write the code. A job role in this phase is a designer.The role of a designer is to design the graphical user interface of the game. Inaddition to this a designer can design how the code will flow, which is importantto the outcome of the game. This is a key part to the development of a game,fusing the visual and hidden aspects of the game.
The purpose of implementationis to put together parts are the code to make a full game. Without this step,the game will not run because there is no code therefore it is a crucial stepto a successful game. A job role in this part is a programmer. programmerswrite code to create software programs. They turn the program designs createdby software developers and engineers into instructions that a computer canfollow. Programmers must debug the programs—that is, test them to ensure thatthey produce the expected results. Next, the purpose of the testing phase is torun the game, and check for any bugs or glitches.
This is important because thebest games are the ones that have no bugs or glitches, which will make he gamesell better. A job role in this phase is a game tester; someone who tests thegames and different versions of them for bugs. Linking onto this, theevaluation team will debug these glitches to improve how the game runs. Usually,a job role in this part is a programmer, as it can involve changing snippets ofcode. Finally, maintenance is the main factor of keeping a game relevant on themarket and keeping it at a high level of skill.
Constantly gamers are finding newglitches or exploits, therefore it is crucial for developers to patch this and bringupdates out regularly. Regular updates can improve the stability of the gameand improve the performance. This can be done by improving the graphics for example.Advantages of using the waterfall methodology include:• It is simples and easy to follow (step by step)• It is easy to manage due to the rigidity of the model• In this model phases are processed and completed one at a time.Phases do not overlap• the waterfall model works well for smaller projects as it issimple to follow, however it can be used for larger projects too such as games.Disadvantages of using the waterfall methodology include:• it can only be used when they requirements are very clear andwell known• Once an application is in the testing stage, it is verydifficult to go back and change something that was not well-thought out in theconcept stage.• it is not suitable for projects that have a risk of requirementschanging• the project will not work until near completion• does not allow scope changes