1 University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444F Software Engineering I Prof. Paulo Pacheco

Slides:



Advertisements
Similar presentations
CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh,
Advertisements

Eng: Eyad Haddad Construction Safety Management 1 Construction Safety Management Faculty of Applied Engineering and Urban Planning Civil Engineering Department.
Database Design Concepts Info 1408 Lecture 1 Introduction to the module.
General information CSE 230 : Introduction to Software Engineering
1 CS 425 / CS 625 Software Engineering Fall 2007 Course Syllabus August 27, 2007.
1 CS 425 / CS 625 Software Engineering Fall 2008 Course Syllabus August 25, 2008.
CS 447 Distributed Objects Instructor: Shangping Ren.
CSc 160 Overview of Fundamentals of Computer Programming II Spring (SO1) 2004.
© Chinese University, CSE Dept. Distributed Systems / E-Commerce Course ECT7120: Distributed Systems and Software Dr. Michael R. Lyu Computer Science.
Course Introduction Computer Science Department CS141:Computer Programming 1 Fall 2014 Dr. Hamid Al-Hamadi.
EET 4250: Microcomputer Architecture Fall 2009 William Acosta URL:
Data Structures and Programming.  John Edgar2.
1 Are you ready?. 2 Professor: Vladimir Misic Office : Phone: Office Hours : Mon, Tue; 2:00pm – 4:00pm Website :
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
ELEC516/10 course_des 1 ELEC516 VLSI System Design and Design Automation Spring 2010 Course Description Chi-ying Tsui Department of Electrical and Electronic.
Fall 2013 Course Syllabus Instructor: Sergiu Dascalu Department of Computer Science and Engineering August 27,
1 Object Oriented Programming Computer Systems Engineering (D2) and Programming (P)
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
Computer Network Fundamentals CNT4007C
Construction Project Management
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH KKF 8A – room 4.
EECE 310 Software Engineering Lecture 0: Course Orientation.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
CSE 436 Software Engineering Workshop Course Overview Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
CPS120: Introduction to Computer Science Fall: 2002 Instructor: Paul J. Millis.
Course Introduction Software Engineering
© Xiaoying Gao, Peter Andreae Introduction to Computer Program Design COMP T2. Xiaoying (Sharon) Gao Computer Science Victoria University of Wellington.
Fall 2015 Course Syllabus Instructor: Sergiu Dascalu Department of Computer Science and Engineering August 25,
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec23 1 Lecture 23: Course Summary Course Goals Summary of what we.
SKU3033 / SKF3033 NETWORK & SYSTEM ADMINISTRATOR.
CSC 171 – FALL 2001 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
10/23/2015CPSC , CPSC , Lecture 141 Software Engineering, CPSC , CPSC , Lecture 14.
IT Semester 1 Course Introduction IT Portfolio IT 1140 ( Semester 1) Hong Kong Baptist University IT 1140 – IT Portfolio – Course Introduction.
Lecture Section 001 Spring 2008 Mike O’Dell CSE 1301 Computer Literacy.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Software Engineering. Introduction Objective To familiarize students to the fundamental concepts, techniques, processes, methods and tools of Software.
HOW I SURVIVED A SCHULTZ COURSE AND LEARNED TO LOVE INFORMATION SYSTEMS Fall 2014 Edition.
Software Development CSCI-1302 Lakshmish Ramaswamy.
CSCE 312 Computer Organization Course Administration Dr. Rabi N Mahapatra Department of Computer Science & Engineering, 520B HR Bright,
Fall 2011 Course Syllabus Instructor: Sergiu Dascalu Department of Computer Science and Engineering August 30,
Introduction Fall 2001 Foundations of Computer Systems Prerequisite:91.166* or * Section A Instructor: Dr. David Hutchinson Office:
01 - Course Intro.CSC4071 CSC407F Software Architecture & Design Prof. Penny LP396C
Software Systems Engineering Rob Oshana Southern Methodist University EMIS 7312.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Administrative Information SC/CSE SU10 -- Software Design.
Computer Networks CNT5106C
CE-2810 Dr. Mark L. Hornick 1 CE-2810 Embedded Systems Software 2 Dr. Mark L. Hornick web: people.msoe.edu/~hornick webCT: webct.msoe.edu.
Course Overview CSE5319/7319 Software Architecture and Design Spring 2016 Dr. LiGuo Huang Dept. of Computer Science and Engineering Southern Methodist.
1 CS 425 / 625 Software Engineering Fall 2003 Course Syllabus August 25, 2003.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Advanced Programing practices
Computer Network Fundamentals CNT4007C
Computer Engineering Department Islamic University of Gaza
CSc 020: Programming Concepts and Methodology II
Lecture 0 Software Engineering Course Introduction
Computer Networks CNT5106C
Syed Sohail Ahmed Assistant Professor, UET Taxila
Course Information Mark Stanovich Principles of Operating Systems
CS 425 Software Engineering
Computer Networks CNT5106C
Teacher name | course number
EECE 310 Software Engineering
CS 425 / CS 625 Software Engineering
Computer Networks CNT5106C
Software Architecture & Design
Lecture 1: Overview of CSCI 485 Notes: I presented parts of this lecture as a keynote at Educator’s Symposium of OOPSLA Shahram Ghandeharizadeh Director.
Computer Engineering Department Islamic University of Gaza
Presentation transcript:

