SlideShare a Scribd company logo
1 of 28
Test and Measurement Systems
Presentation
• Mattias Ericsson
– LabVIEW developer ~15years
– CLA
– LabVIEW Partner Program
• QRM
• www.addq.se/qrm
• G# Framework
• Free, open source tool
• LabVIEW Add-On of the Year for Community 2011
• www.ni.com/labviewtools
• www.addq.se/gsharp
The Art of Archiceture
• What is a Artictecture?
• Conciderations
• Different Strategies
• Conclusions
Architecture
• ” The software architecture of a
program or computing system is
the structure or structures of the
system, which comprise software
components, the externally visible
properties of those components,
and the relationships between
them.”
“Tell us what is important. Architecture is about the
important stuff. Whatever that is.” – Ralph Johnson
Architecture – some aspects
• Ralph Johnson - “The expert developers
working on that project have a shared
understanding of the system design. That
shared understanding is called architecture.”
• Jim Coplien - “Architecture is when you
design your abstract base classes.”
• Martin Fowler – “Two common elements:
Highest-level breakdown of a system into parts
and the decisions that are hard to change”
• Eoin Woods – ”The set of design decisions
which, if made incorrectly, will cause your
project to be cancelled.”
Design vs Architecture
• What is the difference?
– Architecture is design, but not all design is
architecture.
– Many design decisions are left unbound by the
architecture.
– Architecture is often referred as strategic design
What is design all about?
• Managing complexity and
dependencies
• Tradeoffs and priorities
• Nondeterministics
• Hard to know when its ”good
enough”
”No one’s skull is really big enough to contain a modern computer
program” – Edgar Dijsktra 1972
7
Design Levels
Architectural Patterns
• Expresses a fundamental structural
organization scheme for a software system
• Examples:
– Model-View-Controller (MVC)
– Layers
– LabVIEW: Producer-Consumer (aka Master-Queue)
Architectural Pattern
Symptoms of Poor Design
The Odors of Rotting Software
• Hard to change
• Easy to break
• Hard to reuse
• Hard to do the right thing
• Complexity and overdesign
• Repeating structures that could be
unified under a single abstraction
• Hard to read and understand
Design Approches
• Top-Down
– Your brain isn’t force to deal with too
many details at once
– Decomposition strategy
• Bottom-up
– Sometimes the top-down is so
abstract it is hard to get started.
– When identifying several low-level
responsibilities, start from the top
again!
– Composition strategy
Hardware Abstract Layer (HAL)
Power Supply
KeySight PS HAMEG PS Power Supply Mock
To HAL or not to HAL is the question!
Important Considerations
• Receiver of the system
– Maintainer
– Operator
• Station setups
– Different brands of instruments
– Different instrumentation
• Product support
– Variants
– Coexisting versions
System Configuration
Hardware
Setup
Req
Seq Images
Common
Config
Test
Param
Configuration Dependency
• Station Configuration
– Hardware setup
– COM ports etc.
• Product Configuration
– Requirement and Sequences
– Images
– Different fixtures
• Channel maps
– Firmware
• Common Configuration
– Platform setup
Configuration Override
• INI-file
– Search hierarchy
1. File name
2. Section
3. Key
• XML
– Compare Microsoft .NET
Always use relative paths!
Station
Common
Product
Example of Simplification
Problem:
– TestStand
• Sequences
• Variants requires own sequence
– LabVIEW
• Test Code State Machine – sometimes product specific
– INI for requirements
– INI for test cases
– Station specific
• Channel maps
– No override for local changes
Very hard for maintainer to know what to do!
Example of Simplification
Solution:
– LabVIEW
• Test Code – generic simple steps
• One platform for all station, products and variants.
– Platform ini-config
– XML
• Sequence
• Requirements and parameters
• Test steps
• Xpath override
– Configuration override
1. Station
2. Product
3. Common
Easy for maintainer to manage!
XML
Architectural Strategies
Architectural Strategies
• What to test?
– Test object
– Test equipment
• Who is going to maintain?
• Product and Variants
– What’s next to be tested?
• Serial Numbers
– Generation
– Scanning
• Documentation
– Block diagrams e.g. UML
– Schemes and Manuals
• Results
– Measurements
– Traceability
Web Application
Background Meas Process
Background Meas Process
1. Application launches
background process.
2. Background process
measures and constantly
writes to memory.
3. Application regular polls
memory for latest meas
values.
4. Application closes process
when closing down.
+ Easy switch between Test
and Manual
+ Always monitoring
+ Averaging
- Slow sampling
”Hit and Run” 1. Application initialize
equipment.
2. Sequential testing
1. Measure
2. Analyze
3. Application close
equipment when closing
down.
+ Easy control flow
+ Simple
+ High performance
- No monitoring
- Snapshot
Conclusion
• Architecture is not only software design
– Configuration
– Maintenance
– Product and variants
– Result Management
• No overdesign!
• Documentation
– Keep up to date!
• KISS – Keep It Simple Stupid!

