You are on page 1of 3

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