MCS580 Software Engineering

Syllabus


Introduction

Software systems are often more complex than systems developed by teams in traditional engineering disciplines (e.g., skyscrapers, bridges and oil refineries). Software is also the most critical element in many hybrid systems (e.g., aircraft and communication networks). Software Engineering (MCS580) is intended to survey the evolving engineering practices used to develop complex software systems.

MCS580 is a new graduate course that can be taken as a stand-alone course or it can be taken in a series with Software Design (MCS575) and Dependable Software Systems (MCS576). These 3 courses replace Software Engineering I and II (MCS580 and MCS581).


Intended Audience

This course is intended primarily for graduate students in Software Engineering and Computer Science. Graduate students in other programs may take this course if they have significant programming experience.

Before taking this course, students should be proficient in discrete mathematics, Unix, and an object-oriented programming language such as Java or C++. Students lacking such a background should take one or both of the following courses before taking MCS580:


Course Grading Scheme


Grading Scale


First Assignment

The first assignment consists of a survey of the background of students in the class and the choice of paper presentation topic (see below). Please provide the following information by email to the instructor by Jan. 13. Presentation topic choices will be approved on a first come first served basis.

Information:

name

email address

topic - first choice

topic - second choice

undergraduate degree/institution/major

list of current/recent companies where you worked, the type of industry, your role/job title, did the company have a formal or informal software engineering process?

list of languages and CASE tools that you have used

list of previous software engineering courses that you have completed

list of professional societies that you belong to


Team Project

Teamwork is critical for software engineering projects. Team formation will be done on the first day of class. Teams will have at least 4 people.

Late projects will receive a 5% grade reduction for each day they are late. Members of the same team will receive the same mark. It is up to the team members to balance the workload in a fair way. Part of the challenge of team projects is determining the strengths of each member and distributing the workload accordingly. The team project can be accessed from here.


Paper Presentation

Communication skills are very important in software engineering. Each student will present a paper in class. The presentation should summarize the key points in the paper and include the student's questions/issues and overall assessment of the paper. Each presentation should not exceed 15 minutes. The presentations are expected to be of high quality (i.e., well structured, using overhead transparencies, etc.). A copy of the presentation materials will be given to the instructor on the day of the presentation.

The student audience is not required to read all papers presented. However, the audience is expected to ask questions to clarify the key points that are presented. Some final exam questions will be derived from key points in the presentations.

The student will choose from the following list of topics and a suitable paper will then be assigned by the instructor.

List of topics:

case studies of software projects

real-time systems

user interface design

software reliability

fault tolerance

software security

software performance

re-engineering

software metrics

peopleware and organizational issues

a specific CASE tool

large DBMS-based systems

network/systems management tools

work flow management

software engineering practices in specialized industries (e.g., AI, machine learning, agents, parallel processing, WWW, signal processing, CAD, games, process control)

other


Mid-Term and Final Examinations

The mid-term examination will be 50 minutes long and closed book. Students will be tested only on material covered in the first 4 weeks of class. The final examination will be 2 hours long and closed book. Students will be tested on any material covered in the course. In order to prepare for these examinations, students should study the appropriate material from the textbook and handouts. The exam questions will be a mixture of short answer questions (e.g., definitions, small problems, etc.) and essay questions.

Course Schedule