SlideShare ist ein Scribd-Unternehmen logo
1 von 13
CSE 436—Software and its Processes
Ron K. Cytron
http://www.cs.wustl.edu/~cytron/cse436/
19 September 2005
CSE 436 Software Engineering Workshop
Questions for discussion
• Why does it take so long to get software
finished?
– What does “finished” really mean?
– Is software so special?
– Metro Link
• Why are development costs so high?
– Initial shock factor
– Bidding problems
– Time = money
CSE 436 Software Engineering Workshop
Questions for discussion
• Why can’t we find all errors before we give the
software to our customers?
– Debugging
– Testing
– Program proofs
– Fault sources
– What is our obligation?
• Why do we spend so much time and effort
maintaining existing programs?
– Legacy systems
– What happens to software over time?
CSE 436 Software Engineering Workshop
Questions for discussion
• Why do we continue to have difficulty in
measuring progress as software is being
developed and maintained?
– Progress usually means “distance from done”
– Monotonically nonincreasing?
CSE 436 Software Engineering Workshop
Changing Nature of Software [Pressman]
• System software
– Services
– Middleware
• Application software
– Business apps
– Point of sale
– Real-time manufacturing (safety concerns)
• Engineering/scientific
– Number crunching
– Weather
– Seismic exploration
CSE 436 Software Engineering Workshop
Changing Nature of Software [Pressman]
• Embedded software
– Limited available resources
• Power
• Storage
– Long lifetime, MTF
– Limited ability to maintain or repair
– “Computer” becomes invisible
– Amazing applications
• Dust
• Flexible buildings
– Lots of activity to make this a higher-level endeavor
CSE 436 Software Engineering Workshop
Changing Nature of Software [Pressman]
• Client / server
– Distributed components
– Often federated to make one application
• User authentication
• Shopping based on inventory
• Financing
• Payment
• Web applications
– Connectionless environment
– Security / server-side state
– Fault tolerance
CSE 436 Software Engineering Workshop
Changing Nature of Software [Pressman]
• Open source
– OSI
– Free Software
• Free = frei, nicht umsonst
– BSD
• Decisions based on open source projects
– Can it be used?
– How does it impact the project?
– How does it affect the cost?
– How does it help maintenance?
• Copyright (copyleft) and patent protection
issues
CSE 436 Software Engineering Workshop
Software Evolution
• Continuing change and growth
– What works now will be expected to do more
tomorrow
– Redesign seems expensive
• Increasing complexity
– Changes often don’t fit into seminal software vision
– Entropy is unavoidable
• Legacy systems are unavoidable
– Monolithic systems are problematic
– Old languages are still very much in use
• COBOL, Fortran
• JOVIAL
CSE 436 Software Engineering Workshop
Management Myths [Pressman]
• We already have standards and procedures for building
software; isn’t that enough?
– How widely used is it?
– How relevant to the team?
– How useful to the project?
• If we’re behind schedule, we’ll just add more
programmers to catch up
– “Adding people to a late project makes it later” [Brooks]
– Ramp-up time
– Interference
• If I outsource a project, I can just relax
– Management issues are much more difficult, and if not
understood, will sink the project
CSE 436 Software Engineering Workshop
Customer Myths [Pressman]
• A general statement of work is sufficient to kick
off the project, and we can fill in the details later
– Loosey-goosey
– Nonlinear effect of added requirements: O(n) added
text does not make for O(n) added work
• Requirements can change, and that’s OK
because software is so flexible
– See above
– Most software project failures can be traced to
inadequacy of requirement specifications
CSE 436 Software Engineering Workshop
Software Engineers’ Myths [Pressman]
• Once the program is written, I’m done
– Between 60-80% of effort expended after delivery
• Until the program is written, quality is uncertain
– Formal design reviews
– Formal code reviews
– Test-first approaches
– Prototyping to verify design and structure
– Prototyping to validate requirements
• The only deliverable is the program itself
– Lots of documentation: installation guides, usage
guides, maintenance guides, API defintions and
examples
CSE 436 Software Engineering Workshop
Software Engineers’ Myths [Pressman]
• Documentation is Software-Engineering busy
work
– Focus is on quality, not quantity
– Documentation can be hard for engineers to write,
just as C++ may be difficult for poets.
– Conserve energy: documented code can serve as a
basis for useful documentation
• JavaDoc
• Doxygen

