Introduction To Software Engineering
Introduction To Software Engineering
Introduction To Software Engineering
Introduction to Software
Engineering
1
Marks Distribution
10 30 20 40 100
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)
5
What is Software?
Software is a set of items or objects
that form a “configuration” that
includes
• Computer programs
• Data structures
• Documents
6
What is Software?
► software is engineered
► software doesn’t wear out
► software is complex
7
Hardware vs. Software
► Manufactured ► Developed/engineered
► Wears out ► Deteriorates
► Built using components ► Custom built
► Relatively simple ► Complex
8
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.
9
Wear vs. Deterioration
Hardware wears out over time
10
Wear vs. Deterioration
Software deteriorates over time
11
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.
12
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.
13
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.
14
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
15
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”)
► “If 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 …”
16
Customer Myths
17
Customer Myths
18
Practitioner’s Myths
► “Let’s start coding ASAP, because once we write the
program and get it to work, our job is done …”