1 / 11

No Silver Bullet - Essence and Accident in Software Engineering

No Silver Bullet - Essence and Accident in Software Engineering. By: R. Adam Mead. Software Construction Essential Tasks. Exploiting the mass market to avoid constructing what can be bought. Using rapid prototyping as part of a planned iteration in establishing software requirements.

Download Presentation

No Silver Bullet - Essence and Accident in Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. No Silver Bullet - Essence and Accident in Software Engineering By: R. Adam Mead

  2. Software Construction Essential Tasks • Exploiting the mass market to avoid constructing what can be bought. • Using rapid prototyping as part of a planned iteration in establishing software requirements. • Growing Software organically, adding more and more function to systems as they are run, used and tested. • Identifying and developing the great conceptual designers of the rising generation.

  3. Does It Have to Be Hard? - Essential Difficulties • Observe that it is not software process that are so slow it is that hardware progress are so fast. • The essence of a software entity is a construct of interlocking concepts: data sets, relationships among data items, algorithms, and invocations of functions.

  4. Complexity • Software is more complex for their size then an others human construction. • Many problems of developing software products derive from this essential complexity and its nonlinear increases with size. • The increase in size makes communication among team members hard. • Problem are: product flaws, cost overruns, schedule delays. • Are not only technical problems, management problems too.

  5. Conformity • Conformity comes from the fact that all new software must conform to the way things where done in the past, because it is hard to change everyone. • Main reason software must conform is that it is new on the scene.

  6. Changeability • Being able to change something after it has been constructed is a new concept. • Software must be able to change, and the complexity of the systems becomes harder to follow. • All successful software gets changed. • Successful software also survives beyond the normal life of the machine vehicle for which it is first written for.

  7. Invisibility • Software has no 3-D way on which it can be laid out. • Software does not have one map or graph, it will have multiple maps and graphs. • Software has data flow charts, time sequence graphs, and other types of things. • Communication becomes hard because each person my see it a different way.

  8. Past Breakthroughs Solved Accidental Difficulties • High-Level Languages • Time-Sharing

  9. High-level Languages • The most powerful thing to happen to software development ever. • 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.

  10. Time-Sharing • Most observers credit the time-sharing improvement to better programmers, and better programming languages. • Programs run faster because of the high-level languages. • Do not have to accommodate for machine language anymore.

  11. Hopes for the Silver • Object-oriented programming • Artificial Intelligence • Expert Systems • Automatic programming • Graphics programming

More Related