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.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Copyright © by Mark J. Sebern Software Engineering Process I Dr. Rob Hasker L-331, hasker (Adapted.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
I n t e g r i t y - S e r v i c e - E x c e l l e n c e Business & Enterprise Systems Introduction to Hewlett Packard (HP) Application Lifecycle Management.
Object-Oriented Enterprise Application Development Course Introduction.
LSU 10/09/2007Project Schedule1 The Project Schedule Project Management Unit #4.
Design, Implementation and Maintenance
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Software Configuration Management
Software Engineering Institute Capability Maturity Model (CMM)
CSC444F'05Lecture 11 CSC444 Software Engineering Prof. David A. Penny Lectures Will start at 7:10 pm Please come out now to purchase a book for $40. If.
Chapter : Software Process
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
Evaluating and Purchasing Electronic Resources- The University of Pittsburgh Experience Sarah Aerni Special Projects Librarian University of Pittsburgh.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
N By: Md Rezaul Huda Reza n
Software Testing Life Cycle
Software Quality Assurance Activities
CSC444F'06Lecture 111 Process Control. CSC444F'06Lecture 112 The Process Document A document that concisely describes the steps we go through to produce.
CSC444F'07Introduction1 CSC444 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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Teaching material for a course in Software Project Management & Software Engineering – part II.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Prof. Matthew Hertz SH 1029F /
BZUPAGES.COM Introduction1 Professional Practices Lecturer: Sadaf Majeed Sial Lecture: 1 st Lecture time: 3:30 – 5:00 pm Tutorial Days: Monday, Tuesday.
Prof. Matthew Hertz WTC 207D /
CSC444F'05Lecture 21 Lecture will start at 7pm No Tutorial Today.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
2011 By Kristin Rowe. Introduction Introduction | Task | | Process | Evaluation | Conclusion | Credits | Teacher PageTask | Process Evaluation Conclusion.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
1 Project Management Introduction. 2 Chap 1 What is the impact? 1994: 16% of IT projects completed “On-Time” 2004 : 29% of IT projects “On- Time” 53%
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Georgia Institute of Technology CS 4320 Fall 2003.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
01 - Course Intro.CSC4071 CSC407S / 2103S Software Architecture & Design Prof. Penny Bahen 5228 Office hours: Wednesdays 10:00 – 11:00.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Lecture 4. IS Planning & Acquisition To be covered: To be covered: – IS planning and its importance Cost-benefit analysis Cost-benefit analysis Funding.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
第 11 組 MIS 報告. Phases of any information system ~ recognition of a business problem or opportunity ~ recognition of a business problem or opportunity.
IS2210: Systems Analysis and Systems Design and Change Twitter:
State of Georgia Release Management Training
An Agile Requirements Approach 1. Step 1: Get Organized  Meet with your team and agree on the basic software processes you will employ.  Decide how.
CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
01 - Course Intro.CSC4071 CSC407S / 2103S ECE450S Software Architecture & Design (ECE: Software Engineering II) Prof. Penny LP396C
Successful Software Practice How to successfully work as a team to create software Chris Mendes, Chief Technology Officer Sirca Limited March 2012.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Advanced Software Engineering Dr. Cheng
Software Development Life Cycle Waterfall Model
Software Project Configuration Management
Software Verification and Validation
Requirements Analysis Scenes
Applied Software Implementation & Testing
CSE 303 Concepts and Tools for Software Development
Chapter 11: Software Configuration Management
Presentation transcript:

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 (or thereabouts!) Please purchase a book for $40 next week. Course Website:

CSC444F'06Lecture 12 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.

CSC444F'06Lecture 13 About Prof. Penny Graduated B.Sc. in CS UofT 8T5, Ph.D 9T3 –OOT IDE, Polyx, MiniTunis, CE,... IBM Labs 1992 – 1994 –C++ IDE for AIX Algorithmics 1994 – 1999 –VP Software Development –RiskWatch > $500M in revenues to-date Consultant 1999 – 2003 –Software management consulting (~10 engagements) UofT CS 2000 – 2003 –Associate Professor Electronics Workbench 2003 – 2005 –VP R&D – Acquired by National Instruments –MultiSim/UltiBoard/UltiRoute (8MLOC) Ceryx 2005 – present –CIO –Provisioning system

CSC444F'06Lecture 14 Lectures I wrote a manuscript for you guys: –Professional Software Development, –I will be following it closely –Tentative Schedule LectureDateTopicsChapters 1Sep 11Top-10 Practices, Introduction to Planning1,2 2Sep 18Release Planning Overview, Capacity Constraint3,4 3Sep 25Quantitative Capacity Constraint, Sample RP5,A,C 4Oct 2Stochastic Capacity Constraint, Sample SRP6,B,C Oct 9Thanksgiving – no lecture 5Oct 16Releases, Versions7,8 6Oct 23MIDTERMSource Control9 7Oct 30Build, Testing10 8Nov 6Defect & Feature Tracking11,12 9Nov 13Process Control13 10Nov 20Architectural Clarity14 11Nov 27Business Aspects / Exam Review15,16

CSC444F'06Lecture 15 Grades 2 Assignments – 15% each –A1: Self-Aware Programming (out Sep.25 due Oct.16) –A2: Release Planning (out Oct.30 due Nov.20) –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.16 th Exam – 40% –Closed book (ditto) –Covers all lectures, assignments, and assigned reading

CSC444F'06Lecture 16 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'06Lecture 17 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'06Lecture 18 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

CSC444F'06Lecture 19 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'06Lecture 110 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'06Lecture 111 infrastructure control refinement source code control defect/feature tracking reproducible builds automated regression testing release planning feature specifications architectural control business planning effort tracking process control

CSC444F'06Lecture Source Code Control Central repository –Everybody knows where to find what they are looking for –Secure, backed-up storage Defines module architectural structure –hierarchy Complete change history –Can back up and find where problems are first introduced Multiple maintenance streams –Work on next release while maintaining previous releases Patches –Can go back and patch any release in the field Enables Team development “Interface” to coordinate Dev and QA/Build “Guard” against bad changes

CSC444F'06Lecture Defect / Feature Tracking Keeps track of all defects found or new features desired –Won’t forget any Coordinates a workflow for writing / fixing them –Won’t skip steps Provides management visibility into progress Enables effective prioritization Enables metrics gathering

CSC444F'06Lecture Reproducible Builds Check out of source control and one command to build the product Required for a consistent experience across all developers, QA/Build, customers Dev builds –For coding and testing Production builds –Includes creation of install image –And creation of ISO-Image –Should also be fully automated

CSC444F'06Lecture Automated Regression Testing Scripts that run after every QA/Build dev build to test as much functionality as possible Critical to improving software quality Prevents errors with previously seen symptoms from recurring –A very common thing to happen Enables coders to change tricky bits with confidence Enables finding problems closer to their injection –Earlier you can find an issue the less costly it is to fix. Enables fixing last problems prior to shipping with confidence –Can release with fewer known defects –Can release on time

CSC444F'06Lecture Release Planning After the previous basics are in place this is the most important practice –Will spend 1/3 of the course on this Determining –What goes into the next release –By when will it will be done –Using what resources Tracking that throughout the release Adjusting as necessary Enables business side to do their jobs –Good relationships Enables quality –By maintaining the test/debug period Provides elbow room –To improve productivity

CSC444F'06Lecture Feature Specifications Complicated features require them –Need to make this determination Needed to keep release plan on track –Better estimates if know what we are doing in more detail Enables a better end-user feature Eliminates unanticipated integration problems Best place to introduce reviews

CSC444F'06Lecture Architectural Control Must maintain a clean architecture even in the face of –Many coders working on the code –Frequent feature additions That the software was not designed for initially –Frequent defect corrections By inexperienced coders who do not understand the architecture Architectural documentation Review of designs and code for conformance Chief Architect Automated architectural checking tools

CSC444F'06Lecture Effort Tracking Need to know how much staff time is spent on –Each new feature –Correcting defects –Other Can improve estimation accuracy Can improve estimates of staff time available for next release Can monitor effectiveness of initiatives to free up coder time for more coding

CSC444F'06Lecture Process Control Written process for the release cycle Gets everybody on the same page –Can train new staff Enables systematic definition / collection of metrics Can monitor process for compliance Can consider changes to the process from a stable baseline

CSC444F'06Lecture Business Planning Development occurs within a business context If not understood and managed, will sink the project more surely than technical shortcomings Writing effective proposals Integrating into the budget cycle.

CSC444F'06Lecture 122 Summary – Top 10 practices Do all these things, and you’re doing well. infrastructure control refinement source code control defect/feature tracking reproducible builds automated regression testing release planning feature specifications architectural control business planning effort tracking process control