Engr 691-06: Special Topics in Engineering Science
(Software Families)
Fall 2011
Syllabus

Locations

The Fall 2011 class meets in Weir 235 from 8:00 until 9:15 on Tuesday and Thursday.

The class is taught by Prof. Conrad Cunningham, whose office is 203 Weir Hall. Prof. Cunningham's official office hours for this session are 1:00 p.m. to 2:30 p.m. on Monday and Wednesday or by appointment at other times.

Prof. Cunningham's voice telephone number is (662) 915-5358 and fax number is (662) 915-5623. His WWW home page is http://www.cs.olemiss.edu/~hcc/ and his email address is cunningham AT cs DOT olemiss DOT edu.

The WWW home page for this class is http://www.cs.olemiss.edu/~hcc/softwareFamilies/.

The final examination for this class is scheduled for 8:00 a.m. on Tuesday, 6 December 2011.

Student Disabilities Services Statement

"It is the responsibility of any student with a disability who requests a reasonable accommodation to contact the Office of Disability Services (915-7128). Contact will then be made by that office through the student to the instructor of this class. The instructor will then be happy to work with the student so that a reasonable accommodation of any disability can be made."

Course Description

Study of concepts, methods, patterns, and tools for the analysis, design, and implementation of software families (e.g., software frameworks and software product lines) and other reusable, generic, and flexible programming artifacts.

Prerequisites

This course is primarily intended for students admitted in full standing to the graduate program of the Department of Computer and Information Science. Students should have a background in object-oriented programming, algorithms, data structures, and programming languages similar to the UM undergraduate courses CSci 111, 112, 211, 433, and 450. Students should possess a mature understanding of data abstraction, inheritance, polymorphism, composition, and other object-oriented concepts. If you have any questions about the requirements, please ask the instructor.

Course Outcomes/Objectives

Upon completion of the course, the students:

  1. know and understand the software engineering concepts of information hiding, abstract interfaces, design by contract, modularization, and software families (in particular software frameworks),
  2. can understand software frameworks developed by others and apply them effectively to solve relevant programming problems,
  3. know and understand the fundamental domain and commonality/variability analysis methods and can apply them effectively in the development of software families,
  4. know and understand software design patterns useful in development of software frameworks,
  5. can design and implement software frameworks (i.e., families) by applying appropriate concepts, patterns, and tools within the context of a contemporary object-oriented programming language such as Java or Scala.
  6. can evaluate alternative software framework designs and implementations to determine which are best according to selected criteria.

Source Materials

Textbook:
There is no required textbook.
Readings:
Journal and conference articles, research reports, and other materials as appropriate. These will be listed on the lecture notes page on the Web site.

Course Topics

The actual topics and their order will be refined as the semester progresses. The topics will likely include:

Professional Conduct

As a student in Engr 691, you are expected to conduct yourself in a professional manner according to the Honor Code of the School of Engineering, the Information Technology Appropriate Use Policy, the M Book, and any other relevant policies.

Unless otherwise stated explicitly for an assignment, all assignments and projects in this class are covered by the School of Engineering's Honor Code statement on plagiarism. It is plagiarism "to knowingly deceive, copy, paraphrase, or otherwise misrepresent your work in a manner inconsistent with professional conduct".

Grading

The overall grading scale is A [90..100], B [80..90), C [70..80), D [60..70), and F [0..60). However, the instructor will be using the +/- grading scale, as appropriate, to provide more fine-grained grading within these ranges.

Credit toward the semester grade will be allocated to each of the components as follows:

Presentations/Homeworks/Projects 50%
Examinations and quizzes 50%

Assignments

Examinations


[ ENGR 691 Home ]


Send any comments or suggestions to Prof. Conrad Cunningham, cunningham@cs.olemiss.edu.
Copyright © 2011, H. Conrad Cunningham
Last modified: Tue, 23 Aug 2011