Chapter 1 Intro
Chapter 1 Intro
Software Engineering
Chapter : Topic Covered
Software Engineering
Evolving Role of Software
Hardware vs. Software
Software characteristics
Changing nature of software
Software Myths
Definition of Software Engineering
The application of a systematic,
disciplined, quantifiable approach
to the development, operation, and
maintenance of software.
Software
programs that provide function &
performance
data structures for information manipulation
documents that describe the operations and
use of the programs
Hardware vs. Software
Hardware Software
Application Software :
Application software consists of standalone programs that solve a specific
business need.
Application software is used to control the business function in real-time.
Reality :
Are software practitioners aware of existence standards?
Does it reflect modern software engineering practice?
Is it complete? Is it streamlined to improve time to delivery
while still maintaining a focus on quality?
Myth2: If we get behind schedule, we can add more programmers
and catch up
Reality: Software development is not a mechanistic process like
manufacturing. Adding people to a late software project makes
it later.
People can be added but only in a planned and well-
coordinated manner
Myth3: If I decide to outsource the software project to a third
party, I can just relax and let that firm build it.
Reality: If an organization does not understand how to manage
and control software projects internally, it will invariably
struggle when it outsource software projects
Customer Myths
Customer may be a person from inside or outside the company
that has requested software under contract.
Myth1: Once we write the program and get it to work, our job
is done.
Reality: Someone once said that "the sooner you begin 'writing
code', the longer it'll take you to get done." Industry data
indicate that between 60 and 80 percent of all effort expended
on software will be expended after it is delivered to the
customer for the first time.
Myth2: Until I get the program "running" I have no way of
assessing its quality.
Reality: One of the most effective software quality assurance
mechanisms can be applied from the inception of a project—the
formal technical review.
Myth3: The only deliverable work product for a successful
project is the working program.
Reality: A working program is only one part of a
software configuration that includes many
elements. Documentation provides a
foundation for successful engineering and,
more important, guidance for software support.
Myth4 : Software engineering will make us create
voluminous and unnecessary documentation
and will invariably slow us down.
Reality: Software engineering is not about creating documents.
It is about creating quality. Better quality leads to reduced
rework. And reduced rework results in faster delivery
times.
Software Engineering – Layered
Technology
Layered Technology
A quality Focus
Every organization is rest on its commitment to quality.
Total quality management, Six Sigma, or similar continuous
improvement culture and it is this culture ultimately leads to
development of increasingly more effective approaches to software
engineering.
The bedrock that supports software engineering is a quality focus.
Process:
The processes define the tasks to be performed and the order in which
they are to be performed
It’s a foundation layer for software engineering. Provides the glue that
holds the layers together; enables timely development; provides a
framework for effective delivery of technology; forms the basis for
management; provides the context for technical methods, work
products, milestones, quality measures, and change management
Layered Technology
Methods:
It provide the technical how-to's for building software.
Methods encompass a broad array of tasks that include requirements
analysis, design, program construction, testing, and support.
There could be more than one technique to perform a task and
different techniques could be used in different situations.
Tools:
Provide automated or semi-automated support for the process,
methods and quality control.
When tools are integrated so that information created by one tool can
be used by another, a system for the support of software development,
called computer-aided software engineering (CASE)
Evolving Role of Software
Software is a product
Transforms information - produces, manages, acquires,
modifies, displays, or transmits information
Delivers computing potential of hardware and networks
Software is a vehicle for delivering a product
Controls other programs (operating system)
Effects communications (networking software)
Helps build other software (software tools &
environments)
Software Product
Software products may be developed for a particular customer or may be
developed for a general market.
Software products may be
Generic - developed to be sold to a range of different
customers e.g. PC software such as Excel or Word.
Bespoke (custom) - developed for a single customer
according to their specification.