Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software architecture 101

Software architecture 101

SAF meta-framework for designing software

Arnon Rotem-Gal-Oz

October 31, 2023
Tweet

More Decks by Arnon Rotem-Gal-Oz

Other Decks in Technology

Transcript

  1. Software architecture is the fundamental concepts or properties of a

    system, embodied in its elements, relationships [to each other and the environment], and in the principles of its design and evolution (IEEE 42010:2022 Software, systems and enterprise — Architecture description)
  2. Software design Software architecture is the concepts or properties of

    a component, embodied in its elements, relationships [to each other and the environment], and in the principles of its design and evolution within the constraints of the system architecture
  3. The Usual Suspects Customer End-User Project Manager Management Developers Maintainers

    Security Analysts Project New comers Testers Customer’s IT group
  4. Amdahl’s law maximum potential improvement to the performance of a

    system is limited by the portion of the system that cannot be improved
  5. Gall’s Law • “A complex system that works is invariably

    found to have evolved from a simple system that worked. The inverse proposition also appears to be true: a complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a simple system.”
  6. Quality Attributes • Performance • Availability • Usability • Security

    • Maintainability • Portability • Reusability • Testability End User’s view Developer’s view • Time To Market • Cost and Benefits • Projected life time • Targeted Market • Integration with Legacy System • Roll back Schedule Business Community view A list of quality attributes exists in ISO/IEC 9126-2001 Information Technology – Software Product Quality
  7. Utility Performance Response Under normal conditions - update of an

    entity in the persistent storage <0.5 Second Latency Under normal or stress conditions, critical alert generated by the system will be displayed in less than 1 seconds (for generation) Data Loss under all conditions, a message acknowledged by the system will not be lost Availability Hardware Issues Under all conditions, when a server crash, the system will resume operation in less than 30 seconds Usability Compliance The system should comply with maritime data standards (e.g. Mercator projection) Operability The system should handle user request without impeding the user's ability to continue controlling the system (e.g. initiate additional requests) Security Unauthorized users under normal conditions and connectivity the system should alert an unauthorized login attempt (intrusion) within 1 minute Adaptability More Users When additional users need access to the system, add new /more hardware (to support load) under 4 man weeks Identify and prioritize scenarios
  8. Anatomy of a scenario Under normal system load an activity

    upsert should take under 10ms 50th percentile, 50ms 99th percentile , 100ms 99.5th percentile Context Stimulus Response
  9. Law of demeter • Each unit should have only limited

    knowledge about other units: only units "closely" related to the current unit. • Each unit should only talk to its friends; don't talk to strangers. • Only talk to your immediate friends.
  10. How can you efficiently provide a level of guarantee in

    a loosely coupled manner while maintaining the autonomy and consistency of the services? Implement the Reservation pattern and have the services provide a level of guarantee on internal resources for a limited time.
  11. 
 Two roads diverged in a yellow wood, 
 And

    sorry I could not travel both 
 And be one traveler, long I stood 
 And looked down one as far as I could 
 To where it bent in the undergrowth (The road not taken, Robert Frost 1915)
  12. Just enough design up-front Component A Component B Component C

    Component D Component F Component H Component I