Ward's World + McGraw Hill's AccessScience

42752_Ward's World+MGH Software Engineering

Issue link: https://wardsworld.wardsci.com/i/1488288

Contents of this Issue

Navigation

Page 3 of 6

4 users. When the new system is intended to replace an existing one, both systems are run in parallel until the user is satisfied with the new system's performance. The final acceptance of a system is generally preceded by a walk-through and inspection testing in which users and developers drill the system rigor- ously to examine how it functions. In Fig. 2, the different types of testing are categorized into functional and non-functional testing. Smoke testing is an important type of testing as it may save time for the testers. It checks to ensure that no critical functionality is broken at the initial stage. If the testers find a defect, then they can reject the build and send it back to the coding team. On the other hand, stress testing is an important step in the non-functional testing category in which the system is stressed beyond its load speci- fication to see if it fails. Maintenance Software systems are dynamic: they frequently change dur- ing and after deployment because of added functionalities, new operating environments, repaired errors, and other factors. Maintenance occurs after deployment, and may sometimes cost more than all the other software life-cycle phases com- bined. It consists of three activities: adaptation, correction, and enhancement. Enhancement is the process of adding new functionality to a system. This is usually done at the request of system users. This activity requires a full life cycle of its own because it demands requirements, design, implementation, and testing. Studies have shown that about half of all mainte- nance involves enhancements. Adaptive maintenance is the process of changing a system to adapt it to a new operating environment; for example, moving a system from the Windows operating system to the Linux operating system. Adaptive maintenance has been found to account for about a quarter of all maintenance effort. Corrective maintenance is the process of fixing errors in a system after its release and accounts for about 20% of all maintenance effort. Because software systems change frequently, it is necessary to manage and control these changes through a well-structured software configuration management process. This activity consists primarily of tracking versions of life-cycle objects and monitoring the changes and the relationships among them. Typical configuration manage- ment activities also include handling and processing change requests and keeping records of these activities. Software engineering tools Because of the inherent complexity of the development pro- cess, software engineers have introduced various tools to fa- cilitate and monitor the phases of the software life cycle. These are known as the computer-aided software engineering (CASE) tools. Some CASE tools are used specifically for software devel- opment life cycle (SDLC) phases, whereas others are used for back-end activities of the SDLC. The back-end activities include documentation, timeline tracking, budget tracking, and more. Examples of phase-specific CASE tools include Microsoft Visio for planning, Doxygen for documentation, CaseComplete for requirements management, Visible Analyst for design, Integrat- ed development environments (IDEs) such as Microsoft Visual Studio for implementation, and testing tools such as SOAPT- est. Another phase-specific CASE tool is the Unified Modeling Language (UML), which provides a standard way of visualizing the design of the system independent of the programming language used for its implementation (Fig. 1). Software development life cycles The phases of the software engineering process are ge- neric phases of any software development life cycle; however, because of the differences in the types of systems created and their implementation, more focused life-cycle models have been created for various systems under development. Software Engineering (continued) + ward ' s science Fig. 2: Types of software testing.

Articles in this issue

Archives of this issue

view archives of Ward's World + McGraw Hill's AccessScience - 42752_Ward's World+MGH Software Engineering