SlideShare a Scribd company logo
3
Most read
8
Most read
9
Most read
No silver bullet
Group member: Shakeel khan
InamUllah shah
Abasyn university Islamabad
Introduction
No silver bullet
There is no straight forward way on which we go and sure that we got the
extreme solution of the problem.
OR
There are no single SDLC or methodology which we follow and say that, this
the best way and technique to follow for solving the software problem.
Essence and Accidents
There are two problems facing software engineering.
1. essence: difficulties inherent in the nature of software.
e.g. complex conceptual constructs( algorithm, data sets,
function, relationship
2. accidents: difficulties related to the production of software.
e.g. representing the constructs in programming language.
The Essence
Brooks divides the essence into four subcategories
1. complexity
2. conformity
3. changeability
4. invisibility
complexity
• No two parts are alike.
• Huge number of states.
• Complexity grows nonlinearly with size.
• Can’t know the whole domain, process, or system.
• Introduces technical and managerial problems leading to unreliability.
• No two part are alike.
• Complete structure and function.
Cont…
Problems resulting from complexity
• difficult team communication.
• product flaws, cost overruns.
• personnel turnover (loss of knowledge) .
• project overview is difficult.
Conformity
• Most of the time software systems have to interface with an existing
system.
• Even for a new system, the perception is that, it is easier to make software
interfaces conform to other parts of the system .
• We need not to change the whole existing system because of new
software.
• May be difficult to change the environment, however if the environment
changes, the software system is expected to adapt.
Changeability
• The nature of software change is another essential problem.
• When software changes, unlike other entities, typically it is the function
being modified. Because software is relatively easy to change, it changes
often.
• Since software is easy to change software gets changed frequently and
deviates from the initial design, adding new features , supporting new
hardware.
Invisibility
• The code is invisible. There’s only the external input/output view.
• There is no simple geometric representation for software.
• Structure is terribly complex and hidden.
• Software does not have one map or graph, it will have multiple maps and
graphs.
• But There is nothing physical to visualize, it is hard to see an abstract
concept.
Past breakthroughs solved accidental difficulties
High level language
It allows that some types on data structures,
operation, classes etc. to be used by any machine. Programmers don’t have to
develop software for individual machines. Powerful stroke for software
productivity, reliability, & simplicity . Removed the low level complexities.
Time sharing
Increased turnaround time and productivity of programmer.
Improvement is not as much as that of high-level language. System response
time is no longer an issue. Programs run faster because of the high-level
languages.
Hopes for the silver
Ada and other high-level languages
Ada high-level computer
programming language used chiefly in real-time computerized control
systems. Ada programming language and high-level languages are promising
to tackle some of the issues experienced in software engineering, Ada was
specifically designed for system functions where overall system efficiency and
reliability is vital.
Cont…
Object-oriented programming
Its two important concepts, abstract
data types and hierarchical types, represent real advances in the art of
building software. Helps in design, but do not solve design complexity
Problem.
Artificial intelligence
It is computer hardware and software processes
which choose the best solution in a given problem likely to be chosen by
humans e.g. human and hardware interaction .
Cont…
Expert System
Every software system should be designed and built in
such a manner that it would be able to test and diagnose itself when it
malfunctions, However this would not be an easy task to implement. Building
an expert system would require very knowledgeable programmers which
could build a general system to solve multiple complex tasks.
Cont…
Automatic Programming
Generation of a program from problem
specification. It is essential to have software systems that are able to program
themselves, and write program solutions of problem from a problem statement
automatically.
Graphical programming
presentation of software functions in a
graphical manner like flow charts . But problem is diagrams tend to be bigger
than a normal screen size of a computer. More fundamentally, software is
very difficult to visualize.
Cont..
Program verification
Program verification is where most programmers
spend time and it is one of the most important steps in a software life-cycle.
Verifying a program before the testing phase can eliminate a lot of anomalies,
it could even reduce the time spent on testing the actual software because
each requirement would be verified before being implemented.
Environments and tools
Given the powerful computers available in
this modern day to surely facilitate software development. But magical
enhancement thus cannot be expected.
Attacks the essence
Buys vs Build
Good generalized software tools (mass market software for
writing, drawing, file management, and spreadsheets) can have a big impact
on productivity. In the past 20 years, a large number of open source tools
have reinforced the value of reusing existing software.
Refinement and rapid Programming
The hardest part of
software is determining exactly what to build. Must show product to
customer to get complete specification .Need for iterative feedback.
Cont…
Incremental development
The most successful software is grown in
stages, not developed in a single stage of software construction. The
approach necessitates top-down design, thus allowing easy backtracking and
detecting fundamental defects as early as possible.
Great Designer
Great designers are orders-of-magnitude better at
creating small and cheap code quickly. These designers should be treated like
star managers, and should be identified quickly.
Conclusion
• No one advance will give a great improvement by which the accidental
difficulties can be solved.
• Even if we remove all accidental difficulties still at its essence software
development is difficult.
• There is still a hope for silver for solving software related problems and
thus for the betterment of later issues.
• The real problem of software engineering is dealing with ever-changing
requirements.
• No model, method, artifact, or tool offered to date has succeeded to
overcome this problem.
Any Question…
Thanks you

More Related Content

PPTX
Islam and politics
PPTX
06- PROJECT SCHEDULE MANAGEMENT (PMBOK Ch - 06).pptx
PPT
Initial problem of pakistan
PPT
Information security
PPT
The conquest of makkah
PPTX
Creation of pakistan
PPTX
Constitutional development of pakistan
PPTX
Software development life cycle (SDLC)
Islam and politics
06- PROJECT SCHEDULE MANAGEMENT (PMBOK Ch - 06).pptx
Initial problem of pakistan
Information security
The conquest of makkah
Creation of pakistan
Constitutional development of pakistan
Software development life cycle (SDLC)

What's hot (20)

PPTX
No silver bullet essence and accidents of software engineering
PDF
Software Maintenance and Evolution
PPT
Software System Engineering - Chapter 1
PPT
extreme Programming
PPT
Software Verification & Validation
PPTX
V model presentation
PPTX
Software Engineering
PDF
Software testing axioms
PPTX
Software process
PPTX
System engineering
PPTX
Software Testing
PDF
COCOMO Model By Dr. B. J. Mohite
DOCX
Spm unit 2
PDF
Software engineering note
PPTX
Spiral model
PPTX
The Extreme Programming (XP) Model
PPTX
Incremental and iterative stratergy
PPTX
Software myths | Software Engineering Notes
PPTX
Software component reuse repository
PDF
What is Agile Methodology | Edureka
No silver bullet essence and accidents of software engineering
Software Maintenance and Evolution
Software System Engineering - Chapter 1
extreme Programming
Software Verification & Validation
V model presentation
Software Engineering
Software testing axioms
Software process
System engineering
Software Testing
COCOMO Model By Dr. B. J. Mohite
Spm unit 2
Software engineering note
Spiral model
The Extreme Programming (XP) Model
Incremental and iterative stratergy
Software myths | Software Engineering Notes
Software component reuse repository
What is Agile Methodology | Edureka
Ad

Similar to No silver bullet summary (paper) (20)

PPTX
No Silver Bullet - Essence and Accidents of Software Engineering
PDF
lecture notes on Introduction to Software Engineering CSC 209 .pdf
PPTX
Software Engineering and management project development
PPT
Software Development in 21st Century
PPTX
First Step in AI and DevOps --- Chapter 1.pptx
DOC
Chapter1
PPTX
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
PPTX
No silver bullet
PPTX
01_IT4557.pptx
DOC
SE-TEXT-BOOK_Material.doc
DOC
SE-TEXT-BOOK_Material.doc
PPTX
unit 1.pptx regasts sthatbabs shshsbsvsbsh
PPTX
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
DOC
PPTX
Software Engineering CST357 Lecture 2.pptx
PPT
Introduction to oop (Lect 1).ppt object oriented programming
PPTX
UNIT 1 - MPP.pptxdfvvnfuvbrrujfvbvndvnbn
PDF
Software design.edited (1)
No Silver Bullet - Essence and Accidents of Software Engineering
lecture notes on Introduction to Software Engineering CSC 209 .pdf
Software Engineering and management project development
Software Development in 21st Century
First Step in AI and DevOps --- Chapter 1.pptx
Chapter1
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
No silver bullet
01_IT4557.pptx
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
unit 1.pptx regasts sthatbabs shshsbsvsbsh
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
Software Engineering CST357 Lecture 2.pptx
Introduction to oop (Lect 1).ppt object oriented programming
UNIT 1 - MPP.pptxdfvvnfuvbrrujfvbvndvnbn
Software design.edited (1)
Ad

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administration Chapter 2
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
ai tools demonstartion for schools and inter college
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Transform Your Business with a Software ERP System
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
AI in Product Development-omnex systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Digital Strategies for Manufacturing Companies
2025 Textile ERP Trends: SAP, Odoo & Oracle
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administration Chapter 2
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Odoo Companies in India – Driving Business Transformation.pdf
Odoo POS Development Services by CandidRoot Solutions
ai tools demonstartion for schools and inter college
How to Migrate SBCGlobal Email to Yahoo Easily
Wondershare Filmora 15 Crack With Activation Key [2025
Softaken Excel to vCard Converter Software.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Transform Your Business with a Software ERP System
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
AI in Product Development-omnex systems
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf

No silver bullet summary (paper)

  • 1. No silver bullet Group member: Shakeel khan InamUllah shah Abasyn university Islamabad
  • 2. Introduction No silver bullet There is no straight forward way on which we go and sure that we got the extreme solution of the problem. OR There are no single SDLC or methodology which we follow and say that, this the best way and technique to follow for solving the software problem.
  • 3. Essence and Accidents There are two problems facing software engineering. 1. essence: difficulties inherent in the nature of software. e.g. complex conceptual constructs( algorithm, data sets, function, relationship 2. accidents: difficulties related to the production of software. e.g. representing the constructs in programming language.
  • 4. The Essence Brooks divides the essence into four subcategories 1. complexity 2. conformity 3. changeability 4. invisibility
  • 5. complexity • No two parts are alike. • Huge number of states. • Complexity grows nonlinearly with size. • Can’t know the whole domain, process, or system. • Introduces technical and managerial problems leading to unreliability. • No two part are alike. • Complete structure and function.
  • 6. Cont… Problems resulting from complexity • difficult team communication. • product flaws, cost overruns. • personnel turnover (loss of knowledge) . • project overview is difficult.
  • 7. Conformity • Most of the time software systems have to interface with an existing system. • Even for a new system, the perception is that, it is easier to make software interfaces conform to other parts of the system . • We need not to change the whole existing system because of new software. • May be difficult to change the environment, however if the environment changes, the software system is expected to adapt.
  • 8. Changeability • The nature of software change is another essential problem. • When software changes, unlike other entities, typically it is the function being modified. Because software is relatively easy to change, it changes often. • Since software is easy to change software gets changed frequently and deviates from the initial design, adding new features , supporting new hardware.
  • 9. Invisibility • The code is invisible. There’s only the external input/output view. • There is no simple geometric representation for software. • Structure is terribly complex and hidden. • Software does not have one map or graph, it will have multiple maps and graphs. • But There is nothing physical to visualize, it is hard to see an abstract concept.
  • 10. Past breakthroughs solved accidental difficulties High level language It allows that some types on data structures, operation, classes etc. to be used by any machine. Programmers don’t have to develop software for individual machines. Powerful stroke for software productivity, reliability, & simplicity . Removed the low level complexities. Time sharing Increased turnaround time and productivity of programmer. Improvement is not as much as that of high-level language. System response time is no longer an issue. Programs run faster because of the high-level languages.
  • 11. Hopes for the silver Ada and other high-level languages Ada high-level computer programming language used chiefly in real-time computerized control systems. Ada programming language and high-level languages are promising to tackle some of the issues experienced in software engineering, Ada was specifically designed for system functions where overall system efficiency and reliability is vital.
  • 12. Cont… Object-oriented programming Its two important concepts, abstract data types and hierarchical types, represent real advances in the art of building software. Helps in design, but do not solve design complexity Problem. Artificial intelligence It is computer hardware and software processes which choose the best solution in a given problem likely to be chosen by humans e.g. human and hardware interaction .
  • 13. Cont… Expert System Every software system should be designed and built in such a manner that it would be able to test and diagnose itself when it malfunctions, However this would not be an easy task to implement. Building an expert system would require very knowledgeable programmers which could build a general system to solve multiple complex tasks.
  • 14. Cont… Automatic Programming Generation of a program from problem specification. It is essential to have software systems that are able to program themselves, and write program solutions of problem from a problem statement automatically. Graphical programming presentation of software functions in a graphical manner like flow charts . But problem is diagrams tend to be bigger than a normal screen size of a computer. More fundamentally, software is very difficult to visualize.
  • 15. Cont.. Program verification Program verification is where most programmers spend time and it is one of the most important steps in a software life-cycle. Verifying a program before the testing phase can eliminate a lot of anomalies, it could even reduce the time spent on testing the actual software because each requirement would be verified before being implemented. Environments and tools Given the powerful computers available in this modern day to surely facilitate software development. But magical enhancement thus cannot be expected.
  • 16. Attacks the essence Buys vs Build Good generalized software tools (mass market software for writing, drawing, file management, and spreadsheets) can have a big impact on productivity. In the past 20 years, a large number of open source tools have reinforced the value of reusing existing software. Refinement and rapid Programming The hardest part of software is determining exactly what to build. Must show product to customer to get complete specification .Need for iterative feedback.
  • 17. Cont… Incremental development The most successful software is grown in stages, not developed in a single stage of software construction. The approach necessitates top-down design, thus allowing easy backtracking and detecting fundamental defects as early as possible. Great Designer Great designers are orders-of-magnitude better at creating small and cheap code quickly. These designers should be treated like star managers, and should be identified quickly.
  • 18. Conclusion • No one advance will give a great improvement by which the accidental difficulties can be solved. • Even if we remove all accidental difficulties still at its essence software development is difficult. • There is still a hope for silver for solving software related problems and thus for the betterment of later issues. • The real problem of software engineering is dealing with ever-changing requirements. • No model, method, artifact, or tool offered to date has succeeded to overcome this problem.