1 SystemFundamentals
1 SystemFundamentals
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;
• 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)
• 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