[ General Information
| Other Pointers
[ Announcements ] [ Groups ] [ Wish List ] [ Projects]
Course description: This course introduces the basic concepts and the modern tools and techniques of Software Engineering. The course emphasizes the development of reliable and maintainable software via system requirements and specifications; software design methodologies including object-oriented design, implementation, integration, and testing; software project management; life-cycle documentation; software maintenance; and consideration of human factor issues.
Course goals: (1) Introduce models of software development and methodologies for project planning, requirements analysis, and system/test design; (2) Provide experience in working as a team to produce software systems that meet specifications while satisfying an implementation schedule; (3) Train students to produce professional quality oral/written presentations of system designs, reviews, and project demonstrations; (4) Expose students to ethical issues in software design and computing in general.
Above are the official course description and goals. Throughout the course, we will also emphasize modular design and reuse, incremental and iterative development, and the use of tools, especially the use of symbolic languages for capturing requirements and designs, and the use of design patterns for discussing design rationales and tradeoffs. Students will work in groups on a software development project as a major part of the course.
Prerequisite: CSE 219 or CSE 260 or ISE 305, or undergrad discrete math (sets, relations, functions, predicate logic), data structures, programming in Java, plus ability to catch up with materials of CSE219. | Credits: 3.
Instructor: Annie Liu, firstname.lastname@example.org, Computer Science 1433, 632-8463. | office hours: Mon Fri 11:45AM-12:45PM and 2:10-2:30PM, by appointment (send email), or stop by any time I'm around.
TA: Muhammed Fatih Bulut, email@example.com, 428-4055. Office hours: Tue Thu 12:00-1:20PM, Computer Science 2110.
Lectures: Mon Fri 12:50-2:10PM, in Javits 109.
Textbook: Main text: Software Engineering (in preparation, free for download) by Ivan Marsic, last updated June 2009. | Supplemental text: Object-Oriented Software Engineering: Using UML, Patterns, and Java by Bernd Bruegge and Allen Dutoit, 3rd Edition, Prentice-Hall, 2010.
Grading: Weekly assignments, centered around the course project, by groups or individuals, together worth 30% of the grade; several quizzes, together worth 10% of the grade; an exam, two group project presentations with demos, and the final group project evaluation, each worth 20% of the grade. Homework is always due before class on the following Monday. Reduced credit for late submissions, 20% per day, unless more than 40% of group members provide official documents for excuses.
Course homepage: http://www.cs.sunysb.edu/~liu/cse308/, containing all course related information.
Handout Q: Questionnaire
Handout QQ: Questionnaire2
Handout A1: Assignment 1: Questionnaire; Customer Wanting Software
Handout A2: Assignment 2: Project Description and Plan
Handout A3: Assignment 3: Requirement Specification
Handout A4: Assignment 4: Design
Handout A5: Assignment 5: Implementation and Testing
Handout A6: Assignment 6: Initial Delivery
Handout A7: Assignment 7: Requirement Specification and Design 2
Handout A8: Assignment 8: Implementation and Testing 2
Handout A9: Assignment 9: Requirement Specification and Design 3
Handout A10: Assignment 10: Implementation and Testing 3
Handout A11: Assignment 11: Comments; Customer Evaluating Software
Handout Q1: Quiz 1
Handout Q2: Quiz 2
Handout Q3: Quiz 3
Handout Q4: Quiz 4
Handout E1: Preparation for Exam
Handout E2: Exam
Handout E3: Sample Solution to Exam
Handout D: Demo
Handout P: Presentation
Handout PE: Presentation Evaluation
Handout D2: Demo 2
Handout P2: Presentation 2
Handout PE2: Presentation Evaluation 2
Handout R: Final Project Report
Lab: accounts, FAQ, policies, database servers, etc.
Instructions for using the TransLab SVN Server
Allen Holub's UML Quick
OMG UML Resource Page
Mapping Objects to Relational Databases: O/R Mapping In Detail,
by Scott W. Ambler
List of object-relational mapping software
Interactive OCL Tutorial
OMG OCL Specification 2.2
Advanced implementation: Optimizing OOP by incrementalization
Computer Aided-Software Engineering at wikipedia,
with links to tools at the bottom
Computer Aided-Software Engineering resources by Pressman
You should learn all information on the course homepage. Check the homepage periodically for Announcements. Use Blackboard for additional communications, including in particular assignment handins and discussions.
Attend all lectures and take good notes. I will start promptly on time, if only to be fair to people who come on time. We will start with quizzes from time to time. I will have every student participate in solving problems and presenting solutions in class. We will discuss materials not in the textbook from time to time.
Do all course work. The readings are mainly to help you preview and review the materials discussed in the lectures. The assignments are to provide concrete experiences with the basic concepts and methods covered in the lectures. The quizzes are to help check that you are keeping up with the lectures and the assignments. The exam will be comprehensive.
Computing facilities: You will have an account in the Transaction Processing Lab. Never let anyone else use your account. Please be conscious of security in the lab. If you have any problems with the hardware or software in the lab (other than with the requirements of the course work itself), please contact the system staff and copy me on your email; neither the TAs nor I could fix such problems.
Academic honesty: Individual portion of the course work must be done by the individual; group portion of the course work must be done by the group. You may discuss ideas with others and look up references, but you must write up your solutions independently and credit all sources that you used. Any plagiarism or other forms of cheating discovered will have a permanent consequence in your university record. For more comprehensive information on academic integrity, please refer to the academic judiciary website at http://www.stonybrook.edu/uaa/academicjudiciary/
Disability: If you have a physical, psychological, medical or learning disability that may have an impact on your ability to carry out assigned course work, please contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.