CSCI 8710: Modern Software Development Methodologies
Fall 2008
Meeting time: | MW 4:00-5:15 |
Classroom: | PKI 157 |
Instructor: | Dr. Harvey Siy |
Office: | PKI 281B |
Phone: | (402)554-2834 |
Office Hours: | By appointment (call or email ahead) |
Email: | hsiy at mail dot unomaha dot edu |
URL: | http://www.cs.unomaha.edu/~hsiy |
|
Textbooks: | |
Recommended: | Object-Oriented Software Engineering (2nd edition) by Bruegge and Dutoit, Prentice Hall 2004. |
| http://wwwbruegge.informatik.tu-muenchen.de/OOSE/WebHome |
Recommended: | Model-Driven Software Development: Technology, Engineering, Management by Thomas Stahl, Markus Voelter, Wiley, 2006. |
Optional: | Principles of Object-Oriented Software Development, 2nd Edition by Anton Eliens |
| http://www.cs.vu.nl/~eliens/online/oo |
Optional: | Generative Programming, by Krzystof Czarnecki and Ulrich Eisenecker, Addison-Wesley, 2000. |
Optional: | Software Factories, by Jack Greenfield, Keith Short, Steve Cook, Stuart Kent, Wiley, 2004. |
Prerequisites: | CSCI 4830 (Introduction to Software Engineering) plus object-oriented programming experience |
Course Description:
Designed to introduce students to advanced object technology and other modern methodologies for developing software systems. Intended for graduate students who have mastered the basic concepts and issues of software engineering. Course covers advanced object-oriented software development. The course also covers several offshoots of object technology, including: component-based software engineering, aspect-oriented software development, model-driven software development, software product line engineering, service-oriented computing, generative programming, etc.
Course content:
- UML overview
- Object-oriented analysis
- Software architectures
- Object design (includes design patterns)
- Components, frameworks and middleware
- Interface contracts and OCL
- Mapping models to code
- Testing object-oriented software
- Metrics
- Evolution and reengineering of object-oriented software
- Object theory
- Beyond objects (aspects, templates and generics)
- Model-driven software development and software product lines
- Web services
- Survey of object-oriented languages
Evaluation
Students will be evaluated as follows:
Exams (midterm and final) | 40% |
Projects and papers | 50% |
Homeworks | 5% |
Class participation | 5% |
Approximate exam dates
- Midterm - TBA
- Final - TBA
Projects and Papers
Projects and papers will be given to extend the students' learning experience beyond just class lectures. These consists of student presentations, projects, and a term paper.
Student presentations
Throughout the semester, there will be several student presentations and development projects. Each student will be expected to give a presentation, which can either be a technology briefing or research paper discussion.
Technology briefings
A technology briefing gives an overview of a current software development technology relevant to the top being discussed in the lecture. For example, when we discuss object-relational mapping, some appropriate related technologies are EJB, Hibernate, etc. Students can volunteer to present an introduction to, say, EJB. Note that a student wishing to make a technology briefing
must have professional experience with that technology. I will be providing a list of
technology areas and approximate dates when each area will be covered.
Research paper presentations
Alternately, students can also present for discussion the results of an acceptable research paper from a relevant journal or conference. I will be providing a list of
papers you can choose from.
Projects
There will also be 3-4 development projects which will put into practice the software development principles from the course. Students can work individually or in pairs.
Term paper
Students will also write a term paper in an area of research related to object-oriented software development and its offshoots. It can be a survey of several related research papers from research journals and other acceptable conferences or workshops. (Examples of acceptable conferences and workshops are the research tracks of OOPSLA, ECOOP, WOOR, FOOL, etc.)
Guidelines for assessing class participation
Grade | Description |
5 | Regularly makes helpful, relevant contributions to lecture discussions. Offers observations that challenges classmates to think about the material in new ways. |
4 | Attends regularly and occasionally makes helpful, relevant contributions to lecture discussions. |
3 | Attends regularly and actively pays attention to discussion. |
2 | Attends regularly but does not pay attention to discussion. |
1 | Does not attend regularly. |
0 | Misses most classes. |
(Adapted from http://web.hamline.edu/personal/skellert/cpgrade.htm.)
Policy on late homeworks
Late homeworks will get a 20% deduction per day, for each day past the due date.
For online submissions, we will follow the time stamp as reported by Blackboard. For example, if the due date is Aug, 24, a submission on Aug. 25 12:01am will get a 20% deduction.
Paper submissions must be handed directly to me on the day it is due.
Academic Integrity
Cheating will not be tolerated for project assignments, exams and other assignments. Consult the UNO Student Handbook and Department of Computer Science Policies and Procedures for formal policies about plagiarism.