SlideShare une entreprise Scribd logo
1  sur  19
Software Design for
     Scientific
    Applications

              Priyanka Lal
              10515
• Why distribute software?

• Challenges in software design and distribution

• Ideas for simplifying software design
  –Component design
  –Interface design
  –Software quality practices

• Challenges that remain in the picture
Distributing Software:
                  Why??
• For the strength of your research program:
 –Wider group of reviewers of efforts.
 –Greater opportunity for collaboration.

• For altruistic reasons:
 –Contribution to scientific community.
 –Personal satisfaction in seeing your work being used.
• Successful applicants of Enabling Technologies
  must ensure that source code is fully and freely
  available for use and modification throughout
  the scientific computing community via a
  preapproved open source process.

• For enhancing scientific productivity and for
  facilitating research and education
  collaborations through sharing of
  data, instruments, and computing.
Challenges of
  Scientific Software Development
• Managing customer expectations.
  –Many funding sources.
  –Long-term vs. short-term goals.

• Users: a mixed blessing
   –Unpaid testers and debuggers.
   –Contribute to greater exposure.
   –Have needs and their own deadlines.
Time Challenges
• Research vs. Software Development
  –Need to publish to gain tenure, advance in career.
  –Software development takes time, and production
quality development takes a lot of time.

• “It takes a year to get back up to speed after a student
  graduates.”
  –Students often have little experience working in team
environments
  –Students need individual research achievements while
      contributing to team.
Technology Challenges
• Developing high-quality software isn’t easy.

  –Careful design needed.
  –Maintainability is important.
  –Robustness takes time.
  –Portability to wide range of architectures.
  –Extensibility to new architectures.
Component Design

• Construct applications from smaller software “parts.”

• Components provide …
  –Services applications commonly need.
  –Support for wide range of applications.
  –Easy-to-use interfaces.
  –Data abstraction.
Advantages of Component Design
• For users:
    –Smaller learning curve is better than large
framework.
    –Easy to add to existing applications.
    –“Expert” implementations instead of your own
imagination.
    –Enable comparisons of different algorithms.
    –Time and cost saving.
• For developers:
     –Reduced dependencies between components eases
effort of working in teams.
     – Separation of efforts for team members also allows
individual contribution with reduced conflicts.
Connecting Components
• Connect either through a framework like CCA…
   –Common Component Architecture
   –Environment that facilitates software
interoperability, programming language interoperability, and
dynamic composability.
Interface Design
• Goals:
   –Broad application support
   –Interoperability
   –Ease of use in new or existing applications

• Abstraction:
   –Identification of required features
   –Removal of details
   –Management of complexity
   –Important for usability, maintainability, backward
compatibility

• Implementation strategies:
   –Callback functions
   –Object-oriented design
Which interface design to use?
• Abstraction is most important step.
   –Logical separations of data and operations.
   –Implementation approach is less important.
• Callback:
   –Simple to specify.
   –Easy to use.
• Object-oriented:
   –More elegant, robust abstraction mechanism.
   –Greater flexibility.
• Interoperability and standardization:
   –Always nice to have.
   –Can be implemented with callback or object-oriented
approach.
Zoltan Toolkit
• The Zoltan library is a toolkit of parallel combinatorial
  algorithms for unstructured and/or adaptive
  computations.
• Its data-structure neutral design allows Zoltan to be
  used by a wide range of applications, including adaptive
  finite element methods, particle simulations, linear
  solvers, crash and contact detection, and electrical circuit
  simulations.
• Zoltan also has graph coloring and graph ordering
  algorithms useful in, eg., task schedulers, parallel
  preconditioners and linear solvers.
Zoltan Interface
• Zoltan data abstraction:
  – “Objects” with unique names to be partitioned.
• – Objects can have (weighted) dependencies to other
  objects.
• Zoltan: Data-structure neutral design.
  – Supports wide range of applications and data
    structures.
  – Imposes no restrictions on application’s data
structures.
   – Application does not have to build Zoltan’s data
    structures.
Software Quality
              for Research
• Industry standards can be difficult to apply in
  research environments.
   –Level of formality too high.
• But we do many things prescribed in formal
  quality models.
   –Project planning: Proposals
