David Notkin
#74,181
Most Influential Person Now
American professor and software engineer
David Notkin's AcademicInfluence.com Rankings
David Notkincomputer-science Degrees
Computer Science
#2803
World Rank
#2934
Historical Rank
#1173
USA Rank
Software Engineering
#120
World Rank
#120
Historical Rank
#55
USA Rank
Database
#6929
World Rank
#7171
Historical Rank
#837
USA Rank
Download Badge
Computer Science
David Notkin's Degrees
- PhD Computer Science Carnegie Mellon University
- Masters Computer Science Carnegie Mellon University
- Bachelors Computer Science Cornell University
Similar Degrees You Can Earn
Why Is David Notkin Influential?
(Suggest an Edit or Addition)According to Wikipedia, David Notkin was an American software engineer and professor of computer science. Early life and education Notkin was born in 1955 in Syracuse, New York, U.S. He pursued his Sc. B. degree from Brown University, graduating in 1977, and later received his doctoral degree from Carnegie Mellon University in 1984. He then moved to Seattle and joined as a faculty at the University of Washington. His interest was in software engineering, with a particular focus on software evolution.
David Notkin's Published Works
Published Works
- Dynamically discovering likely program invariants to support program evolution (1999) (1396)
- An empirical study of code clone genealogies (2005) (601)
- ArchJava: connecting software architecture to implementation (2002) (589)
- Software reflexion models: bridging the gap between source and high-level models (1995) (577)
- Software Reflexion Models: Bridging the Gap between Design and Implementation (2001) (420)
- Model checking large software specifications (1996) (370)
- Gandalf: Software development environments (1986) (350)
- An ethnographic study of copy and paste programming practices in OOPL (2004) (311)
- Symstra: A Framework for Generating Object-Oriented Unit Tests Using Symbolic Execution (2005) (300)
- Using role components in implement collaboration-based designs (1996) (273)
- Quickly detecting relevant program invariants (2000) (263)
- An Empirical Analysis of C Preprocessor Use (2002) (237)
- An empirical study of static call graph extractors (1996) (223)
- Automated support for program refactoring using invariants (2001) (219)
- Dynamically discovering likely program invariants (2000) (217)
- Proactive detection of collaboration conflicts (2011) (217)
- Automated assistance for program restructuring (1993) (215)
- Discovering and representing systematic code changes (2009) (196)
- Reconciling environment integration and software evolution (1992) (193)
- Formalizing Design Spaces: Implicit Invocation Mechanisms (1991) (183)
- Rostra: a framework for detecting redundant object-oriented unit tests (2004) (167)
- Automatic Inference of Structural Changes for Matching across Program Versions (2007) (148)
- Lightweight lexical source model extraction (1996) (148)
- Architectural Reasoning in ArchJava (2002) (146)
- Semi-automatic update of applications in response to library changes (1996) (144)
- The GANDALF project (1985) (136)
- Empirically revisiting the test independence assumption (2014) (132)
- Using tool abstraction to compose systems (1992) (114)
- Program element matching for multi-version program analyses (2006) (111)
- Using C++ Templates to Implement Role-Based Designs (1996) (105)
- Computer science in Japanese universities (1993) (101)
- Interconnecting heterogeneous computer systems (1988) (91)
- Language Support for Connector Abstractions (2003) (87)
- Voyeur: graphical views of parallel programs (1988) (86)
- Reconciling environment integration and component independence (1990) (82)
- Using twinning to adapt programs to alternative APIs (2010) (78)
- Tool-assisted unit-test generation and selection based on operational abstractions (2006) (77)
- Early Detection of Collaboration Conflicts and Risks (2013) (77)
- Adding Implicit Invocation to Languages: Three Approaches (1993) (74)
- Reasoning about implicit invocation (1998) (70)
- Mutually Enhancing Test Generation and Specification Inference (2003) (70)
- Speculative analysis of integrated development environment recommendations (2012) (70)
- Reengineering Reflexion Models: A Case Study (1997) (69)
- Tool-assisted unit test selection based on operational violations (2003) (67)
- Heterogeneous computing environments: report on the ACM SIGOPS workshop on accommodating heterogeneity (1987) (67)
- Identifying and Summarizing Systematic Code Changes via Rule Inference (2013) (66)
- Reengineering with Reflection Models: A Case Study (1997) (65)
- Assessing software libraries by browsing similar classes, functions and relationships (1999) (65)
- Checking inside the black box: regression testing by comparing value spectra (2005) (63)
- Editorial—looking back (2013) (57)
- Combining Constraint Solving and Symbolic Model Checking for a Class of a Systems with Non-linear Constraints (1997) (56)
- Decoupling change from design (1996) (51)
- Using a clone genealogy extractor for understanding and supporting evolution of code clones (2005) (51)
- Using Role Components to Implement Collaboration-Based Designs (1996) (47)
- Future of Mining Software Archives: A Roundtable (2009) (46)
- Communication patterns of agile requirements engineering (2011) (46)
- A framework for preprocessor-aware C source code analyses (2000) (46)
- Improving efficiency of symbolic model checking for state-based system requirements (1998) (45)
- Lightweight source model extraction (1995) (43)
- Evaluating The Mediator Method: Prism as a Case Study (1996) (40)
- Speculative analysis: exploring future development states of software (2010) (39)
- A name service for evolving heterogeneous systems (1987) (38)
- Automatic Extraction of Object-Oriented Observer Abstractions from Unit-Test Executions (2004) (38)
- Optimizing Symbolic Model Checking for Statecharts (2001) (37)
- Crystal: precise and unobtrusive conflict warnings (2011) (36)
- Scalable Abstractions for Parallel Programming (1990) (36)
- Detecting Redundant Unit Tests for AspectJ Programs (2006) (36)
- Experiences with poker (1988) (35)
- Correction to "Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool" (1995) (32)
- Automated Test Generation for AspectJ Programs (2005) (31)
- Checking inside the black box: regression testing based on value spectra differences (2004) (28)
- Extension and software development (1988) (24)
- Identifying program, test, and environmental changes that affect behaviour (2011) (24)
- Dynamically Discovering Program Invariants Involving Collections (2000) (23)
- Making offline analyses continuous (2013) (23)
- Proceedings of the 43rd International Conference on Software Engineering (2013) (22)
- Towards a Formal Treatment of Implicit Invocation (1997) (22)
- A flexible communication abstraction for nonshared memory parallel computing (1990) (22)
- Abstractions for Portable, Scalable Parallel Programming (1998) (21)
- Error reporting with graduated color (1992) (20)
- An Empirical Study of Java Dynamic Call Graph Extractors (2001) (19)
- Interactive structure-oriented computing (1984) (19)
- Architecture-centric programming for adaptive systems (2002) (17)
- Towards a Formal Treatment of Implicit Invocation Using Rely/Guarantee Reasoning (1998) (17)
- Strategic directions in software engineering and programming languages (1996) (17)
- ALOE Users' and Implementors' Guide, (1981) (17)
- Using a clone genealogy extractor for understanding and supporting evolution of code clones (2005) (17)
- Panel: empirical validation: what, why, when, and how (2003) (17)
- An Assessment of Software Engineering Body of Knowledge Efforts (2000) (16)
- Longitudinal program analysis (2002) (16)
- Program Structuring for Effective Parallel Portability (1993) (15)
- Automatically identifying special and common unit tests for object-oriented programs (2005) (15)
- Decoupling synchronization from local control for efficient symbolic model checking of statecharts (1999) (15)
- Cheating Policy in a Computer Science Department (1980) (15)
- Reducing Feedback Delay of Software Development Tools via Continuous Analysis (2015) (15)
- The relationship between software development environments and the software process (1989) (14)
- Improving Generation of Object-Oriented Test Suites by Avoiding Redundant Tests (2004) (14)
- Exploiting Synergy Between Testing and Inferred Partial Specifications (2003) (13)
- Debugging Parallel Programs using Graphical Views (1988) (13)
- Enhancement through extension: the extension interpreter (1987) (13)
- Guest Editors' Introduction: Integrated Design and Programming Environments (1987) (12)
- Automatic Extraction of Sliced Object State Machines for Component Interfaces (2004) (12)
- White-box approaches for improved testing and analysis of configurable software systems (2009) (12)
- Computer-aided vs. manual program restructuring (1992) (12)
- First workshop on economics-driven software engineering research (1999) (11)
- Improving IDE recommendations by considering global implications of existing recommendations (2012) (10)
- Programming Solutions to the Algorithm Contraction Problem (1986) (9)
- Component-Oriented Programming in ArchJava (2001) (9)
- Analyzing and inferring the structure of code change (2008) (9)
- A heterogeneous distributed file system (1990) (8)
- Checking Inside the Black Box: Regression Fault Exposure and Localization Based on Value Spectra Differences (2002) (8)
- Software, Software Engineering and Software Engineering Research: Some Unconventional Thoughts (2009) (8)
- Extending and Managing Software Reflexion Models (1997) (8)
- Electronic "How Things Work" Articles: Two Early Prototypes (1993) (8)
- Performance implications of design alternatives for remote procedure call stubs (1989) (7)
- Proxies: A software structure for accommodating heterogeneity (1990) (7)
- Structured programming in assembly language (1976) (7)
- Abstractions for effectively portable shared memory parallel programs (1990) (7)
- Letter from the executive committee (1996) (6)
- SIGSOFT '93: Foundations of Software Engineering (1993) (5)
- Illustrating object-oriented library reuse by example: a tool-based approach (1998) (5)
- Discovering and Representing Logical Structure in Code Change (2007) (5)
- A study of evolution in the presence of source-derived partial design representations (2004) (5)
- Reasoning About Interactive Systems (1988) (5)
- Enhancing static source code search with dynamic data (2010) (4)
- Macro and Micro Perspectives on Strategic Software Quality Assurance in Resource Constrained Environments (2002) (4)
- Speculative Identification of Merge Conflicts and Non-Conflicts University of Washington Technical Report UW-CSE-10-0301 (2010) (4)
- Mediators in a Radiation Treatment Planning Environment (1995) (4)
- Applying software process models to the full lifecycle is premature (1988) (4)
- Symbolic model checking for large software specifications (1999) (4)
- On the use of static typing to support operations on frameworks (1996) (3)
- Automatically Identifying Special and Common Unit Tests Based on Inferred Statistical Algebraic Abstractions (2004) (3)
- Predicting Development Trajectories to Prevent Collaboration Conflicts (2012) (3)
- Experiences with the Application of Symbolic Model Checking to the Analysis of Software Specifications (1999) (3)
- Panel: empirical alidation-what, why, when, and how (2003) (2)
- SIGSOFT '93 : Proceedings of the First ACM SIGSOFT Symposium on the Foundations of Software Engineering, Los Angeles, California, USA, December 7-10, 1993 (1993) (2)
- The Interaction Between Static Typing and Frameworks (2007) (2)
- How Port Ensembles Aid the Efficient Retargeting of Reduction Algorithms (1990) (2)
- Intellectual property issues in software (panel) (1999) (2)
- Accommodating Heterogeneity (1987) (1)
- Integrating heterogeneous local mail systems (1989) (1)
- Multi-Version Program Analysis (2006) (1)
- Connecting software design principles to source code for improved ease of change (2005) (1)
- An exploratory approach to software reuse (2000) (1)
- An experience with parallelism in Ada (1980) (1)
- Nico Habermann remembered (1993) (1)
- First workshop on developing tools as plug-ins: (TOPI 2011) (2011) (1)
- Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering (1993) (1)
- Proceedings of the 1st Workshop on Developing Tools as Plug-ins (2011) (1)
- 05261 Summary - Multi-Version Program Analysis (2005) (1)
- Decoupling Synchronization from Logic for Efficient Symbolic Model Checking of Statecharts (1998) (1)
- An experience with parallelism in Ada (1980) (1)
- The Relationship Between Software Development Environments and the Software Process (Panel Session Introduction) (1988) (1)
- Architectural Reasoning in ArchJava1 (2002) (1)
- ACM TOSEM: FAQs and figures (2007) (0)
- Difficulties with Object-Oriented Frameworks (1993) (0)
- Test Dependence : Theory and Manifestation University of Washington Technical Report UW-CSE-1307-02 (2013) (0)
- A framework for preprocessor‐aware C source code analyses (0)
- Third international workshop on economics-driven software engineering research (2001) (0)
- FAQs and figures (2007) (0)
- Parallel debugging using graphical views. Technical report (1988) (0)
- Introduction to the special section from the ACM international symposium on software testing and analysis (ISSTA 2006) (2008) (0)
- 05261 Abstracts Collection - Multi-Version Program Analysis (2005) (0)
- Call for Tutorials and Workshops Sixth International Conference on Formal Engineering Methods (ICFEM 2004) (2004) (0)
- Developing tools as plug‐ins: TOPI 2011 special issue editorial (2013) (0)
- High-performance computer-programming environments. Final report, 1 October 1987-30 September 1988 (1988) (0)
- Multi-Version Program Analysis Dagstuhl Seminar (2006) (0)
- Panel: perspectives on software engineering (2001) (0)
- Identifying opaque behavioural changes (2011) (0)
- Distributable defect localization using markov models (2005) (0)
- Unconventional Views on Conventional Wisdom about Software Engineering Research (2006) (0)
- Panel: Intellectual Property Issues in Software. (1999) (0)
- Design snippets: partial design representations extracted from source code (2004) (0)
- ORCA Project: Research on high-performance parallel computer programming environments. Final report, 1 Apr-31 Mar 90 (1990) (0)
- 7. Conclusions 6. Related Works 5. Dealing with Inconsistencies Table 4. Design-code Class Comparison: Re- Sults Using Identity Criterion under the Re- Vised Matching Process (1998) (0)
- Guest Editorial Introduction to the Special Section (1996) (0)
- Industrially validating longitudinal static and dynamic analyses (2012) (0)
- Proceedings - International Conference on Software Engineering: Preface (2011) (0)
- 7th international workshop on economics-driven software engineering research (2005) (0)
- Session details: People are people, so ... (2008) (0)
- \augmenting Pattern-based Architectural Recov- Ery with Flow Analysis: Mosaic -a Case Study", 5 Conclusion and Future Work (1997) (0)
- Proceedings of Conference on Software : theory and practice : August 21-25, 2000, Beijing, China (2000) (0)
- Using Relaxed Class Diagram Intersection to Ease Object-oriented Library Selection (1998) (0)
- The Lifeblood of Our Field (1998) (0)
- ACM TOSEM: FAQs and Figures (2007) (0)
- Scalable Abstractions for Para rogramming (1990) (0)
- TOSEM news (2012) (0)
- High Performance Computer Programming Environments (1988) (0)
- FAQs and figures (2007) (0)
- Nico Habermann's research: a brief retrospective (1994) (0)
- Multi-Version Program Analysis, 26. June - 1. July 2005 (2006) (0)
- FAQs and figures (2009) (0)
- ACM TOSEM FAQs and figures (2007) (0)
- Guest Editorial: Introduction to the Special Section Best Papers of the 17th International Conference on Software Engineering (ICSE-17) (1996) (0)
- Dynamically detecting relevant program invariants (2000) (0)
- - 1The Interaction Between Static Typing and Frameworks (1993) (0)
- Supporting Ease of Change in the Context of Code (2004) (0)
- FSE 96 special session: novel notions, wild ideas, and fun flames (1997) (0)
- Detecting Unforeseen Program Behaviours (2010) (0)
- 4 References Passive Data Repository Computational Uni-/bi-directional Control Flow Uni-/bi-directional Data Flow Exercise: Using a Revised Saam to Evaluate Kwic (0)
- Dessert Island (2007) (0)
- Session details: Columns (2000) (0)
- SIGPLAN and SIGSOFT Joint Efforts (1998) (0)
- Speclail Section Interconnecting Heterogeneous Computer Systems (1999) (0)
- Exposing unforeseen consequences of software change (2010) (0)
- Parallel Debugging Using Graphical Views (1988) (0)
This paper list is powered by the following services:
Other Resources About David Notkin
What Schools Are Affiliated With David Notkin?
David Notkin is affiliated with the following schools: