UsefulLinks
Computer Science
Software Engineering
Software Engineering Principles
1. Introduction to Software Engineering Principles
2. Fundamental Principles for Managing Complexity
3. Principles of Modular Design
4. Principles for Robust and Maintainable Systems
5. Object-Oriented Design Principles
6. General Coding and Simplicity Principles
7. Software Development Lifecycle Principles
8. Architectural and System-Level Principles
9. Advanced Principles and Formal Methods
10. Principles in Practice
4.
Principles for Robust and Maintainable Systems
4.1.
Anticipating Change
4.1.1.
Change Analysis
4.1.1.1.
Identifying Volatile Requirements
4.1.1.2.
Technology Evolution
4.1.1.3.
Business Environment Changes
4.1.2.
Design for Extensibility
4.1.2.1.
Plugin Architectures
4.1.2.2.
Configuration Management
4.1.2.3.
Parameterization
4.1.3.
Design for Portability
4.1.3.1.
Platform Independence
4.1.3.2.
Standard Interfaces
4.1.3.3.
Abstraction Layers
4.1.4.
Isolating Volatility
4.1.4.1.
Change-Prone Components
4.1.4.2.
Stable Interfaces
4.1.4.3.
Adapter Patterns
4.2.
Generality
4.2.1.
Reusable Components
4.2.1.1.
Generic Programming
4.2.1.2.
Component Libraries
4.2.1.3.
Framework Development
4.2.2.
Parameterization Techniques
4.2.2.1.
Configuration Files
4.2.2.2.
Command-Line Parameters
4.2.2.3.
Environment Variables
4.2.2.4.
Templates and Generics
4.2.3.
Avoiding Over-Engineering
4.2.3.1.
YAGNI Principle Application
4.2.3.2.
Balancing Flexibility and Simplicity
4.2.3.3.
Cost-Benefit Analysis
4.3.
Incrementality
4.3.1.
Iterative Development
4.3.1.1.
Incremental Delivery
4.3.1.2.
Spiral Model
4.3.1.3.
Agile Methodologies
4.3.2.
Prototyping
4.3.2.1.
Throwaway Prototypes
4.3.2.2.
Evolutionary Prototypes
4.3.2.3.
Proof of Concept
4.3.3.
Feedback Integration
4.3.3.1.
User Feedback
4.3.3.2.
Stakeholder Reviews
4.3.3.3.
Continuous Improvement
4.3.4.
Risk Management
4.3.4.1.
Early Risk Identification
4.3.4.2.
Risk Mitigation Strategies
4.3.4.3.
Contingency Planning
Previous
3. Principles of Modular Design
Go to top
Next
5. Object-Oriented Design Principles