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:
- know and understand the software engineering concepts of information
hiding, abstract interfaces, design by contract, modularization, and
software families (in particular software frameworks),
- can understand software frameworks developed by others and apply
them effectively to solve relevant programming problems,
- know and understand the fundamental domain and
commonality/variability analysis methods and can apply them
effectively in the development of software families,
- know and understand software design patterns useful in
development of software frameworks,
- 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.
- 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:
- essential difficulties of software development
- information hiding, abstract interfaces, and modular design
- program families
- design by contract techniques
- languages for programming components
- object-oriented frameworks
- software design patterns
- commonality/variability analysis
- software product line methods
- software internationalization
- etc.
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
- All students are expected to study the relevant portions of
the source materials in conjunction with our class discussions (i.e.,
before coming to class).
- In preparing and submitting homework papers make sure that:
- your name, the course number or name, the assignment identifier,
and individual exercises are clearly indicated on the paper or in the
file. (If it is a group assignment, give the group identifier and the
names of all members.)
- for any handwritten work, you write legibly on only one side of
the paper in black or blue pen or dark pencil. (Do NOT use
red or green ink!) Some assignments may require that materials be
generated with a word processor and/or other tools.
- any papers turned in are stapled together in the upper left corner.
- As appropriate, there may be a few in-class assignments or quizzes
that count toward the assignment/project portion of the grade.
- Some of the projects may be small group projects; others may
be individual efforts. One of these might involve presentation of a
paper or other material to the class on some aspect of software
architecture or related software technology. Another project may
involve a significant analysis and design effort.
- All students or groups are expected to complete their assignments
by their due dates. If an assignment is submitted late,
a penalty of 10 percent of that assignment's grade
may be assessed for each day it is late. A homework
assignment will not be accepted after graded papers have been returned,
after a solution has been distributed, or after the final examination.
Examinations
- I plan three examinations, one in early October, another before
Thansksgiving break, and the third at the final exam time. I will
take the two best of the three exams in computing your grade.
- The exams may include both in-class and take-home components.
- Please do not ask to take the final exam at an earlier time than
set for the entire class.
[ 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