Weitere ähnliche Inhalte

Was ist angesagt?

SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in MindSauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
Sauce Labs
 
Ady beleanu automate-theprocessdelivery
Ady beleanu   automate-theprocessdeliveryAdy beleanu   automate-theprocessdelivery
Ady beleanu automate-theprocessdelivery
Romania Testing
 
Ciprian balea automated performance-testing
Ciprian balea   automated performance-testingCiprian balea   automated performance-testing
Ciprian balea automated performance-testing
Romania Testing
 

Was ist angesagt? (20)

SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in MindSauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
SDET approach for Agile Testing
SDET approach for Agile TestingSDET approach for Agile Testing
SDET approach for Agile Testing
 
How to Avoid Continuously Delivering Faulty Software
How to Avoid Continuously Delivering Faulty SoftwareHow to Avoid Continuously Delivering Faulty Software
How to Avoid Continuously Delivering Faulty Software
 
Why need software testing
Why need software testingWhy need software testing
Why need software testing
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
Embedded world 2017
Embedded world 2017Embedded world 2017
Embedded world 2017
 
SauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital EditionSauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital Edition
 
Why Your Next QA Job Might Be in Ops
Why Your Next QA Job Might Be in OpsWhy Your Next QA Job Might Be in Ops
Why Your Next QA Job Might Be in Ops
 
Mihai mahulea the zen of test driven development
Mihai mahulea   the zen of test driven developmentMihai mahulea   the zen of test driven development
Mihai mahulea the zen of test driven development
 
Getting deep
Getting deepGetting deep
Getting deep
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App Automatable
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
Continuous delivery is not finished
Continuous delivery is not finishedContinuous delivery is not finished
Continuous delivery is not finished
 
Ady beleanu automate-theprocessdelivery
Ady beleanu   automate-theprocessdeliveryAdy beleanu   automate-theprocessdelivery
Ady beleanu automate-theprocessdelivery
 
My Efforts to Define DevOps
My Efforts to Define DevOpsMy Efforts to Define DevOps
My Efforts to Define DevOps
 
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability Assessment
 
Test Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s PerspectiveTest Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s Perspective
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
 
Ciprian balea automated performance-testing
Ciprian balea   automated performance-testingCiprian balea   automated performance-testing
Ciprian balea automated performance-testing
 

Ähnlich wie Lecture2

Se lect11 btech
Se lect11 btechSe lect11 btech
Se lect11 btech
IIITA
 
Software design for scientific applications
Software design for scientific applicationsSoftware design for scientific applications
Software design for scientific applications
Priyanka Lal
 

Ähnlich wie Lecture2 (20)

Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
lect1.pdf
lect1.pdflect1.pdf
lect1.pdf
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Lec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptxLec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptx
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Se lect11 btech
Se lect11 btechSe lect11 btech
Se lect11 btech
 
