System Design Flashcards
Change Management
Process of shifting: individuals, teams, and departments etc.
Legacy System
Old technology
Business Merger
Merging of two companies (mostly to reduce costs)
Problems when installing a new system
Language difference, software incompatibility, new system is a failure, cost etc.
Software as a Service (SaaS)
A delivery method that allows software and data to be hosted and managed centrally on a remote datacenter
Premise Software
Software that is physically installed on a computer unlike SaaS where it is in a cloud (accessed only when needed)
Advantages of SaaS
Low cost, few investment in installation and maintenance, compatible with different types of devices, require few IT personnel, and it is safer.
Disadvantages of SaaS
Data is lost if the provider goes bankrupt and requires a high bandwidth
Changeover
process of putting the new system online and retiring the old one
Parallel Changeover
Both systems work in parallel for a short period of time and outputs of both systems can be compared to see which one works properly (extra cost and not time efficient)
Direct Changeover
Instant switch between system without any delay and users have to be trained before the switch (preferred when the system is not critical)
Pilot Changeover
New system is first introduced in the beginning sectors and the is slowly extended to the remaining sectors while users are trained in the meantime (companies can easily revert if something goes wrong and the first sector that adopts the system is called the pilot system)
Phased Changover
One module of the system is converted at a time and each phase is implemented separately
Data Migration
Transfer of data between different formats, storage and computer systems
Problems from Data Migration
Potential data loss, language barriers, conventions(imperial and metric systems), and misinterpretation of data
Purpose of testing
To make sure the program does not fail
Functional testing
Tests individual commands, text inputs, menu functions etc.
Data testing
Different range of data is put into the system to see what the is the output (tested with normal values, extreme values, values at the range limit and abnormal data)
Alpha testing
Done before the product is released and carried out by the developers in a lab envrionment
Beta testing
Users outside the developing team provide feedback indirectly through remote data collection and performance of the program and provides vital real world information(results in last minute changes)
Dry-run testing
Conducted with a pen-and-paper method by the programmer and he/she mentally runs the algorithm in the source code
Unit testing
Individual parts of the program are tested separately
Integration testing
Entire system is tested all at once to make sure everything is working
User Acceptance testing
Conducted in user premises in most cases before transferring owvership
Debugging
A systematic process of finding and correcting the number of bugs in a computer program
Validation
Evaluating whether if data input follows appropriate specs and is within reasonable limits
Verification
Ensuring that the data input is the same as the original source data
Data Loss
Error conditions where data is lost or destroyed due to system failure, storage negligence, or even transmission/processing errors
Methods of preventing data loss
Regular backup, firewall, offsite storage, hard copies, antivirus, auto-save (online), etc.
Failover system
Computer system that is on standby and is capable to takeover over the main system if something in the main system were to malfunction (backup com)
Peripheral device
Any auxiliary device that can communicate and work with a computer
Dumb Terminal
A dumb and basic computer that is connected to a powerful one
Thin Client
Relatively low performance terminal which depends on a server
Stakeholder
People that might have an interest in the realisation of a project or might be affected by a project
End-User
Person who is going to use the product
Accessibility
Potential of a service, product, device or environment to serve and meet the needs of as many individuals as possible
Usability
The potential of a product, application or website to accomplish user goals
Ergonomics
The design of safe and comfortable products, systems or process specifically for people