CS 3750 Software Engineering II Summer 2015 (A CEL Credit Course) Department of Computer Science Weber State University Course Description Professor: Dr. Richard Fry, Associate Professor of Computer Science Office Location: WSU Main Campus, Technical Education Building, Room 110K Office Hours: By Appointment (check with me in class, or by e-mail) E-mail: rich@richfry.com (Preferred for fastest response) or rfry@weber.edu (Forwarded) Class Meetings: WSU Main Campus, Technical Education Building, Room 103C Tuesdays and Thursdays 7:30 AM (Please, be on time) 9:20 AM Required Textbook: Code Complete by Steve McConnell This is the first of an optional two-semester capstone course in the Department of Computer Science. It is intended to bring together and use many of the concepts and skills learned in other courses in the curriculum. It is strongly recommended you take the optional CS 4750 capstone course the semester immediately after this course. The official course prerequisites are CS 2450 (Software Engineering), CS 3230 or 3280 (Advanced Java or C#), and CS 3550 (Advanced Database) or consent of the instructor when you are taking one or more of these courses as co-reqs. Informally, we assume that you have completed most of the curriculum and expect to graduate this academic year. The goals of the course are for you to: 1. Pursue a Community Engaged Learning (CEL) project under time and resource constraints; 2. Refine a topic, formulate an approach, and solve a significant technical problem to achieve the project goal; 3. Organize and work as a team to design and accomplish the project prototype under time and design constraints; 4. Design a computer based system, consisting of an appropriate mix of software and possibly hardware components, using the techniques, skills, and tools of modern computer system development practice; 5. Develop effective written and oral skills to communicate among team members as well as with outsiders in a real-world styled environment. Project teams will be formed very early in the semester. Each team will be responsible for developing the product requirements, designing the product, implementing it, and demonstrating that it works as required. Throughout the semester each person will also be asked to submit a peer evaluation of his or her teammates and assess their contributions to the project. Group presentations will be given to show and discuss the project requirements, product prototypes, and the final and intermediate project results. Presentations may be at WSU or elsewhere, as appropriate for the project.
Course Objectives build and test production-quality software prototypes (technical, operational, functional) gather (or refine existing) requirements from a community partners and project sponsors refine existing (or formally document new) system and software requirements continuously test the requirements, prototypes, and models as the development progresses improve understanding of the software development process improve technical communication skills, both oral and written refine the art of working effectively in a technical project team practice time and project management as well as personal accountability The Project Leader Approach I will act as your project leader for the semester. As in business organizations, the project leader holds the final responsibility for the successful completion of the project and is therefore also in control of the project. Consequently, I will steer your project as you progress. The emphasis of the project leader and of the project is the final prototype, which explains the emphasis of the final prototype in the course grade. The milestones are simply a way to get you to the prototypes in a structured manner. Consider my role as you would an employer: as somebody to impress with the quality of your work, but also as somebody to ask for guidance when you need it. Remember, asking questions is always preferable to making bold assumptions. Also remember that you are responsible for asking those questions: I have very limited psychic abilities! Project Implementation Platform Issues The implementation platform for your project is most likely based on an agreement between the project development group and the project client. Various implementation platforms are possible, and indeed in recent years a variety of implementation platforms has been used: various versions of C#, Java, Oracle, SQL Server, Android, IOS, and so forth. It is impossible for me to have detailed knowledge on all these platforms, and instruction on the implementation platforms is not a part of this course. The pre-reqs for this course are structured so that students enrolled in CS 3750 have both the general and specific skills needed to design and implement a system prototype. The full implementation of the prototype will continue in CS 4750, with more specific focus on the technology. While I will always be available as a mentor, offering guidance and assistance, the team is expected to take the initiative to research and problem solve on their own. The team is strongly encouraged to coordinate this research with me, to address any problems early on. Project Milestones, Deliverables, and Presentations Over the course, you will turn in project deliverables and present the results of your project analysis, design and/or implementation to me in the conference room and, if possible, to your client. Inform your client that a formal presentation and walkthrough will take place during these milestones, and that client attendance is encouraged, though not required. Each milestone deliverable will vary, but will always include a review of the milestone objectives, a summary of current project and risk management, as well as a report from each individual s contribution towards the Milestone. The Milestone Manger Developing leadership qualities is an important aspect of this course. To ensure that each team member gets the opportunity to develop such skills, all teams will have rotating leadership. Each milestone will therefore have a Milestone Manager, the person responsible for organizing the work, delegating tasks, managing team meetings, and ensuring that all work is done on time and the milestone handed in.
Milestone (Project) Grading The final grade for the project (course) will be calculated through several assessments: MILESTONE 4 6 8 11 13 15 Client Interaction and Communication (10%) 25 10 5 5 5 10 Project and Risk Management (10%) 20 10 10 10 10 Requirement Analysis (10%) 15 25 10 10 ASSESSMENT LOW MEDIUM HIGH Technical Design (10%) 5 15 20 10 10 The User Experience / Accessibility (10%) 5 10 15 20 10 Version and Source Control (10%) 5 5 10 10 10 20 Architecture, Security, and Support (10%) 5 10 10 15 20 Documentation and Presentation (12.5%) 25 10 10 10 10 10 Technical and Functional Prototypes (17.5%) 10 10 15 30 40 TOTAL (100%) 100 100 100 100 100 100 Personal Contribution Adjustment Multipliers (see below) ACD.33% ABCD.25% ACD.33% ABCD.25% AD.50% AB.50% *Your personal contribution (up to a 100% adjustment to each project milestone) will also be determined by A. your personal journal logs and/or your git (code commit) repository logs B. periodic peer evaluations done by all team members on all their team members (see below) C. research contributions to the project (self-directed learning and problem solving) D. attendance and ACTIVE participation in meetings with the instructor Note that if your personal contribution to the project is minimal then your grade will reflect that, regardless of what the project itself receives. Thus, it is possible for a student to fail the class even when the students' team project receives an A. Peer Evaluations The prospect of working in teams carries with it the possibility that not all team members will pull their fair share of the load. (Check Google for such terms as free wheeling and social loafing.) For this reason, there will be an anonymous peer evaluation submitted after each milestone. This evaluation will be confidential I will NOT share it with anybody else in your team or in the class. These evaluations will, however, impact individual team members. Problems Happen... Should problems develop within your team (or with the client), please come and see me so that we can try to solve the problems before they become too serious. However, the initiative to start this process rests with you. As mentioned before, I have very limited psychic abilities.
Course Schedule (Subject to Change See LIVE calendar on course website) 1: Introduction to Software Engineering 5/12 Course Overview and Policies Presentation: Introduction to Software Engineering 5/14 Project Introductions and Requirements Presentation: Software Processes and Methodologies. Introduction to Agile/SCRUM COMPLETE: Team Project Questionnaire, Personality Test & Student Resume 2: Project and Risk Management 5/19 5/21 Team Assignments and Client Contact Information Presentation: Software Engineering Tools (GIT HUB Version Control Software, Google Sites/Docs) Presentation: Project and Risk Management 3: Requirements Analysis & Design 5/26 5/28 Presentation: Requirements Modeling Presentation: Design Principles 4: Project Reviews MS 1 6/2 6/4 ALL TEAMS IMMEDIATELY SCHEDULE CLIENT MEETINGS between 5/20 and 6/1 COMPLETE: Team Website / Repository ALL TEAMS CONINUE Team Meetings with group and with your client between now and 5/31 ALL TEAMS CONINUE Team Meetings with group and with your client between now and 6/1 COMPLETE: Project & Risk Management Plan COMPLETE: Requirements Modeling
5: System Architecture and Design 6/2 6/4 Presentation: Architecture and Design Presentation: The User Experience 6: Project Reviews MS 2 6/23 6/25 7: Functional Prototyping and Testing 6/16 Thursday 6/18 Presentation: Prototyping Presentation: Testing 8: Project Reviews MS 3 6/30 7/2 9: Functional Prototyping and Testing 7/7 7/9
10: Functional Prototyping and Testing 7/14 7/16 11: Functional Prototype Demonstration MS 4 7/21 7/23 12: Functional Prototyping and Testing 7/28 7/30 13: Functional Prototype Demonstration MS 4 8/4 8/6 14 / 15: Final documentation and Support 8/11 8/18 Last Day of Class Wrap up Party FINAL PROJECT DUE Upload all final documentation / code to system repository. Exit documents for clients.
Other Course Policies Accommodations Any student requiring accommodations or services due to a disability must contact Services for Students with Disabilities (SSD) in room 181 of the Student Services Center. SSD can also arrange to provide course materials (including this syllabus) in alternative formats if necessary. Cell Phones For obvious reasons, cell phones should be set to silent or vibrate during class. If you must take a phone call, please excuse yourself from the classroom. Also, NO TEXT MESSAGING DURING CLASS LECTURES OR DEMONSTRATIONS. It's a distraction to me and others around you. Violators will be asked to leave the classroom immediately. Cheating Weber State University requires that students be honest in their academic work. Academic dishonesty is an ethical issue and the violation of the principles expressed in the University's Statement of Educational Mission. It defrauds all those who depend upon the integrity of the University, its courses, and its degrees. The term "cheating" is the act of obtaining or attempting to obtain, or helping in obtaining, credit for academic work through any dishonest, deceptive, or fraudulent means. Effective 8/23/2012: CS Department policy dictates that any verifiable evidence of student academic cheating, as defined and determined by the instructor, will result in: 1) an automatic failing grade for the class and 2) a report to the Dean of Students that will include the student's name and a description of the student's dishonest conduct. Class Notifications / Cancellations For all official announcements regarding this class, or any cancellations, I will notify you via your Weber E-mail Account. I strongly suggest that you forward your WSU mail to your regular mailbox, so you do not miss these important announcements. Surfing the Net (and other inappropriate behavior) during class/labs Please don't waste my time or yours by surfing the internet, playing video games, instant messaging, working on assignments from other classes, etc., while class or labs are in session. It distracts me and other students. If I see you doing something else during my lectures, I will ask you to leave the classroom. If I were your boss, I'd fire you. Next Semester and CS 4750 The projects started in CS 3750 will continue in CS 4750: Advanced Software Engineering, next semester with the possibility of new team rotations and challenges during the implementation and delivery phases of your projects. Although it is not absolutely necessary that you continue CS 4750 consecutively, it will be to your advantage, since you already started the project and have a firm grasp on the requirements as well as (hopefully a good) working relationship with your teammates. Please note: CS 4750 is a capstone course, with no new material presented. It is simply a continuation of CS 3750 with heavy focus on programming, testing, and the final implementation of the prototypes you started in CS 3750. Last Updated: May 6, 2015