software development software engineering software development guidelines bottom-up top-down divide and conquer design strategies object-oriented solid single responsibility open/closed liskov substitution interface segregation dependency inversion cohesión separation of interface and implementation modularity information hiding guidelines general principles encapsulation decomposition coupling abstraction
See more