Alcoa: the alloy constraint analyzer
Proceedings of the 22nd international conference on Software engineering
Javiva: a tool for visualizing and validating student-written Java programs
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
On beyond registers: wait-free readable objects
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
BASE: using abstraction to improve fault tolerance
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Striving for mathematical thinking
Working group reports from ITiCSE on Innovation and technology in computer science education
Striving for mathematical thinking
ACM SIGCSE Bulletin
VAlloy - Virtual Functions Meet a Relational Language
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
A Framework to Translate UML Class Generalization into Java Code
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
BASE: Using abstraction to improve fault tolerance
ACM Transactions on Computer Systems (TOCS)
Abstract data types, then and now
Software pioneers
Unit testing: test early, test often
Journal of Computing Sciences in Colleges
Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests
Proceedings of the 19th IEEE international conference on Automated software engineering
Crosscutting techniques in program specification and analysis
Proceedings of the 4th international conference on Aspect-oriented software development
Generalizing symbolic execution to library classes
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Inculcating invariants in introductory courses
Proceedings of the 28th international conference on Software engineering
Automatic extraction of abstract-object-state machines from unit-test executions
Proceedings of the 28th international conference on Software engineering
Korat: A Tool for Generating Structurally Complex Test Inputs
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Towards a Framework for Differential Unit Testing of Object-Oriented Programs
AST '07 Proceedings of the Second International Workshop on Automation of Software Test
Parallel test generation and execution with Korat
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A specification-based approach to testing software product lines
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Efficient recovery of algebraic specifications for stateful components
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
A specification-based approach to testing software product lines
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
Starc: static analysis for efficient repair of complex data
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Assertion-based repair of complex data structures
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Juzi: a tool for repairing complex data structures
Proceedings of the 30th international conference on Software engineering
Deryaft: a tool for generating representation invariants of structurally complex data
Proceedings of the 30th international conference on Software engineering
Efficient solving of structural constraints
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
An empirical study of the design and implementation of object equality in Java
CASCON '08 Proceedings of the 2008 conference of the center for advanced studies on collaborative research: meeting of minds
Synthesizing intensional behavior models by graph transformation
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Interfaces first (and foremost) with Java
Proceedings of the 41st ACM technical symposium on Computer science education
Tool support for crosscutting concerns of API documentation
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Booch's Ada vs. Liskov's java: two approaches to teaching software design
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
OCAT: object capture-based automated testing
Proceedings of the 19th international symposium on Software testing and analysis
Contract-based data structure repair using alloy
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Gradual refinement: blending pattern matching with data abstraction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Library unit development fundamentals
Proceedings of the 48th Annual Southeast Regional Conference
Models and meta models for transactions in web applications
ICWE'10 Proceedings of the 10th international conference on Current trends in web engineering
Multi-level decomposition approach for problem solving and design in software engineering
Proceedings of the 49th Annual Southeast Regional Conference
Incorporating coverage criteria in bounded exhaustive black box test generation of structural inputs
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Synthesizing method sequences for high-coverage testing
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Automatic cross validation of multiple specifications: a case study
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Symstra: a framework for generating object-oriented unit tests using symbolic execution
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Repairing structurally complex data
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Runtime monitoring of functional component changes with behavior models
MODELS'11 Proceedings of the 2011th international conference on Models in Software Engineering
A systematic approach to teaching abstraction and mathematical modeling
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Behavioral validation of JFSL specifications through model synthesis
Proceedings of the 34th International Conference on Software Engineering
Using coverage criteria on RepOK to reduce bounded-exhaustive test suites
TAP'12 Proceedings of the 6th international conference on Tests and Proofs
Test input generation using dynamic programming
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Efficiently generating structurally complex inputs with thousands of objects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Verification rules for exception handling in eiffel
SBMF'12 Proceedings of the 15th Brazilian conference on Formal Methods: foundations and applications
Design pattern-based extension of class hierarchies to support runtime invariant checks
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
What's wrong with git?: a conceptual design analysis
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Science of Computer Programming
Hi-index | 0.01 |
From the Publisher:Written by a world-renowned expert on programming methodology, this book shows how to build production-quality programsprograms that are reliable, easy to maintain, and quick to modify. Its emphasis is on modular program construction: how to get the modules right and how to organize a program as a collection of modules. The book presents a methodology effective for either an individual programmer, who may be writing a small program or a single module in a larger one; or a software engineer, who may be part of a team developing a complex program comprised of many modules. Both audiences will acquire a solid foundation for object-oriented program design and component-based software development from this methodology. Because each module in a program corresponds to an abstraction, such as a collection of documents or a routine to search the collection for documents of interest, the book first explains the kinds of abstractions most useful to programmers: procedures; iteration abstractions; and, most critically, data abstractions. Indeed, the author treats data abstraction as the central paradigm in object-oriented program design and implementation. The author also shows, with numerous examples, how to develop informal specifications that define these abstractionsspecifications that describe what the modules doand then discusses how to implement the modules so that they do what they are supposed to do with acceptable performance. Other topics discussed include: Encapsulation and the need for an implementation to provide the behavior defined by the specification Tradeoffs between simplicity and performanceTechniques to help readers of code understand and reason about it, focusing on such properties as rep invariants and abstraction functions Type hierarchy and its use in defining families of related data abstractions Debugging, testing, and requirements analysis Program design as a top-down, iterative process, and design patterns The Java programming language is used for the book's examples. However, the techniques presented are language independent, and an introduction to key Java concepts is included for programmers who may not be familiar with the language.