15 Sep 1. Define and discuss the term essential difficulties as it is used by Brooks (10 points) 2. Define and discuss the
1. Define and discuss the term essential difficulties as it is used by Brooks (10 points)
2. Define and discuss the term accidental difficulties as it is used by Brooks (10 points)
3. Define what Brooks means by a “silver bullet” and reconstruct his argument as to why he believes there is no silver bullet for software engineering. (10 points)
4. Identify one opinion that you think is insightful, and identify one opinion that your don't agree with. Discuss and explain why you make the two choices. (20 points)
1 pages.
9/1/2014
1
NoSilverBullet
1
• Introduce thesis of Fred Brook’s "No Silver Bullet"
• Classic essay by Fred Brooks discussing “Why is SE so hard?”
No Silver Bullet
2
• “There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity.”— Fred Brooks, 1986
• i.e. There is no magical cure for the “software crisis”
Why? Essence and Accidents
3
• Brooks divides the problems facing software engineering into two categories
• essence: difficulties inherent, or intrinsic, in the nature of software
• accidents: difficulties related to the production of software
• Brooks argues that most techniques attack the accidents of software engineering
An Order of Magnitude
4
• In order to improve software development by a factor of 10
• first, the accidents of software engineering would have to account for 90% of the overall effort
• second, tools would have to reduce accidental problems to zero
• Brooks doesn't believe that the former is true…
• and the latter is nigh impossible because each new tool or technique solves some problems while introducing others
9/1/2014
2
The Essence
5
• Brooks divides the essence into four subcategories
• complexity
• conformity
• changeability
• invisibility
• Lets consider each in turn
Complexity (I)
6
• Software entities are amazingly complex
• No two parts (above statements) are alike
• Contrast with materials in other domains
• Large software systems have a huge number of states
• Brooks claims they have an order of magnitude more states than computers (i.e. hardware) do
• As the size of a system increases, both the number and types of parts increase exponentially
• the latter increase is the most significant
Complexity (II)
7
• You can't abstract away the complexity of the application domain. Consider:
• air traffic control, international banking, avionics software
• These domains are intrinsically complex and this complexity will appear in the software system as designers attempt to model the domain
• Complexity also comes from the numerous and tight relationships between heterogeneous software artifacts such as specs, docs, code, test cases, etc.
Complexity (III)
8
• Problems resulting from complexity
• difficult team communication
• product flaws; cost overruns; schedule delays
• personnel turnover (loss of knowledge)
• unenumerated states (lots of them)
• lack of extensibility (complexity of structure)
• unanticipated states (security loopholes)
• project overview is difficult
9/1/2014
3
Conformity (I)
9
• A lot of complexity facing software engineers is arbitrary
• Consider designing a software system to support an existing business process when
• a new VP arrives at the company
• The VP decides to “make a mark” on the company and changes the business process
• Our system must now conform to the (from our perspective) arbitrary changes imposed by the VP
Conformity (II)
10
• Other instances of conformity
• Having to integrate with a non-standard module interface
• Adapting to a pre-existing environment
• and if the environment changes (for whatever reason), you can bet that software will be asked to change in response
• Main Point: It is almost impossible to plan for arbitrary change;
• instead, you just have to wait for it to occur and deal with it when it happens
Changeability (I)
11
• Software is constantly asked to change
• Other things are too, however, manufactured things are rarely changed after they have been created
• instead, changes appear in later models; for example, automobiles are recalled only infrequently, and buildings are expensive to remodel
Changeability (II)
12
• With software, the pressure to change is greater
• in a project, it is functionality that is often asked to change and software EQUALS functionality (plus its malleable)
• clients of a software project often don't understand enough about software to understand when a change request requires significant rework of an existing system
• Contrast with more tangible domains, just imagine asking for a new layout of a house after the foundation has been poured
9/1/2014
4
Invisibility (I)
13
• Software is by its nature invisible; and it is difficult to design graphical displays of software that convey meaning to developers
• Contrast to blueprints: here geometry can be used to identify problems and help optimize the use of space
• But with software, its difficult to reduce it to diagrams
• UML contains 13 different diagram types to model class structure, object relationships, activities, event handling, software architecture, deployment, packages, etc.
Invisibility (II)
14
• Hard to get both a “big picture” view as well as details
• Hard to convey just one issue on a single diagram
• instead multiple concerns crowd and/or clutter the diagram hindering understanding
• This lack of visualization deprives the engineer from using the brain's powerful visual skills
Promising Attacks on the Essence
15
• Buy vs. Build
• Don't develop software when you can avoid it
• Rapid Prototyping
• Use to clarify requirements
• Incremental Development
• don't build software, grow it
• Great designers
• Be on the look out for them, when you find them, don't let go!
Quiz Yourself
16
• Essence or Accident?
• A bug in a financial system is discovered that came from a conflict in state/ federal regulations on one type of transaction
• A program developed in two weeks using a whiz bang new application framework is unable to handle multiple threads since the framework is not thread safe
• A new version of a compiler generates code that crashes on 32-bit architectures; the previous version did not
• A fickle customer submits 10 change requests per week after receiving the first usable version of a software system
9/1/2014
5
Software Engineering: More than just Programming
17
• It should now be clear that software engineering is more than just
• programming, data structures, algorithms, etc.
• It takes advantage of these very useful computer science techniques but adds
• quality concerns
• testing, code reviews, validation and verification of requirements
• process concerns
• Are we using the right software life cycle? Are we monitoring our ability to execute the process? Are we consistent? Are we getting better?
• reliance on tools, people, and support processes
• debugging, profiling, configuration management, deployment, issue tracking
Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Ask A Question and we will direct you to our Order Page at WriteDemy. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.
Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.
About Wridemy
We are a professional paper writing website. If you have searched a question and bumped into our website just know you are in the right place to get help in your coursework. We offer HIGH QUALITY & PLAGIARISM FREE Papers.
How It Works
To make an Order you only need to click on “Order Now” and we will direct you to our Order Page. Fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.
Are there Discounts?
All new clients are eligible for 20% off in their first Order. Our payment method is safe and secure.
