0% found this document useful (0 votes)
22 views

1 SystemFundamentals

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

1 SystemFundamentals

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 116

System Fundamentals

Software System Life Cycle


Existing
System
Analysis
Maintenance

Requirements
Specification

New
System
Installation

Software
Design
Testing &
Debugging Software
Implementation
System Life Cycle

Analysis

Maintenance
Design

Operation
Implementation
System Life Cycle

Planning &
Analysis

Evaluation Design
Overview

Development
Topics
• Systems in organizations
– Planning and System installation
– User focus
– System backup
– Software deployment
• System Design
– Components
– System design and analysis
– Human interaction
Planning & Installation
Identify the context for which a new system
is planned
• Systems perform specific sets of tasks as defined by users.
• Most systems follow the same procedures:
– Collect input data
– Process data
– Output processed data
• New systems can be made to improve upon current
systems
– Increase efficiency, productivity, quality of outputs
– Cut down operational costs
– Update due to technology advancements
– Better usability
– Reduce the flaws and errors of the existing system
Identify the context for which a new system
is planned
• New systems should have clearly defined functions and interactions with
the users and other systems
• Planning a new system is the process of thinking about various details
and organizing the activities required to achieve the desired goal.
• Organizational issues related to the installation of new systems
– Users need to understand the purpose of the new system
– Users need to be trained
– The new system should be compatible with the old input and output formats
– The existing functions with the old system should work properly in the new
system
– The new system may bring in new set of problems which need to be addressed
– Changes in appropriate documentation to address the new features and
limitations if any
– The smooth transition from old system to new system should be planned taking
into consideration all the stakeholders and the relevant benefits for each
stakeholder
• Planning should anticipate potential organizational
issues such as
– Lack of guiding organizational & business strategies
– Lack of stakeholder & end user participation
– Lack of end user ownership of the system
– Lack of attention to required training
– Lack of attention to various organizational issues such as
organizational culture
– Lack of attention to the design of tasks & jobs, allocation
of information system tasks & overall usability of the
system
• Feasibility study should be conducted
– Evaluates and analyzes a project and its potential based on various
technical, economical, legal, operational and scheduling criteria
– Used to decide whether the proposed project should be pursued
• Technical feasibility – Is the existing technology sufficient to
implement the system?
• Economic feasibility – Is the proposed system cost effective?
• Legal feasibility – Are there any conflicts between the proposed
system and any regulations / laws?
• Operational feasibility – Are the existing organizational
practices & procedures sufficient to support the maintenance
and operation of the new system?
• Schedule feasibility – How long will we wait?
Question
• A book store uses door to door salespersons to collect various
orders from various customers. The orders are taken to the
company’s offices and are input by a secretary. The bookstore
has decided to change this department and will ask the
salespersons to input the orders at home, using their pcs.
Discuss the various effect of these changes
– No longer need the secretary / physical space
– Utility bills will be reduced, smaller office
– Salespersons need computer skills , pc with internet connection
– New hardware and software to be obtained by the company
– Secure way for the salespersons to connect to the server
– Staff working from home – pay
• Features that need to be considered when
planning a new computing system for an
organization.
– Roles/activities of the users (eg permissions,
security, partitions, collaborative work);
– Resources (HW and SW equipment) appropriate for
the organization;
– Costs/budget limits;
– Delivery time;
– Compatibility with the old system (data);
• Aspects of the data that need to be taken into account during the planning
of the new system
– The type of access needed; For example read only/read write/online or offline;

– Access rights; For example, data available only for administrators / different
permissions for students;

– Frequency of access; Some data (of non-current students) are not frequently
accessed and can be archived; Other data (of current students) are frequently
used, subject to a variety of operations;

– Quantity/size of the data; For example should not exceed storage capacity of
the new system;

– Type/nature/format; For example incompatibility issues;


• Tasks to be performed to define a
problem
– should specify program objectives;
– should specify program users/collect the
information from the users;
– should specify output requirements;
– should specify input requirements;
– should specify processing requirements;
– should document the requirements and
objectives;
Need for change management
• Change management is a systematic approach to dealing with changes on an
organizational and individual level.
• In organizations, change management means defining and implementing procedures
and technologies to deal with changes in organizations.
• Shifting individuals, teams, departments & organizations from the present state to
the desired state
• Successful change management guarantees that all stakeholders accept and
embrace changes in their working environments
• The goal is to maximize benefits and minimize the negative impacts of change on
individuals.
• Change Management addresses
– Cost
– Design (Reuse of existing modules and enhancements)
– Implementation methods
– Installation (how is it going to be done? Direct changeover / Parallel running / Pilot
projects / Phased implementation)
– Training for all types of users and administrators
– Information to all the stakeholders
– Compatibility with other systems
– Testing (to ensure that all the old functionalities work with the new improvements)
Consequences of poor change management

