Home

  About Us

  Products

  Process Models

  SE Resources

  Commentary

  Contact us

Breaking News!

A new blog ... visit OnCenter, Roger Pressman's running commentary on the world at large

A new edition ... the 6th edition of Software Engineering is available now

A first novel ... Roger Pressman's first novel is a technothriller -- The Aymara Bridge

A new training curriculum! RSP&A has partnered with QAI to develop a comprehensive Internet-based software engineering curriculum.

A redesigned Web site ... we've done a major redesign and added many new features

 
Software Engineering Resources


Software Design Engineering
Design is a meaningful engineering representation of something that is to be built. It can be traced to a customer's requirements and at the same time assessed for for quality against a set of predefined criteria for 'good' design. In the software engineering context, design focuses on four major areas of concern, data, architecture, interfaces, and components. In this section, we present design engineering resources that address:

Design Principles and Concepts

Object-Oriented Design Principles and Concepts

Patterns-Based Software Design

Patterns Catalogs

Design Modeling using UML

Books

Design Principles and Concepts

Design Concepts and Principles

A collection of useful articles on design prepared by software-engineer.org.

Is Design Dead?

A thought-provoking treatise by Martin Fowler that discusses design within the context of agile methods.

Keep It Simple

An article on design written by Steve McConnell. Recommended.

Basic Design Principles - 1

A brief discussion of basic principles with an emphasis on OOD.

Software Design Principles - 2

Characteristics of good and bad designs

Software Design Concepts - Tutorial

An useful overview of many important software deisgn conceptspresented in a quasi-slide-like presentation.

The Software Design Process

A description of design as an implementation plan and an aesthetic representation. See also a general description of design.

A State Of The Art Report: Software Design Methods

A detailed report on software design methods including a discussion of all design concepts and principles found in SEPA, Chapter 13.

The Software Portability Home Page

Contains useful resources that address this important design characteristic.

Object-Oriented Design Concepts and Principles

Cetus Links - Object-Orientation

One of the Web's most extensive lists (over 18,000 entries) of OO resources coverign virtually every aspect of the subject. Highly recommended.

OMG Home Page

A wide array of information and resources on object technologies can be found at the Object Management Group's site.

The Object-Oriented Page

Another detailed list of on-line resources for object technologies.

OO Bibliography

A search-oriented bibliography.

OOA/OOD resources

An in-depth collection of OOA/OOD resources including a listing of many OOA/OOD tools. Highly recommended.

OOA/OOD Methods Resources

Cetus has collected links to over 48 OOA/OOD methods, including UML. Highly recommended.

 Responsibility-Driven Design

A brief discussion of OO responsibility-driven design.

Pattern-Based Software Design

Design Patterns Resources - 1

An extensive hotlist containing pointers to virtually everyhting patterns.

Design Patterns Resources - 2

Excellent collection of patterns resources including tutorials, papers, and many other pointers. Recommended.

Design Patterns Resources - 3

Extensive hotlist prepared by CETUS links.

Design Patterns Resources - 4

An extensive hotlist prepared by Scott Ambler. Recommended.

What is a Pattern?

An worthwhile article by James Coplien.

Essential Patterns

Excellent treatment by Brad Appleton. Recomended.

Much Ado About Patterns

Why have patterns become a hot topic in software engineering?

Patterns Tutorials

Pointers to a variety of tutorials on software patterns.

Design Patterns and Pattern Languages

A useful paper prepared by Douglad Schmidt.

Software Technologies Patterns Page

Useful information and a collection of design patterns.

Patterns Catalogs

Portland Pattern Repository

An extensive catalog of design patterns

Design Patterns in Java

A collection of actual design patterns.

The OO Pattern Digest

This site is "dedicated to helping you understand and use Object-Oriented Patterns more effectively and efficiently."

Design Patterns

An extensive collection of patterns and demos

Hypermedia Patterns Repository

A collection of patterns for hypermedia and web applications.

Design Modeling using UML

UML Resource Center

