© SERG Software Design (Rational Design Process) Pg 1 “A Rational Design Process: How and Why to Fake it” by D. L. Parnas and P. C. Clements.

Slides:



Advertisements
Similar presentations
Is it rational or irrational?
Advertisements

Parnas and Clement 86 Parnas and Clements: A Rational Design Process: How and Why to Fake It Presented by:Jeremy Bowers, Alireza Namvar IEEE TSE, vol SE-12,
Copyright © Cengage Learning. All rights reserved.
More Number Theory Proofs Rosen 1.5, 3.1. Prove or Disprove If m and n are even integers, then mn is divisible by 4. The sum of two odd integers is odd.
SENG 531: Labs TA: Brad Cossette Office Hours: Monday, Wednesday.
Proof Points Key ideas when proving mathematical ideas.
BINGO! Topic Create Your Game Card You will need a blank piece of paper.
Data Mining.
COMP 2007 R J Walters. COMP Last time Software Engineering is important It is “soft” - Not easy Making things using an “engineering” approach.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Introduction to Proofs ch. 1.6, pg. 87,93 Muhammad Arief download dari
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Geometry Warm ups.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
1 Requirements Analysis and Specification Requirements analysis.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
TRAC - Problem Solving. 1 PROBLEM SOLVING 2 Think: Read the problem to get an idea of what you're being asked to 3 Read the Problem Again. Think about.
Vu Pham Refereeing and Discussant Guidelines Susan Godlonton AGRODEP AIEN III Workshop Dakar, Senegal 4 th June, 2014.
Zeros of Polynomial Functions
Program Design CMSC 201. Motivation We’ve talked a lot about certain ‘good habits’ we’d like you guys to get in while writing code. There are two main.
ANU COMP2110 Software Design in 2004 Lecture 24Slide 1 COMP2110 in 2004 Software Design Lecture 24: the Parnas view of design process and product The Parnas.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
System Development Life Cycle. The Cycle When creating software, hardware, or any kind of product you will go through several stages, we define these.
1 Today Random testing again Some background (Hamlet) Why not always use random testing? More Dominion & project? CUTE: “concolic” testing.
Chapter 16 Problem Solving and Decision Making. Objectives After reading the chapter and reviewing the materials presented the students will be able to:
Methods of Proof Lecture 3: Sep 9. This Lecture Now we have learnt the basics in logic. We are going to apply the logical rules in proving mathematical.
Assumes that events are governed by some lawful order
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
Concepts of Software Development Chapter 1. Separation of Concerns Break the system down into less complicated parts, and concentrate on each one in turn.
© SERG Software Design (Introduction) Software Design Introduction Material drawn from [Godfrey96,Parnas86,Parnas94]
Acceptance criteria vs. Functional requirements by Anna Dąbrowska.
240 3/30/98 CSE 143 Object-Oriented Design [Chapter 10]
Topic 3 Games in Extensive Form 1. A. Perfect Information Games in Extensive Form. 1 RaiseFold Raise (0,0) (-1,1) Raise (1,-1) (-1,1)(2,-2) 2.
Mr. Rutt’s Lab Tips. Uncertainty Measured quantities should be ranges, not exact values If you think the value is about 5 cm, and you’re sure it’s between.
My Honors Project By.
CS 5150 Software Engineering Lecture 7 Requirements 1.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Test-Driven Development Eduard Miric ă. The problem.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Learning Mathematics Sarah Stover Literature and Society Dr. Sherry 10/03/11.
THE SIX STEPS OF PROBLEM SOLVING An Easy approach to dealing with issues that face students 15M1883.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Workflows Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
MA10209 – Week 3 Tutorial B3/B4, Andrew Kennedy. people.bath.ac.uk/aik22/ma10209 How to go about a proof  Step 1: Identify what you need to show  Sometimes.
Principal Component Analysis
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Why did this opening paragraph receive a Grammar Grade of 0? Experience changes a person. The more things you go through in life, the more changes you.
Division Brought to you by powerpointpros.com. Lesson Menu Click on the links below to start with a specific topic. What is Division? Using Division Practice.
Ethan Hood THE COMPUTER CAREER PROBLEM. THE PROBLEM The focus question is: “Is a computer career for me?” We need to identify the criteria for answering.
Excerpt from I Believe: Common Myths about Learning Mathematics Rita Barger, Ph.D. University of Missouri-Kansas City
Fall 2014 Lecture 29: Turing machines and more decidability CSE 311: Foundations of Computing.
Mia’s Sandwich Shop: An introduction to database design.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
Certification of Reusable Software Artifacts
IS4500 Software Quality Assurance
CSE 311 Foundations of Computing I
© 2015 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Indirect Argument: Contradiction and Contraposition
“A Rational Design Process: How and Why to Fake it”
Welcome to Biology Honors
The Paper Table QUESTION:
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Copyright © Cengage Learning. All rights reserved.
How to write good. How to write good Background: Reading Read the papers. Then read them again. Then again. Write out the structure of the paper. If.
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Homework: Maintenance Sheet 11-18
Check your work from yesterday with the correct answers on the board.
Presentation transcript:

© SERG Software Design (Rational Design Process) Pg 1 “A Rational Design Process: How and Why to Fake it” by D. L. Parnas and P. C. Clements

© SERG Software Design (Rational Design Process) Pg 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

© SERG Software Design (Rational Design Process) Pg 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.

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

© SERG Software Design (Rational Design Process) Pg 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!

© SERG Software Design (Rational Design Process) Pg 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.

© SERG Software Design (Rational Design Process) Pg 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.

© SERG Software Design (Rational Design Process) Pg 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.

© SERG Software Design (Rational Design Process) Pg 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.