Transparency Masters for Software Engineering: A Practitioner`s

Download Report

Transcript Transparency Masters for Software Engineering: A Practitioner`s

Software Engineering: A Practitioner’s Approach,
6/e
Chapter 1
Introduction to Software
Engineering
1
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)
2
What is Software?
Software is a set of items or objects
that form a “configuration” that
includes
• Computer programs
• Data structures
• Documents
3
What is Software?
► software
is engineered
► software doesn’t wear out
► software is complex
4
Hardware vs. Software
► Manufactured
► Developed/engineered
Wears out
► Built using components
► Relatively simple
►
►
Deteriorates
► Custom built
► Complex
5
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.
6
Wear vs. Deterioration
Hardware wears out over time
7
Wear vs. Deterioration
Software deteriorates over time
8
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.
9
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)
10
etc.
►
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.
11
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
12
Management Myths
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 …”
► “We
(a.k.a. “The Mongolian Horde concept”)
I 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 …”
► “If
13
Customer Myths
general statement of objectives is
sufficient to begin writing programs - we can
fill in the details later …”
► “A
requirements continually change
but this change can easily be accommodated
because software is flexible …”
► “Project
14
Customer Myths
15
Practitioner’s Myths
►
“Let’s start coding ASAP, because once we write the
program and get it to work, our job is done …”
►
“Until I get the program running, I have no way of
assessing its quality …”
►
“The only deliverable work product for a successful
project is the working program …”
►
“Software engineering is nonsense. It makes us
create tons of paperwork, only to slow us down …”
16
Thank You
17