SlideShare a Scribd company logo
Software Engineering
(CSI 321)
Introduction to Software Engineering
1
What is software?
 Computer programs and associated documentation such as
requirements, design models and user manuals.
 Software is
– instructions (computer programs) that when executed
provide desired features, function, and performance,
– data structures that enable the programs to adequately
manipulate information, and
– documents that describe the operation and use of the
programs
2
Software Types
• Software products may be developed for a particular
customer or may be developed for a general market.
 Two fundamental types of software products –
1) Generic: developed to be sold to a range of different
customers who is able to buy ( e.g. Software for PCs such as
databases, word processors, drawings and project
management tools).
2) Bespoke (custom): developed for a particular customer
according to their specifications( e.g. Control system for
electronic devices, air traffic control system)
• New software can be created by developing new programs,
configuring generic software systems or reusing existing
software.
3
Software’s Dual Role
• Software is a product
– Transforms information - produces, manages, acquires,
modifies, displays, or transmits information
– Delivers computing potential of hardware and networks
• Software is a vehicle for delivering a product : Acts as
the basis for :
– Control of computer(operating system)
– Communication of information (networking software)
– Helps build and control other programs (software tools &
environments)
4
What is software engineering?
• Software engineering is an engineering discipline that is
concerned with all aspects of software production.
• Software engineering is the application of systematic,
disciplined, quantifiable approach to software development,
operation and maintenance.
• Designing, building and maintaining large software systems in
a cost-effective way.
5
Why is software engineering important?
• To develop methods for developing s/w that can scale up and be
used to consistently develop high-quality s/w at low cost.
• To avoid costly errors caused by software.
• Examples:
– Lost Voyager Spacecraft (one bad line of code caused failure)
– Commercial aircraft accidentally shot down during Gulf War
(poor user interface)
• The earlier you detect errors, the lower the money you have to
spend ( i.e. save money a lot )
• Software engineers should adopt a systematic and organized
approach to their work and use appropriate tools and
techniques depending on the problem to be solved, the
development constraints and the resources available.
6
Early Error Detection Saves Money
7
Hardware vs. Software
Hardware Software
Manufactured
 Wears out
 Built using components
 Relatively simple
Developed/engineered
 Deteriorates
 Custom built
 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
Software Characteristics
• Software is both a product and a vehicle for
developing a product.
• Software is developed/engineered, not
manufactured.
• Software does not wear out, but it does deteriorate.
• Most software is still custom-built.
10
Failure curves for Hardware
11
Hardware wears out over time
Figure 1 : Hardware Failure curve(the Bathtub curve)
Failure curves for Hardware
Hardware Failure(the Bathtub curve):
• Initially high
– Design/Manufacturing defects
• Then failure rate drops
– Defects corrected
• Again increases
– Dust, vibration, abuse, high temperatures &
Environmental maladies
12
Failure curves for Software
13
Software deteriorates over time
Figure 2 : Software Failure curve
Failure curves for Software
Software Failures:
• High failure rates early in life
– Due to undiscovered defects
• Then failure rates drops & flattens ( ideal curve )
– Defects are corrected ( without introduction of
new bugs)
• Again failure rate increases ( actual curve )
– Due to CHANGE ( most software will eventually
undergo change)
14
Failure curves for Software
• How to reduce software deterioration?
– Do better software design
– Software Engineering methods strive to reduce
the magnitude of the spikes & slope of the actual
curve ( Figure 2 )
15
Legacy Software: Why must it change?
– It must be fixed to eliminate errors.
– It must be enhanced to implement new functional and
non-functional requirements
– 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 viable within a
network environment.
16
Software Myths
– 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
17
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 …”
18
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 …”
19
Practitioner’s Myths vs. Reality
• “Let’s start coding ASAP, because once we write the
program and get it to work, our job is done …”
– It is only the beginning
• “Until I get the program running, I have no way of
assessing its quality …”
– Practice formal technical review
• Project requirements change continually and change
is easy to accommodate in the software design.
– Understand the requirements first , then write
codes. It costs more to change later.
20
Practitioner’s Myths vs. Reality
• “The only deliverable work product for a successful
project is the working program …”
– Working program is only one part of a software
configuration that includes many elements
• “Software engineering is baloney. It makes us create
tons of paperwork, only to slow us down …”
– Software engineering in not about creating documents, it
is about creating quality. Better quality leads to reduced
rework and reduced rework results in faster delivery times
21
What are the costs of software engineering?
• Roughly 60% of costs are development costs, 40%
are testing costs. For custom software, evolution
costs often exceed development costs.
• Costs vary depending on the type of system being
developed and the requirements of system
attributes such as performance and system
reliability.
• Distribution of costs depends on the development
model that is used.
22
What is CASE?
 Computer-Aided Software Engineering
