SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25koolkampus
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9Ian Sommerville
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factorsNancyBeaulah_R
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Software Project Management (lecture 3)
Software Project Management (lecture 3)Software Project Management (lecture 3)
Software Project Management (lecture 3)Syed Muhammad Hammad
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept Atamjitsingh92
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGProf Ansari
 
Intro to software development
Intro to software developmentIntro to software development
Intro to software developmentHawkman Academy
 
Why programming is important
Why programming is importantWhy programming is important
Why programming is importantAman Kumar
 
Unified process model
Unified process modelUnified process model
Unified process modelRyndaMaala
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 

What's hot (20)

Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9
 
Software Crisis
Software CrisisSoftware Crisis
Software Crisis
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Increment model
Increment modelIncrement model
Increment model
 
Software Project Management (lecture 3)
Software Project Management (lecture 3)Software Project Management (lecture 3)
Software Project Management (lecture 3)
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
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
 
Intro to software development
Intro to software developmentIntro to software development
Intro to software development
 
Why programming is important
Why programming is importantWhy programming is important
Why programming is important
 
Unified process model
Unified process modelUnified process model
Unified process model
 
Walkthroughs
WalkthroughsWalkthroughs
Walkthroughs
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 

Similar to No silver bullet summary (paper)

No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringAditi Abhang
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGSangeetha Rangarajan
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.KelisKing
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
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 & 2Raj vardhan
 

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

No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software Engineering
 
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
 

Recently uploaded

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 

Recently uploaded (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 

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.