1 / 9

“A Rational Design Process: How and Why to Fake it” by D. L. Parnas and P. C. Clements

Explore how to effectively utilize documentation in the software design process, emphasizing the importance of thorough and structured documentation to enhance development efficiency and maintainability. Learn strategies to optimize the documentation quality and reliability. Discover the correlation between documentation practices and successful software design outcomes.

Download Presentation

“A Rational Design Process: How and Why to Fake it” by D. L. Parnas and P. C. Clements

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. “A Rational Design Process: How and Why to Fake it” by D. L. Parnas and P. C. Clements Software Design (Rational Design Process)

  2. A Rational Design Process:How and Why to Fake it “Many have sought a software design process that allows a program to be derived systematically from a precise statement of requirements. … although we will not succeed in designing a real product that way, we can produce documentation that makes it appear that the software was designed by such a process …” D. L. Parnas Software Design (Rational Design Process)

  3. RDP - “Faking It” • The “rational design process” is an irrational ideal. • Question: If we rarely act in a purely top-down way when we develop software, why do most design methods assume we do? • Possible answers: • It’s simpler than trying to model real-life. • Wide variation in problems, possible solutions. • There is utility in the structure of the process, and its ongoing documentation. Software Design (Rational Design Process)

  4. RPD Payoff The real payoff comes during maintenance and “the next time around”. Software Design (Rational Design Process)

  5. The Role of Documentation • Documentation plays a major role in the development of any large, long-lived software system BUT poor documentation is a monumental, ubiquitous problem. • “Most programmers regard documentation as a necessary evil, written as an afterthought only because some bureaucrat requires it. They do not expect it to be useful.” • This attitude is a self-fulfilling prophecy! Software Design (Rational Design Process)

  6. The Role of Documentation (Cont’d) • While most documents are incomplete and inaccurate, these problems can be fixed easily. More serious problems are: • Poor organization. • Boring, redundant, verbose prose: • Boredom leads to inattentive reading and undiscovered errors. • Confusing and inconsistent terminology. • “Myopia”, can’t see the forest through the trees. • Focus is on documenting small details rather than on important design decisions. Software Design (Rational Design Process)

  7. So What’s to be Done? • Look at the various stages of the “Rational Design Process”, and consider the documents that are to be produced at each step. • Even if you don’t follow the steps in that order, go back and fill in the blanks! Pretend that you did follow the process precisely. • It isn’t just a paper trail you’re creating. Software Design (Rational Design Process)

  8. Programs vs Proofs • Designing a software system is a lot like proving a mathematical theorem. • The construction of an original proof is a painful process; you make lots of mistakes, pursue bad paths, ... • However, once you’ve figured out how to get there, you clean up the proof and present it as if no mistakes had ever been made. Software Design (Rational Design Process)

  9. Programs vs Proofs • If you want to prove a similar but different theorem, you can re-use ideas from the first proof! • The main difference is that during software development, you also record why you chose each path, what alternatives were considered, and why other paths were not chosen. Software Design (Rational Design Process)

More Related