Presentation is loading. Please wait.

Presentation is loading. Please wait.

Contributions of Dr. David Parnas to the Development of Software Engineering Background History of Computer Technology Career of David Parnas Areas of.

Similar presentations


Presentation on theme: "Contributions of Dr. David Parnas to the Development of Software Engineering Background History of Computer Technology Career of David Parnas Areas of."— Presentation transcript:

1 Contributions of Dr. David Parnas to the Development of Software Engineering Background History of Computer Technology Career of David Parnas Areas of Contribution The Software Process Software Specifications Parnas Tables Modular Programming Concurrency Ethical Responsibility

2 Background 1642 – Pascal assembles first analog computer 1943 – Turring builds first electronic digital computer 1953 – IBM manufactures first 701 Data Processing machine 1976 – Wozniak and Jobs invent first Apple personal computer 1983 – C++, First Object-Oriented Language 1941 – David Parnas born in Plattsburg, NY 1957 – Enters Carnegie Institute of Technology 1960 – Begins teaching electrical engineering and computer science 1965 – Earns Ph.D. in Electrical Engineering 1965 – Present: 40+ years classroom instruction Authors 200+ publications Consultant to many large corporations. History of ComputersDr. Parnas’ Career

3 The Software Process 1. Specification:Define functions and constraints 2. Development:Design and programming 3. Validation:Confirm alignment with customer requirements 4. Evolution:Adaptation to changing requirements Dr. Parnas Contributions Applied engineering discipline. Helped to establish 4 main activities in “software process.” Developed tools to use in each activity.

4 Software Specifications 1.The user must be provided with all the information needed to run the software and nothing more. 2.The implementer must be supplied with all information about the intended use(s) of the software. 3.Formally documented and complete, especially with regard to the intended user. 4.Written in terms that are understandable to both user and implementer. 5.Continually updated and shared. Dr. Parnas Specification Requirements

5 Types of Specifications Program Code Evolved during mainframe era for batch, top-down programming. All details of input and output data must be specified. Program code is primary focus. Precondition/Postcondition Input Output

6 Types of Specifications Data Abstract Module 1 Code Module 2 Code Module 3 Code Input Output Evolved with modular programming. Only abstract information about data and variables is specified. All variables passed between modules must be specified. Only functional relationships between inputs & outputs are required.

7 Parnas Tables H1H1 G Specifying Functional Relationships Input Variables Response Functions H 2 ^ H 1 H2H2 G Parnas Tables can relate input variables to corresponding functions

8 Parnas Tables 2A 2 50+12A100+3A130-0.1A 3A 2 40+15A105+2A140-0.1A A<55<A<2121<A<5555<A Male Female H 1 (Age Group) G (IQ) Specifying Functional Relationships Input Variables Response Functions H 2 ^ H 1 (Sex) H 2 G Male IQ grows at a rate of 2A 2 through age 5 years. Female IQ declines at a rate of 140-0.1A after age 55 years. Male A<5 2A 2 55<A Female 140-0.1A Example: Relating IQ to males & females of different age groups

9 Parnas Tables H1H1 G Specifying Functional Relationships Output Variables Response Function H 2 v H 1 H2H2 G Similarly, Parnas Tables can relate a set of functions to output variables

10 Modular Programming Dr. Parnas Contributions Strong proponent of modular programming concept – Procedures, Subroutines, Functions in top-down programming languages – Classes & Objects in object-oriented languages. Parnas Tables & other tools help to exploit advantages – Information Hiding – Development Time – Flexibility

11 Module 1 Code Module 2 Code Module 3 Code Information Hiding Modular Programming Advantage #1: Input Output Each module satisfies a specific design decision Each module hides its implementation from all other modules Module 1 Code Instruction 1 Instruction 2 Instruction 3 Module 1 Module 2 Code Instruction 4 Instruction 5 Instruction 6 Module 2

12 It takes 3 weeks to develop entire program. Specifications not critical, since only one programmer involved. Module 1 Code Module 2 Code Module 3 Code Reduced Development Time Modular Programming Advantage #2: Module 1Module 2Module 3 = 1 Programmer, 3 weeks Input Output Sequential Development Example 1 Week+ 1 Week

13 Simultaneous Development Example Module 1 Code Module 2 Code Module 3 Code Reduced Development Time Modular Programming Advantage #2: Module 1 Module 2 Module 3 Input Output Programmer #3, 1 Week Programmer #2, 1 Week Programmer #1, 1 Week = 3 Programmers, 1 week Programming Time Different programmers can work on modules independently. It takes only one week to develop entire program. Specifications are essential to ensure compatibility between modules.

14 Output Output2Output3 Module 1 Code Module 2 Code Module 3 Code Product Flexibility Modular Programming Advantage #3: Input Module 4 Code Module 5 Code New or improved programs can be created quickly By replacing modules. Or adding new modules.

15 Concurrency Output3 Module 1 Code Module 2 Code Module 4 Code Input Module 5 Code An On-Going Challenge for Dr. Parnas Two or more modules operating simultaneously on the same dataset. No universal programming solution exists Two techniques are currently used to simulate concurrency: Periodic synchronization between modules Scheduling execution of module elements. Dr. Parnas & colleagues continue to wrestle with this challenge.

16 Ethical Responsibility 1.Never rely on external authority for personal decisions. You are responsible for your own actions. 2.Always consider ethical and moral issues to determine if a given solution will be a benefit to society. 3.Be certain that you are solving the problem and not just providing a short-term solution to satisfy your supervisor. Dr. Parnas Challenge to All Software Engineers


Download ppt "Contributions of Dr. David Parnas to the Development of Software Engineering Background History of Computer Technology Career of David Parnas Areas of."

Similar presentations


Ads by Google