0% found this document useful (0 votes)
145 views3 pages

Software Complexity Insights

This document summarizes key points from the classic software engineering paper "No Silver Bullet" by Fred Brooks. It discusses how software prototyping can help minimize difficulties, and how while accidental complexities can be solved, essential complexities are inherent in problems that software aims to solve. The document also covers advances like high-level programming languages and object-oriented programming, but notes there is no single solution and a variety of techniques are needed.

Uploaded by

Kainat Bashir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
145 views3 pages

Software Complexity Insights

This document summarizes key points from the classic software engineering paper "No Silver Bullet" by Fred Brooks. It discusses how software prototyping can help minimize difficulties, and how while accidental complexities can be solved, essential complexities are inherent in problems that software aims to solve. The document also covers advances like high-level programming languages and object-oriented programming, but notes there is no single solution and a variety of techniques are needed.

Uploaded by

Kainat Bashir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Assignment 1

Uw-18-cs-msc-025

Summary
No "Silver Bullet" is a classic software engineering paper that deserves revisiting.
Software prototyping is one such technique which helps in minimizing the essential and
accidental difficulties. Software engineering has its limits. No piece of software that has been
built in the past is error-free or completely reliable. In the past, software has depended on
hardware to run smoothly without malfunctioning but nowadays hardware technology is
advancing rapidly by the day and becoming cheaper by the minute. The software engineering
field is growing, young minds are coming up with more complex programming languages to
solve real life issues where applicable. Each programming language has its own specific purpose
in a piece of software resulting in more complicated functions.
No Silver Bullets explores five micro-shifts that have the potential to produce macro-changes in
your church.
Brooks describes the two different types of complexity accidental complexity and essential
complexity. Accidental complexity relates to problems which engineers create and can fix; for
example, the details of writing and optimizing assembly code. Essential complexity is caused by
the problem to be solved, and nothing can remove it. For example, if users want a program to do
30 different things, then those 30 things are essential, and the program must do those 30 different
things.
High-level programming languages have made it easier for people to learn programming and
write the famous “Hello World!” without much struggle. As more people learn how to program,
they start sharing insights and start to use a variety of communication medium to put their work
out there for anyone to access and get solutions for problems they have been experiencing in the
past.
Object oriented programming is one of the advancements in programming that has made it easier
for programmers to define variables or objects in this matter. Each object would be defined based
on what data structures would be stored in it to serve a purpose in the program or software.
Examples of widely used object – oriented programming languages would be C++ and Java.
Every software system should be design It is essential to have software systems that are able to
program themselves, and write program solutions of problem from a problem statement
automatically and built in such a manner that it would be able to test and diagnose itself.
All the accidental difficulties can be solved. Even if solved all accidental difficulties still its
essence software developments are difficult. There is still a hope for silver for solving software
related problems and thus for betterment of later issues. The real problem of software
engineering is dealing with ever-changing requirements. No model, method, aircraft, or tool
offered to date has succeeded to overcome this problem.
Brooks insists that there is no one silver bullet, he believes that a series of innovations attacking
essential complexity could lead to significant improvements. One technology that had made
significant improvement in accidental complexity was the invention of high-level programming
languages such as C, C++, C#, and Java. We should use a variety of techniques and
methodologies to deal with essence as well as accidents in today’s SDLC.

You might also like