• Project delays
• Budget overruns
• Rework required on design
• Productivity declines
• Stress and Confusion for the employees
• Loss of work by project team in some cases
Compatibility issues
(Legacy Systems)
• Legacy system refers to an old technology, hardware, computer
system or application program
• Such a system may still be in use because the data cannot be
converted to newer formats or its applications cannot be
upgraded.
• Keeping a legacy system involves many maintenance challenges
– Hard to understand / expensive to change / evolve because programs
might be disorganized or documents might be missing / incomplete
– Compatibility issues (typically refer to old programming languages / old
database technology)
– Maintaining but not updating the old system can lead to
incompatibility / security issues
– Difficult to recruit staff / programmers familiar with old languages / OS
– Database contains inconsistencies / redundancies
Compatibility issues
(Legacy Systems)
• Problems with Change over
– Users have to be re-trained so they understand how to use
the new system
– Large legacy systems can’t be changed at once and phased
conversion must be used, which creates a gap between
different users in the company
– The system conversion cannot interfere with the company
conducting its ongoing business activities
– New software may be incompatible with the current hardware
– The new system may be incompatible with the legacy system’s
input & output formats
– Software compatibility for development tools, databases
(different versions) pose a problem
Compatibility issues
(Business mergers)
• Business merger is the combining of two or more business entities
• Main reason is to reduce costs
• All departments of both companies need to ensure that all subsystems are
compatible
– Language differences
– Using an older version of a system
– If an American and an European businesses merge, their unit systems need to be merged
– Businesses not using same software environment (Microsoft Exchange vs. IBM Lotus Notes)
– Software incompatibility – situation where different software entities or systems cannot
operate satisfactorily, cooperatively or independently on the same computer or on different
computers linked by a local or wide area computer network.
– Policy related changes
• Four Strategies for integration
– Keep both systems & develop them to have the same functionality (high maintenance cost)
– Replace both systems with a new one (increased initial cost)
– Select the best from both the companies and combine them (very difficult for the
employees to work with system from other company)
– Select one company’s system and drop the other (policy problems)
Change management aspects in business
takeovers
• Workforce issues; Such as redundancy/retraining;
• The time frame involved; In merging the two
systems;
• Testing; Of the combined systems/new data;
• Data entry; If migration not possible;
• Costs involved; In the aligning of the two systems;
• Changeover decisions; Such as parallel running;
Implementation of systems
Using clients hardware - own resources
• Suitable for larger & complex systems
• Advantages
– Faster to access
– Easier to deal with problems and quick actions can be
taken (more control)
– Better security
• Disadvantages
– IT support required
– Hardware can become outdated
– Cost for infrastructure requirements
Implementation of systems
• Software as a Service (SaaS) or on demand software
• The client does not run their own computer system to handle
operations, but uses dedicated servers from a company that are
managed and maintained by the company.
• Outsource responsibilities for maintenance, support, backups,
security.
• Software and data to be hosted and managed centrally on a remote
data center
• Users pay to access the services provided on a subscription basis
• Features
– Data is in the cloud/computing infrastructure
– SW necessary for the activities is in the cloud
– Access to SW is with thin client (terminal/computers) by web browsing
(on the extranet)
– Boom in internet speeds and costs associated lead to Saas
Implementation of systems
• Advantages:
– Less cost (no cost in employing IT personnel to maintain
system, pay only for subscription )
– Company can provide help in cases of malfunction
(In house expertise is not required)
– Maintenance and updating managed by the company →
they have staff that fully understand the system
– Can be accessed from more locations
– Systems can be scaled more easily to handle many users
(revision in subscription fee)
– A wide range of desktop, portable, mobile devices support
Saas
Implementation of systems
• Disadvantages:
– Data security issues resulting from trusting your
information to someone else (loss of control)
– Data loss if the company goes out of business
– Host may be in a different time zone, so maintenance
can happen at uncomfortable times
– Latency issues- accessing data takes longer due to
physical remoteness of servers
– Any specific customization required at the user end
involves additional costs and time
– Dependence on internet connection
– Saas integration with other Saas solutions or local
• Security in storage;
– Data is stored in the server of the service provider; The
organization has no direct control of its data;
– Legislation in the country of the provider may be weaker
than in the user’s country;
– Cases of provider’s corruption/bankruptcy/data loss are
a risk to the organization;
• Security in transmission;
– Applications running in-site may require data in SaaS;
Hence longer transmission times and higher risk of
failure/attack/interception;
Alternative installation processes
• Installation – old system will be retired and
new system will take its place
• Critical decision is to choose the changeover /
implementation method
Alternative installation processes - Parallel
Running
• When a new system is introduced alongside the current or old system.
• During parallel running both systems are operating at the same time for a
short period of time.
• Social Implications:
– There is more work for employees since they have to work with two systems and
implement their work into both systems
– Mistakes less critical since the old system is still being used
• Economic Implications:
– Staff will have to be paid more or extra staff must be employed to ensure that new
system is used to its full potential when using parallel running
• Pros:
– Results can be compared between the two systems to see if the new system is truly
beneficial and working
– Old system can be used if the new system fails
– Safe way of validating the new system; Running two systems could be cheaper;
Than losing all data in case of failure;
• Cons:
Alternative installation processes - Pilot
Running
• When the system is introduced to certain parts of a business or
organization
• Social implications:
– Part of the company is disconnected from the rest of the company due to the
new system
• Economic Implications:
– Training for the employees with the new system
– More time and money must be spent on the new system
• Pros:
– Staff from pilot running can help other employees if the whole business
changes to the new system
– Ability to improve the system when faced with any software or hardware issues
– If the new system is a failure only one part of the business is affected rather
than the business as a whole
• Cons:
– There is no back up for certain business parts using the new system.
Alternative installation processes - Direct
changeover
• The immediate replacement of a system
• Suitable for less critical systems, otherwise risky
• Social Implications:
– Staff under great pressure
– Customers may initially dislike change
• Economic Implications:
– Training costs to consider
– The cost of hardware/software needed to be paid at one time
– Risk of failure detouring away potential customers.
• Pros:
– The new system is up and running immediately
– Takes minimal time and effort
• Cons:
– There is no back-up system if the new system fails and data can be lost.
– Staff to immediately adjust to the new system
Alternative installation processes - Phased
changeover
• Gradually replacing parts of the old system with parts of the new system
until finally the new system has taken over.
• Social Implications:
– Employees have to work longer
– May lead to dissatisfaction due to different people being affected at different
times.
• Economic Implications:
– Costs associated with extra work of employees
– Longer period of changeover
– Company’s reputation for efficiency may suffer
• Pros:
– Allows users to gradually get used to the new system
– Staff training can be done in stages
• Cons:
– Takes a long time to complete the changeover
– If a part of the new system fails and the data of the old system can be lost
Data migration from old to new system
• Due to the changes in processing or storage, the legacy data should be
converted to a format compatible with the new system. This is data
cleansing.
• If using different File formats, it is necessary to make sure that the data
used by the legacy system is also compatible with the new system, or
otherwise appropriately handled
• Change in Data structures - new systems might require data different to
what had been previously used by a legacy system (in order to increase the
efficiency); this data must be appropriately handled or loss of data
precision may occur
– Changes in Number of Fields
– Changes in Data type
• Validation rules: may have changed with new system, making old data
unusable
• Data must be altered to reflect different time zones/currencies/ character
sets / units etc.
Data migration from old to new system
• Possible problems during data migration:
– Data loss
– Problems with the existing data including incomplete
records (Poor data quality in the legacy system )
– Errors while transferring data from old to new
– Incompatible data for new system
– Loss of employee efficiency as data is presented
differently in new system
– Legacy systems might be dependent on a source of data;
New systems must be able to properly interact with
those same sources
– New system may not support old data storage
techniques, like floppy drives
Some points
• Incompatible formats of data:
– The new system may store data in a format different from that used in the old system.
This might be a simple matter of translation, such as converting integers to decimals.
– It could also be very difficult if the new system stores more detailed data than the old
system, such as the date and time of each transaction while the old system stored only
the date.
• Data lost in migration:
– Data might be lost due to errors in the translation process or because perfect translations
simply aren’t possible, e.g. if the old system stored ratings on a scale of 1–5 while the new
system stored only 1–3.
• Hampering business
– The systems may be unavailable during the migration process; one way to avoid having
two systems with incompatible data is to shutdown the business, perform the migration,
and then restart with the new system.
– If the migration takes a long time however, shutting down the business for that time may
be undesirable.
– New data may continue coming in during the migration process; if the business is not
shutdown during the migration process
• Transactions will either have to be performed on the new system without the old data being
available or
• They will have to be performed on the old system which will add to the data needing to be
Testing
• Testing is very important in developing a computerized system, as it
tries to ensure that the system works as expected.
• A system that does not work as expected greatly reduces productivity
and end user satisfaction.
• Testing is usually done in two stages: before the system is delivered and
after it has been set up.
• Testing in the first stage is often referred to as Alpha testing, while
testing in the second stage is often referred to as Beta testing.
• It should cover normal data(within limits), abnormal data(what is not
expected), extreme data(outside limits) and bulk data(large number of
data items to process).
• Alpha testing involves the engineers who develop the system testing it
with data similar to real data while beta testing involves testing by real
users with real data.
• Functional testing – Systematically testing what is supposed to happen
when buttons are pressed on an event driven interface or menu choices
Testing
• Different types of testing can be:
– Alpha testing
– Beta testing
– White box testing (tracing data as it proceeds through algorithm,
internal details of the system known)
– Dry run testing (conducted using pen and paper by the programmer,
programmer mentally runs the algorithm and examines the source
code and decides on what the output of the run should be)
– Black box testing (putting in data and comparing with expected
outcome, internal details of the system will not be available)
– Integration testing (entire system is tested at the same time to verify
that all the components can work together)
– User Acceptance testing
• Debugging (using an automatic program, a debugger) to detect errors
• testing at all stages of implementation - very important.
• There are programs that can test other programs, thereby automating
Testing
Beta Testing:
• Beginning version of the software given to the intended
users.
• Allows individuals to experiment software before the
release of the final version
• Advantages:
– General customer feedback which allows for improvement in
marketing strategies and the software itself.
– Other compatible products can be developed with the software
• Disadvantages:
– Lack of systematic testing covering all well thought out
scenarios
– Low quality error reports
• Beta Testing
– Testing prior to product’s full release / last stage of
testing;
– To see if it works properly / complete functionality
/ usability;
– Performed by end users (not by designers);
Testing
User Acceptance Testing:
• The product is tested by client community against the
requirements provided as a final check before the product is
released.
• A system or a partially functional prototype; Given to users to test
for functionality or to gain feedback on functions or the user
interface;
• Allows for improvement in the product
• Advantages:
– Information is gathered to better understand the target audience’s needs
– Satisfaction of the client is increased as they know how the product will
work in the real environment.
• Disadvantages:
– Test coverage is unknown (upto the client)
– Difficult to measure the success criteria of the testing activity
Testing
Debugging:
• Process of finding and reducing the number of defects
• Disadvantages:
– Hard to reproduce the user environment
Unit Testing: (Alpha Testing)
• Testing of software by verifying that the code does what it is
intended to do.
• Individual parts are tested separately
• Advantages:
– Reduces the level of bugs
– Easier to change code
– Saves on development time
• Disadvantages:
– Initial time required is greater
Testing
• Test cases are a set of scenarios with different inputs /different flows
and corresponding expected outcomes.
• Testing can be manual or automated
• Manual testing involves executing each of the test case one by one
and checking the results.
• Automated testing uses test software / scripts which implements the
test cases.
• Automated testing is used for load runs with bulk input.
• Similar test cases can be automated reducing the costs
• Various test tools (Test studio, HP Quicktest, IBM Rational) are
available for automated testing.
• Inadequate testing
– reduces employee productivity (Time spent for maintenance - bug correction
will be more, Unplanned efforts and therefore increased costs)
– Many errors after release will lead to end-user dissatisfaction.
Validation & Verification wrt Software
Testing
• Validation is the process to make sure the product
satisfies the specified requirements i.e. to make sure
the product is built as per customer requirements.
• Verification is the process to make sure the product
meets the specifications i.e. to make sure the product
behaves the way we want it to.
• Black box testing is often used for validation and white
box testing is often used for verification.
Verification
• What is Verification?
• Definition : The process of evaluating software to determine whether the
products of a given development phase satisfy the conditions imposed at
the start of that phase.
• Verification is a static practice of verifying documents, design, code and
program. It includes all the activities associated with producing high
quality software: inspection, design analysis and specification analysis. It
is a relatively objective process.
• Verification will help to determine whether the software is of high quality,
but it will not ensure that the system is useful. Verification is concerned
with whether the system is well-engineered and error-free.
• Methods of Verification : Static Testing
• Walkthrough
• Inspection
• Review
Validation
• What is Validation?
• Definition: The process of evaluating software during or at
the end of the development process to determine whether
it satisfies specified requirements.
• Validation is the process of evaluating the final product to
check whether the software meets the customer
expectations and requirements. It is a dynamic mechanism
of validating and testing the actual product.
• Methods of Validation : Dynamic Testing
• Testing
• End Users
User focus
Internal and External Documentation
• Internal - code comprehension features and details provided as
part of the code itself
– Appropriate module headers
– Appropriate comments
– Useful and meaningful variable names
– Useful module, class, method, function headers
– Appropriate code indentation
– Appropriate code structuring
• External – Separate document (not related to code)
– Requirements specification
– Design specification
– Test document
– User guide
User documentation
• User documentation is a crucial part of a system as it is
the document that explains the working of the system to
the user.
• A well-made user documentation guides the user through
using the system and thus increases productivity.
• If the user documentation is simple, system
implementation becomes faster - users require less
training to learn how to use the new system.
• Users are non-technical people, they only need to know
how to use the system. Therefore, the user
documentation does not involve detailed explanations of
how the system works.
User documentation
• A user documentation usually involves:
– Hardware and software requirements
– Installation guide
– How to start the system
– How to use different features of the system
– Screenshots explaining main features of the system
– Example inputs and outputs
– Explanations of error messages and troubleshooting guides
– Information to contact the developer of the system if an undocumented
question arises
• At first user documentation was provided to customers through
user guides and instruction manuals
• It is now being delivered online through FAQs, video tutorials,
support portals, and embedded assistance (e.g. tool tips and
dynamic page content)
• Two types of documentation that should be
provided with the software package
– Technical documentation; Describes how to install
software; Describes the hardware configuration
needed;
– User documentation; Describes various functions
of the software; Helps users to learn how to use
the software
User Documentation - Types
Help files:
• Files supplied together with the system.
Advantages:
• Accessible at any time when using the program
• Give general instructions on how to use the system
• Give general instructions on how to solve some major errors
Disadvantages:
• They can only be used after system has been installed. They
don't give any help when installing the solution
• They often only deal with very general errors
• They often lack a search capability for solving problems
User Documentation - Types
Online support:
• Special web service hosted by the system's developer to provide user
documentation.
Advantages:
• They are often extensive compared to help files
• They get continuously revised / updated to deal with the problems occurring
most often (FAQs)
• They often provide an option for live support, talking to a real human
operator if a problem arises which the user documentation has no answer to
• They often have search capabilities built-in so that users can easily search
through them
Disadvantages:
• They are useless if users have no internet connection
• Live support does not work quite well with users unfamiliar with computers
when they have to explain their problem
User Documentation - Types
Printed manuals:
• manuals printed on paper and supplied together with the system.
Advantages:
• They can be read through by users before starting to work with the new system
• Portability; Printed material is more easily transportable and can be moved around (eg for
a scanner/printer);
• Extent of material; Books/technical instructions for installation may have more details,
and be more useful to provide deeper explanations;
• Always available (does not require computer, power etc)
• Give help installing the system
Disadvantages:
• Can be lost
• Readability; Font size online can be (easily) magnified;
• Trouble-shooting/cross-reference/usability; Online is faster and usually has links to other
pages whereas paper is a thick manual;
• Aging; Online is more frequently updated than paper manuals; Printed text may not be
updated every time the system is updated
User Documentation - Types
• Email Support – users can contact the support
team to resolve any problems
• Embedded assistance / integrated user assistance
– tool tips, users need not type right questions
• FAQs
• Live chat sessions
• Online portals
• Remote desktop connections – to solve problems
by a technician
User training
• Training staff for using a new system is very
important as productivity greatly depend on how
familiar users are with a system.
• Therefore good user training is an essential part
of introducing a new system.
• Self-instruction:
– users reading a manual or watching a tutorial, or
randomly doing something in the system to figure out
how it works.
– This type of training is only suitable for experienced
User training
• Formal classes:
– users sitting in a classroom listening to an instructor who shows
and explains how to use the system.
– This type of training is useful to train large amounts of staff as it
is effective and relatively cheap
– If the size of the class is too big, there is little time to deal with
individual problems and questions.
• Remote/online/personal training:
– an instructor training a single user either by being in the same
room or by some kind of remote connection (Skype, chat).
– This is the most effective way of training as training can be
suited to user's needs and abilities
Causes of data loss
• Accidental Deletion - Users of a system may delete a file they do not
intend to (File recovery software can be used)
• Physical Damage - Hard drives have platters. Any mishandling can lead to
physical damage to the platters resulting in loss of data or corruption.
(Regular back ups)
• Firmware Corruption - When the firmware becomes damaged, the system
is unable to recognize or access the hard drive (Regular back ups)
• Power Failure - leads to loss of unsaved files and can even lead to file
corruption. (UPS, Regular back ups)
• Logical Errors - caused by system or file corruption, software problems,
and invalid entries in file locations. They cause corruption of other files on
the drive and lead to data loss
• Malicious Activities - Hacking and system infiltration from inside or outside
the organization (virus, malware etc)
• Natural Disasters - Lightning strikes, power surges, flood, fire and
earthquakes cause physical damage to hard drives and more.
Consequences of data loss in specific situations
• Loss of medical record
– Health information lost
– Confusion in a hospital
– Doctor’s will be misinformed about patients—this could cause serious
complications, repetition of medical tests
• Loss of hotel reservations
– Traveller could expect to have a place to sleep but find no
accommodation
– Hotel could fall into confusion or disappoint customers
– Could potentially ruin the traveller's entire trip
• Loss of payroll
– Workers could not get paid
– Company will have major setbacks
– Reorganization of worker’s wages and pay checks could be lengthy and
costly
Consequences in specific situations
• Loss of hardware
– if the hardware is insured then new substitute
hardware could be repurchased
• Loss of software
– If the owner has made backup copies, software can be
reinstalled
• Loss of data
– could be quite expensive for the company and it could
also extend to security problems
– misusing information about company and individuals
that are stored in the company’s database
– Difficult/impossible to replace data
Range of methods to prevent data loss
• Regular back up of files using hard disks and magnetic tapes
• Firewall installation
• Data storage in two or more locations
• Hard copies of data
• Antivirus software installation
• Online auto save backup (in cloud)
• Passwords; Cryptography; Internal controls/separation of employees
functions/secured waste, etc; Antivirus programs; Backup systems
(removable media, offsite storage); Strengthen physical security in company;
• Mirror system; All changes to the records made on two systems; If one fails
then the other holds all current data;
• Off site backup; Snapshots/backups made on a regular basis; In the case
of failure a dated/time stamped copy exists and the state up until then can be
used to restore customer records;
Back up
• Back up of data and software should be taken into consideration
• It should happen at regular intervals
• Backup and recovery to be planned in such a way that the business
can continue with no or very minimal shut down

