Daniel Haehn PRO
Hi, I am a biomedical imaging and visualization researcher who investigates how computational methods can accelerate biological and medical research.
My first job
many different SDLs
Good Software
Good Software
User Experience
Maintainable
Robust
No Bugs!
September 9th 1945
Grace Hopper found a bug between the relays of the Harvard Mark II computer that caused a shortened circuit.
Dr. Grace Hopper
Pioneer of computer programming
Invented first linker
Popularized machine-independent programming languages
COBOL
1906-1992
40 Honorary Degrees, Presidential Medal of Freedom, National Medal of Technology
Grace Hopper Celebration of Women in Computing (GHC) conference series for women in computing
many different SDLs
highly dependent on project
Why don't we just start coding?
1. Placement and location
2. Design
Force Calculation
Blue Prints
Safety Checks
Risk Analysis
Architecture
Prototype
3. Cost Estimation
Bidding / Negotations
Permits and Fees
4. Construction
Break Ground
Foundation
Steelwork
2 Construction Crews for Faster Progress
Failure!
Take down bridge and re-build..
Lack of Planning
Lucky Knot Bridge, Changsha, China
Good Tools and Good Processes
... reduce risks!
Risks
Over Budget
Late Delivery
Unusable / Flawed
Technical Debt
a hot-fix now can introduce massive costs later!
Signature of a Mess..
Chapter 1
Technical Debt / Signature of Mess / Maintenance Hell
Study by Stripe and Harris Poll: $85 Billion Cost of Bad Code
42% of developer time is spent on Technical Debt
many different SDLs
highly dependent on project
Requirements
Design
Implementation
Verification
Maintenance
Testing and Deployment
This model can be used for all Engineering problems!
What?
How?
Build
More Testing / Evaluate
Bugs / New Features
Waterfall Model
Example: Building a Simple Calculator
that adds 2 numbers
Requirements
Design
Implementation
Verification
Maintenance
Testing and Deployment
What?
How?
Build
More Testing / Evaluate
Bugs / New Features
- allows input of 2 numbers
- calculates the sum and displays it
- HTML/CSS for UI
- JavaScript for logic
- write JS code
- comment code
- write unit tests
- deploy on github pages
- does the UI show the sum?
- do users understand the UI?
- what if numbers are too long?
- subtract? multiply?
- fix bugs, create future plan
Friday is Hands-on Day!
You need a computer :)
Please sign-up at github.com !
#introductions
Jahnavi Leburu
Tianyu Kang
TA Office Hours
Tuesday / Thursday 4pm - 5pm
Chenjie Zheng
Best way to get help
By Daniel Haehn
Hi, I am a biomedical imaging and visualization researcher who investigates how computational methods can accelerate biological and medical research.