• Includes budget, staffing, project goals and
  milestones, requirements, approach.
A Minimalist’s Approach
to Software Quality Engineering
• Seven Easy Steps to improved software development.

   1. Source Code Control
   2. Backup System
   3. Automated testing
   4. Bug Tracking
   5. Mailing Lists
   6. Documentation
   7. Release Process
Thank you

Contenu connexe

Tendances

Introduction to Software Engineering SE1
Introduction to Software Engineering SE1Introduction to Software Engineering SE1
Introduction to Software Engineering SE1koolkampus
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - BasicsPurvik Rana
 
Software management renaissance
Software management renaissanceSoftware management renaissance
Software management renaissanceKuppusamy P
 
vodQA-Chennai-20Jul2013: Performance Testing on Desktop
vodQA-Chennai-20Jul2013: Performance Testing on DesktopvodQA-Chennai-20Jul2013: Performance Testing on Desktop
vodQA-Chennai-20Jul2013: Performance Testing on Desktoprameshbaskar
 
Introduction to Software Engineering Course
Introduction to Software Engineering CourseIntroduction to Software Engineering Course
Introduction to Software Engineering CourseMd. Shafiuzzaman Hira
 
Sr_Dev_Ops_Engineer
Sr_Dev_Ops_EngineerSr_Dev_Ops_Engineer
Sr_Dev_Ops_EngineerErik McCarty
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software EngineeringNandhini S
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture ReviewHimanshu
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilitiesAdrian Cristian Grigoras
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Shared information systems
Shared information systemsShared information systems
Shared information systemsHimanshu
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" LogeekNightUkraine
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh Vaishnav
 

Tendances (20)

Introduction to Software Engineering SE1
Introduction to Software Engineering SE1Introduction to Software Engineering SE1
Introduction to Software Engineering SE1
 
Case tools
Case tools Case tools
Case tools
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 
Software management renaissance
Software management renaissanceSoftware management renaissance
Software management renaissance
 
vodQA-Chennai-20Jul2013: Performance Testing on Desktop
vodQA-Chennai-20Jul2013: Performance Testing on DesktopvodQA-Chennai-20Jul2013: Performance Testing on Desktop
vodQA-Chennai-20Jul2013: Performance Testing on Desktop
 
Introduction to Software Engineering Course
Introduction to Software Engineering CourseIntroduction to Software Engineering Course
Introduction to Software Engineering Course
 
Sr_Dev_Ops_Engineer
Sr_Dev_Ops_EngineerSr_Dev_Ops_Engineer
Sr_Dev_Ops_Engineer
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture Review
 
Soa 1 7.ppsx
Soa 1 7.ppsxSoa 1 7.ppsx
Soa 1 7.ppsx
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilities
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Shared information systems
Shared information systemsShared information systems
Shared information systems
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design"
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 

Similaire à Scientific Software Design and Distribution Challenges

Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Software process models
Software process modelsSoftware process models
Software process modelsMalik WaQas
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyMohamed Shahpoup
 
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.pptxJAGADEESWARIS6
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an IntroductionAjit Nayak
 
Case tools and modern process of system development
Case tools and modern process of system development Case tools and modern process of system development
Case tools and modern process of system development tushar217
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life CycleKumar
 
Bharath Chinthamani_W1
Bharath Chinthamani_W1Bharath Chinthamani_W1
Bharath Chinthamani_W1Bharath Chary
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architectureKumar
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxtaxegap762
 

Similaire à Scientific Software Design and Distribution Challenges (20)

Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Software process models
Software process modelsSoftware process models
Software process models
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Case tools and modern process of system development
Case tools and modern process of system development Case tools and modern process of system development
Case tools and modern process of system development
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life Cycle
 
Bharath Chinthamani_W1
Bharath Chinthamani_W1Bharath Chinthamani_W1
Bharath Chinthamani_W1
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architecture
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptx
 
lect1.pdf
lect1.pdflect1.pdf
lect1.pdf
 

Dernier

Presentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxPresentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxRosabel UA
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsRommel Regala
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxJanEmmanBrigoli
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 

Dernier (20)

Presentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxPresentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World Politics
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptx
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 

