How to Perform a Rapid Assessment of any Software Architecture
Tim Kertis, Principal Software Engineer, Raytheon 3 May 2017
SATURN 2017
5/3/2017 1
Approved for Public Release
How to Perform a Rapid Assessment of any Software Architecture Tim - - PowerPoint PPT Presentation
How to Perform a Rapid Assessment of any Software Architecture Tim Kertis, Principal Software Engineer, Raytheon 3 May 2017 SATURN 2017 5/3/2017 1 Approved for Public Release Who Am I? Tim Kertis, Principal Software Engineer/Software
5/3/2017 1
Approved for Public Release
5/3/2017 2
Approved for Public Release
5/3/2017 3
– Interview Software Technical Lead – Complete the Form/Checklist and Capture:
– Verify Software Design Artifacts – Analyze the Captured SWA Information – Produce an Opinion/Report – Distribute Report to Stakeholders, Managers, SW Technical Lead Plan a Two (2) Day Event
Approved for Public Release
5/3/2017 4
Capture the Software Quality Attributes
Approved for Public Release
5/3/2017 5
Capture the Decisions and the Reasons Why
Approved for Public Release
5/3/2017 6
Capture the Computing Platform Selected
Approved for Public Release
5/3/2017 7
Capture the Software Development Tools Selected
Approved for Public Release
5/3/2017 8
Capture the Software Technology Selected
Approved for Public Release
5/3/2017 9
Capture the Software Reuse Strategy
Approved for Public Release
– Use Case Diagrams
– Class Diagrams – Component-Connector Diagrams – Sequence Diagrams – Interface Definition Description
– Deployment Diagrams
– AADL – SysML – etc.
5/3/2017 10
Capture the Architectural Design
Approved for Public Release
5/3/2017 11
Fill in the Forms, Create Report and Distribute to All
Approved for Public Release
5/3/2017 12
Software Architecture Review: Project Name: ______________________________________________________________ Architect Name: ______________________________________________________________ Project Engineer: ______________________________________________________________ Customer : ______________________________________________________________ Stakeholders: ______________________________________________________________ ______________________________________________________________ Reviewers: ______________________________________________________________ ______________________________________________________________ Review Date: ______/______/____________ Estimated Code Size: ____________ K ELOC Capture the Project ‘s General Information
Approved for Public Release
5/3/2017 13
Software Quality Attributes: [ ] Functional Suitability [ ] Performance [ ] Maintainability [ ] Reliability [ ] Portability [ ] Usability [ ] Modifiability [ ] Modularity [ ] Extensibility [ ] Security [ ] Safety [ ] Integrity [ ] Scalability [ ] Availability [ ] Interoperability [ ] RASU (Reliability, Availability, Serviceability, Usability and Installability) [ ] FURPS (Functionality, Usability, Reliability, Performance and Supportability) [ ] RASR (Reliability, Availability, Scalability and Recoverability) [databases] [ ] ACID (Atomicity, Consistency, Isolation (or Integrity) and Durability [databases] [ ] RAMS (Reliability, Availability, Maintainability and Safety) [safety critical systems] [ ] Agility (Debug Ability, Extensibility, Portability, Scalability, Securability, Testability & Understandability) [ ] Dependability (Availability, Reliability, Safety, Integrity and Maintainability) [ ] Other _________________________________________________________________________ Capture the Software Quality Attributes
Approved for Public Release
5/3/2017 14
Key Software Architecture Decisions: Hardware/Driver/OS [ ] RTOS/BSPs/Hypervisor: ____________________________________________ [ ] Bus Communication Card/Drivers: ____________________________________________ [ ] Database API Drivers: ____________________________________________ [ ] Graphics Card/Drivers: ____________________________________________ [ ] Operating Systems: ____________________________________________ [ ] Hardware Platforms: ____________________________________________ [ ] Other: ____________________________________________ Capture the Hardware/Drivers/OS Selected
Approved for Public Release
5/3/2017 15
Key Software Architecture Decisions (continued): Software Technology [ ] IPC Mechanisms: ____________________________________________ [ ] Bus Communication Protocols: ____________________________________________ [ ] Persistence Technology: ____________________________________________ [ ] Graphics Technology: ____________________________________________ [ ] Programming Languages: ____________________________________________ [ ] Mixed Language Bindings: ____________________________________________ [ ] Software Design Methodology: ____________________________________________ [ ] Other: ____________________________________________ Capture the Software Technology Used
Approved for Public Release
5/3/2017 16
Key Software Architecture Decisions (continued): Software Tools [ ] IPC Development Tools: ____________________________________________ [ ] Bus Communication Dev Tools: ____________________________________________ [ ] Database/Persistence Frameworks: ____________________________________________ [ ] Graphics Dev Tools: ____________________________________________ [ ] Integrated Dev Environment: ____________________________________________ [ ] Software Design Tools: ____________________________________________ [ ] Other: ____________________________________________ Capture the Software Tools Selected
Approved for Public Release
5/3/2017 17
Key Software Architecture Decisions (continued): Software Reuse Strategy [ ] Software Processes: ____________________________________________ [ ] Historical Productivity Data: ____________________________________________ [ ] Software Design Patterns: ____________________________________________ [ ] External Software Components: ____________________________________________ [ ] Internal Software Components: ____________________________________________ [ ] Software Product Line: ____________________________________________ [ ] Other: ____________________________________________ Capture the Software Reuse Strategy
Approved for Public Release
5/3/2017 18
Architectural Design: Use Cases [ ] Use Case Diagrams: ____________________________________________ Software Components and Interfaces [ ] Class Diagrams: _____________________________________________ [ ] Component-Connector Diagrams: _____________________________________________ [ ] Sequence Diagrams: _____________________________________________ [ ] Interface Definition Descriptions: _____________________________________________ Software Component Deployment [ ] Deployment Diagrams: _____________________________________________ Capture the Design Artifacts by Reference
Approved for Public Release
5/3/2017 19
The Report can be prepared in Word or Powerpoint
Approved for Public Release
5/3/2017 20
Distribute the SWA Report to Stakeholders
Approved for Public Release
– Interview the Software Technical Lead – Capture
– Verify and Document Design Documentation References – Analyze the Software Architecture – Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead
5/3/2017 21
Complete the Assessment in Two (2) Days
Approved for Public Release
5/3/2017 22
stephen_t_kertis@raytheon.com
Approved for Public Release