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,

Slides:



Advertisements
Similar presentations
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Advertisements

25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Chapter 2 The Software Process
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Introduction to Software Engineering Lecture 5 André van der Hoek.
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Requirement Engineering – A Roadmap
SE 555 Software Requirements & Specification Requirements Validation.
Overview of Software Requirements
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Software Architecture in Practice
CSC 395 – Software Engineering Lecture 21: Overview of the Term & What Goes in a Data Dictionary.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
The chapter will address the following questions:
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
System Analysis Overview Document functional requirements by creating models Two concepts help identify functional requirements in the traditional approach.
Systems Life Cycle A summary of what needs to be done.
Documenting Software Architectures
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
TESTING.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
1 Validation & Verification Chapter VALIDATION & VERIFICATION Very Difficult Very Important Conceptually distinct, but performed simultaneously.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Feasibility Study.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Secure Systems Research Group - FAU Classifying security patterns E.B.Fernandez, H. Washizaki, N. Yoshioka, A. Kubo.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Requirements Analysis via Use Cases SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Some Software Engineering Principles by D. L. Parnas Presented by Team 7: Amitkumar Dhameja Cincy Francis Rong Gu CS575 - Software Design, Team 7.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 Introduction to Software Engineering Lecture 1.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Smart Home Technologies
Science and Technology Norwegian University of NTNU Rolv Bræk, January Introduction to Systems Engineering by Rolv Bræk NTNU.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
CSCE 240 – Intro to Software Engineering Lecture 2.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Advanced Software Engineering Dr. Cheng
Presentation transcript:

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, no. 2, Feb The Goal of Software Software Engineering: A Rational Design Process What is a rational agent? –Considers all choices thoroughly and correctly –Perfectly documents all results Sounds great, but…

Parnas and Clement 86 There Is No Rational Agent Lots of reasons: –Customers don’t know what they want, –don’t know everything we need in advance, –we’re only human, –external change, –preconceived notions, –economic limitations… –the list goes on We abandon “rational” design...

Parnas and Clement 86 Why Document? Requirements: User Developer communication, estimation, turnover insurance, establishing desired behavior Module: Work assignments, cross-module- implementer communication, module connection overview Future: Maintainers need a way to learn the system Others, too

Parnas and Clement 86 What’s Wrong With Most Documentation? Poor Organization (mostly “stream of consciousness” or “stream of execution”) –Both nearly impossible to find anything when you look for something Boring prose Confusing/inconsistent terminology Myopic viewpoint (too close to system when written)... wouldn’t it be nice to have the “rational” documentation?

Parnas and Clement 86 Fake It! Imagine yourself as the ideal agent, and write the documentation you would have produced Design the documentation –Separation of concerns: One system aspect for one section, no more, no less Document what is important, with the addition of rejected design decisions Justification: Even Mathematics, the very definition of “rational”, works this way: Results preferred over precise history of an idea

Parnas and Clement 86 Conclusions Result: Useful documentation that can be produced in the real world Unlike other papers presented, these ideas are still revolutionary –Unfortunately, few people do this. (In fact, people are often shocked if you do.) Tells us what we want, but not how to get it

Berry, Daudjee, et al Related 1: User’s Manual as Requirements Specification Berry, Daudjee, et al. May 2001 Summary: The desirable properties of a users manual are the same as the desirable properties of a requirements specification. So write the Requirements Specification in the form of a User’s Manual

Berry, Daudjee, et al What Properties? Requirements elicitation Communication –Client can understand user’s manuals where they may not understand other standard requirements documents –Programmers can see exactly what the requirements are calling for Validation –Customer’s ideas versus designer’s ideas –Code versus features

Berry, Daudjee, et al Why User’s Manual? To write one, one must have: –A complete understanding of each use the system will be put to (use cases) We can write one for each type of user, to ensure feature coverage (developer vs. user vs. administrator) Provides scenarios which can be used as test cases Enforces user-centered design (can’t write manual to the developers) Exposes ambiguities

Welsh and Han 94 Related 2: Software Documents: Concepts and Tools Jim Welsh, Jun Han in Software - Concepts and Tools (vo15, no. 1, 1994) Summary: all results of the software engineering process can be considered as documents. Source Code: a carefully specified formal document that can be executed by a computer.

Welsh and Han 94 Ideal Development Environment Set of Documents focusing on required features. Set of Tools help us maintain the documents (i.e. consistency across versions): –starting with the loosest, informal specifications. –moving toward fully formal specifications. –ending up with actual source code (literate program)

Welsh and Han 94

Parnas and Clement 86

Welsh and Han 94 Tools: Rational Assistants verification of code –tie together the original specification, the formal specification, and the actual code. –improve the ease of formally validating code. Improve level of connectivity –automated consistency checks: e.g. propagate a variable name change across all code. –analyze certain changes.

Welsh and Han 94 Extending Parnas and Clements’ work A concrete way to achieve the goals Parnas and Clements lay out. By improving our tools, we improve our ability to create coherent documents. –contain all of the information we may be interested. –from the start through to the finish. If the proposed "Software Documents" existed, it would be much easier to produce "Rational Documentation."

J. Lind 2000 Related 3: A Development Method for Multiagent Systems J. Lind 2000 Summary: a pragmatic process model for the development of multiagent systems based on the combination of standard SE techniques using 7 views. The approach applied and refined successfully in various industrial research projects.

J. Lind 2000 MASSIVE view MASSIVE: MultiAgent SystemS Iterative View Engineering

J. Lind 2000 View-oriented Modeling? “View" is a projection of the root model of the system with only a certain type of information in it. –Projection: is analogous with geometric projection of multi-dimensional objects into lower dimensions. A “Model” for the creation of multiagent systems based on the idea of creating and using seven "views" on the system.

J. Lind 2000 Iterative View Engineering How to create the views and models? Combines: Roundtrip Engineering (Balzert 98) Iterative Enhancement (Basili and Turner 75) Using IE as a repeated subprocess to extend RE –Adding IE steps to the creation of the model, the implementation –Adding trips around the whole process

J. Lind 2000 Extending Parnas and Clements’ work adding to the corpus of work on abstract documentation processes. using the observations Parnas and Clements made about rational design processes. –“any specification is initially incomplete” –Parnas and Clements provided useful ideas for the difficult problem of developing documentation, and software.

Didrich Klein 1996 Uncited: A Pragmatic Approach to Software Documentation Klaus Didrich, Torsten Klein 1996 Summary: The author extends Literate Programming to work in more situations then traditional Literate Program

Didrich, Klein 1996 Quick Sidebar: What is Literate Programming? Developed by Knuth in his paper “Literate Programming”, The Computer Journal, 27(2):97-111, 1984 Principle: Focus on documentation over code, write both in same file Uses a tool to construct source code files from the doc/code hybrid files

Didrich Klein 1996 Dosfop Diagram

Didrich Klein 1996 Problems A language on top of a language increases complexity and learning time Languages have changed –Need for code re-ordering reduced by increased granularity of OO and functional programming –More real programming modules work across multiple files, which original Literate Programming specs handled poorly

Didrich Klein 1996 Why Should This Paper Cite Parnas and Clements’ work? It must be possible to integrate quick-and- dirty code and only later document it This is a way of faking a rational design process