CSCE 492: Software Engineering Laboratory

Catalog Course Description:
CSCE 492: Software Engineering Laboratory (3) (Prereq: CSCE 350).
Prerequisites:
CSCE 350
Textbooks:
Computing Platform:
Each student group chooses its own platform, subject to approval by the instructor
Course Objectives:{Assesment methods shown in braces}
Students who pass this class posses the following skills:
  1. They can design and implement complex software solutions using state of the art software engineering techniques. {1,2,3}
  2. The have working knowledge of UML, source control, and project management. {1,2}
  3. They have deep knowledge of the technologies they used for implementing their project. {1,2,3,4}
  4. They know how to test and document software. {2,3}
  5. They are capable of working as part of a software team and develop significant projects under a tight deadline. {1,2,4}
  6. They are able to present their work in a professional manner. {4}
Topics Covered:
  1. Software Engineering Process.
  2. Unified Modeling Language (UML).
  3. Data Structures and Specification.
  4. Object-oriented design.
  5. Debugging.
Syllabus Flexibility:
High. The students are free to chose a project based on the instructor's approval.
Assessment Methods:
  1. Group meetings with faculty: initial proposal, code review, tracer-bullet implementation demo, final demo.
  2. Design documents. Writeup.
  3. Code documentation.
  4. Presentations.
Relationship of Course to Program Outcomes:
The importance of each course objective to meeting the program outcomes is indicated with the following scale: 3 = major importance, 2 = moderate importance, 1 = minor importance. Blank if not related.
  Course Objectives
Program Outcomes 1 2 3 4 5 6
1.1 current events in engineering 3 1        
1.1 science and math education            
2.2 humanities education            
 3.1 career planning portfolio 3       3 3
3.2 apply math, science, engr 3          
3.3 design, conduct experiments 1          
3.4 design system, device, process 3          
3.5 formulate, solve engr. prob.'s 3       2  
4.1 plan elective courses            
4.2 complete elective courses            
5.1 multi-disciplinary teams            
5.2 communicate effectively           3
5.3 professionalism, ethics         2  
6.1 career-long development            
Estimated CSAB Category Content:
Algorithms0
Data Structures0
Software Design3hr
Concepts of Programming Languages0
Organization and Architecture0
Class/Laboratory Schedule:
Lecture1 Period of 75 minutes per week
RecitationNone
LaboratoryStudent teams meet individually with instructor at least four times in the semester.
Modification and Approval History
Initial description, August 2000
Detailed Syllabus (14 class days)
First nine days:
  1. Introduction: What is Software Engineering?
  2. Abstraction and Specification. Abstract Data Types.
  3. UML introduction.
  4. Proposal Presentations
  5. Design Reviews
  6. Design Reviews
  7. Source Control
  8. Testing, defensive programming.
  9. Debugging

There is no class on days 10, 11, 12, and 13 so as to give the students time to work on their projects. On the 14th day the students give their final presentations and demos.

Also, each project team meets individually with the instructor at least four times during the semester. The agenda for each of the four meeting is as follows:

  1. Team presents project idea and has it approved by instructor. (first month)
  2. Code/design review. Instructor goes over design/code with the team to point out problems and formalize requirements. Instructor determines requirements for tracer-bullet implementation. (second month)
  3. Tracer-bullet implementation demo. Team shows that it has achieved full vertical integration functionality. Instructor notices missed requirements and reminds students of requirements for final project.(beginning of third month).
  4. Final meeting. Verify requirements, design, documentation, testing, writeup, division of labor, etc. (last month).

Last modified: Tue Dec 12 16:12:29 -0500 2000