Changeover swift, new system available immediately
Parallel
Old and new system run concurrently - new data entered into both
Backup if new system fail, output from both system can be compared to verify that new system works correctly
Pilot
New system tested with small part of organization, bugs fixed, then expanded
All features tested before adoption by whole organization, staff who are part of pilot can train others, if failure, only small part suffers
Phased
Introduced in phases, old system gradually phased out
Allows people to get used to new system, training can be done in stages
Data Migration (Problems)
Incompatible file formats
Data structure differences
Validations rules
Incomplete data transfers
Different data, currency, or character conventions
Legacy Systems
Old technology, computer system or application
No longer supported/available for purchase
Modernization may be expensive or time-consuming
Local Software
Runs on your computer
One-time fee
Installation
Update may not be automatic
Can be used on one computer
Remote (SAAS) Software
Accessed through a web browser
Subscription fee
Can use used on any number of computers via web browser
Automatic Updates
Users always using the same version
SAAS (Software-as-a-Service) Pros
Employees can operate software from anywhere
Cheaper
Fewer support staff necessary
Pay as you go/Subscription model
Scaling up to serve more users easy
Easier to maintain - don't need to worry about individual computer problems
SAAS (Software-as-a-Service) Cons
Users have no control over availability of system
Users have no control over security
If SAAS provider gets acquired, user has no control over system
Large-scale data corruption possible
Testing
Static Testing
Dynamic Testing
Static Testing
Did we build the right system?
Examines documentation, planned specifications, test plans etc.
Verification of documentation
Dynamic Testing
Code is executed
Makes sure code produced required result
Checks for bugs
Software meets business requirements
Validation - makes sure software operates as expected
Testing Types
Alpha Testing
Beta Testing
Black Box Testing
White Box Testing
User Acceptance Testing
Automated Testing
Alpha Testing
Testing done by internal team
Lasts for months
Very structures
Confirms software works as intended
Looks for bugs or UI issues to fix
Beta Testing
Used by potential end-users outside of company
Lasts for weeks
Largely unstructured, seeks to model real-world environment
Seeks to get feedback from users
Uses feedback to fix bigs and make software more useful for end-users
Black Box Testing
Tests software through using it
No access to codebase or internal workings
No programming knowledge required
White Box Testing
Tests a software program's code to make sure everything is working
Programming knowledge required; done by programmers
User Acceptance Testing
End-user testing
Product is tested by intended audience
Automated Testing
Uses software to automatically test other software
Dynamic Testing
Code is executed to make sure it produced the required result, checks for bugs, and ensures software meets business requirements
Validation
Makes sure software operates as expected
Alpha Testing
Testing done by internal team, lasts for months, very structured, confirms software works as intended, looks for bugs or UI issues to fix
Beta Testing
Used by potential end-users outside of company, lasts for weeks, largely unstructured, seeks to model real-world environment, seeks to get feedback from users, uses feedback to fix bugs and make software more useful for end-users
Black Box Testing
Tests software through using it, no access to codebase or internal workings, no programming knowledge required
White Box Testing
Tests a software program's code to make sure everything is working, programming knowledge required, done by programmers
User Acceptance Testing
End-user testing, product is tested by intended audience
Automated Testing
Uses automated testing software, tests preconstructed (usually specified in software or written in code), program output automatically compared to expected output, can rapidly complete complex/tedious tasks
User Documentation Types
Manual (Paper manual, booklet, or pamphlet)
Online (PDFs, website, video)
Help files (Locally accessible programs that display text)
User Training Methods
In-person classes
Online training - Instructor training one student or small group of students
Self-instruction
Causes of Data Loss
Hardware/System Malfunction
Human Error
Software Corruption
Malicious Software (Viruses, etc.)
National Disasters (Power cuts = equipment damage)
Ways of Preventing Data Loss
Failover Systems
Redundancy
Removable Media
Offsite/online storage
Physical Security
Stakeholders
A person with an interest or concern in something (especially a business)
Stakeholder Methods to Get Requirements for Software Functionality
Direct Observation
Interviews
Surveys
Prototypes
Iteration
Cyclical process that ends in a finished product, process of prototyping, testing, analyzing test results, and refining product until requirements met, allows constant improvement based on user or client feedback
Software Deployment
Release
Update
Bug
Security Vulnerability
Patch
Upgrade capability
Upgrade Driver
Usability
How effectively and efficiently a product can be used