Failover Systems
• A secondary system that can assume the functions of the primary
system should it falter.
• Tasks are offloaded to a standby system at the same time so that
transition from the primary to secondary system is as seamless as
possible.
• Requests are automatically re-routed from the primary to the
secondary (failover) system in case of primary system failure.
• Example: Websites hosting their data on more than one server in
more than one location.
Back up
Redundancy
• A group of computer systems that contain
duplicated data.
• Provide another copy of data should a system
fail.
• Unlike a failover system, this is just a copy of
the data and does not take over the primary
system's requests if the primary system fails.
• Example: Copying a database or file system to
another server
Back up
Removable Media
• Often thought of as backing up files
• Include USBs, Floppy Disks, Memory Cards,
DVDs, CDs
• These function to store data and programs
which can be retrieved for later use.
Back up
Offsite/Online Storage:
• Offsite storage: vaulting, is the strategy of sending critical
data out of the main location (off the main site) as part of
a disaster recovery plan.
– Data is usually transported off-site using removable storage
media such as magnetic tape or optical storage.
– Data can also be sent electronically via a remote backup
service, which is known as electronic vaulting or e-vaulting
• Online storage: A backup and storage service on the
Internet
– You can save data from your laptop and access it anywhere
including your mobile phone.
• Helps prevent against data loss caused by natural disasters
Factors to be considered for back up
• Frequency of back up
• Time needed for recovery – this may affect the
way back up is done
• Equipment to perform back up (Tapes are less
expensive but slow)
• Off-site/online storage required?
• Best time to schedule a back up (may be
planned when system activity is low)
Software deployment
• Updates in software takes care of minor changes and bug
fixes
• Releases in software takes care of major changes (new
features) and bug fixes
• The frequency of Release is less compared to that of
updates.
• Releases may have additional costs while updates may not
have.
• It is essential to get the latest updates and releases so that
the systems are efficient and compatible.
• Different update/release versions may lead to
incompatibility.
Software deployment
Automatic Updating
• When the software is installed and registered (a cookie is
placed on the machine); This communicates with the
software developer automatically on start up; Messages
about updates are sent back to the machine and alerts are
given;
• Facilitates the process of distributing and installing updates
automatically
• Systems often have pop-up windows that are designed to
begin appearing only once a new update is available
• User may choose to install or not install the updates from
these windows
Software deployment
Timed Updating
• This strategy ensures that the system does not
become too outdated
• The system automatically checks for available
updates after a set period of time and provides
the end User with a report of these available
updates
• The User may then choose to install or not
install the updates from this report
Software deployment
• Companies release groups of updates in packs
• Service Pack
– A collection of updates and fixes, known as patches, that are
released together for an easy, single installation
• Feature Pack
– A collection of new system functionality components distributed
between full product releases
– these components have usually already been approved to be a part
of the next full product release
• Security Update
– A widely released fix for a system-specific, security-related
vulnerability
– these updates are usually accompanied by a severity rating
indicating how critical the security vulnerability is
• Patches are used by software companies to fix bugs
and vulnerabilities. Patches may introduce new bugs
• Upgrades contain novel functionalities or features and
cumulative bug fixes. Upgrades need to be bought.
• Updates improve a product in a minor way by adding
new functionalities or fixing known bugs. Updates are
free
• Releases are final working versions of software
applications. Releases are either new or upgraded
applications.
System Design
Terms( book page no 23-26)
• Hardware:
– The physical parts of a computer such as the motherboard, hard
drive, or monitor.
– These parts can be seen and touched.
• Software:
– A general term used to refer to programs that run on a computer.
– At its most basic form is a series of binary codes.
– Software makes the hardware work (software should be written
in such a way that the system resources are used efficiently)
• Peripheral
– It is an external/internal device that provides input, output or
storage for the computer.
– Controllers are present to establish the communication between
a peripheral and CPU
Terms ( book page no 23-26)
• Network
– Two or more devices are connected to one another in
order to share resources (files, database etc) and
communicate with each other.
– Hardware, software, networking devices
• Clients and servers (email server, database server, DNS server,
Firewall, networking server, license server)
• Routers, switches
– wired / wireless connection
• Human resources
– It refers to the group of individuals who make up the work
force for an organization or business.
– Right skill sets are needed to make better software so that
Roles that a computer can take in a
networked world ( book page no 23-26)
• Client: a computer accessing resources hosted by
another computer, the server. Resources could be
documents, printers, scanners etc.
• Server: a computer hosting resources to be shared
across the network, like documents, printers etc.
• A computer can be both client and server in a
network at the same time!
• DNS Server: a special type of server mapping web
addresses to IP addresses allowing us to surf the
web without having to look up the IP address of
every website we want to visit.
Roles that a computer can take in a
networked world ( book page no 23-26)
• Email Server: a server which manages the storage space
for the mails of different user and helps in sending and
receiving mails with attachments, rules, search facilities
• Router: a computer routing data packets between two
networks usually using a different medium for
information transfer, like phone cables or glass fibre
connections.
• Firewall: a computer or software package monitoring and
protecting the network traffic of a computer or computer
network. It decides which computers get access to the
network or computer based on a set of rules.
Social & Ethical issues in a networked world
( book page no 23-26)