More Related Content

What's hot

Software Architecture - All you need to know
Software Architecture - All you need to knowSoftware Architecture - All you need to know
Software Architecture - All you need to knowVincent Composieux
 
Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...
Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...
Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...Compuware
 
Software test engineer
Software test engineerSoftware test engineer
Software test engineerAbdul Riyaz
 
Steve Jones - Team-based Version Control
Steve Jones - Team-based Version ControlSteve Jones - Team-based Version Control
Steve Jones - Team-based Version ControlRed Gate Software
 
Heuristics ofsoftwaretestability
Heuristics ofsoftwaretestabilityHeuristics ofsoftwaretestability
Heuristics ofsoftwaretestabilityjicheng687
 
seminar presentation
seminar presentationseminar presentation
seminar presentationsaly salikka
 
Using MDE for the Formal Verification of Embedded Systems Modeled by UML Se...
Using MDE for the Formal Verification of Embedded  Systems Modeled by UML Se...Using MDE for the Formal Verification of Embedded  Systems Modeled by UML Se...
Using MDE for the Formal Verification of Embedded Systems Modeled by UML Se...Francisco Assis Nascimento
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemCompuware
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Quick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture EvaluationQuick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture EvaluationSteven Battle
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsCompuware
 

What's hot (20)

Software Architecture - All you need to know
Software Architecture - All you need to knowSoftware Architecture - All you need to know
Software Architecture - All you need to know
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
Software Process Model
Software Process ModelSoftware Process Model
Software Process Model
 
Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...
Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...
Using Compuware Strobe to Save CPU: 4 Real-life Cases from the Files of CPT G...
 
Software test engineer
Software test engineerSoftware test engineer
Software test engineer
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Workloads
WorkloadsWorkloads
Workloads
 
Steve Jones - Team-based Version Control
Steve Jones - Team-based Version ControlSteve Jones - Team-based Version Control
Steve Jones - Team-based Version Control
 
Heuristics ofsoftwaretestability
Heuristics ofsoftwaretestabilityHeuristics ofsoftwaretestability
Heuristics ofsoftwaretestability
 
Iterative software development
Iterative software developmentIterative software development
Iterative software development
 
seminar presentation
seminar presentationseminar presentation
seminar presentation
 
Using MDE for the Formal Verification of Embedded Systems Modeled by UML Se...
Using MDE for the Formal Verification of Embedded  Systems Modeled by UML Se...Using MDE for the Formal Verification of Embedded  Systems Modeled by UML Se...
Using MDE for the Formal Verification of Embedded Systems Modeled by UML Se...
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome Them
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Quick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture EvaluationQuick & Dirty Model-Driven Architecture Evaluation
Quick & Dirty Model-Driven Architecture Evaluation
 
Spiral Model
Spiral ModelSpiral Model
Spiral Model
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOps
 
ESL
ESLESL
ESL
 
Spiral model
Spiral modelSpiral model
Spiral model
 

Viewers also liked

