Introduction To Software Engineering

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 19

Chapter 1

Introduction to Software
Engineering

1
Marks Distribution

Attendance/ Class Assign + Mid Final Total


participation Quizzes Term Term Marks

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

► “A general statement of objectives is sufficient


to begin writing programs - we can fill in the
details later …”

► “Project requirements continually change but


this change can easily be accommodated
because software is flexible …”

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 …”

► “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 …”
19

You might also like