• Anonymous people do not act like normal


• People can get information much easier than
before, Wrong information could be obtained.
• Loss of jobs due to computers
• Through extensive networking many business
activities can be outsourced to cheaper locations
leading to loss of jobs in home country.
• Environmental hazards
Social & Ethical issues in a networked world
( book page no 23-26)

• Privacy of the individuals at stake due to political


influences
• Data misuse & corruption
– Malicious (harmful) programs may be introduced to a
computer which can damage the data stored on it including
viruses, worms, and Trojan horses.
• Piracy and Copyright Law
– The copyright law makes it illegal to steal or create copies of
software or any material that is copyrighted.
• Digital divide. Those who are confident with computers
have higher chances for success than those who don't.
Identify the relevant stakeholders when planning a
new system
• A stakeholder in an organisation is any group or
individual who can affect or is affected by the
organisation’s functions.
• Ways to identify stakeholders:
– Those responsible for design and development
– Those with a financial interest, responsible for its sale or
purchase
– Those responsible for introduction and maintenance
– Those who have an interest in its use
• Interactions between different stakeholders include:
exchanging information, products, or instructions,
or providing supporting tasks.
Identify the relevant stakeholders when planning a
new system
• Example of types of stakeholders:
– Users
– Developers / Employees
– Legislators
• Organizations or governments who impose regulations that affect the development of a new
system
– Share holders
– Clients / Customers
• A single person may be classified under more than one of these groups
• The role of the end-user must be considered when planning a new system –
collecting the required functionality, the input formats and the outputs expected
– Role of users is important because inadequate user involvement leads to project failure;
– All users must participate and explain how they use the system;
– All users must participate and explain what they think is wrong with the system;
– Users (managers, owners) are involved in approval of projects and budgets;
– All users are involved in testing of the system;
– All users are involved in training;
• Utilitarianism, the greatest good for the greatest number.
Methods of obtaining requirements from
stakeholders
• Surveys
– Collecting information from a selected group of people
through standardized questionnaires.
– Closed / restricted questionnaire – questions with predefined
options as answers, apt for statistical analysis & tabulation
– Open / unrestricted questionnaire – Free response
– Online, face to face or telephonic survey
– Pros: allows for information to be collected from a large
group of people over a relatively quick amount of time
– Cons: Generalized questions, follow-up requires using
another method, Everyone may not answer all questions,
misinterpreting the questions leading to wrong data
Methods of obtaining requirements from
stakeholders
• Interviews
– Collecting information from selected stakeholders by
conducting dialogues.
– Structured (standardized questions) or unstructured (flexible
and free conversation)
– Pros: Allows for users to communicate their requirements
directly, creates a more open and less structured situation in
which stakeholder can communicate requirements that the
programmer may not have considered.
– Cons: Requires many more human resources since each
stakeholder interview takes time away from the
programmer, difficult to summarize / evaluate / analyze an
unstructured interview
Methods of obtaining requirements from
stakeholders
• Direct Observations
– Collecting information from users by observing their usage patterns
and how they use the pre-existing system.
– Quick/first hand/realistic information on
data/software/hardware/users/procedures in the current system;
Help better understand positive and negative features of the current
system (for example problems in accessing or validating data/user
errors/security issues, etc.); Which can be used when specifying
requirements of the new system (keep/improve positive and change
negative features);
– Pros:
• Allows for the programmer to analyse how the system is being used
• Can highlight aspects that are not detected in questionnaires/interviews so the
observer can help produce more detailed reports
• Observations may be more reliable than interviews because they can reveal
what people actually do instead of what they say they do;
Methods of obtaining requirements from
stakeholders
• Direct Observations
– Cons:
• Doesn't allow for interaction between the stakeholders and the developer,
therefore none of the stakeholders' desires are considered by the
programmers
• Time consuming - The observer might need to observe a complete cycle etc.
which could last a significant amount of time
• If the observations are made by only one person, they may be biased
• Observations may be unreliable Because people act differently when they
know they are being watched.
• Effective collaboration is required to obtain appropriate
information from stakeholders.
• There should not be any conflicts between the different stakeholders for the
functionality, input and output formats
• Privacy must be ensured for the information obtained from
Techniques for gathering the information
needed to arrive at a workable solution
• Examining Current Systems
– Diagnosis of current systems identifies problems
– Self-diagnosis
• Figuring out a problem within the system without the help
of a troubleshooting guide
• Competing Products
– Examining the competing products helps to identify
new features and new design
Techniques for gathering the information
needed to arrive at a workable solution
• Organizational Capabilities
– Search within the company for a solution
– Examine your:
• Number of employees
• Employee’s experiences & skills
• Financial resources
• Intellectual resources
• Literature Searches
– A literature search is a well thought out and organized search on literature
published on a topic
– Includes the following steps
• Create a question
• Finding sources of information
• Search with key words
– Use valid sources only
• Check beforehand that the solution should not create any IPR (Intellectual
property rights) issues
Representations to illustrate system
requirements
• Input and Output screenshots and file/data formats
– Inputs can be manual data entry, Direct data entry (scanner, barcode reader),
Automatic data entry(from sensors)
– Outputs can be temporary display(on the screen), permanent display(printed
output), electromechanical output(actuators,action)
• System flow charts: diagrams representing how different parts of the
system are linked together and how the system should work in general.
Used to describe the Input Process Output, they refer hardware devices.
• Flowcharts : describe algorithms
• Data flow diagrams: diagrams representing how information is moving
through the system. Refer to data objects and processes.
• Structure charts: are diagrams representing the organization of a system,
usually showing the different parts in hierarchical order. (top down split)
• Prototypes : early sample, model of a product built to test a concept or
process or to give an idea about the interfaces
Prototypes to demonstrate the proposed
system to the client
• Prototyping is the process of quickly putting together a model in order to
test various aspects of a design, illustrate ideas or features and gather early
user feedback.
• To the developers
– Prototypes force developers to research the specific factors in which the system
will run in final form and many times unveil issues that would have otherwise not
been detected
• To the clients
– Prototypes offer clients a gist of how the system will run due to the fact a
prototype is just a test model and not the final model for the client.
– It will make it easier for the client to visualize the final form of the product.
• It can reduce project risk and cost
• Prototypes are built for user interfaces illustrating the position of control
elements to the user
• They can be small programs developed to explore the working of a key
• Prototype is used to ensure all essential
functions/operations of the system are
present/meets the needs of the users;
• Prototype is used to speed up development process;

