Lec1-The Software Crisis

Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

LLC 1020Y - Information

Systems and Databases


Lecture 1- The Software Crisis
Learning Outcomes
At the end of this learning unit, you shall be able to:
• Describe what is meant by a 'system'.
• Describe what is meant by 'information systems'.
• Distinguish the categories of information systems.
• Explain the major causes of problems associated with information
systems.
• Explain the concept of software crisis.
• Describe the approaches developed to overcome the so-called
software crisis
What is a System?
• A system is an organized collection of parts (or subsystems) that are
highly integrated to accomplish an overall goal.
• The system has various inputs, which go through certain processes to
produce certain outputs, which together, accomplish the overall
desired goal for the system.
Data vs Information
• Data is a representation of a fact, a number, a word, an image, a
picture or a sound.
• Information is data that is meaningful or useful to someone.
What is an Information System?
• An Information System is a collection of components that work
together to provide information to help in the operations and
management of an organization.
• Information Technology is the integration of computers,
communications equipment, and other technology used in
information systems.
Components of an Information System
• Users
• Procedures
• Information
• Documents
• Hardware
• Software
Categories of Information Systems
• Data-processing systems
• Real-time systems
• Decision support systems
• Knowledge-based systems
Categories of Information Systems
Data-processing systems
• Such a system generally has some large database of information and
the purpose of the system is to provide quick, easy access and
processing of data.
• Depending on the degree to which data is processed and analyzed,
the systems may be further classified as:
1. Transaction Processing Systems (TPS) - Computerized system that performs
and records daily routine transactions of the business.
2. Management Information Systems (MIS) - Summarizes data in a form useful
for the management of a business.
Categories of Information Systems
Real-time systems
• A real-time system is any information processing system which must
respond to externally generated input stimuli within a finite and
specified period.
• Typical response times would be of the order of a few milliseconds or
even microseconds.
• Types of real time systems based on timing constraints:
• Hard real time system
• Soft real time system
Categories of Information Systems
Decision Support systems
• A decision support system (DSS) is a computer program application
that analyzes business data and presents it so that users can make
business decisions more easily.
• Typical information used by a DSS includes target or projected
revenue, sales figures or past ones from different time periods, and
other inventory- or operations-related data.
Categories of Information Systems
Knowledge-based systems
• A knowledge-based system is a computer program that uses a
knowledge base with an inference engine in order to solve problems
that usually require significant specialized human expertise.
• It embodies the problem-solving knowledge of a human expert in a
narrowly defined domain and it can extend that body of knowledge
through its inference engine or query system.
• In business systems, the knowledge-based system often takes the
form of what is called an expert system.
Early Software Development: Code and Fix
Approach
The Code and Fix Approach
• This is the simplest way to produce software.
• Generally this is how every programmer learns programming.
• This way is okay for small pieces of software for personal use.
• But code-and-fix is a disaster for the following reasons:
• There is no way to estimate time-scales or budgets.
• There is no assessment of possible risks and design flaws.
• You may get close to a finished product only to find an insurmountable
technical problem that sets the whole project back to the drawing board.
Early Software Development:
Code and Fix Approach
• Creating the software is easy - but creating the
system is hard.

Figure 1: "Code and Fix" approach which gave rise