• Software systems that are intended to provide automated support for
software process activities.
• Covers a wide range of different types of programs that are used to
support software process activities such as requirements analysis, system
modelling, debugging and testing.
• CASE systems are often used for method support.
• Upper-CASE
– Tools to support the early process activities of requirements and
design
• Lower-CASE
– Tools to support later activities such as programming, debugging and
testing
23
What are the attributes of good software?
• The software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and acceptable.
• Maintainability-Changing needs of customer
• Dependability-Safety, Security, Reliability
• Efficiency-Responsiveness, Processing time
• Usability- User friendly, adequate documentation
• Acceptability –Software must accepted by the users for
which it was designed. This means it must be
understandable, usable and compatible with other
systems.
24
What are the key challenges in software development?
• High cost
• Difficult to deliver on time
• Low quality
25

More Related Content

What's hot

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
Mohammed Romi
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Majane Padua
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
REHMAT ULLAH
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
Jennifer Polack
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
Achmad Solichin
 
Software requirements
Software requirementsSoftware requirements
Software requirements
Dr. Loganathan R
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
Inocentshuja Ahmad
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
Zahoorali Khan
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
AlenaDion
 
Software engineering
Software engineering Software engineering
Software engineering
MOHAMED RIYAZUDEEN
 

What's hot (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Unit1
Unit1Unit1
Unit1
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Chapter 14
Chapter 14Chapter 14
Chapter 14
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Software engineering
Software engineering Software engineering
Software engineering
 

Similar to Software Engineering (Introduction to Software Engineering)

Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
Rupesh Vaishnav
 
Software engineering
Software engineeringSoftware engineering
Software engineering
nimmik4u
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
sagarjsicg
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
GaytriMate
 
SE UNIT-1.pptx
SE UNIT-1.pptxSE UNIT-1.pptx
SE UNIT-1.pptx
SherinRappai
 
SE
SESE
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ Introduction
ThenmozhiK5
 
Software engineering
Software engineeringSoftware engineering
Software engineering
DivyaSharma458
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
Ajit Nayak
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
ssusere16bd9
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
ssusere16bd9
 
Software Engineering pdf
Software Engineering pdfSoftware Engineering pdf
Software Engineering pdf
KieveBarreto1
 
software engineering
software engineeringsoftware engineering
software engineering
Azad public school
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
UnknownPerson201264
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
KelisKing
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
23017156038
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
ryan aja
 

Similar to Software Engineering (Introduction to Software Engineering) (20)

Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
 
SE UNIT-1.pptx
SE UNIT-1.pptxSE UNIT-1.pptx
SE UNIT-1.pptx
 
SE
SESE
SE
 
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ Introduction
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
Software Engineering pdf
Software Engineering pdfSoftware Engineering pdf
Software Engineering pdf
 
software engineering
software engineeringsoftware engineering
software engineering
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 

More from ShudipPal

Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
ShudipPal
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
ShudipPal
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
ShudipPal
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
ShudipPal
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)
ShudipPal
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
ShudipPal
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)
ShudipPal
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)
ShudipPal
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)
ShudipPal
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
ShudipPal
 
Software Engineering (Project Management )
Software Engineering (Project  Management )Software Engineering (Project  Management )
Software Engineering (Project Management )
ShudipPal
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
ShudipPal
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
ShudipPal
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
ShudipPal
 
Software Engineering (Introduction)
Software Engineering (Introduction)Software Engineering (Introduction)
Software Engineering (Introduction)
ShudipPal
 

More from ShudipPal (17)

Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Software Engineering (Project Management )
Software Engineering (Project  Management )Software Engineering (Project  Management )
Software Engineering (Project Management )
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Software Engineering (Introduction)
Software Engineering (Introduction)Software Engineering (Introduction)
Software Engineering (Introduction)
 

Recently uploaded

Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
Celine George
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
GeoBlogs
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
EduSkills OECD
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
Excellence Foundation for South Sudan
 
ESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdfESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdf
Fundacja Rozwoju Społeczeństwa Przedsiębiorczego
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 

Recently uploaded (20)

Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
ESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdfESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdf
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 

