IntroductionWhy DesignIn this module we will cover general design principles and those that are tailored for scientific softwareMotivation and Objectives


Figure 1

  • Acquires a lot of technical debt in the process Tech Debt

  • Figure 2

    Books on design

    Figure 3

    explanation

    General Design PrinciplesGeneral Design PrinciplesDesigning Software – High Level PhasesRequirements GatheringDecompositionConnectivity


    Figure 1

    elements

    Design Principles ApplicationExample 1 – Problem DescriptionSimplifying AssumptionsRequirement gatheringDecompositionConnectivityConnectivity – Alternative Possibility


    Figure 1

    example1

    Figure 2

    placeholder alt text

    Figure 3

    placeholder alt text

    Design Principles for Reserach SoftwareResearch Software Specific ChallengesSOLID Principles Pose Some DifficultiesAdditional Considerations for Research Software


    Figure 1

    placeholder

    Figure 2

    placeholder

    Figure 3

    placeholder

    Research Software Design ExampleMore Complex Application Design – Sedov Blast WaveDeeper Dive into RequirementsComponentsConnectivityExploring design space – AbstractionsA Design Model for Separation of ConcernsSeparation of Concerns AppliedTakeaways So far


    Figure 1

    placeholder

    Figure 2

    placeholder

    Figure 3

    placeholder

    Figure 4

    placeholder

    Figure 5

    placeholder

    Challenges of HeterogeneityNew Paradigm Because of Platform HeterogeneityGo Back to the Design Model for Separation of ConcernsPlatform Heterogeneity


    Figure 1


    Figure 2


    Figure 3


    Design for HeterogeneityMechanisms Needed by the CodeUnderlying Ideas: Unification of Computational ExpressionsUnderlying Ideas: Moving Work and Data to the TargetUnderlying Ideas: Mapping Work to TargetsFeatures and Abstractions to be Added to Earlier ExampleMechanisms Needed by the Code : Example Flash-XConstruction of Application with Components and Tools


    Figure 1


    Figure 2


    Figure 3


    Figure 4


    ConclusionsFinal takeawaysResources