Software Architecture and Visualization

SAP Chapter 7

  1. Software Architecture and Design
  2. Software Architecture Style
  3. Data-Based Architecture
  4. Data-Centered Architecture
  5. Data-Flow Architecture
  6. Layered Architecture
  7. Call and Return Architecture
  8. Software Design Principles and Concepts
  9. Abstraction
  10. Refinement
  11. Modularity
  12. Functional Independence
  13. Coupling
  14. Cohesion
  15. Partitioning
  16. Design Documentation
  17. Architectural Mapping
  18. Transform Mapping
  19. Central Transform
  20. First Level Factoring
  21. Revision of First Level Factoring
  22. Transaction Mapping
  23. Identifying the Transaction Center
  24. Factoring Transaction Modules
  25. Software Design Patterns
    (see
  26. Design patterns are recurring solutions to software design problems you find again and again in real-world application development. Design patterns are about design and interaction of objects, as well as providing a communication platform concerning elegant, reusable solutions to commonly encountered programming challenges.
  27. The Gang of Four (GOF)[1] patterns are generally considered the foundation for all other patterns. They are categorized in three groups:
  28. Creational
  29. Abstract Factory - Creates an instance of several families of classes
  30. Builder - Separates object construction from its representation
  31. Factory Method - Creates an instance of several derived classes
  32. Prototype - A fully initialized instance to be copied or cloned
  33. Singleton - A class of which only a single instance can exist
  34. Structural
  35. Adapter - Match interfaces of different classes
  36. Bridge - Separates an object’s interface from its implementation
  37. Composite - A tree structure of simple and composite objects
  38. Decorator - Add responsibilities to objects dynamically
  39. Façade - A single class that represents an entire subsystem
  40. Flyweight - A fine-grained instance used for efficient sharing
  41. Proxy - An object representing another object
  42. Behavioral
  43. Chain of Responsibility - A way of passing a request between a chain of objects
  44. Command - Encapsulate a command request as an object
  45. Interpreter - A way to include language elements in a program
  46. Iterator - Sequentially access the elements of a collection
  47. Mediator - Defines simplified communication between classes
  48. Memento - Capture and restore an object's internal state
  49. Observer - A way of notifying change to a number of classes
  50. State - Alter an object's behavior when its state changes
  51. Strategy - Encapsulates an algorithm inside a class
  52. Template Method - Defer the exact steps of an algorithm to a subclass
  53. Visitor - Defines a new operation to a class without change
  54. User Interface Visualization
  55. Approach to Interface Design
  56. Elements:
  57. Information
  58. Presentation
  59. Behavior
  60. Objects
  61. Interface
  62. Control
  63. Entity
  64. Interface Design Considerations
  65. Response Time of System
  66. Help Facilities for Users
  67. Error Handling
  68. Interface Design Tools
  69. Guidelines for User Interface Design
  70. User Interface Development
  71. Analysis
  72. Users
  73. Functions
  74. Environment
  75. Design
  76. Validation
  77. Evaluating Interface Design
  78. Preliminary Design
  79. Evaluation
  80. Feedback
  81. …Final Design

[1] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns. Addison-Wesley Professional; 1st edition (January 15, 1995)