1 University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444F Software Engineering I Prof. Paulo Pacheco office hours: SF3207 Mon and Wed 1-2 pm Prof. Kersti Wain-Bantin office hours: SF3207 Thurs 9-11 am © 2002, Pacheco, Wain-Bantin

CSC444 Lec00- 2 University of Toronto Department of Computer Science Syllabus The software development process. Software requirements and specifications. Software design techniques. Techniques for developing large software systems. CASE tools and software development environments. Software testing, documentation and maintenance. (Prerequisite: ECE344S) © 2001, Steve Easterbrook

CSC444 Lec00- 3 University of Toronto Department of Computer Science Course Objectives  to help students to develop skills that will enable them to construct software of high quality – software that is reliable, and that is reasonably easy to understand, modify and maintain  to foster an understanding of why these skills are important © 2001, Steve Easterbrook

CSC444 Lec00- 4 University of Toronto Department of Computer Science Teaching Methods Lectures (2 per week)  …are compulsory  …cover core material Practicals (1 per week)  …last for 3 hours  …are compulsory  …are used to do term assessments  …are used for the team projects Team meetings (at least 1 per week)  You will need to meet with your team regularly (Labs)  (There are no regularly scheduled lab sessions) © 2001, Steve Easterbrook

CSC444 Lec00- 5 University of Toronto Department of Computer Science Lectures LEC 01 LEC 02 LEC 03 Mon 12pm GB248 Mon. 12pm GB119 Tues 10am MC102 Wed 12pm GB248 Wed 12pm GB119 Wed 11am MC252 Practicals alpha beta gamma delta Mon Thurs Fri Fri 12:00-13:00 16:00-19:00 15:00-18:00 15:00-18:00 GB304 GB404 GB404 GB405 you will be allocated to one of these... Timetabling © 2002, Pacheco, Wain-Bantin

CSC444 Lec00- 6 University of Toronto Department of Computer Science Team Projects Phase 0: Requirements Analysis We will organize you into teams at your first practical. You will receive an initial specification. Phase 1: Module Development (4 weeks) Each team will implement one of several modules. Phase 2: System Integration and Test (3 weeks) Each team will integrate its module with modules bought from other teams. Phase 3: Software Maintenance (4 weeks) Each team will make modifications to a system it has bought from another team. © 2001, Steve Easterbrook

CSC444 Lec00- 7 University of Toronto Department of Computer Science Trading Each practical section is a trading block You can only buy and sell software within your trading block There will be 12 teams within a trading block 3 teams working on each of 4 modules in phase 1 You will need to work out a strategy both for buying and selling Each team has a bank account Your TA operates the bank account for you You get an initial balance of S$300 (“software dollars”) There is a 5% bonus on coursework marks if you end the term in profit (and there is no penalty for making a loss) Each purchase must include a signed contract Your TA will not transfer funds between bank accounts without one … and it must be signed by both parties! You can include anything you like in a contract There is a mechanism for investigating breaches of contract © 2001, Steve Easterbrook