Software design for scientific applications
Software design for scientific applicationsSoftware design for scientific applications
Software design for scientific applications
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
The Road to Continuous Delivery at Perforce
The Road to Continuous Delivery at PerforceThe Road to Continuous Delivery at Perforce
The Road to Continuous Delivery at Perforce
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Lecture2

  • 1. CSE 436—Software and its Processes Ron K. Cytron http://www.cs.wustl.edu/~cytron/cse436/ 19 September 2005
  • 2. CSE 436 Software Engineering Workshop Questions for discussion • Why does it take so long to get software finished? – What does “finished” really mean? – Is software so special? – Metro Link • Why are development costs so high? – Initial shock factor – Bidding problems – Time = money
  • 3. CSE 436 Software Engineering Workshop Questions for discussion • Why can’t we find all errors before we give the software to our customers? – Debugging – Testing – Program proofs – Fault sources – What is our obligation? • Why do we spend so much time and effort maintaining existing programs? – Legacy systems – What happens to software over time?
  • 4. CSE 436 Software Engineering Workshop Questions for discussion • Why do we continue to have difficulty in measuring progress as software is being developed and maintained? – Progress usually means “distance from done” – Monotonically nonincreasing?
  • 5. CSE 436 Software Engineering Workshop Changing Nature of Software [Pressman] • System software – Services – Middleware • Application software – Business apps – Point of sale – Real-time manufacturing (safety concerns) • Engineering/scientific – Number crunching – Weather – Seismic exploration
  • 6. CSE 436 Software Engineering Workshop Changing Nature of Software [Pressman] • Embedded software – Limited available resources • Power • Storage – Long lifetime, MTF – Limited ability to maintain or repair – “Computer” becomes invisible – Amazing applications • Dust • Flexible buildings – Lots of activity to make this a higher-level endeavor
  • 7. CSE 436 Software Engineering Workshop Changing Nature of Software [Pressman] • Client / server – Distributed components – Often federated to make one application • User authentication • Shopping based on inventory • Financing • Payment • Web applications – Connectionless environment – Security / server-side state – Fault tolerance
  • 8. CSE 436 Software Engineering Workshop Changing Nature of Software [Pressman] • Open source – OSI – Free Software • Free = frei, nicht umsonst – BSD • Decisions based on open source projects – Can it be used? – How does it impact the project? – How does it affect the cost? – How does it help maintenance? • Copyright (copyleft) and patent protection issues
  • 9. CSE 436 Software Engineering Workshop Software Evolution • Continuing change and growth – What works now will be expected to do more tomorrow – Redesign seems expensive • Increasing complexity – Changes often don’t fit into seminal software vision – Entropy is unavoidable • Legacy systems are unavoidable – Monolithic systems are problematic – Old languages are still very much in use • COBOL, Fortran • JOVIAL
  • 10. CSE 436 Software Engineering Workshop Management Myths [Pressman] • We already have standards and procedures for building software; isn’t that enough? – How widely used is it? – How relevant to the team? – How useful to the project? • If we’re behind schedule, we’ll just add more programmers to catch up – “Adding people to a late project makes it later” [Brooks] – Ramp-up time – Interference • If I outsource a project, I can just relax – Management issues are much more difficult, and if not understood, will sink the project
  • 11. CSE 436 Software Engineering Workshop Customer Myths [Pressman] • A general statement of work is sufficient to kick off the project, and we can fill in the details later – Loosey-goosey – Nonlinear effect of added requirements: O(n) added text does not make for O(n) added work • Requirements can change, and that’s OK because software is so flexible – See above – Most software project failures can be traced to inadequacy of requirement specifications
  • 12. CSE 436 Software Engineering Workshop Software Engineers’ Myths [Pressman] • Once the program is written, I’m done – Between 60-80% of effort expended after delivery • Until the program is written, quality is uncertain – Formal design reviews – Formal code reviews – Test-first approaches – Prototyping to verify design and structure – Prototyping to validate requirements • The only deliverable is the program itself – Lots of documentation: installation guides, usage guides, maintenance guides, API defintions and examples
  • 13. CSE 436 Software Engineering Workshop Software Engineers’ Myths [Pressman] • Documentation is Software-Engineering busy work – Focus is on quality, not quantity – Documentation can be hard for engineers to write, just as C++ may be difficult for poets. – Conserve energy: documented code can serve as a basis for useful documentation • JavaDoc • Doxygen

Hinweis der Redaktion

  1. Title slide