how to perform a rapid assessment of any software ...€“ produce a completed checklist and report...

22
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

Upload: doanhanh

Post on 07-Jul-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

How to Perform a Rapid Assessment of any Software Architecture

Tim Kertis, Principal Software Engineer, Raytheon3 May 2017

SATURN 2017

5/3/2017 1

Approved for Public Release

Page 2: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Who Am I? Tim Kertis, Principal Software Engineer/Software Architect Chief Software Architect, Raytheon IIS, Indianapolis Master of Science, Computer & Information Science, Purdue Software Architecture Professional through the Software Engineering Institute (SEI), Carnegie-Mellon

University (CMU) Over 30 years of diverse Software Engineering experience Currently working in the V-22 Avionics department

5/3/2017 2

Approved for Public Release

Page 3: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Schedule

5/3/2017 3

Day 1:– Interview Software Technical Lead– Complete the Form/Checklist and Capture: Software Quality Attributes Key Architectural Decisions References to Architectural Design Artifacts

Day 2:– 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 EventApproved for Public Release

Page 4: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Software Quality Attributes List of Stakeholders Stakeholder Views and Opinions Prioritized Set of SW Quality

Attributes– Elicited– Recorded– Analyzed

Software Quality Attributes Workshop (documentation)– For large projects

5/3/2017 4Capture the Software Quality AttributesApproved for Public Release

Page 5: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Key Architectural Decisions Computing Platform Software Technology Software Development Tools Software Reuse Strategy

5/3/2017 5Capture the Decisions and the Reasons WhyApproved for Public Release

Page 6: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Computing Platform Hardware/Processor Operating System Graphics Cards/Drivers Database Application Interface (API) Drivers Data Bus Communication Cards/Drivers Real-Time Operating System (RTOS), Board

Support Packages (BSPs) and Hypervisor

5/3/2017 6Capture the Computing Platform SelectedApproved for Public Release

Page 7: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Software Development Tools Software Development Design Tools Software Development Graphics

Implementation Tools Graphics Development Tools Database/Persistence Frameworks Bus Communications Development Tools IPC Development Tools

5/3/2017 7Capture the Software Development Tools SelectedApproved for Public Release

Page 8: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Software Technology Software Design Methodology Programming Languages and

Mixed Technology Graphics Technology Persistence Technology Bus Communication Protocols Inter-Process

Communications (IPC) Mechanisms

5/3/2017 8Capture the Software Technology SelectedApproved for Public Release

Page 9: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Software Reuse Strategy Product Line Architecture Internal Software Components External Software Components Software Design Patterns Historical Productivity Cost Estimation Data Software Processes

5/3/2017 9Capture the Software Reuse StrategyApproved for Public Release

Page 10: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Architectural Design UML Use Cases

– Use Case Diagrams UML Software Components and Interfaces

– Class Diagrams– Component-Connector Diagrams– Sequence Diagrams– Interface Definition Description

UML Software Component Deployment– Deployment Diagrams

Other Modeling Languages– AADL– SysML– etc.

5/3/2017 10Capture the Architectural DesignApproved for Public Release

Page 11: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Software Architecture Report Form/Checklist Report Distribution

5/3/2017 11Fill in the Forms, Create Report and Distribute to AllApproved for Public Release

Page 12: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #1

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 InformationApproved for Public Release

Page 13: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #2

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 AttributesApproved for Public Release

Page 14: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #3

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 SelectedApproved for Public Release

Page 15: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #4

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

Page 16: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #5

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 SelectedApproved for Public Release

Page 17: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #6

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 StrategyApproved for Public Release

Page 18: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Review Form/Checklist page #7

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 ReferenceApproved for Public Release

Page 19: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

SWA Report Powerpoint Slides Word Document

5/3/2017 19The Report can be prepared in Word or PowerpointApproved for Public Release

Page 20: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

SWA Report Distribution Stakeholders Software Technical Lead Software Department Manager

5/3/2017 20Distribute the SWA Report to StakeholdersApproved for Public Release

Page 21: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

Summary Day 1:

– Interview the Software Technical Lead– Capture Software Quality Attributes Key Architectural Decisions Architectural Design

Day 2:– 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 21Complete the Assessment in Two (2) DaysApproved for Public Release

Page 22: How to Perform a Rapid Assessment of Any Software ...€“ Produce a Completed Checklist and Report – Distribute the Report to Stakeholders, Managers, Software Technical Lead Complete

How to Perform a Rapid Assessment of Any Software Architecture

5/3/2017 [email protected] for Public Release