Capstone Design Course - CS&E 758
CSE 758 (Software Engineering Project): This is our most popular capstone design course. This is open to OSU CSE students only. The prerequisites for the course are CSE 560 and 757. CSE 560 provides students with a first serious experience in software design and implementation, working in teams, and in producing documentation. CSE 757 provides additional knowledge of software development practices, methods for implementation and maintainence of software, as well as the importance of reliability of software and ways of achieving it.
The major objective of this course is to ready students for the
marketplace by requiring them to exercise the knowledge they have
gained in previous software and software engineering courses on
industry-specified real world problems. See recent examples of projects showcased during CSE 758 Software Engineering Senior Design Capstone Open House.
Specifically, upon completing this course, students are expected to have applied their software engineering knowledge to aspects of:
- Software design driven by non-functional requirements: scalability, security, usability and performance
-
Generating and evaluating design alternatives
- Pattern-based software design
- The process of developing software:
-
Configuration management
- Project management, planning, team structure, roles and responsibilities
- Incremental and iterative, workbook-centered, object-oriented, agile, lean software development
-
Project planning
- Presenting work to an audience of peers
- Business issues in software development
- Specific tools and techniques that students typically use include:
- Object oriented analysis, design and implementation work-products.
- Lean software engineering.
- Unified Modeling Language (UML) notation for some of the above work products.
- Configuration management tools (RCS, SCCS, Ant, Make, or other), and other miscellaneous tools - Web authoring tools, Word processing tools etc.
- J2EE tools and components: Java 2 SDK, servlets, JDBC, JUnit.
- .NET tools and components: SQL-Server, ASP.NET, C#
- Documentation/Markup languages including HTML, XML, and Javadoc.
Projects in this course have been many and varied, and are now
mostly provided by industry organizations. Some organizations have also
sponsored projects via small cash grants in return for any intellectual
property developed in the course. In all cases, the external
organization has assigned one or more of their personnel to work with
the students - mostly in the provision of requirements, but also as
mentors. Finally, industry representatives are invited to the mid-term
and final presentations made by students, to act as the
"instructor-for-a-day", and provide feedback on how the students are
proceeding, with specific feedback on what portions of the projects
could make a suitable employment portfolio.
The number of projects done in a quarter depends on the number of
students in a section. One of the sections, taught by Dr. Rajiv Ramnath
(course coordinator), typically assigned a project to sub-groups of 4-7
students. Other sections (taught by a variety of instructors) have
typically assigned a single project to an entire section.
Projects have included:
- A SmartCard system, as a secure access card as well as a cash card system.
- A cable network DOCSIS-compliant network dimensioning tool user-interface and back-end, algorithmic logic for network provisioning. This project was sponsored by Cable Labs Inc. - a cable industry industry consortium. Also, in a separate project, a
- test management framework for the above tool was developed.
- Several small components of "ERP" systems. In one such project - sponsored by Northwest Ohio Secure Systems (NWOSS) - the students were asked to architect a complete ERP system. This project was guided, managed and mentored by several industry professionals, under strict time constraints.
- A sensor-network based traffic-management system.
- A web-based referee-signup and management system for the Mid-Ohio Select Soccer League (MOSSL). This system was completely designed by the students to be (a) highly-scalable to support the 1000 or so MOSSL games that take place each week, as well as the end of season MOSSL tournaments that all take place in the weekend following each MOSSL session (b) to be highly-usable by non-web-savvy volunteer referees and (c) extensibly implement MOSSL registration policies.
- A public assistance web-site. This was done in collaboration with graduate students from the School of Public Policy and Management, as an experimental inter-disciplinary inter-departmental collaboration.
- A donation- and charity campaign-managment web-site for a non-profit food-bank NSI Columbus - a local charity that has, since 1980 - distributed over 300 millions pounds of food to the local population in need.
- Rearchitecture of the corporate web-site for National Cash Register (NCR) Inc. Here the students developed a very creative dynamic interaction paradigm around the use of "Webmarks" used to store pages and items of interest, as well as a backend architecture that supported dynamic content delivery.
- Design and implementation of an Erector toys e-commerce web site - including both the implementation of the web site functionality as well as applying search engine optimization (SEO) techniques to the page content to enable its higher ranking by search engines.
- Architecture, design and implementation of a development framework and toolkit for hand-held e-business applications, along with a specific set of applications for supporting the mobile real-estate agent. This project was also the O.S.U. entry to the Microsoft Imagine Cup competition.
The use of real external projects, in almost all cases, has brought
in significant and interesting complexity to the projects - much more
so than if the instructor had formulated projects. Students have been
very motivated because of the presence of a real customer. Some
projects have been very successful, and are confidently showcased by
both students and the instructors to external industry. Business
requirements have been well-understood by students, and there is a
clear connection to business and market requirements in the scope and
design of the projects.
Students are also made aware of ethical, social and professional considerations - in their dealings with the customer sponsors (e.g. having to sign non-disclosure agreements), and because of the characteristics of the applications themselves (e.g. ADA-compliance, privacy laws, and how the web provides access to public assistance). A small number of the projects have been in collaboration with other Departments (such as the School of Public Policy). This collaboration has made CSE students aware of ethical, social and professional considerations in other fields as well.
Each of these projects have required system and software design to meet realistic constraints. User-interface (UI) requirements have been the primary non-functional (design) requirements that students have concentrated on. The extremely high-performing group doing the MOSSL project considered scalability as a key design requirement, studying several design alternatives, and implementing connection pooling, caching, very lightweight templates and database optimizations. Another group (that did the SmartCard digital cash project) made security their primary design requirement, and brought in the use of considerable digital-cash technology. The PDA application framework project had to consider several of the resource constraints intrinsic to a PDA - such as limited screen size and disk space.
Where appropriate, consideration of relevant standards has been
included. In the PDA application the standard XML User-interface
Language (XUL) was used, several cryptographic standards were used in
the SmartCard project and, of course, all the web and database projects
use the standard Hypertext Markup Language (HTML) and Structured Query
Language (SQL) respectively.
A maintainability requirement has been implicit in all the
industry-sponsored projects because of realistic requirements
evolution. Further, in most cases, project work-products are to be
turned over to the sponsor in a manner that he can understand them, and
if desired, continue to extend them. Deliverables therefore, are
expected to include suitable documentation of both the design and
any
significant implementation performed in the project. The grading scheme
accounts for the quality of the documentation by reserving a portion of
the grade for the project workbook.
Students are required to make several presentations during the
quarter to showcase their progress and solicit feedback and guidance.
Students are also required two formal presentations - a mid-term one
(45 minutes - 1 hour in length) and a final one lasting 2 hours. The
mid-term presentation is made to the entire class, the instructor and
an external evaluator. The final presentation is made only to the
evaluator and the instructor because of the difficulty of scheduling
times when the entire class can attend. Each student will present at
least 4 times during a quarter. Students clearly benefit from this
presentation experience, as evidenced by the improvement that they make
over the course of the quarter.
This course appears to be very well-received by the students, as
indicated in their final reports and student evaluations.
Students
have reported that this course has helped them significantly in their
job interviews. Industry sponsors have also generally been pleased with
what the students have delivered; in many cases they have professed to
have been extremely (and unexpectedly) delighted.
Issues do exist, however. While students are expected to follow a
systematic process of architecture and design, this does not happen
right from the start. In fact, they spend much of the quarter learning
and then fighting the technology in order to implement as much as
possible of the functional requirements. Towards the latter part of the
quarter, however, the teams have evolved towards a design
process.
Establishing a software process has also been difficult. When only
planned processes have been required (RUP, IBM-OOTC), most of the time
is spent reworking documentation. When agile processes have been
permitted (XP), students have taken that as a license for no planning
or formality at all. Further, students have packed and widely-varying
schedules, so the close contact required for agile processes to be
applied has been hard to achieve for most groups. A promising approach
has been to (a) give them limited choices of software methodologies
(IBM-OOTC or XP only) and (b) require them to formally develop a hybrid
process - with XP being used for components like the UI, and a planned
process for backend system components. We have also learned how to
better coach student groups in the development and establishment of an
accepted process.
Even though the purported goal of the course is for students to
apply their prior academic knowledge to class projects, students do not
typically come in with a great deal of directly applicable prior
knowledge. This means that students have to learn new things - such as
new technologies and methodologies as well as learn to develop skills
for applying their prior knowledge (on their own, and with mentoring,
but no formal lecture from instructors). While we believe that this
experience will set the stage for life-long learning on the part of
students - both in terms of expectations as well as ability - we have
also become aware of the shortfalls in the courses leading up to this
Capstone.
We are of the considered opinion that many of the problems may be mitigated by a two-quarter Capstone sequence. This would provide more time for the course expectations to "sink in", and be met in a better manner. We are working towards enabling this.