CSC444F'06 Lecture 1 1 CSC444 Software Engineering Prof. David A. Penny Lectures Will start at 7:10 pm Break at 8:00 pm, Resume at 8:10 pm End at 9:00 pm (or thereabouts!) Please purchase a book for $40 next week. Course Website: http://ccnet.utoronto.ca/20069/csc444h1f
22
Embed
CSC444F'06Lecture 11 CSC444 Software Engineering Prof. David A. Penny Lectures Will start at 7:10 pm Break at 8:00 pm, Resume at 8:10 pm End at 9:00 pm.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CSC444F'06 Lecture 1 1
CSC444Software Engineering
Prof. David A. PennyLectures Will start at 7:10 pmBreak at 8:00 pm, Resume at 8:10 pmEnd at 9:00 pm (or thereabouts!)
• This course teaches you professional software development practices not consistently taught anywhere else.– Deals mostly with process, very little with specs/designs/coding.
– If you have the aptitude and inclination of becoming a professional software engineer you will find the course fascinating.
• Otherwise I guarantee you will be bored!
• Applying these practices will help you avoid– Missed dates
– Poor quality software
– Badly-designed features
– Poor user documentation
– Poor architecture and architectural documentation
– Dysfunctional professional relationships between “The Business Side” and Software Development
• When software is built in a professional fashion in industry, this is how it is consistently done.
– Late Policy:• 15% absolute penalty if handed in <= 1 week late• Not accepted after that
• Midterm – 30%– Oct.31, 6-7pm
– Closed book (I want you to study!)
– all lectures and assigned reading up to and including Oct.16th
• Exam – 40%– Closed book (ditto)
– Covers all lectures, assignments, and assigned reading
CSC444F'06 Lecture 1 6
Course Conduct
• Come to ALL the lectures and come prepared– You should have read the assigned textbook reading– You should have thought about it
• Take notes during lectures. Ask questions to clarify material you are not 100% clear on.
• Review the posted slides afterwards.
• Prepare for the midterm and the examinations by re-reading the text and the lecture notes. Practice writing the tests– I will post last year’s midterm and exam for your review purposes
• MAINLY: attend lectures or you will be toast!
• If you do all this it will be an easy course to get a high grade in.
CSC444F'06 Lecture 1 7
Experience
• Need– Formal education in the computing sciences– Professional experience
• Build software that lots of people pay money to buy– Not just “are you paid”
• Make certain decisions for v1 of a product
• Live with your mistakes through v2, v3, v4, ...
• Make fewer mistakes next time around
• We try to fill the gap a bit– Lessons coming out of extensive professional experience
• Not all professionals agree on what constitute “basic professional practices”– Characteristic of an immature industry
– But can agree on the problems we are trying to solve
– One (informed) opinion will be presented here
CSC444F'06 Lecture 1 8
Intended Audience
• Commercial software vendor environment– Not open source, internal IT, ASP, NASA, ...
– Next release development is more important to businesses
• Initial release development– Innovation is clearly also important
– Innovation is less amenable to help from process
– Should set things up to be sustainable
CSC444F'06 Lecture 1 9
New Product Versus Established One
• New product– 1 yr. to develop
– 3 coders, 1 tester, 1 documenter
– Cost = 1 x 5 x $100,000 = $500,000
• Established Product– 5 years later
– 20 coders, 10 testers/build, 5 documenters
– Cost to date = $10,000,000
– Ongoing cost = $3,500,000 / year
• Improve productivity by 10%– New product: save $50,000
– Established Product: save $1,000,000 to date, $350,000/year
• Next release development is more economically important.
CSC444F'06 Lecture 1 10
Top-10 Essential Practices
• Crystallized for me whenever I enter into a new engagement.• If any of these are missing, I know I have something to fix.• These are all important• It will take more than this course to cover them all
• You will agree that all suggestions are sensible and will probably vow to carry them out– On your first job, you’ll focus on code and test and forget most of them
– You’ll be bitten in the ass
– You’ll re-commit to the ideas (if you’re good)
• Simple but hard– Trust me: make sure these things are done and everything will go ok
– Very hard to change behaviour
– Need to be dogged and determined and tricky
CSC444F'06 Lecture 1 11
infrastructure
control
refinement
source code control
defect/feature tracking
reproduciblebuilds
automated regression
testing
release planning
feature specifications
architectural control
business planning
effort tracking
process control
CSC444F'06 Lecture 1 12
1. Source Code Control
• Central repository– Everybody knows where to find what they are looking for