CSC444 Lec00- 8 University of Toronto Department of Computer Science Assessment 6 assignments  Assignment 1 is worth 5% of your grade  Assignments 2-6 are each worth 10% of your grade  All assignment are team assignments (each team hands in one report)  Assignments are handed out during practicals  …and are due in at the beginning of the practical two weeks later 2 presentations  Each presentation is worth 5% of your grade  All presentations are team presentations  Each team will give a demo of their system  Each team will give a presentation of “lessons learned” 1 exam  The end of term exam counts for 35% of the course grade  (there is no mid-term exam) © 2001, Steve Easterbrook

CSC444 Lec00- 9 University of Toronto Department of Computer Science Books Main Course Text (Required)  Hans van Vliet, “Software Engineering: Principles and Practice (Second Edition)”. Wiley. Other Texts (Recommended)  Babara Liskov and John Guttag, “Program Development in Java: Abstraction, Specification and Object Oriented Design”. Addison Wesley.  Mary Shaw and David Garlan, “Software Architectures: Perspectives on an Emerging Discipline”. Prentice Hall. Background Reading  Sections of comp.risks forum  Other readings will be suggested during the course © 2001, Steve Easterbrook

CSC444 Lec University of Toronto Department of Computer Science Lecture topics guide Phase 0 Orientation (this lecture) Motivational Case Studies Phase 1 Software Processes Software Project Management Decomposition and Abstraction Procedural Abstraction Data Abstraction Testing Reviews & Fagan Inspections Formal verification Phase 2 Debugging & Exception handling Software quality; modularity Design Representations Requirements Analysis Structured Analysis Object Oriented Analysis Phase 3 Formal Analysis Specifications Software Architectures Software Maintenance & Reuse Software Measurement Process Modeling, process improvement © 2002, Pacheco, Wain-Bantin

CSC444 Lec University of Toronto Department of Computer Science Top 10 Reasons Why Software Projects Fail Incomplete requirements Lack of user involvement Lack of resources Unrealistic expectations Lack of executive support Changing requirements and specifications Lack of planning Software no longer needed Lack of Information Technology management Technology illiteracy from "Sketchy Plans, Politics Stall Software Development" Computerworld, June 19, 1995 © 2002, Pacheco, Wain-Bantin

CSC444 Lec University of Toronto Department of Computer Science Success Rate of Software Application Development Projects Completed on time, on budget 16.2% Canceled at some point in the cycle 31.1% Over budget, late and with fewer features and functions than specified 52.7% from "Tough Love Reins in IS Projects" Computerworld, June 19, 1995 © 2002, Pacheco, Wain-Bantin

CSC444 Lec University of Toronto Department of Computer Science Danger Signs of Runaway Projects The project is the largest ever undertaken by the organization. The project uses people without comparable experience (whether employees or consultants). The project is highly integrated. Leading-edge technology is involved. The software being used is untested in the industry. The software needs modification to meet your needs. from "Before Disaster Strikes" CIO Magazine, June 15, 1993 © 2002, Pacheco, Wain-Bantin

CSC444 Lec University of Toronto Department of Computer Science productivity standard software25 bugs/errors per KLOC good software 2 bugs/errors per KLOC space shuttle software<1 bug/error per 10 KLOC cell phone 3 bugs/errors per KLOC Windows bugs/errors per KLOC (Windows-95 has approx. 10,000,000 lines of code) © 2002, Pacheco, Wain-Bantin

CSC444 Lec University of Toronto Department of Computer Science ACM computing curricula 2001 software engineering processes requirements and specifications design validation delivery of systems evolution project management tools and environments component-based computing formal methods reliability © 2002, Pacheco, Wain-Bantin

CSC444 Lec University of Toronto Department of Computer Science Any Questions?? © 2002, Pacheco, Wain-Bantin course web site