Software Engineering (Introduction to Software Engineering)

  • 2. What is software?  Computer programs and associated documentation such as requirements, design models and user manuals.  Software is – instructions (computer programs) that when executed provide desired features, function, and performance, – data structures that enable the programs to adequately manipulate information, and – documents that describe the operation and use of the programs 2
  • 3. Software Types • Software products may be developed for a particular customer or may be developed for a general market.  Two fundamental types of software products – 1) Generic: developed to be sold to a range of different customers who is able to buy ( e.g. Software for PCs such as databases, word processors, drawings and project management tools). 2) Bespoke (custom): developed for a particular customer according to their specifications( e.g. Control system for electronic devices, air traffic control system) • New software can be created by developing new programs, configuring generic software systems or reusing existing software. 3
  • 4. Software’s Dual Role • Software is a product – Transforms information - produces, manages, acquires, modifies, displays, or transmits information – Delivers computing potential of hardware and networks • Software is a vehicle for delivering a product : Acts as the basis for : – Control of computer(operating system) – Communication of information (networking software) – Helps build and control other programs (software tools & environments) 4
  • 5. What is software engineering? • Software engineering is an engineering discipline that is concerned with all aspects of software production. • Software engineering is the application of systematic, disciplined, quantifiable approach to software development, operation and maintenance. • Designing, building and maintaining large software systems in a cost-effective way. 5
  • 6. Why is software engineering important? • To develop methods for developing s/w that can scale up and be used to consistently develop high-quality s/w at low cost. • To avoid costly errors caused by software. • Examples: – Lost Voyager Spacecraft (one bad line of code caused failure) – Commercial aircraft accidentally shot down during Gulf War (poor user interface) • The earlier you detect errors, the lower the money you have to spend ( i.e. save money a lot ) • Software engineers should adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available. 6
  • 7. Early Error Detection Saves Money 7
  • 8. Hardware vs. Software Hardware Software Manufactured  Wears out  Built using components  Relatively simple Developed/engineered  Deteriorates  Custom built  Complex 8
  • 9. 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
  • 10. Software Characteristics • Software is both a product and a vehicle for developing a product. • Software is developed/engineered, not manufactured. • Software does not wear out, but it does deteriorate. • Most software is still custom-built. 10
  • 11. Failure curves for Hardware 11 Hardware wears out over time Figure 1 : Hardware Failure curve(the Bathtub curve)
  • 12. Failure curves for Hardware Hardware Failure(the Bathtub curve): • Initially high – Design/Manufacturing defects • Then failure rate drops – Defects corrected • Again increases – Dust, vibration, abuse, high temperatures & Environmental maladies 12
  • 13. Failure curves for Software 13 Software deteriorates over time Figure 2 : Software Failure curve
  • 14. Failure curves for Software Software Failures: • High failure rates early in life – Due to undiscovered defects • Then failure rates drops & flattens ( ideal curve ) – Defects are corrected ( without introduction of new bugs) • Again failure rate increases ( actual curve ) – Due to CHANGE ( most software will eventually undergo change) 14
  • 15. Failure curves for Software • How to reduce software deterioration? – Do better software design – Software Engineering methods strive to reduce the magnitude of the spikes & slope of the actual curve ( Figure 2 ) 15
  • 16. Legacy Software: Why must it change? – It must be fixed to eliminate errors. – It must be enhanced to implement new functional and non-functional requirements – 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 viable within a network environment. 16
  • 17. Software Myths – 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 17
  • 18. 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 …” 18
  • 19. 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 …” 19
  • 20. Practitioner’s Myths vs. Reality • “Let’s start coding ASAP, because once we write the program and get it to work, our job is done …” – It is only the beginning • “Until I get the program running, I have no way of assessing its quality …” – Practice formal technical review • Project requirements change continually and change is easy to accommodate in the software design. – Understand the requirements first , then write codes. It costs more to change later. 20
  • 21. Practitioner’s Myths vs. Reality • “The only deliverable work product for a successful project is the working program …” – Working program is only one part of a software configuration that includes many elements • “Software engineering is baloney. It makes us create tons of paperwork, only to slow us down …” – Software engineering in not about creating documents, it is about creating quality. Better quality leads to reduced rework and reduced rework results in faster delivery times 21
  • 22. What are the costs of software engineering? • Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. • Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability. • Distribution of costs depends on the development model that is used. 22
  • 23. What is CASE?  Computer-Aided Software Engineering • Software systems that are intended to provide automated support for software process activities. • Covers a wide range of different types of programs that are used to support software process activities such as requirements analysis, system modelling, debugging and testing. • CASE systems are often used for method support. • Upper-CASE – Tools to support the early process activities of requirements and design • Lower-CASE – Tools to support later activities such as programming, debugging and testing 23
  • 24. What are the attributes of good software? • The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable. • Maintainability-Changing needs of customer • Dependability-Safety, Security, Reliability • Efficiency-Responsiveness, Processing time • Usability- User friendly, adequate documentation • Acceptability –Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems. 24
  • 25. What are the key challenges in software development? • High cost • Difficult to deliver on time • Low quality 25