Show Menu
Cheatography

Software Develo­pment

Develo­pment Process
Design Principles
Design Patterns
Requir­ement Analysis

Design Quality

Quality Models
Design Quality Metrics
Design Quality Charac­ter­istics
O-O Metrics : C&K and MOOD

McCall's Triangle of Quality

Quality Charac­ter­istics

Modularity
Cohesion
Coupling
Unders­tan­dab­ility
Suffic­iency
Robustness
Flexib­ility
Reusab­ility
Efficiency
Reliab­ility
 

Archit­ectures

Software components
Key Factors
Archit­ectural styles

Quality Attributes

Correc­tness
Mainta­ina­bilty
Usability

Program Repres­ent­ation

AST
CFG
Data Dependency Graph
Optimi­sations

Software Evolution

Evolution vs Mainte­nance
Laws of Software Evolution
Staged Model of Evolution
Legacy Software Evolution
Wraping, Migration

Archit­ectural Styles

Layered
MVC
Pipe-a­nd-­Filter
Client­-Server
Peer-t­o-peer
Servic­e-O­riented
Publis­h-S­ubs­cribe
Edge-d­ominant
3-Tier / Multi-tier
Implicit Invocation
 

Design Patterns

Input Control Patterns
Front Contro­ller, Page Controller
Request encaps­ulation and execution pattern
Command pattern, Applic­ation contro­ller, Command processor
Output Control Patterns
Template View, Transform View
Access Control Patterns
Firewall proxy, Author­ization
Messaging Patterns
Channel, Endpoint, Transl­ator, Router, scatte­r-g­ather, aggreg­ator, splitter
Object Intera­ction Patterns
Observer, Mediator, Facade, Memento, Data Transfer Object, Double dispatch

Design Principles

Inform­ation Hiding
Separation of Concerns
Open Close Principle
Interface Segreg­ation Principle
Program to Interface
Dependency Inversion
Object compos­ition over inheri­tance
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Python Software Engineering Best Practices Cheat Sheet
          ISTQB Test Automation Engineering Cheat Sheet