A Seminar Report On “COCOMO Model” Submitted in partial fulfilment of The requirements for the 3rd Semester Software Engineering Practical Examination of MASTER OF COMPUTER APPLICATION By SARADA PRASANNA KANUNGO 20MCA105 Regd. No: 20PG030095 Under the able Supervision of Mr. Prahallad Kumar Sahu DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING GIET UNIVERSITY, GUNUpUR 2020 – 22 ACKNOWLEDGEMENT I would like to thank my supervisor Mr. Prahllad Kumar Sahu Secondly, I would like to thank my class teacher Mr. Sibo Prasad Patra Thirdly I would like to thank our Asst. HOD Dr. Nilamadhab Padhy Special gratitude to our HOD Dr. Sanjay Kumar Kuanar Sarada Prasanna Kanungo 20MCA105 Regd no: 20PG030095 Waterfall Model History & Features Phases of Waterfall Model When to Use Waterfall model? Advantages Disadvantages Conclusion Waterfall Model The Waterfall Model was the first Process Model to be introduced. It is the classic lifecycle model – It is widely known, understood & used. It was first introduced by Royce in 1970. It is defined a number of phases, e.g., “Requirement phase”, “Design phase”, etc. Assumption behind the model: A phase takes place in sequence to another. Each activity is completed before the next starts. In theory: Each phase produces documents that are: Verified & validated Assumed to be complete. Each phase depends on the documents of the previous stage to precede it has to wait for the completion of previous stage. In practice: The phases overlap & feedback to each other. Intuitive, sensible & general purpose: Recommend a top-down perspective. See the big picture before zooming down. Requirements: It defines needed information, function, behavior, performance & interfaces. Design: It includes flowcharts, data structures, software architecture, interface representation, testing. Implementation: It includes source code, database, user documentation, testing. Diagram: History & Features History of Water Fall Model: The first formal description of the waterfall model is often cited as a 1970 article by “Winston W. Royce”. Royce did not use the term “waterfall” in this article. Royce presented this model as an example of a flawed, non-working model. Features of Water Fall Model: A Water Fall Model is easy to flow. It can be implemented for any size of project. Every stage has to be done separately at the right time so you cannot jump the stages. Testing is done at every stage. Phases of Water Fall model Waterfall model has 5 different phases, which are following. Requirement gathering and Analysis Design Coding Testing Maintenance Brief Description of phase are mentioned below, Requirement gathering and Analysis: This is the first phase of waterfall model which includes a meeting with the customer to understand his requirements. This is the most crucial phase as any misinterpretation at this stage may give rise to validation issues later. The software definition must be detailed & accurate with no ambiguities. It is very important to understand the customer requirements and expectations so that the end product meets his specifications. Requirement gathering and Analysis phase the basic requirements of the system must be understood by software engineer, who is also called ANALYST. All these requirements are then well documented and discussed further with the customer for reviewing. Design: The customer requirements are broken down into logical modules for the ease of implementation. Hardware and software requirements for every module are identified & designed accordingly. Also, the inter relation between the various logical module is established at this stage. Algorithms and diagrams defining the scope and objective of each logical model are developed. In short, this phase lays a fundamental for actual programming and implementation. It is an intermediate step between requirements analysis & coding. Design focuses on program attribute such as Data Structure. Software Architecture. Algorithm details etc.… The requirements are translated in some easy to represent from using which coding can be done effectively and efficiently. The design needs to be documented for further use. Coding: Coding is a step in which design is translated into machine-readable form. If design is done in sufficient detail, then coding can be done effectively. Programming is created in this phase. In this phase all software divided into small module then after doing coding for that small module rather than do coding whole software. According to design programmers do code and makes class & structure of whole software. Testing: In this stage, both individual components and the integrated whole are methodically verified to ensure that they are error-free and fully meet the requirements outlined in the first step. In this phase testing whole software into two parts 1) HARDWARE 2) SOFTWARE Type of testing is 2-types 1) Inside test 2) Outside test Maintenance: This is the final phase of the waterfall model, in which the completed software product is handed over to the client after alpha, beta testing. After the software has been deployed on the client site, it is the duty of the software development team to undertake routine maintenance activities by visiting the client site. If the customer suggests changes or enhancements the software process has to be followed all over again right from the first phase the software is updated to: Meet the changing customer needs Adapted to accommodate changes in the external environment. Correct errors & oversights previously undetached in the testing phases. Enhancing the efficiency of the software. Observe that feedback loops allow for the corrections to be incorporated into the model. When to use the Water Fall Model? Requirements are very well known. Product definition is stable. Technology is understood. New version of an existing product to a new platform. Advantages Easy to understand, easy to use. Provides structure. Milestones are clear. Good for management control (plan, staff, track). Works well when quality is more important than cost or schedule. Disadvantages All requirements must be known upfront. Deliverables created for each phase are considered frozen – inhibits flexibility. Can give a false impression of progress. Does not reflect problem-solving nature of software development, i.e., iterations of phases. One big integration at the end. Little opportunity for customer to preview the system (until it may be too late). Conclusion Whether you should use it or not depends largely on: How well you believe you understand your customer’s needs how much volatility you expect in those needs as the project progresses. The model is recommended for use only in projects which are relatively stable and where customer needs can be clearly identified at an early stage. Thank you