Software Engineering UGC NET Mission JRF December 2024 Lecture Notes PDF
Document Details
Uploaded by LuxuryMossAgate7416
2024
UGC NET
Puneet Kaur
Tags
Related
- Simplified Guide for AEs: Software Engineering, DevOps, and Cybersecurity PDF
- original_1489125567_Chapter_1_Introduction_to_software_product_engineering.pdf
- Chapter 2: Software Engineering Lifecycle PDF
- Software Engineering.pdf
- Software Engineering 9th Edition PDF
- Gls University Software Engineering PDF
Summary
These are lecture notes for a UGC NET Mission JRF December 2024 class covering software engineering. The notes detail software quality and software components. Topics include McCall's Factors, ISO 9126, and more.
Full Transcript
# UGC NET ## Mission JRF December 2024 ### Software Engineering #### LECTURE - 8 #### Software Quality and SCM By- Puneet Kaur # RECAP 1. Software Testing - Types - Keywords # TOPICS 1. Software Quality and SCM # Topic: Software Quality and SCM ## Content: 1. McCall's Factors 2. ISO 912...
# UGC NET ## Mission JRF December 2024 ### Software Engineering #### LECTURE - 8 #### Software Quality and SCM By- Puneet Kaur # RECAP 1. Software Testing - Types - Keywords # TOPICS 1. Software Quality and SCM # Topic: Software Quality and SCM ## Content: 1. McCall's Factors 2. ISO 9126 Quality Factor 3. Quality Control ✓ 4. Quality Assurance ✓ 5. Change Control ✓ 6. Process of change control ✓ 7. Software Reuse ✓ 8. Software Re-engineering ✓ 9. Software Reverse engineering ✓ # Topic: Software Quality and SCM ## McCall's Quality Factors: - It was introduced in (1977). This model is incorporated with many attributes, called as software factors, which influence software. - This categorized all software requirements into 11 software quality factors. The 11 factors are organized into three product quality factors - product operation, product revision, and product transition factors. ## Product operation: - It includes five software quality factors, which are related with the requirements that directly affect the operation of the software such as operational performance, convenience, ease of usage and its correctness. This help in providing user experience. - **Correctness**: The area to which software meets its requirements specification. - Efficiency - Time & Space: The amount of hardware resources and code the software needs to perform a function. - **Integrity**: Accuracy and consistency. This relates to security. The area to which the software can control an unauthorized person from the accessing the data or software. - **Reliability**: The area to which software performs its intended functions without failure. Do not fail. - **Usability**: The extent of effort required to learn, operate and understand the functions of the software. ## Product Revision: - It includes three software quality factors, which are required for testing and maintenance of the software. They provide maintenance, flexibility and testing effort to support the software to be functional according to the needs and requirements of the user in the future. - **Maintainability**: The effort required to detect and correct an error during maintenance phase. - **Flexibility**: The effort needed to improve an operational software program. - **Testability**: The effort required to verify software to ensure that it meets the specified requirements. To adapt ## Product Transition: - It includes three software quality factors that allow the software to adapt to the change of environments in the new platform or technology from the previous. - **Portability**: It required transferring a program from one platform to another. - **Re-usability**: The area to which the program's code can be reused in other applications. - **Interoperability**: The effort required to integrate two systems with one another. # Topic: Software Quality and SCM ## ISO 9126 Quality Factors: - The ISO 9126 software is an international standard software quality model that helps in creating a solid framework for assessing software. This standard way of assessing software can be segregated in four different ways. These are used to address subjects of different nature. - **Functionality**: Key aspect of any software that ensures the completion of tasks and purpose. Failure. - **Reliability**: It determines the capability of software to sustain its use when put under different circumstances. Learn, understand, and maintain. - **Usability**: It is highly dependent on the functional uses of software. For example: ATM machine is used to withdraw cash. - **Efficiency**: It is more concerned by resources of the system when used for providing a desired functionality. This type of feature is defined by amount of disk space, memory and network. Time and space, resources. - **Maintainability**: This property of maintainability of the software model is used to recognize and fix a defect accordingly. The model is inspected for the faults and these can be identified easily. - **Portability**: According to this, capable-software should easily adopt to the environmental changes as possible. The designing of an object and the practices of its implementation are highly dependent on this feature. Change, adapt to new platform, new technology, new environment. # Topic: Software Quality and SCM - **Quality control**: Software quality control is the set of procedures used by organizations to ensure that a software product will meet its quality goals at the best value to the customer, and to continually improve the organization's ability to produce software products in the future. - **Quality Assurance**: Software quality assurance (SQA) is a means and practice of monitoring the software engineering processes and methods used in a project to ensure proper quality of the software. It may include ensuring conformance to standards or models, such as ISO/IEC 9126. - **Change Control**: It is the method that an organization uses to contract, identify and authorize changes to an IT environment. It decreases the chances of unauthorized alterations, disruption and errors in the system. Changes should be documented and in a controlled environment. Maintain integrity and consistency of software. # Quality Control vs. Quality Assurance - **Quality Control**: Focus on identifying and resolving issues after the product reaches the customer/public. Reactive approach. Let the thing happen, then we will solve it. - **Quality Assurance**: Ensuring quality requirements are met before the product is released to the public. Proactive approach. Ready for things before they happen. # Topic: Software Quality and SCM ## Process of Change Control - **Change Log**: It is a document that list the details about all the Change Requests like project number, PCR (project change request) ID, priority, Owner details, Target date, status and status date, raised by, date when raised etc. - **Change Request Form**: It is used to contract details required to manage the decision making process like type of change, benefits of change, name of resource requesting the change, time and estimate cost, change request status etc. # Topic: Software Quality and SCM - **Version Control**: It is also known as revision control. It is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. It is a method that records changes to a file or group of files over time so that user can recall specific versions later. Git is a free and open source assign version control system designed to handle all from small to very large projects with speed and efficiency. It is easy to remember and has a small footprint with lightning fast performance. If needed, produce a revised version, new editions, or book. # Topic: Software Quality and SCM - **Software Reuse**: It is the method of creating systems from preplanned software components. The advantage of software reuse: - The systematic development of reusable components. - The structured reuse these components as building blocks to create new systems. - Increase software productivity. - Shorten software development time. - Produce more standardized software. # Topic: Software Quality and SCM - **Software Re-engineering**: It is a method of software development which is done to improve the maintainability of a software system. It is the study and modification of a system to reconstitute it in a new form. ## Advantages of Re-engineering - **Reduced Risk**: Software is existing; the risk is less as compared to new software development. Staffing problems and specification problems are many of problems which may create in new software development. - **Re-engineering Cost Factors**: - The quality of the software to be re-arranged. - The tool support available for re-engineering. - The extent of the required data conversion. - The availability of expert staff for re-engineering. - **Objectives of Re-engineering**: - To relate a cost-cutting option for system evolution. - To relate the activities involved in the software maintenance process. - To identify between software and data re-engineering, and to explain the problems of data re-arranged. - **Reverse Engineering**: It is also known as back engineering. It is the process by which a man-made object is deconstructed to reveal its designs, architecture, code or to extract knowledge from the object; related to scientific research, the difference being that scientific research is about a natural phenomenon. ## Steps for Reverse Engineering are: 1. **Collection Information**: This pivot on collecting every possible information (i.e., source design documents etc.) about the software. 2. **Examining the information**: The information collected as to get familiar with the system. 3. **Extracting the structure**: This step worry with identification of program structure in the form of structure chart where each node corresponds tos ome routine. 4. **Recording the functionality**: During these step details of individual module of the structure, charts are recorded using structured language like decision table, etc. 5. **Recording data flow**: Group of data flow diagrams are derived to show the flow of data among the processes. 6. **Recording control flow**: Increase level control structure of the software is recorded. 7. **Review extracted design**: Design document remove is showed several times to certify consistency and correctness. It also ensures that the design represents the program. 8. **Generate documentation**: The complete documentation including SRS, design document, history, overview, etc. are recorded for future use. # Topic: Software Quality and SCM ## Difference between Re Engineering and Reverse Engineering | Re Engineering | Reverse Engineering | | -------------- | -------------- | | It is to examine the finished product and build it again, but better. | It is finding out how a product works from the finished product. | | It means in which we used own knowledge for make better that previous technology whatever we use in first time. | It means using a other country knowledge for worked on them process and we change something in that technology is called reverse engineering. | | It means to make the previous product again to get better output. | It means restart the whole. | | It means developing a new system from an old system or r existing system. | It is basically gathering inform from implementation and design. | | It is the process by which a man-made object is deconstructed to reveal its designs, architecture, code or to extract knowledge from the object: Ex. Computer. | | It is a process of software development which is done to improve the maintainability of a software system. | | # Software Maintenance - Most important part of SDLC: It makes software redundan and up to date. (Ex. Nokia Phone) - It can be obsolete. - **Corrective Maintenance**: To find errors and bugs in the software. - **Adaptive Maintenance**: To adapt changes in the environment and technology. - **Preventive Maintenance**: To prevent from future problems, proactive measures to protect software from bugs and becoming obsolete. - **Perfective Maintenance**: Improve functionality, efficiency and performance. etc. - Modifying the software to match changes in the environment is: - Adaptive maintenance - Preventive maintenance - Corrective maintenance - Perfective maintenance - Modifying the software by restructuring is called: - Adaptive maintenance - Perfective maintenance - Preventive maintenance - Corrective maintenance ## Re-engineering is preferable for software products having: - High failure rate. - Poor design. - Poor code structure. ## Reverse Engineering is: - Analysing the software with an objective of recovering its design and requirement specifications. - Both statements are true. # 2 Mins Summary - Software purposes - Software Maintenance - Software Quality # Thank You