Positive Youth Development Certificate
Positive Youth Development CertificatePositive Youth Development Certificate
Positive Youth Development CertificateRebecca Ambrose
 
Archive for the ‘Travel’ Category
Archive for the ‘Travel’ CategoryArchive for the ‘Travel’ Category
Archive for the ‘Travel’ CategoryLamar Musgrove
 
проект
проектпроект
проектSprint
 
Seminário Educomunicação na Práxis Social
Seminário Educomunicação na Práxis SocialSeminário Educomunicação na Práxis Social
Seminário Educomunicação na Práxis SocialDodô Calixto
 
立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003
立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003
立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003Xinxin Jin
 
Pattens for jazz jerry coker
Pattens for jazz jerry cokerPattens for jazz jerry coker
Pattens for jazz jerry cokerconrado dangavs
 
Moyse,m.24 peq.estudios melódicos con variacones ed. leduc
Moyse,m.24 peq.estudios melódicos con variacones  ed. leducMoyse,m.24 peq.estudios melódicos con variacones  ed. leduc
Moyse,m.24 peq.estudios melódicos con variacones ed. leducconrado dangavs
 
Desinfeccion objetivos principios tipos
Desinfeccion objetivos principios tiposDesinfeccion objetivos principios tipos
Desinfeccion objetivos principios tiposCICAT SALUD
 

Viewers also liked (13)

Philipp Tresch_Casa Madaio
Philipp Tresch_Casa MadaioPhilipp Tresch_Casa Madaio
Philipp Tresch_Casa Madaio
 
Positive Youth Development Certificate
Positive Youth Development CertificatePositive Youth Development Certificate
Positive Youth Development Certificate
 
Archive for the ‘Travel’ Category
Archive for the ‘Travel’ CategoryArchive for the ‘Travel’ Category
Archive for the ‘Travel’ Category
 
Vietnam war ci 320
Vietnam war ci 320Vietnam war ci 320
Vietnam war ci 320
 
Alzheimer - Fases de la enfermedad
Alzheimer - Fases de la enfermedadAlzheimer - Fases de la enfermedad
Alzheimer - Fases de la enfermedad
 
проект
проектпроект
проект
 
K ulit pelaporan
K ulit pelaporanK ulit pelaporan
K ulit pelaporan
 
Seminário Educomunicação na Práxis Social
Seminário Educomunicação na Práxis SocialSeminário Educomunicação na Práxis Social
Seminário Educomunicação na Práxis Social
 
立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003
立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003
立法院公報-2015-卷59-期1-編號17-page-73-176-日期-1040921 Lcidc01 1045901 00003
 
Pattens for jazz jerry coker
Pattens for jazz jerry cokerPattens for jazz jerry coker
Pattens for jazz jerry coker
 
Moyse,m.24 peq.estudios melódicos con variacones ed. leduc
Moyse,m.24 peq.estudios melódicos con variacones  ed. leducMoyse,m.24 peq.estudios melódicos con variacones  ed. leduc
Moyse,m.24 peq.estudios melódicos con variacones ed. leduc
 
O burro que caiu no poço
O burro que caiu no poçoO burro que caiu no poço
O burro que caiu no poço
 
Desinfeccion objetivos principios tipos
Desinfeccion objetivos principios tiposDesinfeccion objetivos principios tipos
Desinfeccion objetivos principios tipos
 

Similar to The art of architecture

Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life CycleKumar
 
IT Software Development Life Cycle
IT Software Development Life CycleIT Software Development Life Cycle
IT Software Development Life CyclePreshita Chaurasiya
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
SE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptSE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptMahiDivya
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleAashima Wadhwa
 
Software engineering
Software engineeringSoftware engineering
Software engineeringRohan Bhatkar
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptxProvatMajhi
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slidesvenkatasubramanianSr5
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 

Similar to The art of architecture (20)

Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life Cycle
 
IT Software Development Life Cycle
IT Software Development Life CycleIT Software Development Life Cycle
IT Software Development Life Cycle
 