• Positive user’s feedback helps in refining the


acceptable prototype in order to develop the
complete system/product;
• Or else a further prototype should be created in
order to develop the satisfactory system/product
Importance of iteration during the design
process
• Iteration is a methodology based on the process of
prototyping, testing, analysing, and refining a
product or system
• Iterative design allows products to be improved and
refined quickly based on testing results
• Creating the system usually happens in 5 stages:
planning, analysis, design, implementation,
maintenance.
• At each stage, interaction with end user is done to
ensure that the product is living up to the
expectations.
• Design should follow a top down approach –
splitting a complex job to several simple ones
• Design should also take into account the possibility
of reuse of some of the modules
Possible consequences of failing to involve
the end-user in the design process
• Requirements of the program are not really known and
implementing what is not necessary can happen
• Cannot perform early identification and elimination of
product/process failures
• Customer feedback is lost in what the product needs to accomplish
• Customer does not know the risks involved
• May result in having to undergo major changes later in the
process / input / output
– the costs associated with needing to change the program
• Customer might not like the final product.
– adverse effects on user productivity
• The need for effective collaboration and communication between
the client, developer and end-user is a must in all stages of
Social and ethical issues associated with the
introduction of new IT systems
• Legal decisions often lag behind new IT systems, and
therefore ethical decisions often govern the usage of newly
introduced IT systems for a significant period of time.
• While the internet and new systems often introduce a new
form of community, often creates a sense of anonymity,
removes people's sense of commitment.
• In many countries, the government does not and cannot
exert power over what users post, so people are only
bound by their moral and ethical compasses.
• Data stored electronically is both easier to copy and easier
to replicate than physical data, so there is an increased
ability to steal data.
Social and ethical issues associated with the
introduction of new IT systems
• In a business setting, the introduction of a new
system often places more stress on the
employees because they have to learn and adapt
to a new system while completing their work.
• Firing workers because computer system can do
the same job cheaper
• Through mobile phones & laptops with access to
business IT-systems, workers can be reached
even out of work eating up their time at home
• Less social interaction
Accessibility , Usability & Ergonomics
– 1 – the reach of the product (all types of people)
– 2 - Effectiveness, efficiency and Satisfaction of end
user to accomplish his goals
– 3 – Design of safe and comfortable products
Accessibility
• Accessibility is the practice of making information,
activities, and/or environments sensible, meaningful, and
usable for as many people as possible.
• Accessibility is when the needs of people with disabilities
are specifically considered, and products, services, and
facilities are built or modified so that they can be used by
people of all abilities.
Usability
• Usability is the property of a system that determines how easy and
self-explanatory the use of the system is for unexperienced end-users.
• Usability means making the computer systems easy to use, matching
them more closely to user needs and requirements;
• Usability encompasses:
– Complexity / Simplicity – Amount of effort to get a result
– Effectiveness – comparison of user performance against a predefined level
– Readability / Comprehensibility – Reading speed
– Learnability: How easy is it for users to accomplish basic tasks the first time
they encounter the design?
– Efficiency: Once users have learned the design, how quickly can they
perform tasks?
– Memorability: When users return to the design after a period of not using it,
how easily can they re-establish proficiency?
– Errors: How many errors do users make, how severe are these errors, and
how easily can they recover from the errors?
– Satisfaction: How pleasant is it to use the design?
Usability problems with commonly used
digital devices
• PCs
– Excessive Keyboard use – RSI
– Excessive use of screen – eyesight problems
– Mouse of PC designed for right handed people
– Some technical knowledge must be known to operate to the fullest capacity
– If power goes out you cannot use it
– Microsoft drastically changed user interface of Windows 8 compared to Windows 7. This confused many users.
• Digital cameras
– Incorrect calibration of touch screen menus
– Some cameras require special software to connect to computer and store / transfer files
– Camera menu not clear on how to do things
– Smaller buttons, difficult to operate, difficult to comprehend the usage of various buttons
• Cell phones
– The layout of the phone could be complex
– Settings difficult to access for new users
– If the phone is touch screen, it could be improperly calibrated
– Size of screen; difficult to see / use (in poor light)
– Size of keys; difficult to access functions
– Battery life; May need to recharge regularly
– Touch screen keys on tablets etc; Lack of tactile feedback;
– Android operating system exists with many different user interfaces designed by manufacturers
Usability problems with commonly used
digital devices
• Game consoles
– Configurations of controllers can be difficult to figure out
– Small screens / buttons
– Short battery life
• MP3 players
– Usually has small screens and are harder to read
– Tiny buttons
– Insufficient memory
• Laptops
– Battery life
– Mouse clicks not very easy
– Selection of text not very easy
– Small keys in keypad
• Tablets
– Accidental touches lead to undesired selection
– Small size buttons / keys
– Battery life
• GPS
– Small screen, low quality speakers
– Inaccurate geographical data
– Inefficient routing software
– Poor performance antenna, difficult to receive a satellite signal
• Usability features in laptop
– Larger screen; Easier to view large amounts of data without
excessive scrolling or squinting / reduced eyestrain / more
accessible to those with weak eyesight;
– Hotkeys to control brightness, sound volume, navigation, etc;
Quick access to frequently used adjustments that aid in viewing,
listening, etc without first navigating to a software-based control
panel;
– Size and sensitivity of touchpad; Those with mobility or
coordination issues, or simply with large hands, may need a
larger and/or less sensitive pad to control the cursor; Standard
accessibility for visually impaired; Larger text option or text to
speech;
Methods that can be used to improve the
usability of systems
• Making user interface more user friendly
– Consistency of user interfaces across versions
– Keeping to conventions users are accustomed to (a button with a floppy image stands
for saving)
– Structuring controls in a logical way (Put all controls having similar functions in a group
('save' and 'save as…' buttons or the 'close, minimize and maximize window' controls)
– Controls to be visible and mapped well
– Let ALL the relevant controls be visible and labelled to the user
– Include any special functions into user documentation
– Do not include any major design changes between different versions of a system. Try
introducing them bit by bit to let users get accustomed
– Easy to use for a new user
– Efficient for an experienced user
– Recoverable errors and appropriate messages
– Progress indication
– Restriction to enter invalid data by means of checking
• User interface can be GUI or CLI
Methods that can be used to improve the
accessibility of systems
• Reducing the use of complicated technology
• Using more flexible and inclusive software and
programs
• Making the system available for users over the
internet
• For users who have disabilities and impairments:
– Improvements in assistive technologies and accessibility
features
– speech recognition, magnifier, colour schemes and visual
settings, narrator (Text to speech), on-screen keyboard,
touch screens, braille keyboard and printer etc.
Usability problems that can occur in a
system
• Ticketing-software that manages and maintains lists of issues, as needed by an organization
• Problems:
– Can take awhile for your issue to be seen by an engineer
– Cannot see where the ticket is after you send it
• Online payroll-is the process of paying your employees online rather than giving them a
cheque
• Problems:
– System could be too complex for the people to figure out
– If your internet is down or you do not have internet, you cannot access your money
• Scheduling-software that automatically puts employees appointments on their calendar
• Problems:
– Software can be difficult to figure out
– It can be difficult to access the information
• Voice recognition- a system that involves the use of your voice in order to function
• Problems:
– If you become sick, the voice recognition may not recognize you
– Noise in the background could disrupt the system
– May not be able to recognize your words (insufficient word dictionary)
Moral, ethical, social, economic and environmental
implications of the interaction between humans and machines

• Economic:
– May allow more technologically advanced countries to take
jobs from less technologically advanced companies
– Created new ways for goods to be sold (e-commerce)
• Social:
– The greater interconnection in the world that arises from
network, get to know the culture from other parts of the
world
– Provides entertainment
– Fear that young people spend too much time online
– Allows people to meet people in distant places through
chat rooms and the internet
Moral, ethical, social, economic and environmental
implications of the interaction between humans and machines

• Moral/Ethical:
– Data should be acquired through appropriate means
– Consent should be requested when collecting personal data
– Personal data should be relevant to the purpose for which it will be used
– Reasons for data collection should be explicitly available prior to the data
being collected
– Personal data should be protected by reasonable safeguards
• Environmental:
– Computers use large amounts of electric energy
– The use of paper initially increased because of printing but is starting to
show some signs of decline
– Allows people to communicate without physically being in the same
place, decreasing pollution due to transportation
– Toxic electronic waste generated
Systems Flow Chart
Systems Flow Chart
Systems Flow Chart
Systems Flow Chart
Example System Flow Chart
Example Flow Chart
Data Flow Diagram
Example DFD
Example Structure Chart
Stages in the development of a system
• Requirement gathering and analysis
– Data collection from users, stakeholders, development team
– Data collection is also known as fact finding
– Feasibility report containing cost estimates, benefits, timeline, potential risks
– Requirement specification – HW & SW tools required, functions & features, performance – formal
agreement between the customer and development team
• Design
– System architecture
– Hardware and software requirements
– Design methodology, diagrams and interfaces
– File design, suitable data structures and algorithms
– OOD uses UML diagrams
– Database design
• Operation
– Implementing and testing
• Installation or Deployment
– At the client’s place
• Maintenance
– Error correction support – corrective maintenance
– Performance review to improve the system
GANTT & PERT charts
• GANTT chart
– list of activities plotted
against time
– Useful for small projects
• PERT chart
– Shows events as nodes
and activities as lines
joining them with an
expected time for each
activity
– Shows dependencies
clearly
– Used for larger projects

• For Further reading


– http://www.gantt-
chart.biz/difference-
between-gantt-and-pert-
charts/
• Gantt chart may not be suitable for planning a large
business project
– It shows only if the project is on schedule;
– It does not show what to do if one part of project is taking
longer than expected;
– It does not show who is responsible for a particular activity;
– It does not show what should be done in other projects
which depend on this one;
– So the result might be an extension of time;
– It does not identify critical activities and actions to be taken;
To make sure the project is not going over the budget;
– Does not show dependence between tasks;
• Multi Factor Authentication
– Knowledge (something you know) – passwords
– Possession (something you have) - Cards
– Inherence (Something you are) - Biometrics
• Online / Real time / Batch Processing

You might also like