Scientific Software Design and Distribution Challenges

  • 1. Software Design for Scientific Applications Priyanka Lal 10515
  • 2. • Why distribute software? • Challenges in software design and distribution • Ideas for simplifying software design –Component design –Interface design –Software quality practices • Challenges that remain in the picture
  • 3. Distributing Software: Why?? • For the strength of your research program: –Wider group of reviewers of efforts. –Greater opportunity for collaboration. • For altruistic reasons: –Contribution to scientific community. –Personal satisfaction in seeing your work being used.
  • 4. • Successful applicants of Enabling Technologies must ensure that source code is fully and freely available for use and modification throughout the scientific computing community via a preapproved open source process. • For enhancing scientific productivity and for facilitating research and education collaborations through sharing of data, instruments, and computing.
  • 5. Challenges of Scientific Software Development • Managing customer expectations. –Many funding sources. –Long-term vs. short-term goals. • Users: a mixed blessing –Unpaid testers and debuggers. –Contribute to greater exposure. –Have needs and their own deadlines.
  • 6. Time Challenges • Research vs. Software Development –Need to publish to gain tenure, advance in career. –Software development takes time, and production quality development takes a lot of time. • “It takes a year to get back up to speed after a student graduates.” –Students often have little experience working in team environments –Students need individual research achievements while contributing to team.
  • 7. Technology Challenges • Developing high-quality software isn’t easy. –Careful design needed. –Maintainability is important. –Robustness takes time. –Portability to wide range of architectures. –Extensibility to new architectures.
  • 8. Component Design • Construct applications from smaller software “parts.” • Components provide … –Services applications commonly need. –Support for wide range of applications. –Easy-to-use interfaces. –Data abstraction.
  • 9. Advantages of Component Design • For users: –Smaller learning curve is better than large framework. –Easy to add to existing applications. –“Expert” implementations instead of your own imagination. –Enable comparisons of different algorithms. –Time and cost saving. • For developers: –Reduced dependencies between components eases effort of working in teams. – Separation of efforts for team members also allows individual contribution with reduced conflicts.
  • 10. Connecting Components • Connect either through a framework like CCA… –Common Component Architecture –Environment that facilitates software interoperability, programming language interoperability, and dynamic composability.
  • 11.
  • 12. Interface Design • Goals: –Broad application support –Interoperability –Ease of use in new or existing applications • Abstraction: –Identification of required features –Removal of details –Management of complexity –Important for usability, maintainability, backward compatibility • Implementation strategies: –Callback functions –Object-oriented design
  • 13. Which interface design to use? • Abstraction is most important step. –Logical separations of data and operations. –Implementation approach is less important. • Callback: –Simple to specify. –Easy to use. • Object-oriented: –More elegant, robust abstraction mechanism. –Greater flexibility. • Interoperability and standardization: –Always nice to have. –Can be implemented with callback or object-oriented approach.
  • 14. Zoltan Toolkit • The Zoltan library is a toolkit of parallel combinatorial algorithms for unstructured and/or adaptive computations. • Its data-structure neutral design allows Zoltan to be used by a wide range of applications, including adaptive finite element methods, particle simulations, linear solvers, crash and contact detection, and electrical circuit simulations. • Zoltan also has graph coloring and graph ordering algorithms useful in, eg., task schedulers, parallel preconditioners and linear solvers.
  • 15.
  • 16. Zoltan Interface • Zoltan data abstraction: – “Objects” with unique names to be partitioned. • – Objects can have (weighted) dependencies to other objects. • Zoltan: Data-structure neutral design. – Supports wide range of applications and data structures. – Imposes no restrictions on application’s data structures. – Application does not have to build Zoltan’s data structures.
  • 17. Software Quality for Research • Industry standards can be difficult to apply in research environments. –Level of formality too high. • But we do many things prescribed in formal quality models. –Project planning: Proposals • Includes budget, staffing, project goals and milestones, requirements, approach.
  • 18. A Minimalist’s Approach to Software Quality Engineering • Seven Easy Steps to improved software development. 1. Source Code Control 2. Backup System 3. Automated testing 4. Bug Tracking 5. Mailing Lists 6. Documentation 7. Release Process