Useful Links
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
Principles for Robust and Maintainable Systems
Anticipating Change
Change Analysis
Identifying Volatile Requirements
Technology Evolution
Business Environment Changes
Design for Extensibility
Plugin Architectures
Configuration Management
Parameterization
Design for Portability
Platform Independence
Standard Interfaces
Abstraction Layers
Isolating Volatility
Change-Prone Components
Stable Interfaces
Adapter Patterns
Generality
Reusable Components
Generic Programming
Component Libraries
Framework Development
Parameterization Techniques
Configuration Files
Command-Line Parameters
Environment Variables
Templates and Generics
Avoiding Over-Engineering
YAGNI Principle Application
Balancing Flexibility and Simplicity
Cost-Benefit Analysis
Incrementality
Iterative Development
Incremental Delivery
Spiral Model
Agile Methodologies
Prototyping
Throwaway Prototypes
Evolutionary Prototypes
Proof of Concept
Feedback Integration
User Feedback
Stakeholder Reviews
Continuous Improvement
Risk Management
Early Risk Identification
Risk Mitigation Strategies
Contingency Planning
Previous
3. Principles of Modular Design
Go to top
Next
5. Object-Oriented Design Principles