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

Weitere ähnliche Inhalte

Was ist angesagt?

Software maintenance
Software maintenance Software maintenance
Software maintenance
Rajeev Sharan
 
Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
Swarnima Tiwari
 
Library Management System ppt
Library Management System pptLibrary Management System ppt
Library Management System ppt
MuhammadZeeshan564
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
Rajkumar Pawar
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
Bala Ganesh
 

Was ist angesagt? (20)

Quality of software
Quality of softwareQuality of software
Quality of software
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
requirment anlaysis , user requirements
requirment anlaysis , user requirementsrequirment anlaysis , user requirements
requirment anlaysis , user requirements
 
SRS for Library Management System
SRS for Library Management SystemSRS for Library Management System
SRS for Library Management System
 
Test cases
Test casesTest cases
Test cases
 
Bug reporting and tracking
Bug reporting and trackingBug reporting and tracking
Bug reporting and tracking
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Library Management System ppt
Library Management System pptLibrary Management System ppt
Library Management System ppt
 
Functional and non functional
Functional and non functionalFunctional and non functional
Functional and non functional
 
Web Engineering - Web Applications versus Conventional Software
Web Engineering - Web Applications versus Conventional SoftwareWeb Engineering - Web Applications versus Conventional Software
Web Engineering - Web Applications versus Conventional Software
 
System quality attributes
System quality attributes System quality attributes
System quality attributes
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
 

Ähnlich wie No silver bullet summary (paper)

Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
Henry Jacob
 

Ähnlich wie No silver bullet summary (paper) (20)

Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Chapter1
Chapter1Chapter1
Chapter1
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
 
Unit1
Unit1Unit1
Unit1
 
01_IT4557.pptx
01_IT4557.pptx01_IT4557.pptx
01_IT4557.pptx
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Sepm t1
Sepm t1Sepm t1
Sepm t1
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
SE
SESE
SE
 
software engineering
 software engineering software engineering
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.
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Kürzlich hochgeladen (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 

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.