Software Engineering II Lecture Notes PDF
Document Details
Uploaded by UpscalePlanet
Misr University for Science & Technology
Heba El-Hoseny
Tags
Summary
These lecture notes from Misr University for Science & Technology cover software engineering topics, focusing on software testing and re-engineering. The document emphasizes different testing methodologies and the re-engineering process to adapt software to current market needs.
Full Transcript
Software Engineering II …. …. Assoc. Prof. Heba El-Hoseny 1 Software Testing and Software Re-engineering ❑ Software Testing evaluates the software against requirements gathered from users and system specifications. ❑ Testing is...
Software Engineering II …. …. Assoc. Prof. Heba El-Hoseny 1 Software Testing and Software Re-engineering ❑ Software Testing evaluates the software against requirements gathered from users and system specifications. ❑ Testing is conducted at the software development life cycle phase or at a program code module level. ❑ Software testing comprises Validation and Verification. The targets of the test are - Errors - These are actual coding mistakes made by developers. In addition, there is a difference in software output and desired output, which is considered an error. Fault - When an error exists, a fault occurs. A fault, also known as a bug, results from an error that can cause a system to fail. Failure – failure is said to be the inability of the system to perform the Desired task. Failure occurs when a fault exists in the system. Software Re-Engineering When we need to update the software to keep it to the current market, without impacting its functionality, This is called software re-engineering. It is performed using a process where software design is changed and programs are re-written. For example: initially, Unix was developed in assembly language. When language C came into existence, Unix was re-engineered in C, because working in assembly language was difficult. Re-Engineering Process Program Restructuring It is a process of re-constructing the existing software. It is all about re-arranging the source code, either in the same programming language or from one programming language to a different one. Restructuring can have either source code-restructuring or data-restructuring or both. Re-structuring does not impact the software’s functionality but enhances reliability and maintainability. Program components, which cause errors very frequently can be changed, or updated with re-structuring. Forward Engineering Forward engineering is a process of obtaining desired software from the specifications in hand which were brought down by means of reverse engineering. It assumes that there was some software engineering already done in the past.