Ppt nardeep
Ppt nardeepPpt nardeep
Ppt nardeep
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
SE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptSE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.ppt
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Rup
RupRup
Rup
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Sdlc
SdlcSdlc
Sdlc
 
Sdlc
Sdlc Sdlc
Sdlc
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slides
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Sdlc
SdlcSdlc
Sdlc
 

More from ADDQ

Service & UX Design
Service & UX DesignService & UX Design
Service & UX DesignADDQ
 
Framtidens prestandatest i en agil värld
Framtidens prestandatest i en agil världFramtidens prestandatest i en agil värld
Framtidens prestandatest i en agil världADDQ
 
Undvik fallgroparna i den agila transformeringen
Undvik fallgroparna i den agila transformeringenUndvik fallgroparna i den agila transformeringen
Undvik fallgroparna i den agila transformeringenADDQ
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.ADDQ
 
Omvärldstrender inom test
Omvärldstrender inom testOmvärldstrender inom test
Omvärldstrender inom testADDQ
 
Lyckas med test i continuous-världen
Lyckas med test i continuous-världenLyckas med test i continuous-världen
Lyckas med test i continuous-världenADDQ
 
Hur får du ut max av automatiserade tester?
Hur får du ut max av automatiserade tester?Hur får du ut max av automatiserade tester?
Hur får du ut max av automatiserade tester?ADDQ
 
Agil kravhantering för att maximera verksamhetsnyttan
Agil kravhantering för att maximera verksamhetsnyttanAgil kravhantering för att maximera verksamhetsnyttan
Agil kravhantering för att maximera verksamhetsnyttanADDQ
 
Rätt från början
Rätt från börjanRätt från början
Rätt från börjanADDQ
 
Från planerande till agil företagskultur
Från planerande till agil företagskulturFrån planerande till agil företagskultur
Från planerande till agil företagskulturADDQ
 
Kontextdrivna krav - effektiv kravställning för din organisation
Kontextdrivna krav - effektiv kravställning för din organisationKontextdrivna krav - effektiv kravställning för din organisation
Kontextdrivna krav - effektiv kravställning för din organisationADDQ
 
Alla modeller är fel men några är användbara
Alla modeller är fel men några är användbaraAlla modeller är fel men några är användbara
Alla modeller är fel men några är användbaraADDQ
 
Create your own testing strategy to move towards Continuous Delivery.
Create your own testing strategy to move towards Continuous Delivery.Create your own testing strategy to move towards Continuous Delivery.
Create your own testing strategy to move towards Continuous Delivery.ADDQ
 

More from ADDQ (13)

Service & UX Design
Service & UX DesignService & UX Design
Service & UX Design
 
Framtidens prestandatest i en agil värld
Framtidens prestandatest i en agil världFramtidens prestandatest i en agil värld
Framtidens prestandatest i en agil värld
 
Undvik fallgroparna i den agila transformeringen
Undvik fallgroparna i den agila transformeringenUndvik fallgroparna i den agila transformeringen
Undvik fallgroparna i den agila transformeringen
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.
 
Omvärldstrender inom test
Omvärldstrender inom testOmvärldstrender inom test
Omvärldstrender inom test
 
Lyckas med test i continuous-världen
Lyckas med test i continuous-världenLyckas med test i continuous-världen
Lyckas med test i continuous-världen
 
Hur får du ut max av automatiserade tester?
Hur får du ut max av automatiserade tester?Hur får du ut max av automatiserade tester?
Hur får du ut max av automatiserade tester?
 
Agil kravhantering för att maximera verksamhetsnyttan
Agil kravhantering för att maximera verksamhetsnyttanAgil kravhantering för att maximera verksamhetsnyttan
Agil kravhantering för att maximera verksamhetsnyttan
 
Rätt från början
Rätt från börjanRätt från början
Rätt från början
 
Från planerande till agil företagskultur
Från planerande till agil företagskulturFrån planerande till agil företagskultur
Från planerande till agil företagskultur
 
Kontextdrivna krav - effektiv kravställning för din organisation
Kontextdrivna krav - effektiv kravställning för din organisationKontextdrivna krav - effektiv kravställning för din organisation
Kontextdrivna krav - effektiv kravställning för din organisation
 
Alla modeller är fel men några är användbara
Alla modeller är fel men några är användbaraAlla modeller är fel men några är användbara
Alla modeller är fel men några är användbara
 
Create your own testing strategy to move towards Continuous Delivery.
Create your own testing strategy to move towards Continuous Delivery.Create your own testing strategy to move towards Continuous Delivery.
Create your own testing strategy to move towards Continuous Delivery.
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

The art of architecture

  • 2. Presentation • Mattias Ericsson – LabVIEW developer ~15years – CLA – LabVIEW Partner Program • QRM • www.addq.se/qrm • G# Framework • Free, open source tool • LabVIEW Add-On of the Year for Community 2011 • www.ni.com/labviewtools • www.addq.se/gsharp
  • 3. The Art of Archiceture • What is a Artictecture? • Conciderations • Different Strategies • Conclusions
  • 4. Architecture • ” The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.” “Tell us what is important. Architecture is about the important stuff. Whatever that is.” – Ralph Johnson
  • 5. Architecture – some aspects • Ralph Johnson - “The expert developers working on that project have a shared understanding of the system design. That shared understanding is called architecture.” • Jim Coplien - “Architecture is when you design your abstract base classes.” • Martin Fowler – “Two common elements: Highest-level breakdown of a system into parts and the decisions that are hard to change” • Eoin Woods – ”The set of design decisions which, if made incorrectly, will cause your project to be cancelled.”
  • 6. Design vs Architecture • What is the difference? – Architecture is design, but not all design is architecture. – Many design decisions are left unbound by the architecture. – Architecture is often referred as strategic design
  • 7. What is design all about? • Managing complexity and dependencies • Tradeoffs and priorities • Nondeterministics • Hard to know when its ”good enough” ”No one’s skull is really big enough to contain a modern computer program” – Edgar Dijsktra 1972 7
  • 9. Architectural Patterns • Expresses a fundamental structural organization scheme for a software system • Examples: – Model-View-Controller (MVC) – Layers – LabVIEW: Producer-Consumer (aka Master-Queue)
  • 11. Symptoms of Poor Design The Odors of Rotting Software • Hard to change • Easy to break • Hard to reuse • Hard to do the right thing • Complexity and overdesign • Repeating structures that could be unified under a single abstraction • Hard to read and understand
  • 12. Design Approches • Top-Down – Your brain isn’t force to deal with too many details at once – Decomposition strategy • Bottom-up – Sometimes the top-down is so abstract it is hard to get started. – When identifying several low-level responsibilities, start from the top again! – Composition strategy
  • 13. Hardware Abstract Layer (HAL) Power Supply KeySight PS HAMEG PS Power Supply Mock To HAL or not to HAL is the question!
  • 14. Important Considerations • Receiver of the system – Maintainer – Operator • Station setups – Different brands of instruments – Different instrumentation • Product support – Variants – Coexisting versions
  • 16. Configuration Dependency • Station Configuration – Hardware setup – COM ports etc. • Product Configuration – Requirement and Sequences – Images – Different fixtures • Channel maps – Firmware • Common Configuration – Platform setup
  • 17. Configuration Override • INI-file – Search hierarchy 1. File name 2. Section 3. Key • XML – Compare Microsoft .NET Always use relative paths! Station Common Product
  • 18. Example of Simplification Problem: – TestStand • Sequences • Variants requires own sequence – LabVIEW • Test Code State Machine – sometimes product specific – INI for requirements – INI for test cases – Station specific • Channel maps – No override for local changes Very hard for maintainer to know what to do!
  • 19. Example of Simplification Solution: – LabVIEW • Test Code – generic simple steps • One platform for all station, products and variants. – Platform ini-config – XML • Sequence • Requirements and parameters • Test steps • Xpath override – Configuration override 1. Station 2. Product 3. Common Easy for maintainer to manage!
  • 20. XML
  • 22. Architectural Strategies • What to test? – Test object – Test equipment • Who is going to maintain? • Product and Variants – What’s next to be tested? • Serial Numbers – Generation – Scanning • Documentation – Block diagrams e.g. UML – Schemes and Manuals • Results – Measurements – Traceability
  • 25. Background Meas Process 1. Application launches background process. 2. Background process measures and constantly writes to memory. 3. Application regular polls memory for latest meas values. 4. Application closes process when closing down. + Easy switch between Test and Manual + Always monitoring + Averaging - Slow sampling
  • 26.
  • 27. ”Hit and Run” 1. Application initialize equipment. 2. Sequential testing 1. Measure 2. Analyze 3. Application close equipment when closing down. + Easy control flow + Simple + High performance - No monitoring - Snapshot
  • 28. Conclusion • Architecture is not only software design – Configuration – Maintenance – Product and variants – Result Management • No overdesign! • Documentation – Keep up to date! • KISS – Keep It Simple Stupid!

