23
NO SILVER BULLET Essence and Accident in Software Engineering Presented To: Sir Imran Saleem Software Engineering Presented By: Maria Ria Mubah Sherazi Iqra Khalid 1

No silver-bullllet-1

Embed Size (px)

Citation preview

Page 1: No silver-bullllet-1

1

NO SILVER BULLETEssence and Accident in

Software Engineering

Presented To: Sir Imran Saleem Software EngineeringPresented By: Maria Riaz Mubah Sherazi Iqra Khalid Haleema Muqarrab

Page 2: No silver-bullllet-1

2

Frederick Phillips Brooks JR

Education: Duke University 1953 Havard University 1956

Fields: CS, OS, SE

Achievements: OS/360 “The Mythyical Man-Month”

Awards&Honours: IEEE Virtual Reality Career Award(2010) And more than 25

Page 3: No silver-bullllet-1

3

“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.”

Page 4: No silver-bullllet-1

4

What are werewolves and Silver Bullets?

• Werewolves: Human with the ability to shape shift into a

wolf. Popular movie topic. Oldest monster legend.

• Silver Bullet(or a magical bullet): The only thing that can kill werewolves. Movie name (Horror 1985).

Page 5: No silver-bullllet-1

5

Essence:

The most basic and important quality of something.

Accident: Those difficulties that today attend its

production but that are not inherent.

Page 6: No silver-bullllet-1

6

All software involves essential difficulties and accidental difficulties.

ESSENTIAL DIFFICULTIES:• Software, as its core has these essential

difficulties. I. ComplexityII. ConformityIII. ChangeabilityIV. Invisibility

ESSENTIAL DIFFICULTIES AND ACCIDENTAL DIFFICULTIES:

Page 7: No silver-bullllet-1

7

Software is much more complex than any other human construct.

Problems caused:Technical:• Decrease of reliability, extensibility, safety.

Management:• Difficulty of communication between team members.• Difficulty of invoking function-makes programs hard to use.• Complexity of structure brings the difficulty of extending programs to new functions without creating side effects.

COMPLEXITY:

Page 8: No silver-bullllet-1

8

CONFORMITY:

Software has to be made to agree to common interface, protocols, standards etc.

Mostly standards for mastering complexity is arbitrary. Human institutions and systems must conform these standards and interface and they differ from:

• Interface to interface.• Time to time.• Designed by different people.

Page 9: No silver-bullllet-1

9

CHANGEABILITY:

Software entity is constantly subject to pressure for change.

All successful software get changed.Change comes in two ways: • People use the software in ways not

originally foreseen in the design and want better support for that

• The physical machine/OS changes underneath us.

Page 10: No silver-bullllet-1

10

INVISIBLITY:

Software is invisible and unvisualisable.

It is also very difficult even to visualize since there are many ways to look at the same design:

“the reality of software is not inherently

embedded in space.”

This inhibits communication of structure and design.

Page 11: No silver-bullllet-1

11

PAST BREAKTHROUGHS SOLVED ACCIDENTAL DIFFICULTIES:

The accidental qualities are all about implementation and testing, and these have been solved almost as well as they are likely to be solved, so don’t expect many more breakthroughs.

Page 12: No silver-bullllet-1

12

High level languages: High level languages allow programmers to express implementation with concepts closer to that which we use in design.

Unified Programming Environment: Unified Programming Environment enable related individual tools to work together in an automatic manner.

Time Sharing: Timesharing eliminates the slow turnaround of batch programming and keeps fresh in mind the grasp of complex system.

Page 13: No silver-bullllet-1

13

HOPE FOR SILVER:

Is there any potential solution now a days?

Ada and other high-level language advances? Object-oriented programming? Artificial Intelligence? Expert System? Automatic Programming? Graphical Programming? Program Verification? Environment and Tools? Workstation?

Page 14: No silver-bullllet-1

14

Ada & other High-Level Language Advances: One of the most touted development, not only reflects evolutionary improvements in language concepts but personify features to encourage modern design. It is just another high level language but no proved to be a silver bullet.

Object Oriented Programming: It is a programming language model organized around objects rather than "actions" and data rather than logic. Has two classes: Abstract data types. Hierarchical types.

Page 15: No silver-bullllet-1

15

Artificial Intelligence:

Revolutionary breakthroughParnas has clarified the terminological choas:AI-1: The use of computers to solve problems that previously could only be solved by applying HI.AI-2: The use of a specific set of programming techniques knows as heuristic or rule based programming.

Page 16: No silver-bullllet-1

16

Expert System:A program containing a generalized interface engine and rule base, takes input data and assumptions, explore the inferences derivable from the rule base, yields conclusion and advice and explains its results by retracting its reasoning for the user.

Page 17: No silver-bullllet-1

17

Automatic Programming:

“Automatic programming always has been a euphemism for programming with a higher level language than was presently available to the programmer”

Graphical Programming:

Computer graphics which has been applied successfully in other fields, seems to be able to play a role in software design.

Program Verification:Program verification seems promising to avoid immense effort upon implementation and testing by eliminating errors in design phase.

Page 18: No silver-bullllet-1

18

Environment and tools:The general pain of all these tools and environments is

remembering to use them…For example, configuration management systems depend on

programmers’ checking modules out for working on them and on programmers’ checking modules back in when the programmers are finished with working on them.

When a programmer fails to check a module out, check a module back in, or to meet with another, the system loses control and the completeness and consistency it promises cannot be guaranteed any more.

Workstation:• More powerful computers surely

facilitate software development.

Page 19: No silver-bullllet-1

19

Promising Attacks on the Essence

Buy versus build:• In the mid 1980s, the software market

was still small. The market is becoming large enough. So, Don't develop software when you can avoid it.

Page 20: No silver-bullllet-1

20

Requirements Refinement and Rapid Prototyping:

Helps decide what to build Use to clarify requirement A means to identify requirements, to try out various ideas, to do usability testing,etc To the extent that it succeeds, it delays and moderates the B-L upswing. Make the new software system work like our old manual information-processing system.

Page 21: No silver-bullllet-1

21

Great designers:Be on the look out for them, when you find them,

don't let go!some people are just better at software design than

others. Try to identify them, keep in mind them in your organization, and spoil them so that they get the skills and recompense that they need.

Incremental development-grow, not building, software: This helps to upgrade requirements, prove the

design, and improves optimism. Don't build software, grow it. The same benefits

can be realized on large projects as on my small ones.

Page 22: No silver-bullllet-1

22

Page 23: No silver-bullllet-1

23