to the Software Crisis
The Chronic Software Crisis
What is the Chronic Software Crisis?
• A typical software system today contains thousands lines of codes.
• Usually large software development projects includes teamwork consisting
of project managers, requirements analysts, software engineers,
documentation experts, and programmers.
• With so many professionals collaborating in an organized manner on a
project why is that project may still fail?
• There is no single approach which will prevent project overruns and
failures in all cases.
• In general, software projects which are large, complicated, poorly-
specified, and involve unfamiliar aspects, are still particularly vulnerable to
large, unanticipated problems.
The Chronic Software Crisis
Some facts
• The cost of owning and maintaining software in the 1980’s was twice as
expensive as developing the software.
• During the 1990’s, the cost of ownership and maintenance increased by
30% over the 1980’s.
• In 1995, statistics showed that half of surveyed development projects were
operational but were not considered successful.
• The average software project overshoots its schedule by half.
• Three quarters of all large software products delivered to the customer are
failures that are either not used at all, or do not meet the customer’s
requirements.
The Chronic Software Crisis
Typical Problems
• The causes of the software crisis is linked to the overall complexity of
hardware and the software development process.
• If we don't have an effective and efficient software development process,
then we may have problems like:
• Projects running over-budget.
• Projects running over-time.
• Software being inefficient.
• Software of low quality.
• Software not meeting requirements.
• Projects being unmanageable and code difficult to maintain.
• Software never being delivered.
The Chronic Software Crisis
Critics and constraints of current software development practices
• Software development today is more of a craft than a science.
• Developers rely on their talents and skills using techniques that cannot be
measured or reproduced.
• On the other hand, software engineering place emphasis on
reproducible, quantifiable techniques.
• The software industry still has got some time to become a mature
engineering discipline.
• Software technology is constrained by hardware technology.
• Since hardware develops at a much faster pace than software, software
developers are constantly trying take advantage of hardware improvements.
The Chronic Software Crisis
• Management often encourages ad hoc software development to get
products out on time for the new hardware architectures. Design,
documentation, and evaluation are of secondary importance and are
omitted or completed afterwards.
• However, as the statistics show, the ad hoc approach just doesn’t
work. Software developers have classically accepted a certain number
of errors in their work as inevitable and part of the job.
• That mindset becomes increasingly unacceptable as software
becomes embedded in more and more consumer electronics. Sixty
errors per thousand lines of code is unacceptable when the code is
embedded in a toaster, automobile, ATM machine or razor.
The Chronic Software Crisis
Mature Software
• As we have seen, most software projects that do not follow a formal
process result in a product that is poorly designed and documented.
• Fortunately, there has been an awareness of the software crisis that
inspired a worldwide movement towards process improvement.
• The SEI (Software Engineering Institute @ http://www.sei.cmu.edu/)
uses a Capability Maturity Model (CMM) to assess the state of an
organization’s development process.
The Chronic Software Crisis
• CMM ratings range from Maturity Level 1 (ad hoc development ) up
to Maturity Level 5 (formal process) which is continually refined and
improved.
• Each maturity level is further broken down into key process areas that
indicate the areas an organization should focus on to improve its
software process (e.g. requirement analysis, defect prevention, or
change control).
• Customers contracting large projects will naturally seek organizations
with high CMM ratings which has resulted in more and more
organizations investing on software process improvement.
The Chronic Software Crisis
• A mature software also means reusable software.
• Inability to produce standardized products is a reason why there is so
little interchangeability in software components.
• Software has become too big to treated as a ‘craft’.
• Systems are too large for only one person to comprehend on his own.
• Therefore It is necessary to apply formal software processes.
• Developers need to think like engineers
Capability Maturity Model: An Overview
Capability Modeling or Maturity Models
• A maturity model can be described as a structured collection of
elements that describe certain aspects of maturity in an organization.
A maturity model may provide, for example :
• a place to start
• the benefit of a community’s prior experiences
• a common language and a shared vision
• a framework for prioritizing actions
• a way to define what improvement means for your organization.
Capability Maturity Model: An Overview
• A maturity model can be used as a benchmark for comparison and as
an aid to understanding.
• For comparative assessment of different organizations something in
common is needed that can be used as a basis for comparison.
• For instance basis for comparison can be the organizations' software
development processes.
Capability Maturity Model: An Overview
The Capability Maturity Model
• A maturity model can be described as a structured collection of
elements that define certain aspects of maturity in an organization.
• A maturity model aids in the definition and understanding of an
organization's processes.
• The Capability Maturity Model (CMM) in software engineering is a
model of the maturity of the capability of certain business processes.
Capability Maturity Model: An Overview
The Capability Maturity Model involves the following aspects:
• Maturity Level: It is a well-defined evolutionary plateau toward
achieving a mature software process. The five maturity levels provide
the top-level structure of the CMM.
• Key Process Areas: A Key Process Area (KPA) identifies a cluster of
related activities that, when performed collectively, achieve a set of
goals considered important.
Capability Maturity Model: An Overview
• Goals: The goals summarize the key practices of a key process area
and can be used to determine whether an organization or project has
effectively implemented the key process area. The goals signify the
scope, boundaries, and intent of each key process area.
• Common Features: Common features include practices that
implement and institutionalize a key process area. There are five
types of common features: Commitment to Perform, Ability to
Perform, Activities Performed, Measurement and Analysis, and
Verifying Implementation.
Capability Maturity Model: An Overview
• Key Practices: Each key process area is described in terms of key
practices that, when implemented, help to satisfy the goals of that
key process area. The key practices describe the elements of
infrastructure and practice that contribute most effectively to the
implementation and institutionalization of the KPAs.
Capability Maturity Model: An Overview
Levels of the Capability
Maturity Model

Figure 2: The Five Levels of Software Process Maturity


Capability Maturity Model: An Overview
Levels of the Capability Maturity Model
• Level 1 – Initial (Chaotic)
• Processes at this level are (typically) undocumented and in a state of dynamic
change, tending to be driven in an ad hoc, uncontrolled and reactive manner
by users or events. This provides a chaotic or unstable environment for the
processes.
• Level 2 - Repeatable
• At this level, some processes are repeatable, possibly with consistent results.
The necessary process discipline is in place to repeat earlier successes on
projects with similar applications.
Capability Maturity Model: An Overview
• Level 3 - Defined
• At this level there are sets of defined and documented standard processes
established and subject to some degree of improvement over time. These
standard processes are in place and used to establish consistency of process
performance across the organization.
• Level 4 - Managed
• At this maturity level, the performance of processes is controlled using
statistical and other quantitative techniques and is quantitatively predictable.
Management can identify ways to adjust and adapt the process to projects
without measurable losses of quality or deviations from specifications.
Process Capability is established from this level.
Capability Maturity Model: An Overview
• Level 5 – Optimizing
• At this level, the focus is on continually improving process performance
through both incremental and innovative technological
changes/improvements and at the same time maintaining statistical
probability to achieve the established quantitative process-improvement
objectives.
CMMI: Capability Maturity Process Model
Integration
CMMI Overview
• CMMI is the successor to CMM and combines several maturity
models into one integrated capability maturity model.
• CMMI can be used to guide process improvement across a project, a
division, or an entire organization.
• CMMI helps integrate traditionally separate organizational functions,
set process improvement goals and priorities, provide guidance for
quality processes, and provide a point of reference for appraising
current processes.
CMMI: Capability Maturity Process Model
Integration
• CMMI currently addresses three areas of interest:
1. Product and service development — CMMI for Development (CMMI-DEV)
2. Service establishment, management, and delivery — CMMI for Services
(CMMI-SVC)
3. Product and service acquisition — CMMI for Acquisition (CMMI-ACQ)
CMMI: Capability Maturity Process Model
Integration
Appraisal
• An organization cannot be certified in CMMI but instead itis appraised.
Depending on the type of appraisal, the organization can be awarded a
maturity level rating (1-5) or a capability level achievement profile.
• Many organizations find value in measuring their progress by conducting
an appraisal. Appraisals are typically conducted for one or more of the
following reasons:
1. To determine how well the organization’s processes compare to CMMI best
practices, and to identify areas where improvement can be made.
2. To inform external customers and suppliers of how well the organization’s
processes compare to CMMI best practices.
3. To meet the contractual requirements of one or more customers.
CMMI: Capability Maturity Process Model
Integration
CMMI Framework and Process Areas

Figure 3: CMMI Process Areas, Categories, and Maturity Levels


Systems Life Cycle
• Due to past failures and problems, the business computing
community began to understand the need of system development
process to be a reliable and rigorous discipline like architecture or
engineering.
• Need for understanding the process.
• Need for improving the process.
Systems Life Cycle
• Analysis of findings from study of past systems and learned
experiences has led to a model of what is called the system life cycle.
• There are now several different models. A life cycle model is really a
descriptive model, presenting a summary of best practice of system
development. However, it is often treated as a prescriptive model,
that needs to be precisely followed, but this need not be the case.
Systems Life Cycle
Each life cycle model presents the following:
• A set of project stage.
• The sequence (or repetitions) in which the stages occur.
• The deliverables (products output) for each stage.
• The required input products for each stage.
References
• http://people.cs.ksu.edu/~dwyer/courses/748/resources/cmm-tr25/tr25_o2.html
• https://en.wikipedia.org/wiki/Process_area_(CMMI)
• https://en.wikipedia.org/wiki/Software_crisis
• https://link.springer.com/referenceworkentry/10.1007%2F978-1-4419-9863-7_596
• https://managementhelp.org/systems/defn-system.pdf
• https://www.geeksforgeeks.org/real-time-systems/
• https://www.investopedia.com/terms/d/decision-support-system.asp
• https://www.slideshare.net/Redhruhri/information-system-74045445?from_action=save
• https://www.slideshare.net/somipam123456/information-systems-concept-purpose-
types
• https://www.tutorialspoint.com/artificial_intelligence/artificial_intelligence_expert_syst
ems.htm

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy