How to Perform a Rapid Assessment of any Software Architecture Tim - - PowerPoint PPT Presentation

how to perform a rapid assessment of any software
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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 Event

Approved for Public Release

slide-4
SLIDE 4

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 4

Capture the Software Quality Attributes

Approved for Public Release

slide-5
SLIDE 5

Key Architectural Decisions

  • Computing Platform
  • Software Technology
  • Software Development Tools
  • Software Reuse Strategy

5/3/2017 5

Capture the Decisions and the Reasons Why

Approved for Public Release

slide-6
SLIDE 6

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 6

Capture the Computing Platform Selected

Approved for Public Release

slide-7
SLIDE 7

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 7

Capture the Software Development Tools Selected

Approved for Public Release

slide-8
SLIDE 8

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 8

Capture the Software Technology Selected

Approved for Public Release

slide-9
SLIDE 9

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 9

Capture the Software Reuse Strategy

Approved for Public Release

slide-10
SLIDE 10

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 10

Capture the Architectural Design

Approved for Public Release

slide-11
SLIDE 11

Software Architecture Report

  • Form/Checklist
  • Report
  • Distribution

5/3/2017 11

Fill in the Forms, Create Report and Distribute to All

Approved for Public Release

slide-12
SLIDE 12

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 Information

Approved for Public Release

slide-13
SLIDE 13

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 Attributes

Approved for Public Release

slide-14
SLIDE 14

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 Selected

Approved for Public Release

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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 Selected

Approved for Public Release

slide-17
SLIDE 17

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 Strategy

Approved for Public Release

slide-18
SLIDE 18

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 Reference

Approved for Public Release

slide-19
SLIDE 19

SWA Report

  • Powerpoint Slides
  • Word Document

5/3/2017 19

The Report can be prepared in Word or Powerpoint

Approved for Public Release

slide-20
SLIDE 20

SWA Report Distribution

  • Stakeholders
  • Software Technical Lead
  • Software Department Manager

5/3/2017 20

Distribute the SWA Report to Stakeholders

Approved for Public Release

slide-21
SLIDE 21

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 21

Complete the Assessment in Two (2) Days

Approved for Public Release

slide-22
SLIDE 22

How to Perform a Rapid Assessment of Any Software Architecture

5/3/2017 22

stephen_t_kertis@raytheon.com

Approved for Public Release