CS451 Software Engineering II CS451 Software Engineering II Michael Oudshoorn and Ray Babcock.

Slides:



Advertisements
Similar presentations
CMPT 275 Software Engineering
Advertisements

John Hurley Cal State LA
Learning and Teaching Conference 2012 Skill integration for students through in-class feedback and continuous assessment. Konstantinos Dimopoulos City.
IST359: Introduction to DBMS IST359 Spring 2011 Instructor : Michael Fudge t o.110b Hinds w.
CS460 Senior Design Project I (Software Engineering in the Large)
OV-1.1 CSE4100 CSE4100 Programming Language Translation Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut.
ICS 324 Database Systems Second Semester (072) Information & Computer Science Department.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
General information CSE 230 : Introduction to Software Engineering
CMSC 132: Object-Oriented Programming II
CS 331 / CMPE 334 – Intro to AI CS 531 / CMPE AI Course Outline.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
1 CS 425 / CS 625 Software Engineering Fall 2007 Course Syllabus August 27, 2007.
Systems Analysis and Design for Electronic Commerce, Networked Business Processes, and Virtual Enterprises Walt Scacchi, Ph.D. GSM 271 and FEMBA 271 Spring.
introduction to MSc projects
CS351 Software Engineering (Software Engineering in the Small)
Fundamentals of Information Systems, Second Edition
CSE 322: Software Reliability Engineering Topics covered: Course outline and schedule Introduction, Motivation and Basic Concepts.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
 MODERN DATABASE MANAGEMENT SYSTEMS OVERVIEW BY ENGINEER BILAL AHMAD
Capstone Design Project (CDP) Civil Engineering Department First Semester 1431/1432 H 10/14/20091 King Saud University, Civil Engineering Department.
Introduction. Classes: Tuesdays & Thursdays 8:30 – 10:00 am Groups: We will work in a group of 3 Sessions will be highly interactive! Prior learning is.
CS211: Course Overview George Mason University. Today’s topics Go over the syllabus Go over resources – Marmoset – Piazza – Textbook Highlight important.
PROGRAM LAUNCHING Business Plan Writing ELIB 203.
Computer Network Fundamentals CNT4007C
COMP 465W: Software Engineering Fall Components of the Course The three main components of this course are: The study of software engineering as.
Software Engineering Methodologies (Introduction)
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
Chapter 1: Introduction to Project Management
Z26 Project Management Introduction lecture 1 13 th January 2005
Course Introduction Software Engineering
COMP 465W Software Engineering Fall Components of the Course The three main components of this course are: The study of software engineering as.
Lecture 3 Managing the Development Project SFDV Principles of Information Systems.
WELCOME TO UNIT 1. Tonight’s Agenda Tonight I am going to review the following topics with you: The syllabus, the expectations for the course, we will.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
[CS-225: Software Engineering] Course Guide Fatima Khan Prince Sultan University, College for Women.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
IST359: Introduction to DBMS IST359 Spring 2012 Instructor : Michael Fudge t o.110b Hinds w.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Active Learning and Team-Based Learning in the Engineering Classroom Bill Weeks ECE Department NFTS Luncheon.
Fall 2011 Course Syllabus Instructor: Sergiu Dascalu Department of Computer Science and Engineering August 30,
CSE Senior Design II Day 1: Getting Organized Spring 2015 Instructor: Manfred Huber.
Advanced Legal Writing Seminar: Wednesdays, 10:00 p.m. EST Office Hours: Mondays from 3 – 5 p.m. EST, and by appointment AIM sign-in: cssouthall
Using Alice in an introductory programming course for non-CS majors Adelaida A. Medlock Department of Computer Science Drexel University
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Wednesday 5-6; Thursdays 4-6 or by appointment.
CS352 Software Engineering Project (Software Engineering in the Small) Michael Oudshoorn and Ray Babcock.
CGMB324: MULTIMEDIA SYSTEM DESIGN
Winter 2016CISC101 - Prof. McLeod1 CISC101 Elements of Computing Science I Course Web Site: The lecture outlines.
CS112: Course Overview George Mason University. Today’s topics Go over the syllabus Go over resources – Marmoset – Blackboard – Piazza – Textbook Highlight.
CSE Senior Design II Day 1: Getting Organized Spring 2012 Instructor: Mike O’Dell.
CS351 Software Engineering (Software Engineering in the Small) Michael Oudshoorn and Ray Babcock.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
M253 Students Study Guide Mrs. Fatheya Al Mubarak – AOU Dammam.
CS351 Software Engineering I Michael Oudshoorn and Denbigh Starkey.
Day 1: Getting Organized Spring 2014
CS6501 Advanced Topics in Information Retrieval Course Policy
Day 1: Getting Organized Fall 2012
Day 1: Getting Organized Summer 2012
Introduction to CS II Data Structures
Day 1: Getting Organized Fall 2013
COMS 161 Introduction to Computing
Day 1: Getting Organized Spring 2013
CS460 Senior Design Project I (Software Engineering in the Large)
Introduction to Engineering Design II (IE 202)
Day 1: Getting Organized Spring 2011
Computer Networks CNT5106C
Presentation transcript:

CS451 Software Engineering II CS451 Software Engineering II Michael Oudshoorn and Ray Babcock

Introduction  This course is taught by Michael Oudshoorn and Ray Babcock  Ray’s consulting times are advertised on the web and outside his door.  Michael is available by appointment through Jeannette Radcliffe in the Departmental Office  It is difficult for the Head of Department to set fixed office hours due to various meetings.  Don’t let the need for an appointment stop you from seeking help – if I’m available, I’ll see you immediately.  This course is taught by Michael Oudshoorn and Ray Babcock  Ray’s consulting times are advertised on the web and outside his door.  Michael is available by appointment through Jeannette Radcliffe in the Departmental Office  It is difficult for the Head of Department to set fixed office hours due to various meetings.  Don’t let the need for an appointment stop you from seeking help – if I’m available, I’ll see you immediately.

What is your background?  Ideally, you should have completed:  CS351 Software Engineering I  CS221 Data Structures and Algorithms  CS223 Advanced Data Structures and Algorithms  CS324 Programming Paradigms  You will be proficient at coding and the use of data structures and algorithms.  Ideally, you should have completed:  CS351 Software Engineering I  CS221 Data Structures and Algorithms  CS223 Advanced Data Structures and Algorithms  CS324 Programming Paradigms  You will be proficient at coding and the use of data structures and algorithms.

What is the subject all about?  CS451 Software Engineering II will build on CS351 Software Engineering I and give you an opportunity to put it into practice.  Topics include:  Requirements gathering  Software design  Functional specification  Cost models  Metrics  Managing software development  Formal methods  Capability Maturity Model/CMMI  Risk analysis  Real-time systems  Safety critical software  Guest lectures from industry  CS451 Software Engineering II will build on CS351 Software Engineering I and give you an opportunity to put it into practice.  Topics include:  Requirements gathering  Software design  Functional specification  Cost models  Metrics  Managing software development  Formal methods  Capability Maturity Model/CMMI  Risk analysis  Real-time systems  Safety critical software  Guest lectures from industry

Objectives  The course aims to produce graduates that:  Are able to design, document, build and integrate complex software systems.  Understand the issues involved in industrial software engineering:  Requirements analysis  Functional specification  Effort estimation  Test strategies  Verification and validation  Build and debug a large software system  Communicate and present thoughts and idea in a clear, precise manner  Follow relevant standards  Work in a team environment  Develop efficient and correct code  The course aims to produce graduates that:  Are able to design, document, build and integrate complex software systems.  Understand the issues involved in industrial software engineering:  Requirements analysis  Functional specification  Effort estimation  Test strategies  Verification and validation  Build and debug a large software system  Communicate and present thoughts and idea in a clear, precise manner  Follow relevant standards  Work in a team environment  Develop efficient and correct code

Our hopes  By the time students finish this course they should be highly employable.  Students should have a portfolio to show prospective employers to illustrate their abilities.  By the time students finish this course they should be highly employable.  Students should have a portfolio to show prospective employers to illustrate their abilities.

Assessment  Assessment is based on:  Project (60%)  Quizzes (5%)  Midterm exam (25%)  Final evaluation (10%)  A serious attempt must be may at each component.  At least 2 of the quizzes must be attempted.  Assessment is based on:  Project (60%)  Quizzes (5%)  Midterm exam (25%)  Final evaluation (10%)  A serious attempt must be may at each component.  At least 2 of the quizzes must be attempted.

Resources available  Web pages found at  Visit the web pages often and check for updates.  You will find:  Lecture plan with links to the lecture slides  Assessment criteria  Expectations and Objectives  Web pages found at  Visit the web pages often and check for updates.  You will find:  Lecture plan with links to the lecture slides  Assessment criteria  Expectations and Objectives

Textbooks  There are no fixed textbooks for this course.  We recommend the following as good books that cover the majority (but not all) of the lecture material.  Roger Pressman, “Software Engineering. A Practitioner’s Approach”, McGraw-Hill  Ian Sommerville, “Software Engineering”, Addison- Wesley  Stephen Schach, “Classical and Object-Oriented Software Engineering”, McGraw-Hill  Shari Pfleeger, “Software Engineering. Theory and Practice”, Prentice-Hall  Erich Gamma et al, “Design Patterns. Elements of Reusable Object-Oriented Systems”, Addison- Wesley.  There are no fixed textbooks for this course.  We recommend the following as good books that cover the majority (but not all) of the lecture material.  Roger Pressman, “Software Engineering. A Practitioner’s Approach”, McGraw-Hill  Ian Sommerville, “Software Engineering”, Addison- Wesley  Stephen Schach, “Classical and Object-Oriented Software Engineering”, McGraw-Hill  Shari Pfleeger, “Software Engineering. Theory and Practice”, Prentice-Hall  Erich Gamma et al, “Design Patterns. Elements of Reusable Object-Oriented Systems”, Addison- Wesley.

Our expectations of you  Ask questions  Interact with the instructors  Use each other as a resource  Exchange ideas  Experiment  Contribute to your group  You should take notes in lectures – the slides are merely our notes and may sometime be terse!  Ask questions  Interact with the instructors  Use each other as a resource  Exchange ideas  Experiment  Contribute to your group  You should take notes in lectures – the slides are merely our notes and may sometime be terse!

Workload  This is a 4 credit course. It should therefore occupy about 10 hours of your time each week.  Lectures occupy 3 hours/week, which leaves about 7 hours/week on your project.  You should expect to spend about 140 hours on this course over the Spring semester.  This is a 4 credit course. It should therefore occupy about 10 hours of your time each week.  Lectures occupy 3 hours/week, which leaves about 7 hours/week on your project.  You should expect to spend about 140 hours on this course over the Spring semester.

Deadlines  The project has a number of deadlines.  These are firm deadlines and significant grades are lost for being late – 20% of the available marks each day or part thereof.  Very much like a penalty clause in a contract.  Deadlines will be at a specific times and late penalties applies from 1 second past the deadline. The system clock on esus will be treated as the official clock for the course.  No excuses will be accepted – including machine failure, busy labs, …  It might sound draconian, but that is the way it often works in the corporate world.  The project has a number of deadlines.  These are firm deadlines and significant grades are lost for being late – 20% of the available marks each day or part thereof.  Very much like a penalty clause in a contract.  Deadlines will be at a specific times and late penalties applies from 1 second past the deadline. The system clock on esus will be treated as the official clock for the course.  No excuses will be accepted – including machine failure, busy labs, …  It might sound draconian, but that is the way it often works in the corporate world.

Hint  “Design for change” should be your mantra.  Expect it, plan for it, design for it.  Things are likely to change as you progress through the semester.  Expect the unexpected - prepare and plan for it.  “Design for change” should be your mantra.  Expect it, plan for it, design for it.  Things are likely to change as you progress through the semester.  Expect the unexpected - prepare and plan for it.

Drop/Add  We will not take new students into the course after the second week of classes.  If you are going to drop the subject, do it now. You will be assigned to a group shortly and dropping the subject after that time will leave your group short of manpower (and you won’t be popular).  If you plan to drop the subject, please both Ray and Michael so that we know what is going on.  We will not take new students into the course after the second week of classes.  If you are going to drop the subject, do it now. You will be assigned to a group shortly and dropping the subject after that time will leave your group short of manpower (and you won’t be popular).  If you plan to drop the subject, please both Ray and Michael so that we know what is going on.

Problems for Software Engineers  Dealing with large systems.  Software complexity.  Project complexity.  Interactions with clients.  Coding and management.  Meeting deadlines.  Organizational problems.  Cost overruns.  Deficiencies of current software engineering practice:  Lack of good metrics and measurement tools.  Lack of standards.  You will probably meet all of these in the project!  Dealing with large systems.  Software complexity.  Project complexity.  Interactions with clients.  Coding and management.  Meeting deadlines.  Organizational problems.  Cost overruns.  Deficiencies of current software engineering practice:  Lack of good metrics and measurement tools.  Lack of standards.  You will probably meet all of these in the project!

Project  The project is challenging and large.  It is probably almost certainly larger than you should tackle over a semester.  You need to determine what is important and what you can reasonably accomplish.  The project is open-ended.  We expect each solution will be different  It is a group-based project and you will need to cooperate with your group members.  The project is challenging and large.  It is probably almost certainly larger than you should tackle over a semester.  You need to determine what is important and what you can reasonably accomplish.  The project is open-ended.  We expect each solution will be different  It is a group-based project and you will need to cooperate with your group members.

Group-based  Everybody has to contribute to all aspects of the project.  You should not let your team down through poor performance on your behalf.  At the end of the project, each group member will need to inform the instructors what the effort distribution was across the group. The group project mark will be distributed across individuals in a manner consistent with the effort each member put into the project.  If you let your group down through lack of performance during the semester, it will be reflected in your grade!  Everybody has to contribute to all aspects of the project.  You should not let your team down through poor performance on your behalf.  At the end of the project, each group member will need to inform the instructors what the effort distribution was across the group. The group project mark will be distributed across individuals in a manner consistent with the effort each member put into the project.  If you let your group down through lack of performance during the semester, it will be reflected in your grade!

Project deliverables  This subject involves a substantial project which may require artifacts to be produced:  Requirements document  Functional specification  Demonstration and evaluation  User manual  Minutes of meetings  Complete details and deadlines will be provided at a later date.  This subject involves a substantial project which may require artifacts to be produced:  Requirements document  Functional specification  Demonstration and evaluation  User manual  Minutes of meetings  Complete details and deadlines will be provided at a later date.

Project Outline  This is an opportunity to discuss the project, to clarify what we intend and to help shape the project description (which will be handed out shortly).  In this project you will work in small groups.  The project is large and challenging.  You will need to decide what is important.  You will need to decide what to tackle.  You will need to work consistently throughout the semester.  You will need to plan.  You will need to put your software engineering skills to use.  This is an opportunity to discuss the project, to clarify what we intend and to help shape the project description (which will be handed out shortly).  In this project you will work in small groups.  The project is large and challenging.  You will need to decide what is important.  You will need to decide what to tackle.  You will need to work consistently throughout the semester.  You will need to plan.  You will need to put your software engineering skills to use.

Project Outline  Scenario:  You work for a small company that would like to develop a new product line – a merger of an iPod-like device with a conventional PDA, running linux as its operating system.  The organization intends to target a linux-based platform.  You may not download software for any part of the system since the organization is concerned about the surrounding issues.  You (and your team) have been asked to develop a prototype proof-of-concept system to show that it can be done. This will be used for market research and needs to be “industrial-strength”.  The system is due by mid-April.  Scenario:  You work for a small company that would like to develop a new product line – a merger of an iPod-like device with a conventional PDA, running linux as its operating system.  The organization intends to target a linux-based platform.  You may not download software for any part of the system since the organization is concerned about the surrounding issues.  You (and your team) have been asked to develop a prototype proof-of-concept system to show that it can be done. This will be used for market research and needs to be “industrial-strength”.  The system is due by mid-April.

Project Outline  Constraints and restrictions:  You may use any programming language available on esus (the target platform).  You must produce a Makefile which will allow us to build the system (remember to be careful as our PATH may be different to yours).  The system developed must be robust and reliable.  You will need to use assertions, pre-conditions and post-conditions in the code.  Exception handlers should be used where appropriate.  Constraints and restrictions:  You may use any programming language available on esus (the target platform).  You must produce a Makefile which will allow us to build the system (remember to be careful as our PATH may be different to yours).  The system developed must be robust and reliable.  You will need to use assertions, pre-conditions and post-conditions in the code.  Exception handlers should be used where appropriate.

Project Outline  Constraints and restrictions:  You (and your team) are new employees and have much to prove during your probationary period.  You will need to meet with the instructors for 30 minutes every 2 weeks to provide progress updates, and clarify any questions you might have.  Constraints and restrictions:  You (and your team) are new employees and have much to prove during your probationary period.  You will need to meet with the instructors for 30 minutes every 2 weeks to provide progress updates, and clarify any questions you might have.

Project Outline  You need to follow best practices.  You should make use of appropriate design patterns.  You should make sure your code is extensible and flexible.  The code needs to be efficient.  Portability is not a major issue since the software is being targeted for a specific platform (will the company expand the list of target architectures in the future?).  You have fixed deadlines that need to be met.  You are aiming to produce a useable prototype as a proof of concept, not necessarily the complete product.  The product must be carefully and thoroughly tested.  You need to follow best practices.  You should make use of appropriate design patterns.  You should make sure your code is extensible and flexible.  The code needs to be efficient.  Portability is not a major issue since the software is being targeted for a specific platform (will the company expand the list of target architectures in the future?).  You have fixed deadlines that need to be met.  You are aiming to produce a useable prototype as a proof of concept, not necessarily the complete product.  The product must be carefully and thoroughly tested.

Project Outline  The complete project overview (remember that there is more to this than you can achieve in one semester).  The organization wants to build a device with the functionality of a PDA (personal digital assistant) with features such as calendar, TO-DO list, contact list, search facility and an iPod which enables music and MPEG movies to be downloaded and played back later. Music, videos and other calendar elements should be searchable. Users should be able to set an alarm to wake up to their favorite music playlist, or to wake up to random tunes etc.  The complete project overview (remember that there is more to this than you can achieve in one semester).  The organization wants to build a device with the functionality of a PDA (personal digital assistant) with features such as calendar, TO-DO list, contact list, search facility and an iPod which enables music and MPEG movies to be downloaded and played back later. Music, videos and other calendar elements should be searchable. Users should be able to set an alarm to wake up to their favorite music playlist, or to wake up to random tunes etc.

Project Outline  Groups are given a lot of flexibility in this project. It provides you with the chance to design a system, document it, work with clients (Ray and Michael) to deliver a robust, correct, and efficient software prototype.  Aim to produce a system that could, if desired, incorporate functionality that would be nice, but you simply do not have time for this semester.  Time management and group-cooperation are important.  Groups are given a lot of flexibility in this project. It provides you with the chance to design a system, document it, work with clients (Ray and Michael) to deliver a robust, correct, and efficient software prototype.  Aim to produce a system that could, if desired, incorporate functionality that would be nice, but you simply do not have time for this semester.  Time management and group-cooperation are important.