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 overview
A general overview of the subject at Wikipedia.
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
Software Engineering Practice - 3
A categorized and very comprehensive hotlist developed by Dick Botting at California State University, San Bernadino. Highly recommended.
Software engineering concepts links
Use SE links presented for use in an MIT course.
Concepts, principles and methods
Concepts
Top Ten Software Engineering Concepts.
A downloadable presentation by Ed Yourdon, one of the most widely-known commentators on the subject.
Software Engineering - Reason and a Concept!
A brief commentary.
Software Engineering concepts
A survey of a few important concepts.
Ten Essentials for Software Engineering
Steve McConnell defines 10 essential practices. Recommended.
Software Engineering Concepts-Class Notes
Class notes prepared by Professor Nancy Leveson at MIT.
Software Engineering - Concepts and Design Principles
A downloadable white paper.
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.
Principles and Methods
Principles of Software Engineering
A worthwhile essay on a number of important SE principles.
Software Engineering Principles
An editorial comment by Steve McConnell in IEEE Software. Recommended.
Seven Principles
David Hooker's 7 principles of good software development.
SPMN Lessons Learned
The SPMN has developed a collection of concise lessons learned about virtually every facet of software engineering practice. Highly recommended.
Software Engineering - 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.
A software engineering cartoon
Building a child's rubber tire swing.
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.
Also see our page, Patterns-Based Design.
Software Patterns
Guest editorial for the CACM, Special Issue on Patterns and Pattern Languages
Patterns and Software: Essential Concepts and Terminology
An extensive list of patterns concepts and resources. Recommended.
Christopher Alexander: The Timeless Way of Building
Alexander's seminal paper on patterns. Recommended.
History Of Patterns
A history with many important resource links.
The Software Patterns Criteria
Proposed definitions for evaluating software pattern quality
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.
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
Microsoft's view on the subject.
pdf: Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture
This paper discusses "an approach not only leads to highly flexible and reusable design solutions, but also provides traceability of requirements in design solutions making maintenance less tedious."
Books
Customer communication is a critically important activity in software engineering, yet few practitioners spend any time reading about it. . The following books provide useful insight:
To Satisfy and Delight Your Customer
Managing Expectations
Customer Centered Products: Creating Successful Products Through Smart Requirements Management
Effective Requirements Practices
Requirements Engineering: Processes and Techniques
Communication and planning concepts and principles are considered in many project management books. Useful project management offerings include:
Essentials of Software Project Management
Effective Project Management: Traditional, Adaptive, Extreme
Lean Project Management: Eight Principles For Success
Software Project Management
Applied Software Project Management
Software Project Management
The Software Project Managers Handbook
Software Project Survival Guide
Principles of Software Engineering Management
Virtually every book on software engineering contains a useful discussion on concepts and principles for analysis, design and testing. In addition to Software Engineering: A Practitioner's Approach, a number of other offering are notable:
Swebok: Guide to the Software Engineering Body of Knowledge
An Integrated Approach to Software Engineering
Software Engineering: Theory and Practice (2nd Edition)
Object-Oriented and Classical Software Engineering
Software Engineering eighth edition
Modeling concepts and principles are considered in many books dedicated to requirements analysis and/or software design. Among them are:
The Art of Software Modeling
Use Case Driven Object Modeling with UML
Business Modeling With UML: Business Patterns at Work
Effective Requirements Practices emphasizes a joint team of customers and developers who develop requirements collaboratively.
Software Requirements presents many key requirement engineering and requirements management practices.
Requirements Engineering: Processes and Techniques discusses elicitation concepts and techniques and other requirement engineering principles.
The Design of Everyday Things is must reading for every software engineer who intends to do design work.
Bringing Design to Software is an excellent collection of essays that address practical issues for software design.
Software for Use presents the concepts associated with user centered design.
Tog on Software Design 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.
Model-Driven Software Development: Technology, Engineering, Management
Hundreds of books address one or more elements of the construction activity. Among the best are:
The Elements of Programming Style is a classic text on programming style
Code Complete presents pragmatic guidelines for practical software construction
Programming Pearls suggests a wide variety of programming pearls
The Art of Computer Programming is a classic three volume series on the art of programming
The Pragmatic Programmer suggests pragmatic programming guidelines.
The testing literature has blossomed over the past decide. Among offerings that present important testing concepts and principles and much pragmatic guidance are:
The Art of Software Testing (a classic)
How to Break Software
Lessons Learned in Software Testing
The Craft of Software Testing