WINONA STATE UNIVERSITY
PROPOSAL FOR NEW COURSES
Department ______Computer Science______Date ______November 5, 2004_____
____472_____ Reusable Software Architectures______3______
Course No. Course Name Credits
This proposal is for a(n) __X__ Undergraduate Course ______Graduate Course
Applies to: __X__ Major ______Minor ______University Studies*
_____ Required _____ Required
__X_ Elective _____ Elective
Prerequisites CS 371 or consent of instructor
Grading method ___X___ Grade only ______P/NC only ____ Grade and P/NC Option
Frequency of offering ______Yearly______
*For University Studies Program course approval, the form Proposal for University Studies Courses must also be completed. submitted according to the instructions on that form.
Provide the following information (attach materials to this proposal):
A. Course Description
1. Catalog description.
2. Course outline of the major topics and subtopics (minimum of two-level outline).
3. Basic instructional plan and methods.
4. Course requirements (papers, lab work, projects, etc.) and means of evaluation.
5. Course materials (textbook(s), articles, etc.).
6. List of references.
B. Rationale
1. Statement of the major focus and objectives of the course.
2. Specify how this new course contributes to the departmental curriculum.
3. Indicate any course(s) which may be dropped if this course is approved.
C. Impact of this Course on other Departments, Programs, Majors, or Minors
1. Does this course increase or decrease the total credits required by a major or minor of any other department? If so, which department(s)?
2. List the departments, if any, which have been consulted about this proposal.
D. University Studies Course Proposals
The form Proposal for University Studies Course must also be completed and submitted according to the instructions on that form.
Attach a Financial and Staffing Data Sheet.
Attach an Approval Form.
Department Contact Person for this Proposal:
______Hugh Ouellette______(507) _____
Name (please print) Phone e-mail address
A. Course Description
1. Catalog description.
This course investigates the software concepts that promote reuse of software architectures. In particular, the influence of object technology on software design and reuse is studied. Domain Modeling methods, which model the application domain as a software product family from which target systems can be configured, are investigated. The course also covers reusable software patterns including architecture patterns and design patterns, software components, and object-oriented frameworks. State-of-the-art component technologies will be used to experiment with the concepts of this course.
Prerequisite: CS 471 or consent of Instructor.
2. Course outline of the major topics and subtopics (minimum of two-level outline).
· Application Interfaces
o advanced Swing
o reflection API
· Frameworks
o examples: collection, network, GUIs, etc.
o user defined and implemented using a RAD environment
· Using UML Models/Diagrams
o use cases
o class diagrams
o object diagrams
o activity diagrams
o sequence (interaction) diagrams
· Model–View-Controller (MVC) Architecture
o use cases
o GUIs
o distributed applications
· Multithreads
o lifecycle
o creating and running threads
o synchronizing threads
o communicating between threads
o writing robust multithreaded programs
o making variable values thread safe
o grouping threads
o partitioning an application into multiple activities to take advantage of multiple threads
· Beans Component Architecture
o define component properties
o create application events
o bound properties, bound Listeners
o vetoable properties, vetoable Listeners
o creating and using beans in a RAD environment
· Other Component Architectures
o COM
o ActiveX
o CORBA
· Applets
o Signed and unsigned
o Security manager
· Database Connectivity
o apply Model-View-Persistence design pattern
o JDBC Driver for RDBM systems
o SQL to Java type mappings
o using java.sql APIs
o connection pooling
· Network Applications (Client/Server model)
o URLs and InetAddress
o server sockets
o sockets
o Remote Method Invocation (RMI)
o CORBA, RMI – IIOP
o creating connection between multiple applications
· Server Components - servlets
o respond to requests
o redirect requests
o as controllers
o techniques for session tracking ( cookies, session objects, and headers)
· Using the following design patterns
o singleton
o abstract factory
o factory method
o adapter
o decorator
3. Basic instructional plan and methods.
This course is lecture-discussion based. There are 10-12 individual software development projects. There is a 7-8 week group project. The groups will do analysis, design, implementation, and testing of their projects and they will do a written report and class presentation at the end of the course.
4. Course requirements (papers, lab work, projects, etc.) and means of evaluation.
There is one mid-term, one final exam, and 10-12 individual software development projects. There is a 7-8 week group project. The final project will include a written report and students will present their projects in class. The exams are counted as 60% of a student’s grade. Individual projects are 25% and the group project is 15% of the student’s grade.
5. Course materials (textbook(s), articles, etc.).
Instructor’s notes ~ 400 pages.
Main Textbook:
Java Programming: Advanced Topics by Joe Wigglesworth and Paula McMillan, Third edition, Thomson Course technology, 2004.
List of Articles:
· Adler, R. M., “Emerging Standards for Component Software,” Computer, vol. 28, no. 3, March 1995, pp.68-77.
· Brown, A. W., and K. C. Wallnau, “Engineering of Component-Based Systems,” Component-Based Software Engineering, IEEE Computer Society Press, 1996, pp. 7-15.
· Dogru, A. and M. Tanik, “A Process Model for Component-Oriented Software Engineering,” IEEE Software, vol. 20. no. 2, March/April 2003, pp 34-41.
· Lim, W. C., “Effects of Reuse on quality, Productivity, and Economics,” IEEE Software, September 1994, pp. 23-30.
6. List of references.
Books:
· Atkins, C., et al; Component-Product Line Engineering with UML, Addison-Wesley, 2001.
· Borchers, J., A Pattern Approach to Interaction Design, Wiley, 2001.
· Doss, G.M., CORBA Networking With Java, Wordware Publishing, 1999
· Gordon, A., The COM and COM+ Programming Primer, Prentice-Hall, 2000.
· Gamma, E., et al., Design Patterns, Addison-Wesley, 1995.
· Mandel, T., The Elements of User Interface Design, Wiley, 1997.
· Martin, J., Rapid Application Development, Prentice-Hall, 1991.
Articles:
· Basili, V. R., L. C. Braind, and W. M. Thomas, “Domain Analysis for the Reuse of Software Development Experiences,” Proc. of the 19th Annual Software Engineering Workshop, NASA/GSFC, Greenbelt, MD, December 1994.
· Tracz, W., “Third International Conference on Software Reuse—Summary,” ACM Software Engineering Notes, vol. 20, no. 2, April 1996, pp 21-22.
· Whittle, B., “Models and Languages for Component Description and Reuse,” ACM Software Engineering Notes, vol. 20, no. 2, April 1996, pp. 76-89.
· Youdon, E. (ed.) “Distributed Objects,” Cutter IT Journal, vol. 11, no. 12, December 1998.
B. Rationale
1. Statement of the major focus and objectives of the course.
This course will focus on component architectures and reuse of code, application program interfaces, designs, and frameworks. The topics of this course permeate most professional software development projects. Our students must become proficient in the process of designing and developing for reuse. Thus, this course covers the fundamental theories and provides students with the mechanisms to apply the theories to ”real world” projects. In particular, the student objectives include:
· To understand, apply (build), and use reusable architectures such as component, model-view- controller, remote method invocation, etc
· To understand, develop, and use many frameworks (fws) such as collections, swing, and user defined fws.
· To understand and use threads in software development. This includes partitioning an application into multiple activities to take advantage of using multiple threads
· To take the software developer from a beginning or intermediate level of expertise to a level expected of a professional developer
· To do analysis, design, implementation, and testing of a significant software project.
2. Specify how this new course contributes to the departmental curriculum.
This course deals with material that is interesting, challenging, relevant, and necessary to our students. The course teaches students the underlying theory of software development and as such, students find the material very intriguing. As a senior level elective, it also allows students to build on their computer science background. The projects are substantial and they give students an insight into the inherent complexity of reuse in software development. Finally, the course material is relevant to all major application areas in general, and specifically to application areas at IBM and Mayo Clinic. As such, the course will enhance our overall curriculum by providing students with a strong CS elective.
3. Indicate any course(s) which may be dropped if this course is approved.
None.
Note: This course has been taught for seven years as a special topics class. During this time it has evolved into the present form. It has averaged18-35 students per class and has been taught once each year. Thus, we are in essence already teaching the class, but now it will have its own course number and no longer be a special topics class.
C. Impact of this Course on other Departments, Programs, Majors, or Minors
1. Does this course increase or decrease the total credits required by a major or minor of any other department? If so, which department(s)?
It does not.
2. List the departments, if any, which have been consulted about this proposal.
None.
WINONA STATE UNIVERSITY
FINANCIAL AND STAFFING DATA SHEET
Course or Program CS 472 Reusable Software Architectures
Include a Financial and Staffing Data Sheet with any proposal for a new course, new program, or revised program.
Please answer the following questions completely. Provide supporting data.
1. Would this course or program be taught with existing staff or with new or additional staff? If this course would be taught by adjunct faculty, include a rationale.
This course will be taught with existing staff and has been taught each year for seven years as a special topics class. The enrollment has been 18-35 students per class.
2. What impact would approval of this course/program have on current course offerings? Please discuss number of sections of current offerings, dropping of courses, etc.
This course will be added to the computer science curriculum as an elective for CS seniors. The expected enrollment is 15-30 students, and the majority of students taking the course will be CS option A or B students. The approval of this course will not impact on other CS courses.
3. What effect would approval of this course/program have on the department supplies? Include data to support expenditures for staffing, equipment, supplies, instructional resources, etc.
The computer science department has sufficient facilities to support the course. The class has primarily been offered on the Rochester campus and the instructor has installed the needed software. The course will now be offered on both campuses. No extra expenditures are needed to offer the course.
WINONA STATE UNIVERSITY
APPROVAL FORM
Routing form for new and revised courses and programs. Course or Program CS 472 Reusable Software Architectures
Department Recommendation______
Department Chair Date e-mail address
Dean’s Recommendation _____ Approved _____ Disapproved
______
Dean of College Date
A2C2 Recommendation _____ Approved _____ Disapproved
For: _____ Major _____ Minor
______
Chair of A2C2 Date
Graduate Council Recommendation _____ Approved _____ Disapproved
(if applicable)
______
Chair of Graduate Council Date
______
Director of Graduate Studies Date
Faculty Senate Recommendation _____ Approved _____ Disapproved
______
President of Faculty Senate Date
Academic Vice President Recommendation _____ Approved _____ Disapproved
______
Academic Vice President Date
Decision of President _____ Approved _____ Disapproved
______
President Date
Please forward to Registrar.
Registrar ______Please notify department chair via e-mail that curricular change has been recorded.
Date entered