Editor's Notes

  1. Ralph E. Johnson is a Research Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign. He is a co-author of the influential computer science textbook Design Patterns: Elements of Reusable Object-Oriented Software. James O. "Jim" Coplien (also simply known as Cope) is a writer, lecturer, and researcher in the field of Computer Science. Cope was a founding Member of Hillside Group with Kent Beck, Grady Booch, Ward Cunningham, Ralph Johnson, Ken Auer and Hal Hildebrand. He has started up several of the conferences in the Pattern Languages of Programs (PLoP) conference series and is a longstanding pattern author and PLoP shepherd. Martin Fowler is an author and international speaker on software development, specializing in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming. Fowler is a member of the Agile Alliance and helped create the Manifesto for Agile Software Development in 2001, along with more than 15 co-authors. Eoin Woods works for Barclays Global Investors as the lead software architect of a new equities portfolio management system and the head of the firm's application architecture group.
  2. When complexity goes out of hands, developers can no longer understand the software well enough to change or extend it easily and safely. [Evans04] s xxi How do we tackle complexity? We do that by raising the level of abstraction. [Booch] Process of tradeoffs between qualities such as efficient performance and ease of maintainence”. [McGregor] If you send three people away to design the same program, they all return with three different designs, each of which could be perfectly acceptable. [Conn04] s 76 Since design is open-ended, the most common answer to that question is ’When you’re out of time.’ [Conn04] s.76
  3. [Conn04] Level 1: Software System The first level is the entire system. Architecture level. Level 2: Division into Subsystems or Packages The main product of design at this level is the identification of all major subsystems. Allow communication between subsystems only on a “need to know” basis—and it had better be a good reason. Level 3: Division into Classes Design at this level includes identifying all classes in the system. In particular, the class’s interface is defined. Level 4: Division into Routines Design at this level includes dividing each class into routines. The class interface defined at Level 3 will define some of the routines. Level 5: Internal Routine Design Design at the routine level consists of laying out the detailed functionality of the individual routines. Internal routine design is typically left to the individual programmer working on an individual routine.
  4. The metaphor of layering is so widely used that it feels intuitive to most developers. [Evans04] s.68 For a pattern to be architectural, it refers to a problem at the architectural level of abstraction, the overall system structure.
  5. The design of many software applications begins as a vital image in the minds of its designers. At this stage it is clean, elegant, and compelling. But then something happen. The software starts to rot. At first it isn’t so bad. A clumsy hack here and there, but the beauty of the design still shows through. Over time it becomes a festering mass of code that the developers find increasingly hard to maintain. [Martin00]
  6. The idea is that the human brain can concentrate on only a certain amount of details at a time. [Conn04] Ask yourself, ”What do I know this system needs to do?” For example, a particular report. [Conn04] Top down tends to start simple, but sometimes low-level complexity ripples back to the top. Bottom up tends to start complex, but identifying that complexity early on leads to better design.