SlideShare ist ein Scribd-Unternehmen logo
1 von 25
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and Specification
 
software engineering
software engineeringsoftware engineering
software engineering
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPURLine Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
Line Of Code(LOC) In Software Engineering By NADEEM AHMED FROM DEPALPUR
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life Cycle
 
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 ...
 
Software development process
Software development processSoftware development process
Software development process
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 

Ähnlich wie Software Engineering (Introduction to Software Engineering)

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
 

Ähnlich wie 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
 
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
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 

Mehr von ShudipPal

Mehr von 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)
 

Kürzlich hochgeladen

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Kürzlich hochgeladen (20)

UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

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