Скачать презентацию CSC 444 Software Engineering Prof David A Penny Скачать презентацию CSC 444 Software Engineering Prof David A Penny

778a5c2d0ea9cb25e66eab3e68f8a528.ppt

  • Количество слайдов: 13

CSC 444 Software Engineering Prof. David A. Penny Lectures: 6: 10 – 8: 00 CSC 444 Software Engineering Prof. David A. Penny Lectures: 6: 10 – 8: 00 pm Tutorial Days: 6: 10 – 7: 00 pm, 7: 10 - 9: 00 pm lecture Course Website: https: //ccnet 3. utoronto. ca/20079/csc 444 h 1 f/ http: //www. cs. toronto. edu/~penny/teaching/csc 444 -07 f CSC 444 F'07 Introduction 1

Professional Practices • This course teaches you professional software development practices not consistently taught Professional Practices • 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. CSC 444 F'07 Introduction 2

Experience • Need – Formal education in the computing sciences – Professional experience • 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 v 1 of a product • Live with your mistakes through v 2, v 3, v 4, . . . • 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 CSC 444 F'07 Introduction 3

About Prof. Penny • Graduated B. Sc. in CS Uof. T 8 T 5, About Prof. Penny • Graduated B. Sc. in CS Uof. T 8 T 5, Ph. D 9 T 3 – OOT IDE, Polyx, Mini. Tunis, CE, . . . • IBM Labs 1992 – 1994 – C++ IDE for AIX • Algorithmics 1994 – 1999 – VP Software Development – Risk. Watch > $500 M in revenues to-date • Consultant 1999 – 2003 – Software management consulting (~10 engagements) • Uof. T CS 2000 – 2003 – Associate Professor • Electronics Workbench 2003 – 2005 – VP R&D – Acquired by National Instruments – Multi. Sim/Ulti. Board/Ulti. Route (8 MLOC) • Ceryx 2005 – present – CIO – Provisioning system CSC 444 F'07 Introduction 4

Text • Required Course Text: – Professional Software Development • 2007 edition • by Text • Required Course Text: – Professional Software Development • 2007 edition • by David A. Penny • ~350 pages – Can buy from me starting next week for $60. CSC 444 F'07 Introduction 5

Grades • 2 Solo Assignments – 15% each – A 1: Self-Aware Programming – Grades • 2 Solo Assignments – 15% each – A 1: Self-Aware Programming – A 2: Optimization and Testing – Late Policy: • 15% absolute penalty if handed in <= 1 week late • Not accepted after that • 1 Team Assignment – 25% – Release Planning and Team Software Construction • Exam – 40% – Closed book – Covers all lectures, tutorials, assignments, and assigned reading • Class Participation – 5% – Based on existence and quality of submitted questions and answers CSC 444 F'07 Introduction 6

Course Conduct • Come to ALL the lectures and come prepared – You should 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 – Previous year’s midterms and exams are posted for your review purposes CSC 444 F'07 Introduction 7

LET’S GET STARTED! CSC 444 F'07 Introduction 8 LET’S GET STARTED! CSC 444 F'07 Introduction 8

Top-10 Essential Practices • • Crystallized for me whenever I enter into a new 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 CSC 444 F'06 Lecture 1 9

source code control infrastructure reproducible builds defect/feature tracking automated regression testing release planning control source code control infrastructure reproducible builds defect/feature tracking automated regression testing release planning control feature specifications refinement architectural control effort tracking process control business planning CSC 444 F'06 Lecture 1 10

Intended Audience • • Commercial software vendor environment – Not open source, internal IT, Intended Audience • • Commercial software vendor environment – Not open source, internal IT, ASP, NASA, . . . Who – Individual contributors, Technical leaders, First-line managers, Directors, VP’s, CTO’s Next release – Not initial release – “Green fields” is 80% inspiration, 20% process – “Next Release” is 80% process – 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 CSC 444 F'06 Lecture 1 11

New Product Versus Established One • • • New product – 1 yr. to 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 – Ongoing cost = $3, 500, 000 / year Improve productivity by 10% – New product: save $50, 000 – Established Product: save $1, 000 to date, $350, 000/year Next release development is more economically important. Understanding next release development allows you to setup things in a sustainable fashion during an initial release effort. CSC 444 F'06 Lecture 1 12

Tentative Lecture Schedule date Lecture Evaluation Sep. 10 Course Introducton, Software Business Environment (ch. Tentative Lecture Schedule date Lecture Evaluation Sep. 10 Course Introducton, Software Business Environment (ch. 15) Sep. 17 Release Cycle Overview (ch. 3), Releases (ch. 7), Versions (ch. 8) A 1 out Sep. 24 Top 10 Practices (ch. 1), Source Control (ch. 9) Oct. 1 Builds (ch. 9) Oct. 15 Quality Assurance (ch. 10) A 1 due, A 2 out, Oct. 22 Release Planning (ch. 2, 3, 4) Oct. 29 Capacity Constraint (ch, 5, A, C) Nov. 5 Estimation (ch. 6) A 2 due, A 3 out Nov. 12 Defect and Feature Tracking (ch. 11, 12) Nov. 19 Process Control (ch. 13) Nov. 26 Architecture (ch. 14) Dec. 3 Proposals and Business Plans (ch. 16) - Exam Review A 3 due CSC 444 F'07 Introduction 13