Software Engineering Course Notes PDF

Document Details

College of Arts, Media and Technology, CMU

Tags

software engineering software quality assurance software quality software development

Summary

These notes cover software engineering topics such as software quality, software quality assurance, and quality control. They delve into the classification of software errors and provide examples of software failures. The document also includes a case study and some questions for discussion related to the content.

Full Transcript

Software Engineering College of Arts, Media and Technology ,CMU.  What is Software?  Software Error, Fault and Failure  Case study:Therac-25  Classification of the causes of software errors  Software Quality  Software Quality Assurance  Quality Control  The objectives of S...

Software Engineering College of Arts, Media and Technology ,CMU.  What is Software?  Software Error, Fault and Failure  Case study:Therac-25  Classification of the causes of software errors  Software Quality  Software Quality Assurance  Quality Control  The objectives of SQA activities  Software – IEEE definition Software is Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. Institute of Electrical and Electronics Engineers (IEEE)  Computer programs (the “code”)  Procedures  Documentation  Data necessary for operating the software system. Software failure case study  Software error: made by programmer.  Software fault: defect in product.  Software failure: software fault is activate. 1. Faulty definition of requirements 2. Client–developer communication failures  Misunderstanding requirement, change, design,…,etc. 3. Deliberate deviations from software requirements  The developer reuses software modules taken from an earlier project without sufficient analysis of the changes and adaptations needed to correctly fulfill all the new requirements.  Due to time or budget pressures, the developer decides to omit part of the required functions in an attempt to cope with these pressures. 4. Logical design error.  Erroneous definition of boundary conditions. For example, the client’s requirements stated that a special discount will be granted to customers who make purchases more than three times in the same month. The analyst erroneously defined the software process to state that the discount would be granted to those who make purchases three times or more in the same month. 5. Coding error. 6. Non-compliance with documentation and coding instructions. 7. Shortcomings of the testing process.  Incomplete test plans leave untreated portions of the software or the application functions and states of the system.  Failures to document and report detected errors and faults.  Failure to promptly correct detected software faults as a result of in appropriate indications of the reasons for the fault.  Incomplete correction of detected errors due to negligence or time pressures. 8. Procedure errors :User error 9. Documentation errors.  Omission of software functions.  Errors in the explanations and instructions given to users, resulting in “dead ends” or incorrect applications.  Listing of non-existing software functions, that is, functions planned in the early stages of development but later dropped, and functions that were active in previous versions of the software but cancelled in the current version. 1. Faulty requirements definition 2. Client–developer communication failures 3. Deliberate deviations from software requirements 4. Logical design errors 5. Coding errors 6. Non-compliance with documentation and coding instructions 7. Shortcomings of the testing process 8. Procedure errors 9. Documentation errors End of 2-1  3 students/team.  Reading George Wise story.  Discuss in team to find answer.  George Wise is an exceptional programmer. Testing his software modules reveals very few errors, far fewer than the team’s average. He keeps his schedule promptly, and only rarely is he late in completing his task. He always finds original ways to solve programming difficulties, and uses an original, individual version of the coding style. He dislikes preparing the required documentation, and rarely does it according to the team’s templates. A day after completing a challenging task, on time, he was called to the office of the department’s chief software engineer. Instead of being praised for his accomplishments (as he expected), he was warned by the company’s chief software engineer that he would be fired unless he began to fully comply with the team’s coding an documentation instructions.  (1) Do you agree with the position taken by the department’s chief software engineer?  (2) If yes, could you suggest why his or her position was so decisive?  IEEE definition  The degree to which a system, component, or process meets specified requirements.  The degree to which a system, component, or process meets customer or user needs or expectations.  IEEE. Definition.  A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.  A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with quality control.  Quality control is defined as “a set of activities designed to evaluate the quality of a developed or manufactured product” (Product Oriented)  Software Development(process-oriented): 1. Assuring an acceptable level of confidence that the software will conform to functional technical requirements. 2. Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements. 3. Initiating and managing of activities for the improvement and greater efficiency of software development and SQA activities.  Software maintenance 1. Assuring with an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements. 2. Assuring with an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements. 3. Initiating and managing activities to improve and increase the efficiency of software maintenance and SQA activities. This involves improving the prospects of achieving functional and managerial requirements while reducing costs.  Chapter 2:Daniel Galin. SOFTWARE QUALITY ASSURANCE From theory to implementation. Pearson Education Limited,2004.  Therac-25:An Engineering Disaster Therac-25 Joanne Lim., October 1998

Use Quizgecko on...
Browser
Browser