60 likes | 201 Views
Software Development at Academia, Government Labs, Industry. John Barker Agenda/Questions: How can the three share development? Possibly cooperation like designer chemistry software? What are the technical challenges? What is the software we are talking about anyways? Who are the customers?
E N D
Software Development atAcademia, Government Labs, Industry John Barker Agenda/Questions: • How can the three share development? • Possibly cooperation like designer chemistry software? • What are the technical challenges? • What is the software we are talking about anyways? • Who are the customers? • Academia: students, who learn programming and science/engineering.+ new physical effects, push the science envelope- typically no tool development, small building blocks, fast and dirty • Government / Government Funded Industry: Government+ software performs the required tasks- typically no realistic commercialization plan • Industry: Industry, Government, Students=> old style: piecemeal university software together=> new style: build-up new software where there is a commercial market+ stable, functional, documented, maintained, supported- no software / science / engineering research
20/50/ 2 Software Engineering Object-Oriented Principles Documentation Tool Resonance Finder Physics Phonons Ionized Dopants Charging Formalism Green Function Theory & Boundary Cond. Material Param. Database Novel Grid Gen. Alloy Disorder Band- structure Interface Roughness Graphical User Interface Hybrid C, FORTRAN FORTRAN90 Library of Examples Batch Run Interface A Simulation Tool’s Facets: Physics, Formalism/Technology, and Marketing • Can one use the strengths of the three software developers academia / government / industry? • Academia: need to get serious about interacting with government / industry on REAL development • Don’t re-invent the wheel every time, colaborate on existing packages • Government/Industry: expect real deliverables from academia not just formulas on paper. Transport/ Engineering Quantum Mechanics / Physics MarketingModel Devices Paying Customers Care About
GUI C F90 F F F90 Software Structure : Hybrid C, FORTRAN, and FORTRAN 90 Motif • Advantages of C: • flexible data design, fast prototyping. • simple hook-up of the graphical user interface. • close to the UNIX system level for job scheduling. • Advantages of FORTRAN • speed for floating point arithmetic. • 4x speed-up for the same algorithm comparing C and F77 on HP. • Advantages FORTRAN90 = FORTRAN + ... • standardized vector and matrix arithmetic. • data structures. • simple parallelization.
Revision Control Systems (RCS, CVS) • Several people - one piece of code ? • Break up the source code into (many) files. • Use a central library system. • All developers can look at the latest versions. • The files cannot be changed. • Must check out and lock a file before editing. • FORGET about PRIVATE CODE VERSIONS!!! User gekco: locks and edits file.c r1.3 he creates the new r1.4 Library of all files and all revisions ci file.c Emacs facilitates the check-out & check-in file.c r1.4 file.c r1.3 r1.2 r1.1 file.c r1.4 file.c r1.3 r1.2 r1.1 file.c r1.4 file.c r1.3 r1.2 r1.1 co -l file.c Users lake, blanks, etc.: can look at the latest public revision of file.c (r1.3) co file.c
Generic Data Structure I/O • Dynamic GUI Design. • data structure • member descriptor • -> I/O for GUI or files Create Read Data Structure PotType potential real hbarovertau Boolean Ec RangeStruct NonEq Graphical User Interface Translator File/Batch User Interface Read potential=Hartree hbarovertau=0.0066 Ec=FALSE < start=45, end=69 > Create Software Engineer Theorist
Novel Interactive Documentation Tool • Pseudocode is a step by step description of a program in a natural language (high level and low level) • Maintain pseudocode and code in onedocument -> easy to keep it up-to-date • Generated automatically from comments in the code • Cross references to • theory description • further pseudocode • the actual code