Sei sulla pagina 1di 20

Introduction to Software Engineering CS20006: Software Engineering

Lecture 01-02
Prof. Partha Pratim Das

7th January 2013

Soft Construction

SOFTWARE ENGINEERING
03-Jan-2012 Introduction to Software Engineering 2

Engineering: Skills of Construction


Civil Engineering
Construction of Buildings

Mechanical Engineering
Construction of Automobiles

Electrical Engineering
Construction of Power Plants

Software Engineering
Development of Software
03-Jan-2012 Introduction to Software Engineering 3

What Software Engineering is NOT!


Programming Data Structures Algorithms Design Testing Deployment Maintenance Construction!
Introduction to Software Engineering 4

03-Jan-2012

Evolution of Domains
Bridge Construction Medicine Airplanes Software Development

03-Jan-2012

Introduction to Software Engineering

Bridge Construction
Early Wood, Stone Then Iron, Steel Concrete Bridges Constructing a bridge is different from innovating a bridge (with new material for instance) for the first time Engineers use well established metrics to design bridges they do not innovate at this stage
03-Jan-2012 Introduction to Software Engineering 6

Medicine
Health was thought to be restored by purging, starving, vomiting or bloodletting
Surgeons and barbers specialized in this practice Widely practiced in 18th & 19th century Declared quackery by 1900

Infection control
Survived surgery, died out of infection Germ theory and sterility came only in late 1800s (Lister) Current rate of infection < 2.5%
03-Jan-2012 Introduction to Software Engineering 7

Airplanes
400 BC Chinese fly kite aspiring humans to fly For centuries, we tried to fly like birds disastrous Steam powered, hot air Gliders, single man Engine powered 1903 Wright brothers first flight 12 seconds, 120 feet,10 feet altitude
03-Jan-2012 Introduction to Software Engineering 8

Software
Relatively nascent field in comparison Machines are getting faster or more powerful Are we getting better in delivering software applications though?

03-Jan-2012

Introduction to Software Engineering

Success (or Lack thereof)


How successful are we in developing software? Less than 10% of software projects succeed! Criteria for success?
On time, Within budget, Feature complete, Works (failure free)
Introduction to Software Engineering 10

Why is it so hard to get this right?


03-Jan-2012

Change In Projects
Changes From Requirements
Customers Learn from the Solution Business Environment and Conditions Change Business Processes are Re-engineered

Changes From Technology


Tools/Platform Release New Versions Actual Tool/Platform Capabilities May Vary from Plans

Changes From People


Interactions are Complex Individual Behavior is Unpredictable

03-Jan-2012

Introduction to Software Engineering

11

Software Engineering
Whats Engineering?
the application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people the design and manufacture of complex products <software engineering>

03-Jan-2012

Introduction to Software Engineering

12

Software Engineering
If software engineering like manufacturing or designing a manufacturing plant?
Is it like making another cell phone or making of cell phones (took 37 years for commercialization)?

Manufacturing is predictive
You can measure and control quality, quantity

Designing a manufacturing plant is creative/innovative


03-Jan-2012 Introduction to Software Engineering 13

Software Engineering
Most software development is innovative process rather than predictive manufacturing
Requires great deal of innovation, interaction / communication

03-Jan-2012

Introduction to Software Engineering

14

Course: Software Engineering


We demystify software construction and learn the good practices

03-Jan-2012

Introduction to Software Engineering

15

Course Agenda

MAJOR THEMES IN SE
03-Jan-2012 Introduction to Software Engineering 16

Agenda
Software as a product
Clients and their needs Quality

Requirements and specification


Usability Evolution

Software design
Software architecture Object-oriented design
03-Jan-2012 Introduction to Software Engineering 17

Agenda
Software Processes
Coding Reading Review Source Management Debugging Testing Reliability Verification Documentation Quality Maintenance
Introduction to Software Engineering 18

03-Jan-2012

Agenda
Project management
Personnel management Economic, legal, and social factors

Standards

03-Jan-2012

Introduction to Software Engineering

19

Thank You

Potrebbero piacerti anche