1 / 9

No Silver Bullet - Fred Brooks

Four issues of difficulty. Complexity - no two parts are alike; very large number of states; scaling up not merely a repetition of the same elements in larger sizes; elements interact with each other in some non-linear fashion - complexity is an essential property.Descriptions of a software entity that abstract away its complexity often abstract away its essence.

marja
Download Presentation

No Silver Bullet - Fred Brooks

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 - Fred Brooks No single development in either technology or in management technique promises even one order of magnitude of improvement in productivity, reliability or simplicity Hard part of building software is the specification, design and testing of the conceptual constructs for a system, not the labor of representing it - essence/accidents

    2. Four issues of difficulty Complexity - no two parts are alike; very large number of states; scaling up not merely a repetition of the same elements in larger sizes; elements interact with each other in some non-linear fashion - complexity is an essential property. Descriptions of a software entity that abstract away its complexity often abstract away its essence

    3. Increased complexity causes increased communication problems. From the complexity comes the difficulty of enumerating, much less understanding, all the possible states of the program, and from that comes unreliability. From the complexity of function comes the difficulty of invoking function, which makes programs hard to use. From the complexity of structure comes the difficulty of extending programs to new functions without creating side effects. Management, communication and personnel turnover exacerbate all of the above.

    4. Conformity - to many human institutions and systems to which it interfaces; conceived as most conformable Changeability - software changes very easily, but ramifications serious. Software is embedded in a cultural matrix of applications, users, laws and machine vehicles - all changing continually and their changes inexorably force change upon the software product.

    5. Invisibility - Software is invisible and unvisualizable. The reality of software is not inherently embedded in space. When we go to diagram we find several structures - flow of control, flow of data, patterns of dependency, time sequence and name - space relationships. Graphs are not planar, much less hierarchical (there is no good structure). Visualization is an important toolfor dealing with conceptual complexity.

    6. Past breakthroughs solved accidents High level languages enhance representation time sharing - quick turnaround benefits unified programming environments - help us better manage conceptual constructs, but not figure out what they should be.

    7. Hopes for the Silver Ada - encourages modern design and modularization, ADT, hierarchical structuring, etc OOP - helps with representation and other issues AI - the hard thing about building software is deciding what one wants to say, not saying it.

    8. Expert Systems - benefit is separation of application complexity from the program itself - where is the expert? Automatic programming - very domain dependent Graphical programming - when software is hard to visualize, how can this help? Program verification - works on code, but want to work on eliminating errors upstream.

    9. Environments and tools - hierarchical file systems, uniform file formats, generalized tools, SDE editors. LCAM - biggest gain yet to be realized from programming environments is the use of integrated database systems to keep track of the myriad of details that must be recalled accurately by the individual programmer and kept current for the group of collaborators on a single system. Workstations - speed compiling.

    10. Promising Attacks Time of task = S (frequency)i x (time)i attacks of the formulation of complex conceptual structures: buy vs. build reqts refinement and rapid prototyping incremental development - grow conceptual constructs are too difficult to specify in advance and too complex to be built faultlessly great designers - NASA story; cultivate

More Related