Wednesday, June 5, 2019
Software Process Development: Water Fall Model and the RAD
Softw ar Process evolution Water F tot wholey sham and the RADSoftw be Process DevelopmentAbstractChoosing the top hat suited Softwargon growth transcription (SDS) for any particular(a) vagabond is the jump and foremost thing to do. If this step goes wrong or selecting an unsuited SDS for the project may lead to unsuccessful or incomplete or may be delayed to the clip expected.Till now many surveys and investigations ar make on finding new butt againstes, rectifying the problems in the pervious projects, and so on the new processes e really term cuts with a new way of implementation of the parcel establishment maturation process.In this project I am investigating on the basic implementation of the SDS with the water supply fall prototype and the rapid application instruction (RAD) model. For this a detailed study of the both the models are do, and then finding out which computer bundle system festering model is outdo suited for the training of windows a pplications. For this comparison the hayseed messenger (a windows application) is use as an example.IntroductionSoftware nurture has cause very difficult due to changing requirements, lack of standards, unpredictable schedules, and due to the s jakest(predicate) training and more than that by the lack of effort by the professionals. After a lot of research, it was clear that the problem is with the process that is used for the bundle development, sort of than the technology, which cause number of the problems in software development and in the maintenance figure. A new terminology is introduced with five take aims of the SEI which is known as capability matureness model (CMM).Most of the software life cycle includes six processes they are requirements engineering, goal, programming, integration, delivery, and maintenance. Each of these casts in briefRequirements EngineeringIn this phase first all the requirements that are required by the client a0re blueprinters of the site collectively. Then the technique of rapid prototyping in which a prototype program is built that can illustrates the functionality of the sought after software model. Using this prototype, clients can understand better how the final product would be, how would be the functionality and from that they can find out whether this is what they really affect. If the requirements engineering process is non d ane properly, the resulting software product entrust not be useful to the client and it may not run correctly.DesignIn this process, the analysts and developers decide how to establish the software with the requirements conditions agreed in the requirements specification document. This way of designing is called stepwise refinement, and this allows the developers to control the complexity of the software. After completing the design, it is recorded in design specification document.ProgrammingIn this phase, programmers are divided into groups who write the actual cipher of the software. Before coding starts, the software is divided into carve up units called modules. This modularization is done to reduce the complexity of the programming process. This is similarly responsible for proper documentation that describing the principle and for testing the canon to control that the calculate is free of bugs.IntegrationIn this phase, the individual modules of the software are combined to form the complete software product. As the modules are developed separately, testing is very important in this integration process. Even when the design is good, some measures incompatibilities between modules are likely to exist. All these problems are identified and corrected to complete the integration.DeliveryIn this phase, the developers deliver the completely produceing software product to the clients. Usually the clients will test the software to determine whether all the specifications agreed upon in the requirements specification document are fulfilled or n ot. If the client is satisfied with the software he accepts the software and installs it or else gives back for modifications.MaintenanceIn this phase, the software undergoes many changes after delivery in tramp to change the features or to fix the bugs, add new functionality, port the software to new syllabuss. Its not true that the elaborate is everywhere after delivering the product to client. in truth more work is to be done, after delivering the product, in this maintenance phase.From the investigation done the experts it is surprised to discover that of all the processes, the maintenance phase has the more cost of the life cycle. The diagram below shows the expected costs that are likely to be spending on from each one of the processes in the software life cycle. As maintenance cost is more, many developers started to use the design approaches that result in software, which is easier to maintain.History of Software Process ModelsThe Software Engineering Institute was est ablished at Carnegie Mellon University in Pittsburgh, Pennsylvania in 1984, under a Department of Defense contract. The mission of this institute is to provide the leadership in advance state of the suffice of software engineering that helps to improve the quality of systems that are developed which depend on software. After two years the software process work has began. unrivaled of those results was the software process maturity model. In the year of 1987, the Software Engineering Institute and MITRE Corporation produced the first questionnaire on the maturity of a software in general, a set of question that has the excerpts as yes-no are prepared that address organization, management issues and the technical software development process. In the neighboring big(a)ly a(prenominal) years, the Software Engineering Institute developed two methods that are used for the questionnaire to test and conclude the report of an organizations software process.After many reviews, the Capab ility due date Model (CMM) for software was developed which replaced the software process maturity model in the year 1991. The CMM gives the detailed information of the levels of the firms that outstrip suites for the general software process intrusts that are followed by the firms which are divided into five maturity levels. The questionnaire that are to be satisfied by the firms at there CMM levels , once the current level of operation is attained apply the maturity, for further improvement of a companys software process involves in the implementation of the software engineering practices that are needed to progress each of the five levels in an order from the lowest to the highest level.Water Fall ModelThe water fall model is first and the basic model of software development. From this basic model only all otherwisewise models were developed. The necessity of developing the water fall model was, until it was developed there was no model or software process work arise mod el. Thats the reason the water fall was the basic model for software development.Water fall model is divided into separate phases of software development. The phases in Waterfall model are Requirement Specifications phase, Software Design, Implementation and Testing Maintenance. . All these phases are cascaded to each other so that aid phase is started as and when defined set of goals are achieved for first phase and it is signed off, so the name Waterfall Model. All the methods and processes undertaken in Waterfall Model are more visible.All possible requirements of the system to be developed are analyzed in this phase. Requirements are set of functionalities and constraints that the end-user (who will be using the system) expects from the system. The requirements are gathered from the end-user by consulting the customer who have requested for the product. These requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied. Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model.Next comes the system and software design phase. In this phase, before startle for actual coding, it is highly important to understand what we are going to create and what it should look like? The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. In this phase the estimation of cost for developing the product is also analyzed depending on the requirements. The system design specifications serve as input for the next phase of the model.The next sequential phase is the implementation (coding) and unit testing the software. On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in gnomish programs called units, which are integrated in the next phase. So that it would be easy to develop the code by dividing the work into small units. Then each unit of work that is divided from the count work is developed individually by each developer and tested for that particular unit of work is done properly or not. This type of testing the individual unit code is called unit testing.In the next upcoming phases the small units of code is to be integrated into one single code and should be tested for the over all functionality. As specified above, the system is first divided in units which are developed and tested for their functionalities .These units are integrated into a complete system during Integration phase and tested to harmonize if all modules/units coordinate between each other and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer.The maintenance phase is the most important and it is almost 70% of total software process life cycle. This phase of is virtually never ending phase (Very long). Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the system are solved after deployment of the system. Not all the problems come in picture directly but they arise eon to time and needs to be solved hence this process is referred as Maintenance. On the time ruin the problems may occur and the code may not accept the new type of selective information, and then there is the need to change the part of the code or correct that part of code.Due to some disadvantages of the water fall model later some other models are developed. The disadvantages areThe main drawback of the waterfall model is the difficulty of accommodating change after the process is underway.One phase has to be complete before moving onto the next phase intractable partitioning of the project int o distinct stages makes it difficult to respond to changing customer requirements.Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly circumscribed during the design process.Few business systems have stable requirements.The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. fast Application Development (RAD)RAD is a software development process initiated by James Martin in 1980s. It is a very high level of application development techniques that uses prototype, iterative customization and CASE tools. RAD is a software development methodology that focuses on building applications in a very short amount of time, traditionally with compromises in usability, features and execution speed.Figure-Traditional RADThe traditional RAD software development cycle follows a rigid sequence of go with a formal sign-off at the completion of each. RAD is not appropriate for al l projects. This is bet suited for the projects that can be divided into small chunks and where background is small. RAD has many core elements which make it unique are prototyping, iterative development, time package, team members, management approach and RAD tools.Prototyping This part of the RAD can be done by the Computer Aided Software Engineering that focus on capturing requirements, converting them to a selective information model, converting the data model to a database, and generating code all in one tool.Iterative development Iterative development means creating increasing functional transformations of a system in short development cycles. Each fluctuation is reviewed and approved by the client to produce requirements that feed the next version. This process is repeated until all functionality has been developed.Time buffeting Time nicheing is adding features to future versions of the software and developing it no time. It is very important conniption of RAD to comp lete the job in less time and get the best product out than other competitors.Team members The RAD methodology recommends the use of small teams that consist of experienced, versatile, and motivated members that are able to perform multiple roles. As the client plays a vital role in the development process, dedicated client resources must be available during the initial Joint Application Development (JAD)Management approach Active and involved management is required to reduce the risks of lengthened development cycles, client misunderstandings, and missed deadlines. In addition to enforcing a inflexible timeline, management must focus on team member selection, team motivation, and on clearing media or political obstacles.Coding phaseDeveloping enroll in RAD process model takes very short span. At the time of development of these types of projects the there is no need or no time to make the code future enhancements. So the code developed using this process is not the most reliable code.Testing phaseIn the testing phase the developed software or sacksite is tested in two ways i.e. alpha testing and beta testing. alpha testing is the testing done by the developers before delivering the product. This alpha testing can be done in two ways i.e. white box testing and the black box testing. The testing of all the models that are working properly or not and to ensure that each function is fully operational while at the said(prenominal) time searching for the errors in the code is called white box testing. Testing the privileged and primitive operations and to sure that all are working gibe to the specification is called black box testing. Testing done by the customer to check weather all the specification requirements are working properly is called measuring stick testing. If any problem occurs, then the error is set up and just added to the code at the appropriate position.AdvantagesSpeed and quality are the main advantages of Rapid Application Development, wh ile potentially reduced scalability and feature sets are the disadvantages.The main goal of RAD is the speed delivery of the product using CASE tools, which helps in converting the requirements to code automatically. The speed delivery is the main feature of RAD because the product has the competitors and demand in the market.The software developed by the RAD has versions and each version is better, has new features or at least overcomes the defects of the previous versions.DisadvantagesScalability and the reduced features are main drawbacks of the RADDue to very less time using the time boxing the development of the product that can construct the advanced features is not possible.By using time boxing we have very less time to develop much more features and more enhanced features.hick messengerThe versions of bumpkin messenger that are developed with the features are magnetic variation 3.0 Yahoo messenger 3.0 (1.3 MB)The first basic yahoo messenger was version 3.0 with basic feat ures of jabber, webcam, file transfer and emoticons that can incorporate in between the school text in chat box.Version 3.5 Yahoo messenger 3.5 (1.9 MB) This version has the new features of mail updates of the user depict and the option of my display image. This feature enables the user to show his picture to the psyche with whom he/she chatting.Version 4.1 Yahoo Messenger 4.1 (2.3 MB) In this version the send contact details, message archive are introduced. Send contact details option enables the user to send the messenger list in his account to others. If message archive option is set then all the conversations done by the account user can be terminald in the local system where person chats.Version 5.0 Yahoo Messenger 5.0 (2.2 MB)This version has the new feature of photo conduct through which two persons can share the pictures by just dragging and dropping the pictures into the sharing box. This is the great feature that had made yahoo messenger more popular.Version 5.5.122 8 Yahoo Messenger 5.5.1228 (2.6 MB)This version has the option to change the skins and the option to join the chat rooms all over the world.Version 6.1922 Yahoo Messenger 6.1922 (4.5 MB)This version ahs the feature of play game with the other person in the chat. And the other new feature is buzz which alerts the with a sound. The chat box is provided with the text format tool bar.Version 7.0 Yahoo Messenger 7.0 (8.2 MB)This version has the drastic changes and much new features than the previous versions. The IM environment option that changes the backdrop of the chat box.Version 7.426 Yahoo Messenger 7.426 (8 MB)This version has the new feature called the voice chat. With this option a person can record his voice message and send it to this other person in the chat. This feature revolutionized the yahoo Messenger and made popular.Version 7.437 Yahoo Messenger 7.437 (8 MB)In this version we have the plug-ins of yahoo Games, yahoo medicament and yahoo Weather. These features enable t he users to play the games, listen to music and see the weather report in certain areas all over the world.Version 7. 5.0.647 Yahoo Messenger 7.5.0.647 (7.7 MB)This version has very slight difference than its pervious versions with only new feature that is calling pc-to-pc using the VOIP protocol that is developed for voice transmission over Internet.Version 8.0.0.506 Yahoo Messenger 8.0.0.506 (10 MB)This is the very advanced version of the yahoo messenger, which has an option sending the SMS to the wide awake directly to the person who has signed in into his mobile device. And the persons who are have the account into the messenger list.The new and smart tool is the audibles tool bar for chat box, which has many prerecorded audibles in contrastive languages and different animated pictures speaking out those audibles.This is how the 11 versions of yahoo Messenger is developed using RAD. And many other versions are upcoming using this method of software developing such as yahoo Mes senger 8.0(Beta), which is under testing phase.With in 8 years the yahoo had developed 8 versions of Yahoo Messengers with versions numbered from 3.0 to 8.0.0.506 with pc -to-pc talk and SMS to mobile.Developing Yahoo Messenger with Water Fall ModelThe first and the foremost is that in water fall model all the requirements are taken at a time. The design and coding is done in the most common way i.e. from the design phase itself it is designed.Requiremental Analysis and DesignThe requirements of the yahoo messenger are the login window, chat window, the server side application for maintenance. All these are the requirements that are required for the development of yahoo messenger.The client application requirements areLogin windowFrame windowChat windowManage Contacts earmark message windowThen after the language in which the coding is to be done is decided. Data base for the server side application should be developed the entire design depends on the data base that is structure to store the data of every client.The design of the yahoo messenger is taken up by the minimum and basic requirements. The design is made normally with out nay future plans.Development DiagramsThe UML diagrams play an important role in the software development diagrams. These diagrams illustrate the clear cut idea of the software that is being developed. subroutine case DiagramsUse cases describe the behavior of the system when one of these actors sends one particular stimulus. This behavior is described textually. It describes the nature of the stimulus that triggers the use case the inputs from and outputs to other actors, and the behaviors that convert the inputs to the outputs. The text of the use case also usually describes everything that can go wrong during the course of the specified behavior, and what remedial action the system will take.Context diagramsA context diagram is a data flow diagram, with only one massive central process that subsumes everything inside the scope of the system. It shows how the system will receive and send data flows to the external entities involved. elucidate DiagramsClass diagrams are widely used to describe the types of objects in a system and their relationships. Class diagrams model class structure and contents using design elements such as classes, packages and objects. Class diagrams describe three different perspectives when designing a system, conceptual, specification, and implementation. These perspectives become evident as the diagram is created and help solidify the design.Data Flow DiagramsA data flow diagram (DFD) is a graphical representation of the flow of data through an information system. A data flow diagram can also be used for the visualization of data processing. It is common practice for a designer to draw a context-level DFD first which shows the interaction between the system and outside entities. This context-level DFD is then exploded to show more detail of the system being modeled.Implementation an d CodingIn this phase the actually the code is developed. Before that the total code is divided into independent modules, so that the coding becomes easy. So the coding part is divided into modules such asIntegration and Unit testing After the coding is done for individual modules such as data base structure, frame work and the data base or server connectivity module are integrated into one module of code for the code to work with all the functions full. Then this code is tested after the integration is done, to check weather the code is working collectively after integrating the all the modules into one single code.In the testing phase the developed software or website is tested in two ways i.e. alpha testing and beta testing. Alpha testing is the testing done by the developers before delivering the product. This alpha testing can be done in two ways i.e. white box testing and the black box testing. The testing for all the modules is done to check weather all the code is working pr operly or not and to ensure that each function is fully operational while at the same time searching for the errors in the code is called white box testing. Testing the internal and primitive operations and to sure that all are working according to the specification is called black box testing. Testing done by the customer to check weather all the specification requirements are working properly is called beat testing. If any problem occurs, then the error is set up and just added to the code at the appropriate position.Maintenance PhaseThis is phase in which the maximum amount of resources are used. In this water fall model the yahoo messenger requires many changes in the features for adding new features such as the voice chat, video conference, pc to pc call etc.For all these new features the present code is not venerable to add the new models or to integrate, so that the reason why all the code is developed again with new features in the water fall model which consumes more time and resources.Developing Yahoo Messenger with RADInstant messenger is first lunched by yahoo named as Yahoo Messenger on 21 July 1999. The first version of yahoo messenger is version 3.0 for MAC operating system with the features of webcam, file transfer, emoticons.The important requirement of an pulse messenger is chat, and this chat is enabled between system to system because the messenger chat box communicate between two systems using there MAC (Message Authentication Code) address. Windows Application version of jiffy messenger and web messenger are the products of yahoo.Analysis PhaseIn this phase the requirements such as software hard ware requirements are analyzed and listed for the usage of the development of the product.The main problem is that the windows application cannot be directly connected to the remote database (for authentication, chat,offline message). For that the web service is the best solution that can connect database remotely and can call the methods in t he remote classes. Because the web service transmits the data from the remote database, and it is in very big-shouldered form to destroy.Then its is to be decided in which platform the project should be developed either in java or Microsoft .net or etc. in some cases the customer itself asks the product to be done in a particular platform. If the customer did not ask for any particular platform we can chose the platform on our own.Estimation of cost is made in this phase itself. The total cost estimation for development, maintenance, etc. the cost for development is calculate in man hours of work.Requirement analysisActually the requirement of an software include the requirements of the customer that he want in the software and the other software and hardware requirements that are needed for the software development.The features of the yahoo flash messenger are enhanced form version to version. There are many version of yahoo messenger from version 3.0 to version 8.1. in each ver sion the new changes and features had been added such as voice chat, pc-to-pc call, plug-ins, IM-Environment, SMS to Mobile etc.For developing software or windows application or a web application we need software to develop such as C++, VC++, Java or Microsoft ocular Studio etc.For instant messenger we need to develop a windows application that can be run at the clients pc and we a need a web service to communicate the client-client transaction.The windows application cannot directly communicate with the remote database and cannot communicate with the other client without a web reference. So web service is used a web service for checking the authentication of the users account and his details.The first version of the Yahoo Messenger 3.0 has only few features such as chat, web cam, emoticons. In the later version the features such as voice chat, pc-to-pc call, plug-ins, IM-Environment, SMS to Mobile added. But all these features are not added at time. They are all added for the futu re versions of 3.0 to 8.1.With all these requirements a prototype model is prepared. And for designing the software that prototype model should be approved by the client.Hardware RequirementsFor developing an instant messenger an ordinary system is sufficient. But to make the instant messenger work we need a server that acts as web service for the instant messenger to communicate between the users of the instant messenger.The uninterrupted internet connection to the server is very much important so that no users finds incontinent to work. And stairs need to be taken for a fast recovery at the time of crashing of the server.Design phaseFirst the total development of the yahoo messenger is divided into modules. Then the software diagrams are drawn for the convenient for the developing the code. First the context diagram is drawn for the project. Then comes the data flow diagrams in which the flow of the data in the project is shown. The next diagram is the ER-Diagram in which the all the parameters of the total project are represented in diagrams. This diagram is very much useful in developing a database in which a column is made for every single column in thedatabase. In this database the data should be maintained in the tables. And these tables should have the primary keys and foreign keys (primary keys of other table in the current table is called foreign key).In this design phase it self the use case diagrams, activity diagrams and sequence diagrams are developed. Then the use case diagrams which sub parts or modules of the project. Depending on these all diagrams the total project is divided into small modules and these modules are distributed to each team for development.Time boxing is adding features to future versions of the software and developing it no time. It is very important aspect of RAD to complete the job in less time and get the best product out than other competitors.In the design phase a first a prototype model is prepared with all the requir ements that are analyses in the requirement analysis phase. And for designing the software that prototype model should be approved by the client. The total project is divided in small chunks so that it would be easy to develop the software in no time.The design phase has many sub phases, they areSoftware development diagrams These diagrams are very important and help a lot in the development of the project. The diagrams areContext diagrams,Entity relationship diagrams,Data flow diagrams,Use case diagrams,Collaboration diagrams,Sequence diagrams.All these diagrams act as a blue print of the development of the project and will be very useful at the time of the software development.Development DiagramsThe UML diagrams play an important role in the software development diagrams. These diagrams illustrate the clear cut idea of the software that is being developed.Use case DiagramsUse cases describe the behavior of the system when one of these actors sends one particular stimulus. This be havior is described textually. It describes the nature of the stimulus that triggers the use case the inputs from and outputs to other actors, and the behaviors that convert the inputs to the outputs. The text of the use case also usually describes everything that can go wrong during the course of the specified behavior, and what remedial action the system will take.The use case diagram gives the details of the requirements, options in the product specified by the client. These requirements dont change whatever the software development procedure used, so that use case diagram is same as that of the diagram that uses water fall model for software development.why in water fall model there is only one main class and all the other sub classes or child classes are developed under it.When a product is developed in .net, default folder AppCode is created in which all the class files, script files are developed. In the figure shown below the the authentication, chat address book, preference s are separate classes developed under the AppCode.Database DesignThe design of database consists of making the data tables that are used in the project. Designing the tables includes deciding the primary keys and foreign keys in the tables and the data types of the columns of the tables.After completing all these diagrams and the database design, the project is divided in chunks and distributed among the team members for development of the project.RAD is best
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.