CptS 421: Software Design Project I
Fall 2016
Content
-
Notices and Annoucement
-
Instructor
-
System Administrator
-
Lecture Time and Location
-
Prerequisites
-
Goals
-
Synopsis
-
Reading Materials
-
Website
-
Homeworks
-
Project
-
Tools
-
Lecture Notes
-
Policy and Notices
-
Questions and Answers
Notices and Announcement
[TBA]
Instructor
Li Tan
WSU Tri-Cities
Office: West 134L
(509) 372-7167
litan@tricity.wsu.edu
System Administrator
David Search
CIC 225
(509) 372-7334 (on campus: 2-7334)
tchelp@tricity.wsu.edu
Time and Location
Lectures and team meetings: Tuesdays. noon-2:40 pm, in WEST 240. Team meeting time will be assignment once teams are formed.
During the first several weeks, there will also be additional lectures at 10 am Wednesdays, in BSEL 102, per the instructor's announcement.
Office Hours: Tuesdays 3-4 pm, or by appointment
Prerequisites
The prerequisites for the class are
- CptS 322: Software Engineering I
- CptS 323: Software Design
Goals
This course is the first part of a year-long series of capstone courses on senior design projects. CptS 421/423 software design projects are to provide to students a hands-on experience on developing medium- to large-scale software in a team environment. Students will practice major (i.e. framework) activities in software development process, including communication, planning, modeling and design, construction, and deployment. Students will also practice supporting (i.e. umbrella) activities that are pivotal to the success of a software project, including quality assurance, project management, and risk management. Students are expected to develop their individual and team software development processes. Using an intensive two-semester project as a device, the courses expose students to an industrial-strength and research-oriented development setting.
The courses will use the Unified Modeling Language (UML) and Unified Process (UP) as the process model. The first part of the series, Cpts 421, emphasizes on requirement engineering, design, and initial implementation. The second part of the series, Cpts 423, emphasizes on design refinement, implementation, and deployment. Students are also required to practice quality assurance throughout the course of the project.
Synopsis
The classroom activities will be a mixture of lectures, student presentations, and group discussions. Students are formed as teams, and each team is assigned to a project. Each team manages their development activities internally under the supervision of the instructor and the sponsors of their team projects. The team progress is measured by the completion of a series of milestone objectives. Typically the team meet with the instructor and the sponsors to set up milestone objectives every other weeks, and the team will meet with the instructor and/or the sponsor(s) every week and present its progress on these milestones.
The final exam includes a written report from each team, which includes, among other things, students'' individual contribution to the the project, and also a presentation from each team.
Students are required to conduct project-oriented homeworks. Some of these homeworks are to help students getting familiar with tools and techniques related to their projects, and the others are research-oriented homeworks, in which a student will research on the topic related to his/her team project, and present his/her finding in cass.
The overall grade of a student will be based on his/her performance in the team project and project-oriented homeworks.
Reading Materials
Articles with * are required reading materials.
Textbook*
[DP] Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994. ISBN: 0201633612.
Online Tutorials*
These tutorials are part of required reading.
Java Enterprise Edition Tutorial (Version 7, Oracle)
Reference
[OOSE] Bernd Bruegge and Allen H. Dutoit , Object-Oriented Software Engineering: using UML, Patterns, and Java. 2th edition, Prentice Hall. 2003. ISBN-10: 0130471100.
*You need to secure a copy for the textbook and required reading.
Website
The class website is available at: | https://www.tanli.org/cpts421 |
Homeworks
Students may be assigned with homeworks related to their projects. Some of these homeworks are to help students getting familiar with tools and techniques related to their projects, and the others are research-oriented homeworks, in which a student will research on the topic related to his/her team project, and present his/her finding in cass.
Submission of homework presentation via SVN:
Slides and other related documents for your presentation shall be submitted via SVN. Your personal CVS repository is located at /home/svn/cpts421/$USER, where $USER is your login on ELEC system. You shall create a new module for each homework. For instance, for homework 1, you shall create a module homework1. After submission, please notify me so I can upload slides to this website before your presentation.
Important note: do not directly edit (delete, copy, rename, ...) files under SVN directories on the server. Doing so will destroy the integrity of SVN repositories. All operations on SVN repositories shall be done using client-side commands only. If you need help on SVN, please email me. IMPORTANT: you are responsible for the integerity of your and your team''s SVN repositories.
Hands-on project
Hands-on Java EE project: design and implement an online receipt management system.
Project
Mission Statement
This is a project-based course. You and your team members already selected a subject to work on. The project is to provide a platform on which you can excise processes, methods, and technologies in Software Engineering. The outcomes of project will be demonstrated not just by the quality of the finish product, but also by software artifacts and process you have produced during the course of project. The goal is to build a quality software product using methods and technologies provided by Software Engineering. More specifically, to ensure the quality of product and the timeliness of project, you shall follow software engineering processes, methods, and techniques during the course of this project, including: communication, planning, modeling, construction, and deployment. In addition to the finish product, you are expected to document your efforts in planning, requirement elicitation, design, and testing.
Performance Metrics
60% of your performance comes from your individual performance, and the remaining 40% comes from your team performance. The requirements implemented by your team decide the maximal points of your project score.
S = SM*(40%*PT+60%*PI)
S: your project score.
SM: the maximal points decided by the implemented requirements.
PT: Team performance. 0%-100%.
PI: Individual performance. 0%-100%.
Team Performance
Three major sources for your team performance are: (1) the quality and design of the finish product; (2) project documentation, including those for requirement, design, planning, team management, final report, and team website; (3) how well you have consciously applied design principles and techniques; and (4) the team and quality assurance processes developed during the course of the project.
Invidual Performance
See the quantative approach to individual performance metric
Final Report and Peer Review
At the end of the semester, your team is required to write a final report and each individual member is required to fill in peer-review forms for his/her team members. See the guideline for final report and peer review for details.
Each team will submit a final project report. Click here for the requirements for the project report. Due: the last lecture of the semester.
Every team member needs to fill peer-review forms for each and every of his/her team members. Click here for the instruction and form. Due: the last lecture of the semester.
Note: see the submission policy for project report and peer review for important notes.
Project Management
Milestones
The project has several milestones with their respectively due date. At each milestone, you may be asked to demonstrate your progress by a set of software artifacts defined at that milestone. At the end of each milestone meeting, we will decide objectives for the next milestone. The final product is due in the final week of lecture.
Status Briefing
Every student is required to fill his/her weekly status on his/her team website to record his/her efforts on the project in past week and discuss project-related issues. Each team is expected to orgnize its own status briefing. See the guideline for weekly status report and briefing.
Team Websites
Each team will maintain a website for their project. The website serves as a platform for team members to log their status, publish project-related documents, and also exchange information among team members.
Copyright Notice
Unlesss noted otherwise, the copyright for the project you will undertake in CptS 421/423 belongs to its respective sponsors. Some projects may require you to sign additional document for copyright assignment and nondisclosure document.
Tools
Axure
We use Axure for the UI prototyping. You can obtain a student license for Axure free of charge from Axure''s academic website: http://www.axure.com/edu
IBM Rational Software Architect
We use IBM Rational Software Architect (RSA) for UML modeling. Rational Software Architect is built on Eclipse platform, which is used as our main development environment.
If you haven''t done so yet, you may obtain a copy of RSA free of charge via our liaison program with IBM. The copy is for your personal use in this class only. It is a full featured standard edition. To obtain it, download and read the IBM academic license agreement. Send the instructor me an email containing the following exact sentence: “I have read and accepted the license agreement for the IBM academic initiative.” Upon receiving your email, the instructor will enable your access to the software repository. For the integration with SVN, you may wish to install subclipse.
Obtain and install IBM Rational Software Architect
Note: if you have not emailed me your consent on the IBM license agreement, please do so per the instruction above. Your access to the RSA installation file may be declined or revoked if I did not receive your consent on the IBM license agreement.
Location of RSA installation file: /home/projects/tools/rational/current on the ELEC server (elec.tricity.wsu.edu)
Instruction for installation:
- Copy the zipped installation files to a working directory;
- Unzip the files;
- Run RSA_SETUP/launchpad.sh. (on Windows 32/64 platforms, run RSA_SETUP/launchpad.exe or RSA_SETUP/launchpad64.exe)
- Follow the instruction on installing IBM installation manager.
- If prompted to update the IBM installation manager, follow the instruction to update.
- In IBM installation manager, choose install, and then follow the instruction to install the RSA 8.0 and required components.
- In IBM installation manager, choose "manage license".
- Import the license from the working directory and follow the instruction to continue.
Note:
- The RSA is provided to you free of charge as a courtesy from the instructor. As with other implementation techniques, you shall discuss with your team members if you encounter a problem in installing and/or using RSA. The instructor is happy to answer general questions on UML modeling with RSA.
- If you would like to install 32-bit version of RSA on a 64-bit ubuntu, you may wish to install "ia32-libs".
Lecture Notes
Lecture Notes on Web Technology, Jeff Hou.
Copyright Notice:
All rights are reserved. The slides may contain other copyrighted materials whose rights belong to their respective authors. Please do not distribute the slides outside the class without the permission of the author.
Questions and Answers
Please refer to Q&A page for some common questions and answers.
Policy and Notices
Homework and Project Assignments
Homework assignments usually require 1-2 weeks to complete. Homework assignments with their respective due date will be announced in class and posted on this course website. You are encouraged to take advantage of office hours if you have questions for homework assignments.
Unless posted, homeworks and project documents shall be edited and submitted electronically. Please see the following for the submission guideline.
The progress of the project will be measured by milestones. The objectives, requirements, and deadline of each milestone will be posted in the project section. At each milestone, you may be required to submit a written report, code, or test cases to demonstrate your progress.
Late penalty is a flat 10% point deduction. Late assignments may be turned up to one week after the original due date, and an advanced notice must be given to the instructor beforehand for the late submission. No homework will be accepted after its due day without advanced notice or special permission from the instructor.
Policy on Academic Dishonesty
The fundamental requirement for all student work in this class is: Unless otherwise explicitly permitted by the instructor, all work you turn in must be your own. Any instance of academic dishonesty, as defined in the WSU Student Handbook, in this class will be dealt with severely (typically by failing the class) and reported to the WSU Office of Student Conduct.
Note in particular that it is dishonest not only to copy another student''s work, but to permit another student to copy yours. Nevertheless, realizing that students can assist each other in understanding general course material, there are limited ways in which student collaboration is permitted:
- You may communicate verbally with another student, as long as you do not communicate the answer or the other content of what you are going to turn in, whether code, mathematics, and/or text. A good way to work in this regard is for the student providing help to ask leading questions of the student needing help, letting them arrive at the answer themselves.
- You may draw diagrams and such on a whiteboard, chalkboard, or piece of blank paper to illustrate the verbal points made in (1), as long as you do not write what you are going to turn in.
It will be up to the discretions of the grader (if applicable) and instructor to determine if any assignment shows evidence of collaboration beyond these limits. Any attempt to circumvent the spirit of these rules will be treated as a violation of the fundamental requirement. If you are in doubt, do not give help to or request it from another student: That''s what office hours are for.
Notice for Students with Disabilities
Reasonable classroom adjustments/accommodations are available for students who have a documented disability. Please notify the instructor (by email, if you like) during the first week of class of any accommodations needed for the course. All classroom academic adjustments and accommodations must be approved through the Disability Services Coordinator, located in West 269D, (509) 372-7351. Late notification may mean that the requested accommodations might not be available.
Emergency Routines
In the event of any emergency call 911. If you hear a fire alarm sound, leave the class and take your belongings (CAR KEYS, coats, backpacks, etc) with you. Exit the building immediately to your staging area, which is the Cougar Garden for East & West Buildings and the West Parking Lot for CIC Building. Stay in these areas during an evacuation until released. Evacuation routes are posted inside the door of each classroom. Remember that elevators do not work and fire doors swing closed during a fire alarm.