Lec 1
Lec 1
Introduction to Software
Engineering
1
Recommended Text Book
► Roger S. Pressman, Software Engineering
A Practitioner’s Approach , Seventh
edition, McGraw-Hill, 2005
Reference Books
Craig Larman, Applying UML and Patterns : An
Introduction to Object Oriented Analysis and
Design and the Unified Process, Second
Edition, Prentice Hall,
Ian Sommerville, Software Engineering, Fifth
Edition, Addison-Wesley Educational Publishers
Inc, 1995
Software’s Dual Role
► Software is a product
Delivers computing potential
Is an Information transformer that produces,
manages, acquires, modifies, displays, or transmits
information
► Software is a vehicle for delivering a product
Controls other programs (e.g., an operating system)
Effects communications (e.g., networking software)
Helps build other software (e.g., software tools)
4
What is
Software?
Software is a set of items or objects
that form a “configuration” that
includes
• Computer programs
• Data structures
• Documents
5
What is
Software?
► software is engineered
► software doesn’t wear out
► software is complex
6
Hardware vs. Software
► Manufactured ► Developed/
► Wears out engineered
► Built using ► Deteriorates
components ► Custom built
► Relatively simple ► Complex
7
Manufacturing vs. Development
► Once a hardware product has been
manufactured, it is difficult or impossible to
modify. In contrast, software products are
routinely modified and upgraded.
► In hardware, hiring more people allows you to
accomplish more work, but the same does not
necessarily hold true in software engineering.
► Unlike hardware, software costs are
concentrated in design rather than production.
8
Wear vs. Deterioration
Hardware wears out over time
9
Wear vs. Deterioration
Software deteriorates over time
10
Software
Applications
► System software
is a collection of programs written to service other
programs e.g., compilers, editors etc.
► Application software
Consists of standalone programs that solve a specific
business need e.g. ms word, adobe acrobat, notepad etc
► Engineering/scientific software
Applications range from astronomy to volcanology, from
automotive stress analysis to space shuttle orbital
dynamics, and from molecular biology to automated
manufacturing.
11
Software Applications
► Embedded software
Embedded software resides in read-only memory and is used to control
products and systems for the consumer and industrial markets. It can
perform very limited functions (e.g., keypad control for a microwave
oven) or provide significant function and control capability (e.g., digital
functions in an automobile such as fuel control, dashboard displays)
► Product-line software
Designed to provide a specific capability for use by many customers
e.g. inventory control products, spreadsheets, computer graphics,
database management etc.
► WebApps (Web applications)
a web application or WebApps is an application that is accessed via a
web browser over a network such as the Internet e.g. webmails, online
retail sales etc.
► Artificial intelligence (AI) software
makes use of algorithms to solve complex problems that cannot be
solved through straightforward analysis e.g. pattern recognition (image
and voice) etc.
12
Legacy Software
Why must it change?
►Software must be adapted to meet the
needs of new computing environments or
technology.
►Software must be enhanced to implement
new business requirements.
►Software must be extended to make it
interoperable with other more modern
systems or databases.
►Software must be re-architected to make
it workable within a network environment.
13
Software Myths
► Beliefs about software and the process used to build it.
► Affect managers, customers (and other non-technical
stakeholders) and practitioners
► Are believable because they often have elements of
truth,
but …
► Invariably lead to bad decisions,
therefore …
► Insist on reality as you navigate your way through
software engineering
14
Management Myths
► “We already have a book of standards and
procedures for building software. It does provide
my people with everything they need to know …”
► “If my project is behind the schedule, I always can
add more programmers to it and catch up …”
(a.k.a. “The Mongolian Horde concept”)
► “IfI decide to outsource the software project to a
third party, I can just relax: Let them build it, and I
will just pocket my profits …”
15
Customer Myths
16
Customer Myths
17
Practitioner’s
Myths
► “Let’s start coding ASAP, because once we write
the program and get it to work, our job is done …”