Software Engineering Practice
Practice is a broad array of concepts, principles, methods, and tools that you must consider as software is planned and developed. It represents the detailsthe technical considerations and how tosthat are below the surface of the software processthe things that youll need to actually build high-quality computer software Two topics categories are considered:
Software Engineering Practice
Concepts, Principles and Methods
Patterns
Books
Software Engineering Practice
Software Engineering Practice - 1
Brad Appleton's comprehensive collection of software engineering links. Addressed virtually every aspect of the practice. Highly recommended.
Software Engineering Practice - 2
ITT Software Engineering Group's resource list.
Software Engineering Practice - 3
A categorized and very comprehensive hotlist developed by Dick Botting at California State University, San Bernadino. Highly recommended.
A Survey of Practice
Pointers to process and practice topics that range from agile methods to design methods and paradigms.
Software Engineering Institute (SEI)
The center of the software engineering world papers, commentary, resources and the CMM/CMMI. Highly recommended.
Software-engineer.org
A website is dedicated to free information sharing between software engineers (i.e. professionals, faculty members and students).
SIGSOFT
The ACM special interest group on software engineering. News, publications and conference announcements.
Concepts, principles and methods
Ten Essentials for Software Engineering
Steve McConnell defines 10 essential practices. Recommended.
SPMN Lessons Learned
The SPMN has developed a collection of concise lessons learned about virtually every facet of software engineering practice. Highly recommended.
Seven Principles
David Hooker's 7 principles of good software development.
Software Enginneering - Articles and Commentary
29 articles on a variety of software engineering topics.
Software Engineering Methods - 1
A brief taxonomy of software engineering methods.
Software Engineering Methods - 2
Literate Programming
Commentary, articles, examples, downloads of good software engineering practice.
SEI Software Engineering Glossary
If you need to understand terminology, this is the place to look.
The Real World (or at least one interpretation of it)
A very readable and enjoyable excerpt from Ellen Ullman's book, Close to the Machine: Technophilia and its Discontents.
Patterns
Note: Specific patterns for analysis, design, testing, and other areas of software engineering practice may be found under the appropriate topic listing within RSP&A software engineering resources.
Patterns Concepts and Terminology
Brad Appleton has written one of the best discussions of patterns available on the Web. Very thorough and readble. Highly recommended.
Patterns Overview
A brief discussion of patterns as a problem solving discipline.
Software Patterns
A somewhat dated but still important CACM editorial that discusses the values that motivate patterns users.
Pattern-Based Software Engineering
An overview presented as a slide presentation.
Books 
Customer communication is a critically important activity in software engineering, yet few practitioners spend any time reading about it. Books by Pardee (To Satisfy and Delight Your Customer, Dorset House, 1996) and Karten (Managing Expectations, Dorset House, 1994) provide much insight into methods for effective customer interaction. Communication and planning concepts and principles are considered in many project management books. Useful project management offerings include: Hughs and Cotterell (Software Project Management, second edition, McGraw-Hill, 1999), Phillips (The Software Project Managers Handbook, IEEE Computer Society Press, 1998), McConnell (Software Project Survival Guide, Microsoft Press, 1998), and Gilb (Principles of Software Engineering Management, Addison-Wesley, 1988).
Virtually every book on software engineering contains a useful discussion on concepts and principles for analysis, design and testing. Among the better offerings are books by Pressman (Software Engineering: A Practitioner's Approach, sixth edition, McGraw-Hill, 2004), Endres and his colleagues (Handbook of Software and Systems Engineering, Addison-Wesley, 2003), Sommerville (Software Engineering, sixth edition, Addison Wesley, 2000), Pfleeger (Software Engineering: Theory and Practice, Prentice-Hall, 2001) and Schach (Object-Oriented and Classical Software Engineering, McGraw-Hill, 2001). An excellent collection of software engineering principles has been compiled by Davis(Principles of Software Development, McGraw-Hill, 1995).
Modeling concepts and principles are considered in many books dedicated to requirements analysis and/or software design. Young (Effective Requirements Practices, Addison-Wesley, 2001) emphasizes a joint team of customers and developers who develop requirements collaboratively. Weigers (Software Requirements, Microsoft Press, 1999) presents many key requirement engineering and requirements management practices. Somerville and Kotonya (Requirements Engineering: Processes and Techniques, Wiley, 1998) discuss elicitation concepts and techniques and other requirement engineering principles.
Normans (The Design of Everyday Things, Currency/Doubleday, 1990) is must reading for every software engineer who intends to do design work. Winograd and his colleagues (Bringing Design to Software, Addison-Wesley, 1996) have edited an excellent collection of essays that address practical issues for software design. Constantine and Lockwood (Software for Use, Addison-Wesley, 1999) present the concepts associated with user centered design. Tognazzini (Tog on Software Design, Addison-Wesley, 1995) presents a worthwhile philosophical discussion of the nature of design and the impact of decisions on quality and a teams ability to produce software that provides great value to its customer.
Hundreds of books address one or more elements of the construction activity. Kernighan and Plauger (The Elements of Programming Style, second edition, McGraw-Hill, 1978) have written a classic text on programming style, McConnell (Code Complete, Microsoft Press, 1993) presents pragmatic guidelines for practical software construction, Bentley ( Programming Pearls, second edition, Addison Wesley, 1999) suggests a wide variety of programming pearls, Knuth (The Art of Computer Programming, 3 volumes, Addison-Wesley, 1998) has written a classic three volume series on the art of programming, and Hunt (The Pragmatic Programmer, Addison-Wesley, 1999) suggests pragmatic programming guidelines. The testing literature has blossomed over the past decide. Myers (The Art of Software Testing, Wiley,1978) remains a classic. Books by Whittaker (How to Break Software, Addison-Wesley, 2002), Kaner and his colleagues (Lessons Learned in Software Testing, Wiley, 2001), and Marick (The Craft of Software Testing, Prentice-Hall, 1997) each present important testing concepts and principles and much pragmatic guidance.