A science of design for software-intensive systems

  title={A science of design for software-intensive systems},
  author={Peter Freeman and David Hart},
  journal={Commun. ACM},
Computer science and engineering needs an intellectually rigorous, analytical, teachable design process to ensure development of systems we all can live with. 
A Science of Software Design
This paper reviews the elementary ideas upon which these algebras rest and argues that they define the basis for a science of software design.
The Philosophy of Computer Science
Improving Coverage of Design in Information Systems Education
The paper recommends adding numerous topics related to design candidate generation including means-ends analysis, sketching, storyboarding and problem modeling to improve coverage of crucial design topics.
A teleological process theory of software development
Results from a pilot case suggest that the observed behaviors of the development team are better described by the proposed theory than by the FBS Framework.
Towards the Correctness of Software Behavior in UML: A Model Checking Approach Based on Slicing
An UML-based verification method that checks whether the conditions on the evolution of the embedded system are met by the model, and suggests the integration of the slicing (reduction) technique.
Introducing an Empirical Model of Design
The Empirical Model is intended to replace the Rational Model as a foundation for design methods and practices, design education and design science research.
Thinging as a Way of Modeling in Poiesis: Applications in Software Engineering
This paper proposes adopting a recent addition to the diagrammatic languages, the thinging machine (abbreviated TM), as a design language in the general area of Poiesis and exemplify TM by applying it to software engineering design.
PDISC - Towards a Method for Software Product DISCovery - Type: Exploratory Paper
PDISC helps practitioners to conduct early activities in a systematic way in order to create a product vision and form a method database that is used to develop PDISC.
A Critical Analysis of Topics in Software Architecture and Design
From the analysis derived, stakeholder’s involvement and decision in software design is an integral part in software building for effective use, making researchers dwell more on the topic.


Design patterns: elements of reuseable object-oriented software
The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out
The Central Role of Design in Software Engineering
It is essential that software engineering education provide solid and in-depth instruction in design, as this activity is the central integrating activity that ties the others together.
A Theory of Objects
This book takes a novel approach to the understanding of object-oriented languages by introducing object calculi and developing a theory of objects around them, which covers both the semantics of objects and their typing rules.
The american heritage dictionary of the english language
Phospholene oxide polymer and process for preparation. The polymers are useful as flame retardants.
David Hart (dhart@nsf.gov) is an information specialist in the National Science Foundation’s Office of Legislative and Public Affairs in Arlington, VA
  • The Sciences of the Artificial,
  • 2004
Pattern Detection in SPQR
  • UNC CS Dept. TR03-032, submitted to Int’l Conf. On Software Engineering
  • 2004
TR03-032, submitted to Int'l Conf. On Software Engineering
  • TR03-032, submitted to Int'l Conf. On Software Engineering
  • 2004
Elemental Design Patterns: A Formal Semantics for Composition o Architecture
  • 27th Annual IEEE/NASA Software Engineering Laboratory Workshop, Greenbelt, MD, Dec. 5-6, 2002, 8pp.
  • 2002