Full Transcript

**Unit-I** **Module 1:** **Nature of Software -- Software Engineering** The software is an instruction or computer program that when executed provides desired features, function, and performance. A data structure that enables the program to adequately manipulate information and documents that des...

**Unit-I** **Module 1:** **Nature of Software -- Software Engineering** The software is an instruction or computer program that when executed provides desired features, function, and performance. A data structure that enables the program to adequately manipulate information and documents that describe the operation and use of the program. **Characteristics of software:** There is some characteristic of software which is given below: 1. 2. 3. 4. 5. **Software Processes?** Software processes in software engineering refer to the methods and techniques used to develop and maintain software. Some examples of software processes include: - - - - Each process has its own set of advantages and disadvantages, and the choice of which one to use depends on the specific project and organization. ![6 Stages for Software Development Procedure You Need to Know](media/image5.png) **Software Crisis** 1. 2. 3. 4. - - - - - - - **(i) Management Myths:** **Myth 1:** We have all the standards and procedures available for software development. [Fact]: - - **Myth 2:** The addition of the latest hardware programs will improve the software development. [Fact]: - - **Myth 3:** - [Fact]:  - **Generic process model in software development** Overview The generic process model is an abstraction of the software development process. It is used in most software since it provides a base for them. The generic process model encompasses the following five steps: 1. 2. 3. 4. 5. ![](media/image4.png) **Analysis and comparison of process models** **Waterfall Model:** The Waterfall Model was first Process Model to be introduced Winston Royce in 1970. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin. If any error is occurred in current and previous phase then developer have to be correct it immediately that leads to less chance of error with final product. But it is highly impractical for frequently change requirements. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In waterfall model phases do not overlap, shown in Fig. **The advantages of waterfall model are** Easy to understand and implement. Reinforces good habits: define-before-design and design-before-code. **The disadvantages of the waterfall model are** Real projects rarely follow the sequential approach. There is uncertainty at the beginning of the project regarding requirements and goals. This model does not accommodate these uncertainties very well **Incremental Model** The model is a method of software development where the model is designed, implemented and tested incrementally until the product is finished. The product is defined as finished when it satisfies all of its requirements. This model combines the elements of the waterfall model with the iterative philosophy of prototyping. The product is decomposed into a number of components, each of which are designed and built separately (termed as builds). Each component is delivered to the client when it is complete. This allows partial utilization of product and avoids a long development time. It also creates a large initial capital outlay with the subsequent long wait avoided. This model of development also helps ease the traumatic effect of introducing completely new system all at once, shown in fig ![](media/image9.png) **The advantages of the incremental model are** Divides project into smaller parts Creates working model early and provides valuable feedback Feedback from one phase provides design information for the next phase Very useful when more staffing is unavailable **The disadvantages of the incremental model are** User community needs to be actively involved in the project. This demands on time of the staff and add project delay Communication and coordination skills take a centre stage Informal requests for improvement for each phase may lead to confusion It may lead to ―scope creep **Evolutionary Model -- Software Engineering** The evolutionary model is a combination of the [[Iterative ]](https://www.geeksforgeeks.org/software-engineering-iterative-waterfall-model/)and [[Incremental models]](https://www.geeksforgeeks.org/software-engineering-incremental-process-model/) of the software development life cycle. Delivering your system in a big bang release, delivering it in incremental process over time is the action done in this model. Some initial requirements and architecture envisioning need to be done. It is better for software products that have their feature sets redefined during development because of user feedback and other factors.  Lightbox **Specialized Process Models** The specification models are used when only collection on specialized technique methods are expected for developing the specific software. **Various types of specialized models are:** 1. 2. 3. **Aspect Oriented Software Development:** In traditional Software development process, the system is decomposed into multiple units of primary functionality. But there are other issues of concern that do not fit into these primary functionalities. Later on this becomes programmers duty to code modules corresponding to the primary functionality and to incorporate all other concerned issues wherever appropriate. Programmers need to keep in mind all the things that need to be done, how to deal with each issue, the problems associated with them and the correct execution. Due to these concerns there are chances of appearing serious problems during application development and maintenance. The coding process for realizing a concern becomes very critical. **Personal Software Process (PSP)** **Objectives of PSP :** The aim of PSP is to give software engineers with the regulated methods for the betterment of personal software development processes. The PSP helps software engineers to: - - - - **Clean Room Software Engineering** Clean room software engineering is a software development approach to producing quality software. It is different from classical software engineering as in classical software engineering QA (Quality Assurance) is the last phase of development that occurs at the completion of all development stages while there is a chance of less reliable and fewer quality products full of bugs, and errors and upset client, etc. But in clean room software engineering, an efficient and good quality software product is delivered to the client as QA (Quality Assurance) is performed each and every phase of software development. **Processes of Clean Room Development** Clean room software development approaches consist of four key processes i.e. 1. 2. 3. 4. **Module 2:** **Software Quality Assurance (SQA):** **Verification and Validation** is the process of investigating whether a software system satisfies specifications and standards and fulfills the required purpose. Verification and Validation both play an important role in developing good software development. Verification helps in examining whether the product is built right according to requirements, while validation helps in examining whether the right product is built to meet user needs. ![](media/image10.png) V-model (Software Engineering) - javatpoint **Software Quality Assurance (SQA) **is simply a way to assure quality in the software. It is the set of activities that ensure processes, procedures as well as standards are suitable for the project and implemented correctly. Software Quality Assurance is a process that works parallel to Software Development. It focuses on improving the process of development of software so that problems can be prevented before they become major issues. Software Quality Assurance is a kind of Umbrella activity that is applied throughout the software process. ![](media/image11.png) **Software Quality Framework** Software Quality Framework connects the customer view with the developer's view of software quality and it treats software as a product. 1. 2. **ISO (International Standards Organization)** is a group or consortium of 63 countries established to plan and fosters standardization. ISO declared its 9000 series of standards in 1987. It serves as a reference for the contract between independent parties. The ISO 9000 standard determines the guidelines for maintaining a quality system. The ISO standard mainly addresses operational methods and organizational methods such as responsibilities, reporting, etc. ISO 9000 defines a set of guidelines for the production process and is not directly concerned about the product itself. ISO 9000 Certification **The Capability Maturity Model (CMM)** is a tool used to improve and refine software development processes. It provides a structured way for organizations to assess their current practices and identify areas for improvement. CMM consists of five maturity levels: initial, repeatable, defined, managed, and optimizing. **Importance of Capability Maturity Model** - - - - -

Use Quizgecko on...
Browser
Browser