Tuesday, June 4, 2019

Software Process Development: Water Fall Model and the RAD

Softw argon Process growing Water F to each iodine(prenominal) somebodyate and the RADSoftw are Process DevelopmentAbstractChoosing the outmatch suited Software ripening schema (SDS) for any especial(a) physical body is the first-year 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 cartridge clip expected.Till now many surveys and investigations are through on finding new run fores, rectifying the problems in the pervious projects, etcetera the new processes e genuinely cadence buzz offs with a new way of implementation of the computer parcel suppuration process.In this project I am investigating on the basic implementation of the SDS with the urine f both mannikin and the rapid application schooling (RAD) model. For this a detailed study of the both the models are do, and then finding out which packet breeding model is outmatch suited for the reading of windows applications. For this comparison the bumpkin courier (a windows application) is apply as an example.IntroductionSoftware outgrowth has set about truly difficult due to changing requirements, lack of standards, unpredictable schedules, and due to the inadequate training and more(prenominal) 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 parcel product development, instead than the technology, which cause number of the problems in software system development and in the maintenance stagecoach. A new terminology is introduced with five take aims of the SEI which is known as capability maturity date model (CMM).Most of the software life cycle includes six processes they are requirements engineering, inclination, programming, integration, delivery, and maintenance. Each of these classs in briefRequirements EngineeringIn this phase first all the requirem ents that are required by the client a0re designers of the site collectively. Then the technique of rapid prototyping in which a prototype program is built that shtup illustrates the functionality of the desire 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 learn. If the requirements engineering process is non done properly, the resulting software product pull up stakes not be useful to the client and it may not run correctly.DesignIn this process, the analysts and developers decide how to give the software with the requirements stipulations agreed in the requirements specification document. This way of designing is called stepwise refinement, and this allows the developers to control the complexness 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 compute of the software. Before coding starts, the software is divided into violate units called modules. This modularization is done to reduce the complexity of the programming process. This is excessively responsible for proper documentation that describing the mandate and for test the decree to pick up that the enroll 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 running(a) software product to the clients. Usually the clients will test the software to determine whether all the specifications agreed upon in the requ irements specification document are fulfilled or not. 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 establish to change the features or to fix the bugs, add new functionality, port the software to new computer programs. Its not true that the wee-wee is over after delivering the product to client. really 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 greet of the life cycle. The diagram below shows the expected costs that are likely to be spending on each 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 Mode lsThe Software Engineering Institute was established 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 dress of software engineering that helps to improve the quality of governances that are developed which depend on software. After two years the software process work has began. unitary 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 alternatives as yes-no are prepared that address organization, management issues and the technical software development process. In the neighboring some 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 Capability matureness 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 best suites for the general software process implements 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 use the maturity, for further improvement of a companys software process involves in the implementation of the software engineering practices that are needed to evanesce each of the five levels in an order from the lowest to the proudest level.Water Fall ModelThe water fall model is first and the basic model of software development. From this basic model only all new(prenominal)(a) models were developed. The necessity of developing the water fall model was, until it was developed there was no model or software process work go down model. 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 chip 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 th e 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 start 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 spartanware 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 starte d. The system is first developed in miserable 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 hit 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 nab 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 i s 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 meter 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 entropy, 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 adamant partitioning of the project into 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 especial(a) 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. rapid 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 stairs with a formal sign-off at the completion of each. RAD is not appropriate for all projects. This is bet suited for the projects that can be divided into small chunks and where mise en scene is small. RAD has many core elements which make it unique are prototyping, iterative development, time slugfest, 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 data model, converting the data model to a database, and generating code all in one tool.Iterative development Iterative development means creating increasing functional reading materials of a system in short development cycles. Each version 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 cuting Time lashing is adding features to future versions of the software and developing it no time. It is very important verbalism of RAD to compl ete 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 exact timeline, management must focus on team member selection, team motivation, and on clearing media or political obstacles.Coding phaseDeveloping enter 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.Te sting phaseIn the testing phase the developed software or tissuesite is tested in two ways i.e. alpha testing and beta testing. of import 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 homogeneous time searching for the errors in the code is called white box testing. Testing the versed and primitive operations and to sure that all are working agree 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 sustain 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, while 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. yokel courierThe versions of bumpkin messenger that are developed with the features are displacement 3.0 Yahoo courier 3.0 (1.3 MB)The first basic yahoo messenger was version 3.0 with basic features of chit-chat, webca m, file transfer and emoticons that can incorporate in between the text edition in chat box.Version 3.5 Yahoo courier 3.5 (1.9 MB) This version has the new features of mail updates of the user narration and the option of my display image. This feature enables the user to show his picture to the person 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 gunstockd 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 packet 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.1228 Yahoo Messenger 5.5.1 228 (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 symphony and yahoo Weather. These features enable the users to play the game s, 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 officious 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 variant 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 Messenger 8.0(Beta), which is und er 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. drill 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. clear 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 and 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 properly or not and to ensure that each f unction 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 Messenge r 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 flare 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 ostentation 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 the remote classes. Because the we b service transmits the data from the remote database, and it is in very juicy 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 compute 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 endorsement messenger are enhanced form version to version. There are many version of yahoo messenger from version 3.0 to version 8.1. in each version 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 future versions of 3.0 to 8.1.With all the se 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 ar e 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 requirements that are analyses in the requir ement 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 behavior is described textually. It desc ribes 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, preferences 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

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.