Chapter 13 and 14
Walkthrough
a peer group review of any product created during the systems development process, including code. Have a set of requirements and you've documented what to do and what will happen. It's a very structured process and the group walks through to make sure what is supposed to happen will happen.
Desk Checking
a process where someone who understands the code works through it with a paper and pencil and executes each instruction using test cases
inspection
a testing technique in which participants examine program code for predictable language-specific errors. Only done if you're writing code.
preventative maintenance
changes made to a system avoid possible future problems. Ex: Y2K
perfective maintenance
changes made to a system to add new features or to improve performance.
Phased
changing from the old system to the new one incrementally, starting with one or a few functional components and then gradually extending the installation to cover the whole new system, typically runs together with other strategies Usually applies to extremely large systems
4 types of maintenance
corrective maintenance adaptive maintenance perfective maintenance preventative maintenance
4 Installation Strategies
direct parallel single-location phased location
Unit Testing
each module is tested alone in an attempt to discover any errors in its code. Focuses large sections of code in a development effort. Some people use this when talking about modules or units responsible for a specific function
7 Different Types of testing
inspection walkthrough desk checking unit testing integration testing system testing acceptance testing
System Testing
integrate the programs into the system. follows same incremental logic as integration testing he bringing together of all the programs of a system comprises for testing purposes Programs are typically integrated in a top-down fashion
Acceptance Testing
once system tests have been completed... acceptance tests the system in the environment where it will be used Alpha testing: user testing of a completed information system using simulated data Beta testing: user testing of a completed information system using real data in the real user environment Recovery Testing - forces software (or environment) to fail in order to verify that recovery is properly performed Security Testing - verifies that protection mechanisms built into the system will protect it from improper penetration Stress Testing - tries to break the system Performance Testing -
Parallel
running the old information system and the new one at the same time until management decides the old system can be turned off
Integration Testing
the process of bringing together all of the modules that program comprises together for testing purposes gradual process, first test the coordinating module and only one of its subordinates and then you add another on the same level etc.
How software applications are tested
A master test plan is developed during the analysis phase. During the design phase, unit, system and integration test plans are developed. The actual testing is done during implementation. Written test plans provide improved communication among all parties involved in testing.
Adaptive maintenance
Changes made to a system evolve its functionality to changing business needs or technologies. Making a change to make the system work better. Our business needs have changed or technology has changed and we need to make a change to adapt.This is what really enables a system to have longevity because your allowing a system to stay current. Usually indicated by something has triggered a change requiring the system to evolve.
Corrective maintenance
Changes made to a system to repair flaws in its design, coding, or implementation. Essentially just fixing a bug. Adds no value but takes up the bulk of the type of maintenance that occurs.
Why System Implementation Fails
Commitment to the project: involves managing the systems development project so that the problem being solved is well understood and the system being developed to deal with the problem actually solves it. Commitment to change: Involves being willing to change behaviors, procedures, and other aspects of the organization. The extent of project definition and planning: a measure of how well the project was planned. The more extensive the planning effort is, the less likely implementation failure is. User expectations are also important. The more realistic a user's early expectations about a new system and its capabilities are, the more likely it is that the user will be satisfied with the new system and actually use it
Threats to system security
External security threats including malware, phishing attacks, exploitation of applications, denial of service, and theft of computing or storage services. Remedies to counter include firewalls, email security and spam filtering software, antivirus software, virtual private networks, and data encryption. Internal threats such as employees sending personal e-mail on company systems or surfing the Internet for personal use during working hours. Human aspect of computer security can be dealt with through the implementation of procedures and policies regarding user behaviors.
Overview of System implementation process
Includes coding, testing, installation, documentation, training, and support. Overall deliverables include: Results of program/system testing, user guides, and the user training plan. Process of documentation is formal during implementation phase: There are two audiences for documentations (Maintenance personnel and the users) The purpose of this part of the SDLC is to convert final physical system specifications into working and reliable software. This step is where you make the system really happen. Also document work that has been done and provide help for current and future users. (Coding: Physical design specifications are turned into working computer code)
Factors that influence cost of maintenance and apply these factors to the design of maintainable systems
Many organizations allocate 60-80% of information systems budget to maintenance With every system you design, you have less to allocate for something else next year because next year you'll have to put budget towards maintaining every newly built system Maintenance becomes a new system when it starts to cost you so much to maintain it that you need to replace it with a new system that doesn't cost as much to maintain Factors that influence system maintainability: Latent defects Number of customers for a given system Quality of system documentation Maintenance personnel Tools Well-structured programs
direct
Simply turning off the old system and turning on the new system. Ex: University of Arizona This is the fastest, but it's also the most risky
Single-Location
Testing out the new system in one location or a small handful of locations to have minimal damage. Use the experience to decide if and how the new system should be deployed throughout the organization
Why test?
Testing process is to make sure the system satisfies requirements. Testing must be planned and documented. A test case is a specific scenario of transactions, queries or navigation paths.