SWE Final Exam All Correct
SWE Final Exam All Correct What is Software Engineering? - Programming integrated over time. - Tools and processes used to build and maintain code. What is Software Testing? Verify a program has expected behavior on a finite set of test cases selected from an almost infinite execution domain. When does Software Testing take place? - Should be pervasive through software life cycle. - Planning should start early in the software requirements process. Fault Failure Defect The cause of a malfunction An undesired effect observed from a system Synonymous to fault and failure The 4 Levels of Testing 2. Integration Testing 3. System Testing 4. Acceptance Testing Unit Test 1. Unit Testing Testing individual components Integration Test System Test Acceptance Test Testing integrated components Testing the entire system Testing the final system Retesting to verify modification has not caused failures and that requirements Regression Testing are still met The Trade-Off of Regression Testing VS - Resources used by testing Testing Techniques - Assurance from testing Help to ensure the success of Testing Objectives Testing Objectives tested Measurements gathered from tests that provide an evaluation of the program Example of a Testing Technique Branch Coverage: How much of the codebase is tested. Meeting a branch coverage metric (i.e. 95%) is a way of improving the chances of finding failures by attempting to systematically exercise every program branch at every decision point Software Maintenance Predelivery Activities Postdelivery Activities All activities required to provide cost-effective support to software Planning for postdelivery, maintenance, and logistics of deployment - Modifying software - Training for operation of a help desk What has caused the increased focus on Software Maintenance? Organizations trying to squeeze the most out of their software by keeping it operating as long as possible Five Key Characteristics of Maintaining Software 2. Maintaining control over modification. 3. Perfecting functionality. 1. Maintaining control over functions. 4. Identifying security threats and fixing security vulnerabilities. 5. Preventing degradation of software. Technical Issues of Software Testing - Cost of repeated testing. - Re-validating reported problems. - Importance of Regression Testing for maintenance. - Finding time to test. - Coordinating tests. - Critical software is hard to bring offline for testing - Tests can't be executed in the production system. Maintainability Capability of modification Why is Maintainability difficult to achieve? Sub-characteristics overlooked during development. This causes a lack of SW Docs and Test Environments How to enhance Maintainability? tools By having systematic and mature processes, techniques, and Best approach to estimate Maintenance? The Four Levels of Maintenance Planning? 2. Transition Level 3. Software Level 4. Request Level Experience combined with historical data 1. Organization Level At the Request Level (individual request), when is planning carried out? Requirements of the release/version planning activity requests. - Agree on content of future releases/versions - Assess risks of a given release and develop a back-out plan - Inform all stakeholders During Impact Analysis - Collect dates of availability of individual - Development -- Takes Software Development Timeline vs. Software Maintenance Timeline months to few years - Maintenance -- Usually lasts many years Refactoring Re-engineering technique to reorganize a program without changing it's behavior Reverse Engineering Process of analyzing software to create representation of software in another form or at higher abstraction What does Reverse Engineering produce? System Call graphs and control flow graphs from source code The combination of interacting elements organized to achieve one or more stated purposes System Configuration Functional and physical characteristics of hardware or software as described in technical documentation How to identify items to be Controlled - System configuration, - Selecting configuration items, Understanding the software config in context of: - Developing a strategy for labeling software items and relationships, and - Identifying the baselines to use and the procedure for a baseline's acquisition of items. Baseline life cycle. Formally approved version of a configuration item from a fixed point in time during its Types of Baselines 1. Functional - Reviewed System Requirements 2. Allocated - Reviewed Software Requirements 3. Developmental - Configuration is selected at times during SDLC Software Engineering Management Planning, Coordinating, Measuring, Monitoring, Controlling, and Reporting to ensure SW products and SWE services are delivered efficiently/effectively to the stakeholder's benefit Complications of Software Engineering Management? - Impact from clients changing requirements. - Knowing what is needed or feasible. - Increased understanding and changing conditions can cause new/changed software requirements. - Software often built using an iterative process rather than a sequence of closed tasks.
Información del documento
- Subido en
- 23 de febrero de 2024
- Número de páginas
- 7
- Escrito en
- 2023/2024
- Tipo
- Examen
- Contiene
- Preguntas y respuestas