A comprehensive collection of resources prepared by IBM-Rational.

UML Design Center

A worthwhile collection of articles on software design using UML.

CETUS Links - UML

One of the Web's most comprehensive collections of resources.

UML Glossary

If you need a definition of a UML term, this is the place to look. Also contains pointers to reference manuals and process specifications.

OOA/OOD using UML

A discussion of UML notation for Object Oriented Analysis and Design

OO Design Practices using UML

An indepth paper on OO design published by IBM.

UML and Software Design

An overview of basic UML design notation.

UML Examples

Examples of all important UML diagrams

UML Bibliography

Over 400 print references to papers, books, and other resources on UML.

UML Books

A listing (with links) of over 50 books on UML.

UML Notation for Aspect-Oriented Design

A collection of papers that address AOD paradigm using UML.

Books

Donald Norman has written two books, (The Design of Everyday Things, Basic Books, 2002 and The Psychology of Everyday Things, Harpercollins, 1988) that have become classics in the design literature and “must” reading for anyone who designs anything that humans use. Adams (Conceptual Blockbusting, third edition, Addison-Wesley, 1986) has written a book that is essential reading for designers who want to broaden their way of thinking. Finally, a classic text by Polya (How to Solve It, second edition, Princeton University Press, 1988) and a more recent book by Michalewicz and Fogel (How to Solve It: Modern Heuristics, Springer-Verlag, 1999) provide a generic problem-solving process that can help software designers when they are faced with complex problems.

Following in the same tradition, Winograd et al. (Bringing Design to Software, Addison-Wesley, 1996) discusses software designs that work, those that don’t, and why. A fascinating book edited by Wixon and Ramsey (Field Methods Casebook for Software Design, Wiley, 1996) suggests field research methods (much like those used by anthropologists) to understand how end-users do the work they do and then design software that meets their needs. Beyer and Holtzblatt (Contextual Design: A Customer- Centered Approach to Systems Designs, Academic Press, 1997) offer another view of software design that integrates the customer/user into every aspect of the software design process.

McConnell (Code Complete, Microsoft Press, 1993) presents an excellent discussion of the practical aspects of designing high-quality computer software. Robertson (Simple Program Design, third edition, Boyd and Fraser Publishing, 1999) presents an introductory discussion of software design that is useful for those beginning their study of the subject. Fowler and his colleagues (Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999) discusses techniques for the incremental optimization of software designs.

An excellent historical survey of important papers on software design is contained in an anthology edited by Freeman and Wasserman (Software Design Techniques, 4th ed., IEEE, 1983). This tutorial reprints many of the classic papers that have formed the basis for current trends in software design. Measures of design quality, presented from both the technical and management perspectives, are considered by Card and Glass (Measuring Software Design Quality, Prentice-Hall, 1990).

Over the past decade, many books on pattern-based design have been written for software engineers. Gamma and his colleagues (Design Patterns, Addison-Wesley, 1995) have written the seminal book on the subject. Other books by Douglass (Real-Time Design Patterns, Addison-Wesley, 2002), Metsker (Design Patterns Java Workbook, Addison-Wesley, 2002), Juric et al (J2EE Design Patterns Applied, Wrox Press, 2002), Marinescu and Roman (EJB Design Patterns, Wiley, 2002), and Shalloway and Trott (Design Patterns Explained, Addison-Wesley, 2001) discuss design patterns in specific application and language environments. In addition, classic books by the architect Christopher Alexander (Notes on the Synthesis of Form, Harvard University Press, 1964) and (A Pattern Language: Towns, Buildings, Construction, Oxford University Press, 1977) are must reading for a software design who intends to fully understand design patterns.


Site search! We've added links to a search engine that will enable you to search our entire site for information you need. Enter the appropriate word or phrase below.

PicoSearch



Home About us Products Product Models SE Resources Commentary Contact us

Web site and all contents © R.S. Pressman & Associates, Inc. 2001 - 2006, All rights reserved.
Free website templates