David Parnas
#1,656
Most Influential Person Now
Canadian software engineer
David Parnas's AcademicInfluence.com Rankings
David Parnascomputer-science Degrees
Computer Science
#92
World Rank
#98
Historical Rank
Software Engineering
#9
World Rank
#9
Historical Rank
Database
#150
World Rank
#154
Historical Rank
Download Badge
Computer Science
David Parnas's Degrees
- PhD Electrical Engineering Carnegie Mellon University
- Masters Electrical Engineering Carnegie Mellon University
- Bachelors Mathematics University of Manitoba
Similar Degrees You Can Earn
Why Is David Parnas Influential?
(Suggest an Edit or Addition)According to Wikipedia, David Lorge Parnas is a Canadian early pioneer of software engineering, who developed the concept of information hiding in modular programming, which is an important element of object-oriented programming today. He is also noted for his advocacy of precise documentation.
David Parnas's Published Works
Published Works
- On the criteria to be used in decomposing systems into modules (1972) (5370)
- Software aging (1994) (1011)
- On the Design and Development of Program Families (2001) (984)
- Designing Software for Ease of Extension and Contraction (1978) (957)
- A rational design process: How and why to fake it (1985) (927)
- A technique for software module specification with examples (1972) (726)
- Concurrent control with “readers” and “writers” (1971) (567)
- The Modular Structure of Complex Systems (1984) (528)
- Functional Documents for Computer Systems (1995) (441)
- Scheduling Processes with Release Times, Deadlines, Precedence, and Exclusion Relations (1990) (398)
- Evaluation of safety-critical software (1990) (370)
- Information Distribution Aspects of Design Methodology (1971) (358)
- Active design reviews: principles and practices (1985) (339)
- On satisfying timing constraints in hard-real-time systems (1991) (327)
- Software aspects of strategic defense systems (1985) (298)
- Software Requirements for the A-7E Aircraft. (1992) (297)
- On the use of transition diagrams in the design of a user interface for an interactive computer system (1969) (229)
- Wikipedia risks (2005) (219)
- On a 'Buzzword': Hierarchical Structure (2001) (188)
- Using Test Oracles Generated from Program Documentation (1998) (187)
- Software design (2001) (184)
- Assessment of safety-critical software in nuclear power plants (1991) (184)
- Software Engineering Programs Are Not Computer Science Programs (1999) (167)
- Tabular Representation of Relations (1992) (164)
- An Invitation to Formal Methods (1996) (161)
- Education for computing professionals (1990) (146)
- Precise Documentation of Well-Structured Programs (1994) (121)
- Tabular Representations in Relational Documents (1997) (120)
- Using assertions about traces to write abstract specifications for software modules (1978) (117)
- Priority Scheduling Versus Pre-Run-Time Scheduling (1998) (112)
- Predicate Logic for Software Engineering (1993) (112)
- Precise Documentation: The Key to Better Software (2010) (108)
- Use of the concept of transparency in the design of hierarchically structured systems (1975) (102)
- The Role of Inspection in Software Quality Assurance (2003) (101)
- A procedure for designing abstract interfaces for device interface modules (1981) (98)
- Requirements-based monitors for real-time systems (2000) (96)
- A generalized control structure and its formal definition (1983) (92)
- Documentation for safety critical software (1993) (92)
- Using documentation as a software design medium (1981) (91)
- Documentation of requirements for computer systems (1993) (90)
- On synchronization in hard-real-time systems (1988) (89)
- Stop the numbers game (2007) (88)
- Really Rethinking 'Formal Methods' (2010) (85)
- Software engineering programmes are not computer science programmes (1999) (78)
- Response to undesired events in software systems (1976) (77)
- A technique for software module specification with examples (1983) (75)
- The influence of software structure on reliability (1975) (72)
- Enhancing reusability with information hiding (1989) (70)
- Simulating the behaviour of software modules by trace rewriting (1993) (70)
- Generating a test oracle from program documentation: work in progress (1994) (65)
- The real risks of artificial intelligence (2017) (63)
- Software aspects of strategic defense systems (1985) (60)
- Software engineering: an unconsummated marriage (1997) (53)
- Use of Abstract Interfaces in the Development of Software for Embedded Computer Systems (1977) (53)
- Inspection of Safety-Critical Software Using Program-Function Tables (2001) (50)
- "No silver bullet" reloaded: retrospective on "essence and accidents of software engineering" (2007) (49)
- Abstract types defined as classes of variables (1976) (43)
- Using traces to write abstract specifications for software modules (1977) (41)
- Defining the meaning of tabular mathematical expressions (2010) (39)
- A-7E Software Module Guide. (1981) (38)
- Specification of Software Component Requirements Using the Trace Function Method (2006) (36)
- Disciplined methods of software specification: a case study (2005) (36)
- Some conclusions from an experiment in software engineering techniques (1972) (36)
- Response to detected errors in well-structured programs (1972) (35)
- Document based rational software development (2009) (33)
- Deriving real-time monitors from system requirements documentation (2000) (32)
- Software Engineering or Methods for the Multi - Person Construction of Multi - Version Programs (1974) (32)
- Mathematical Description and Specification of Software (1994) (31)
- Some Theorems We Should Prove (1993) (31)
- The Secret History of Information Hiding (2002) (30)
- "Formal methods" technology transfer will fail (1998) (30)
- Pre-run-time scheduling of processes with exclusion relations on nested or overlapping critical sections (1992) (26)
- A Formal Approach to Computer Systems Requirements Documentation (1992) (26)
- Why Software Jewels Are Rare (1996) (26)
- Design and Specification of the Minimal Subset of an Operating System Family (1976) (25)
- The Use of Precise Specification in the Development of Software (1977) (25)
- Inspection's role in software quality assurance (2003) (25)
- On a solution to the cigarette smoker's problem (without conditional statements) (1975) (25)
- Availability evaluation of hardware/software systems with several recovery procedures (2005) (25)
- Successful software engineering research (1998) (25)
- Some software engineering principles (2001) (25)
- The limits of empirical studies of software engineering (2003) (23)
- A language for describing the functions of synchronous systems (1966) (23)
- The non-problem of nested monitor calls (1978) (23)
- Abstract Interface Specifications for the A-7E Device Interface Module. (1980) (23)
- Teaching Programming as Engineering (1995) (22)
- Specifying and simulating the externally observable behavior of modules (1994) (20)
- A Standard Organization for Specifying Abstract Interfaces. (1984) (19)
- Why Engineers Should Not Use Artificial Intelligence (1988) (18)
- On simulating networks of parallel processes in which simultaneous events may occur (1969) (17)
- More on simulation languages and design methodology for computer systems (1969) (17)
- The design of the virtual memory aspects of a virtual machine (1973) (17)
- A Comparison of Tabular Expression-Based Testing Strategies (2011) (17)
- Invited Plenary Talk (1994) (16)
- Table transformation tools: why and how (1996) (16)
- Licensing software engineers in Canada (2002) (15)
- Risks of undisciplined development (2010) (15)
- Precise description and specification of software (1998) (14)
- Software Systems Engineering programmes a capability approach (2017) (14)
- The Inevitable Pain of Software Development , Including of Extreme Programming , Caused by Requirements Volatility (14)
- Documenting and verifying systems assembled from components (2010) (14)
- Software Engineering - Missing in Action: A Personal Perspective (2011) (13)
- Precise Documentation of Critical Software (2007) (13)
- On ICSE's “most influential” papers (1995) (13)
- On the need for fewer restrictions in changing compile-time environments (1975) (13)
- A course on software engineering techniques (1972) (13)
- Software Engineering Principles (1984) (12)
- An Easily Extensible Toolset for Tabular Mathematical Expressions (1999) (12)
- State determination in hard-embedded systems (1989) (12)
- Segregated failures model for availability evaluation of fault-tolerant systems (2006) (12)
- Software Product-Lines: What To Do When Enumaration Won't Work (2007) (12)
- Significant event simulation (1975) (11)
- Trace Rewriting Systems (1992) (11)
- Inspection of Concurrent Systems: Combining Tables, Theorem Proving and Model Checking (2006) (11)
- Comment on deadlock preventive method (1972) (11)
- Modularity in the new millenium: a panel summary (2003) (10)
- Module Interface Documentation - Using the Trace Function Method (TFM) (2006) (10)
- On Documenting the Requirements for Computer Programs Based on Models of Physical Phenomena (2000) (10)
- Using information about functions in selecting test cases (2005) (10)
- Computers in weapons: the limits of confidence (1994) (9)
- On a solution to the cigarette smokers' problem (1972) (9)
- Using information about functions in selecting test cases (2005) (9)
- Inspection Procedures for Critical Programs that Model Physical Phenomena (2001) (8)
- Requirements documentation: why a formal basis is essential (2000) (8)
- Correction to "On Satisfying Timing Constraints in Hard-Real-Time Systems'' (1993) (8)
- Applying mathematical software documentation: an experience report (1995) (8)
- Rapid prototyping by means of abstract module specifications written as trace axioms (1982) (7)
- A logic for describing, not verifying, software (1995) (7)
- Tabular Expression-Based Testing Strategies: A Comparison (2007) (7)
- The Tabular Method for Relational Documentation (2003) (7)
- The Professional Responsibilities of Software Engineers (2001) (7)
- Interface Specifications for the SCR (A-7E) Extended Computer Module. (1983) (7)
- Which is riskier: OS diversity or OS monopoly? (2007) (6)
- The Future of Formal Methods in Industry (1995) (6)
- Interface Specifications for the SCR (A-7E) Application Data Types Module. (1983) (6)
- Tabular Expressions and Total Functional Programming (2008) (6)
- Information Streams Sharing a Finite Buffer: Other Solutions (1974) (6)
- Goals for software engineering student education (2005) (6)
- Inside Risks Risks of Undisciplined Development (2010) (6)
- Software Inspections We Can Trust (2003) (5)
- Structured programming: A minor part of software engineering (2003) (5)
- Computer systems availability evaluation using a segregated failures model (2008) (5)
- Basic Science for Software Developers (2002) (5)
- SDI: a violation of professional responsibility (2001) (5)
- The use of mathematics in software quality assurance (2012) (5)
- Documentation of Communications Services and Protocols (1989) (5)
- The risks of stopping too soon (2011) (5)
- On "Artificial Intelligence and Expert Systems - Myths, Legends, and Facts" (1989) (5)
- Software engineering (extended abstract): an unconsummated marriage (1997) (5)
- Fault Propagation in Tabular Expression-Based Specifications (2008) (5)
- On the Uses of Synchronization in Hard-real-time Systems (1983) (5)
- Professional responsibility to blow the whistle on SDI (1990) (4)
- Empirical Research in Software Engineering: A Critical View (2009) (4)
- Design through documentation: the path to software quality (2003) (4)
- New Year's Resolutions for Software Quality (2004) (4)
- A Family of Mathematical Methods for Professional Software Documentation (2005) (4)
- Estimating Software Reliability Using Inverse Sampling (1999) (4)
- Software Engineering: Multi-person Development of Multi-version Programs (2011) (4)
- Description and specification (2001) (4)
- Comments on “A comparison of two synchronizing concepts by P.B. Hansen” (1972) (4)
- Window : a formally-specified graphics-based text editor (1973) (3)
- Document Driven Disciplined Development of Software (2005) (3)
- Inside Risks The Real Risks of Artificial Intelligence Incidents from the early days of (2017) (3)
- A course on software engineering techniques (1972) (3)
- A family of computer systems for delivering individualized advice (2010) (3)
- From Requirements to Architecture (2010) (3)
- Language-Free Mathematical Methods for Software Design (1995) (3)
- Making Free/Open-Source Software (F/OSS) Work Better (2003) (3)
- Education for Computing Professionals (Abstract) (1990) (3)
- On the computational complexity of the maximum trade problem (1994) (3)
- The Parnas papers (1985) (3)
- On a 'Buzzword': Hierarchical Structure (Reprint) (2001) (3)
- Precisely Annotated Hierarchical Pictures of Programs (1998) (3)
- Multi-Dimensional Software Families: Document Defined Partitions of a Set of Products (2008) (3)
- Parnas on Parnas: a life of indecision (1999) (3)
- Teaching For Change (1997) (3)
- A recommendation on methodology in computer graphics (1977) (2)
- How Engineering Mathematics can Improve Software (2011) (2)
- Component Interface Documentation: What do we Need and Why do we Need it? (2006) (2)
- Resolving Dilemmas in Software Engineering Education (2007) (2)
- State table analysis of programs in an ALGOL-like language (1966) (2)
- Evaluation of automated testing coverage: a case study of wireless secure connection software testing (2006) (2)
- Sequential equivalents of parallel processes (1967) (2)
- Who taught me about software engineering research? (1998) (2)
- Systematic documentation of requirements (2001) (2)
- Software Engineering: A Profession in Waiting (2021) (2)
- A Program Holder Module (1973) (2)
- Building reliable software in BLOWHARD (1977) (2)
- Requirements documentation: a systematic approach (2003) (2)
- On facilitating parallel and multiprocessing in ALGOL (1966) (2)
- Software Engineering: An Unconsummated Marriage (Extended Abstract) (1997) (2)
- A paradigm for software module specification with examples (1971) (2)
- On the preliminary report of C3S (1966) (2)
- Connecting Good Theory to Good Practice: Software Documentation: A Case Study (2008) (1)
- Inside risks: computers: boon or bane? (2001) (1)
- Improving software quality - the SQRL approach (2003) (1)
- Another view of the Dijkstra-dMLP controversy (1978) (1)
- Documentation based software testing (2003) (1)
- Software Documentation and the Verification Process (2001) (1)
- ASPECTS OF STRATEGIC DEFENSE SYSTEMS (2002) (1)
- Consistency of Networks of Components (2009) (1)
- Inside risks: ten myths about Y2K inspections (1999) (1)
- Little Bugs Take Big Bites (1991) (1)
- The future of industrial formal methods (1995) (1)
- Computers: boon or bane? (2001) (1)
- Invited Talk: A Software Engineering Program of Lasting Value (2000) (1)
- Software Structures: A Careful Look (2018) (1)
- Letters to the editor: on improving the quality of our technical meetings (1968) (1)
- Give Meaning to the Status of Software Engineer (2003) (1)
- Less restrictive constructs for structured programs (2001) (1)
- The use of mathematics in software engineering (2000) (1)
- Two positions on licensing (2000) (1)
- Basic Research in Support of Concurrent Fault Monitoring in Modular Digital Systems. (1978) (1)
- Software Missing in Action: A Personal (2011) (0)
- Modularity in the New Mihenium: a Panel Summary (2003) (0)
- A documentation approach for the self-adaptive system design (2010) (0)
- Interface Specifications for SCR (Software Cost Reduction) (A-7E) Extended Computer Module. Revised. (1984) (0)
- Andreas Brennecke , (2006) (0)
- Ten Myths About Y2K Inspections. (1999) (0)
- Practical Methods for Code Documentation and Inspection (Dagstuhl Seminar 9720) (2021) (0)
- The impact of money-free computer assisted barter systems (2001) (0)
- DAVIDLORGEPARNAS,PAULC.CLEMENTS,AND DAVIDM.WEISS (1985) (0)
- On the Design and Development of E 1 rpFnneialniIies (1976) (0)
- Systematic Techniques for Inspecting Critical Software (1999) (0)
- ASPECTS OF STRATEGIC DEFENSE SYSTEMS A former member of the SD 10 Panel on Computing in Support of Battle Management explains why he believes the “ star wars ” effort will not achieve its (1999) (0)
- Software Engineering Principles 3-14 August 1981, (1981) (0)
- Ethics and Military Technology: Star Wars (1997) (0)
- Concurrency and scheduling (2001) (0)
- Myths and Methods: Is There a Scientific Basis for Y2K Inspections ? (1999) (0)
- Inside Risks The Risks of Stopping Too Soon (2011) (0)
- Supporting Customer-Supplier Relationships: Requirements Engineering and Quality Assurance (Dagstuhl Seminar 02361) (2021) (0)
- Precise software documentation: making object-orientation work better (2007) (0)
- State table analysis of programs in an algo-like language (1966) (0)
- Requirements Capture, Documentation and Validation (Dagstuhl Seminar 99241) (2021) (0)
- Why We Would Never Trust the SDI Software (1986) (0)
- Recherche). Thanks to Martin Feather and Steve Fickas for Encouragements and Critical Remarks, and to the Fse Reviewers for Helpful Comments and Suggestions. References (1996) (0)
- Software Engineering Research and Education: Seeking a new Agenda Taking Stock of Software Engineering Research and Education What do we know? What should we know? (1999) (0)
- Operating Systems a Large Semaphore Based Operating System (0)
- Software Engineering Research Agendas Panel (SERA): What Can't We Do, But Need to Learn How to Do? (2001) (0)
- Making Mathematical Methods More Practical for Software Developers (Invited Talk) (2000) (0)
- RelMiS 2001 - Preface (2001) (0)
- Abstract Types Defined as Classes of Variables 4- 4 (2000) (0)
- Evaluation criteria for abstract machines with unknown applications (1975) (0)
- Software engineering research agendas panel (SERA) (panel session): “what can't we do, but need to learn how to do?” (2001) (0)
- The Use of Mathematics in Software Development - (Extended Abstract) (2011) (0)
- What to publish? (2008) (0)
- Using Model Checking and Simula- Tion to Detect a Safety Violation in a Control System Speciication. Submitted for Publication (1998) (0)
- The use of mathematics in software quality assurance (2012) (0)
- Building on rock: from mills'program functions to tabular notation (1999) (0)
- Definition and Documentation of Software Architectures (2001) (0)
- Claims of Progress and Industrial Adoption Really Rethinking 'formal Methods' (0)
- Document-driven Software Design - A Novel Approach that Should Not Be Novel (2007) (0)
- Engineering Mathematics (1996) (0)
- A procedure for interface design (2003) (0)
- Software quality research: why, what and how (2003) (0)
- Tools for Component Documentation, Analysis and Testing (1999) (0)
- ACM (Association of Carriage Manufacturers): SIGTRANS notices -- another historical item (1977) (0)
- Requirements Capture, Documentation, and Validation Using Formal Methods in Uml to Verify Requirement Properties on Specifications .7 Lessons Learnt in Transferring Formal Requirements Validation Techniques to Design for Test – Ensuring That Specifications Guarantee Testability...................... (1999) (0)
- Software Engineering Research and Education: Seeking a new Agenda (Dagstuhl Seminar 99071) (2021) (0)
- Star wars software. (1986) (0)
- Requirements Capture , Documentation , and Validation June , 13-18 1999 (1999) (0)
- University Programmes in Software Development (2001) (0)
- Where to publish? (1968) (0)
- Organizing, and documenting component-oriented toolkits (2000) (0)
- Requirements-based Monitor s for Real-Time Systems (2000) (0)
- Transformation Tools : Why and How 1 (1996) (0)
- Functional Specifications for Old (and New) Software (1990) (0)
- Dagstuhl Seminar on Practical Methods for Code Documentation and Inspection (2008) (0)
- Why Software Jewels (1996) (0)
- Title Fault propagation in tabular expression-based specifications (2009) (0)
- Decomposition of software into components (2003) (0)
- On iterative constructs (1990) (0)
This paper list is powered by the following services:
Other Resources About David Parnas
What Schools Are Affiliated With David Parnas?
David Parnas is affiliated with the following schools: