Software Fundamentals

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

Software Design Fundamentals
Design Concepts and Principles
Keeping Secrets Within a Family: Rediscovering Parnas H. Conrad Cunningham Computer & Information Science, University of Mississippi Cuihua Zhang Computer.
Chapter 13 Design Concepts and Principles
Dave Parnas and Software Engineering Trey Voit. Introduction The “Grandmaster” of Software Engineering Influence on Software Engineering since its beginnings.
Families of Software Systems Notkin: 3 of 3 lectures on change.
On the Criteria to Be Used in Decomposing Systems into Modules Written by D.L. Parnas Presented by Conner Hansen.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 1 Software engineering for real-time systems Section.
SWE Introduction to Software Engineering
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
On the Criteria to Be Used in Decomposing Systems into Modules Group 1: Lisa Anthony, Erik Hayes, Luiza Helena da Silva, and Diana Tetelman.
The Modular Structure of Complex Systems D.L. Parnas, P.C. Clement, and D.M. Weiss Published in IEEE Transactions on Software Engineering, March 1985 Presented.
03 - ParnasCSC4071 A Sketchy Evolution of Software Design 1960s –Structured Programming (“Goto Considered Harmful”, E.W.Dijkstra) Emerged from considerations.
Designing Software for Ease of Extension and Contraction Presented by William Greenwell February 27, 2002.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
1 On the Criteria To Be Used in Decomposing Systems into Modules by D.L.Parnas Dec presented by Yuanhua Qu for spring 2003 CS5391.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
CSE 303 – Software Design and Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Use of the Concept of Transparency in the Design of Hierarchically Structured Systems Paper by: D.L. Parnas and D.P. Siewiorek Presentation by: Josh Wetzel.
Top-Down Design and Modular Development
On the Criteria to Be Used in Decomposing Systems into Modules Team 3 Nupur Choudhary Aparna Nanjappa Mark Zeits.
SOFTWARE DESIGN.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Key Principles of Software Architecture and Design (I) adapted from Dave Penny’s.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Some Software Engineering Principles by D. L. Parnas Presented by Team 7: Amitkumar Dhameja Cincy Francis Rong Gu CS575 - Software Design, Team 7.
David Weiss Software Product-Line Engineering: A Family-Based Software Development Process: Designing The Family David Weiss
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
Design Concepts By Deepika Chaudhary.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Introduction to Design (and Zen) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These.
CS 4240: Rethinking Some OOP Ideas and Terms for OOA&D Readings: Chap. 8 in Shalloway and Trott (referred to as S&T in these slides) Wikipedia on information.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
Designing Abstract Interfaces for Device Independency Designing Abstract Interfaces for Device Independency Review of A Procedure for Designing Abstract.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
“Architecture” The outcome of top-level design, reflecting principal design decisions Can (and should) be modified and updated Analogous to architecture.
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
Objectives 4 Understand the concept of software quality 4 Explain the importance of quality and the consequences of poor quality 4 Understand software.
Software Design.
7. Modular and structured design
CompSci 280 S Introduction to Software Development
Software Design Principles
On the Criteria to Be Used in Decomposing Systems into Modules
which satisfies software requirements
Lecture 9- Design Concepts and Principles
Software Engineering Lecture #9.
CSE 403, Winter 2003 Software Engineering
CSE 403: Notkin #2 of 3 on software change
Lecture 9- Design Concepts and Principles
On the Criteria To Be Used in Decomposing Systems into Modules
On the Criteria To Be Used in Decomposing Systems into Modules D. L
CSE403 Software Engineering Autumn 2000 Design (Overview)
Introduction to Object-Oriented Programming
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
IT323 Project Phase#2.
Software Testing.
Chapter 2. Problem Solving and Software Engineering
On a “Buzzword” Hierarchical Structure
Module Structure David Parnas Discusses “modularization”
Presentation transcript:

Software Fundamentals Collected Papers by Parnas

On the Criteria to Be Used in Decomposing Systems into Modules December 1972 On the Criteria to Be Used in Decomposing Systems into Modules Introduction by Weiss Idea: module is a work assignment. Hides a design decision: information hiding. Idea: at run-time, one might not be able to distinguish what criteria were used to decompose the system into modules. A module may be a design-time entity or a load-time entity or an entity created at some other time.

Weiss Idea: Every information hiding module should have an interface. AOP, a current vogue in programming technique, appears to be a rediscovery of the use of binding time in creating modular designs. Idea: Every information hiding module should have an interface. Idea: To evaluate a modular decomposition: changes it accomodates. Compare business goals with easily accommodated changes: startegic software engineering.

Weiss Idea: Hierarchical structuring and modular decomposition are two different concepts. Modular decomposition leads to hierarchy: but only one of many. Implicit is the idea of using different design structures to separate different concerns.