Software Development
Development Process |
Design Principles |
Design Patterns |
Requirement Analysis |
Design Quality
Quality Models |
Design Quality Metrics |
Design Quality Characteristics |
O-O Metrics : C&K and MOOD |
McCall's Triangle of Quality
Quality Characteristics
Modularity |
Cohesion |
Coupling |
Understandability |
Sufficiency |
Robustness |
Flexibility |
Reusability |
Efficiency |
Reliability |
|
|
Architectures
Software components |
Key Factors |
Architectural styles |
Quality Attributes
Correctness |
Maintainabilty |
Usability |
Program Representation
AST |
CFG |
Data Dependency Graph |
Optimisations |
Software Evolution
Evolution vs Maintenance |
Laws of Software Evolution |
Staged Model of Evolution |
Legacy Software Evolution |
Wraping, Migration |
Architectural Styles
Layered |
MVC |
Pipe-and-Filter |
Client-Server |
Peer-to-peer |
Service-Oriented |
Publish-Subscribe |
Edge-dominant |
3-Tier / Multi-tier |
Implicit Invocation |
|
|
Design Patterns
Input Control Patterns |
Front Controller, Page Controller |
Request encapsulation and execution pattern |
Command pattern, Application controller, Command processor |
Output Control Patterns |
Template View, Transform View |
Access Control Patterns |
Firewall proxy, Authorization |
Messaging Patterns |
Channel, Endpoint, Translator, Router, scatter-gather, aggregator, splitter |
Object Interaction Patterns |
Observer, Mediator, Facade, Memento, Data Transfer Object, Double dispatch |
Design Principles
Information Hiding |
Separation of Concerns |
Open Close Principle |
Interface Segregation Principle |
Program to Interface |
Dependency Inversion |
Object composition over inheritance |
|
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets