CS 3354 Section 002, Spring 2012
Instructor: Lawrence Chung
Office: ECSS 3.204, ECS, UTD
Web page: (NOT WebCT)
Office hours: TR 1:00-2:30pm, or by appointment
Lectures: TR 10:00-11:15pm, ECSS2.203
TA: Weimin Ma ,
Office: ECSS 3.618; Office hours: TR 5:30pm-7:30pm
Software Engineering: A Practitioner's Approach, 6th Edition (or 4th / 5th), Roger S. Pressman, New York: McGraw-Hill
Software Engineering, Ian Sommerville, Addison-Wesley
The Mythical Man-Month, Frederick P. Brooks, Jr., Addison Wesley
The Unified Modeling Language User Manual, G. Booch, J. Rumbaugh and I. Jacobson, Addison-Wesley, 1998.
Prerequisites: CS 2305 (Discrete Mathematics for Computing I) & CS 2315 (Computer Science II) or CS 3333
Objectives: Introduction to software life cycle models. Software requirements engineering, formal specification and validation. Techniques for software design and testing. Cost estimation models. Issues in software quality assurance and software maintenance.
You can optionally obtain a trial version of Rational Rose to run the program(s) on your home PC from http://www.rational.com/tryit/index.jsp, demo and online tutorial from http://www.rational.com/tryit/rose/seeit.jsp . A student version is also available.
If you wish, you can use the facilities at UTD too (ES2.104 on the ground floor in ECS). All PCs in the labs of UTD are installed with Rational Rose. There are several open access labs: http://www.utdallas.edu/ir/tcs/labs/locations.htm. You will need to get a user ID for the lab, https://netid.utdallas.edu. Need help? 972-883-2911, firstname.lastname@example.org, http://www.utdallas.edu/ir/tcs
Project: There will be a 3-phase project.
Each project phase should be submitted by the expected due date in the beginning of the class that day. Project phases should be submitted with project phase #, class/section, team name, team URL, (rotating) team leader(s), and for each team member: student name, student ID, student email address, written on the first page. There should also be a description of all the meeting conducted, and for each meeting: date, location, agenda, participants, and summary.
The project will be done by teams of 2-4 students. All students in a team will get the same mark for the work they do unless they unanimously agree (in writing) to an unequal division. You are to choose your own team members. An orphan will be assigned to a team by the instructor.
***N.B: (rotating) team leader selection and role
Tests: There will be two tests, one in the middle (test 1) and the other at the end (test 2) of the course.
Late work: Any assigned work will have 10 points deducted for each week passed.
Project (3 x 10)
Feb 13; Mar 15; Apr 12
1. Jan 9 (Tuesday) - first day of class for this course
3. Mar 1 (Thursday) test 1
4. Mar 5 (Monday) Mar 10 (Saturday) Spring Break
6. Apr 12 (Thursday) project phase 3 ; Presentation (Possible switch and seed insertion, if so desired)
7. Apr 19 (Thursday) -- last day of class for this course; test 2
8. Apr 24 (Tuesday) Apr 26 (Thursday) Final submission and a demo of software (For this, you should set up a time with the TA)
Any student who commits an act of scholastic dishonesty is subject to discipline. Scholastic dishonesty includes but is not limited to cheating, plagiarism, collusion, the submission for credit of any work or materials that are attributable in whole or in part to another person, taking an examination for another, any act designed to give unfair advantage to a student or the attempt to commit such acts.
1 Introduction to Software Engineering (Chap 1)
2 Software Process Models (Chap 3)
3 Systems Engineering/Requirements Engineering (Chap 6/7)
4 Analysis Modeling (Chap 8)
5 Design Engineering (Chap 9)
6 Architectural Design (Chap 10)
7 Component-Level Design (Chap 11)
8 User Interface Design (Chap 12)
10 Product Metrics for Software and Estimation for Software Projects (Chap 15/22/23)
11 Quality Management (Chap 26)
12 Formal Methods (Chap 28)
--------------------Modules below are to be updated---------------------------------------
Project Management Concepts (Chap 21) - revisit The Mythical Man-Month in Module 1!
§ Ability to analyze and evaluate software processes (e, k)
§ Ability to establish software requirements and specifications (e, g, k)
§ Ability to analyze software requirements (e, g, k)
§ Ability to design software (c, e, k)
§ Ability to apply testing strategies and techniques (a, c, e, k)
§ Ability to understand the use of metrics in software engineering (a, d, e, k)
§ Ability to understand formal methods in software development (a, e, k)
§ Ability to establish and participate in an ethical software development team (c, d, e, f, g, h, k)
§ Ability to use software project management tools and techniques (c, e, h, k)
§ Ability to use CASE tools for software development (c, e, k)
Ambulance Dispatch System Some Articles
Software Engineering Proverbs: http://www.multicians.org/thvv/proverbs.html
Teams Spring 2006
Teams Spring 2007