CS411, Spring 2018

CS411 Outline

Spring 2018

Upcoming Events
1 Online Orientation and Course Introductions 01/06/2018 - 01/12/2018

Overview

The purpose of this Module is to get set for success. Communication tools will be established and we intend to familiarize students with the hardware and software to be used this semester. During the first week of the semester, students should update any and all materials as a result of lessons learned in CS 410.

Objectives

At the end of this module, students will be able to:

  1. Recognize the general purpose and goals for the online course
  2. Discern team member skills and identify team development needs
  3. Modify CS 410’s existing documentation from lessons learned
  4. Investigate and establish mechanisms of communication for team members

Relevance

The business and research communities provide capabilities for online communication and collaboration using asynchronous and synchronous tools. Students will be exposed to such tools, and will be required to be an effective member of a non-geographically centric team by contributing to the development of a prototype on a computer science department virtual machine.

Activities

Getting Started

  1. lecture Read lecture notes: Syllabus
  2. lecture Read lecture notes: Introduction & Overview
  3. lecture Read lecture notes: Discussion Board Guidance

The Fun Part of Module 1

  1. asst Do assignment: Personal Introduction Post Due: 01/11/2018
  2. asst Do assignment: Development Resource Request Due: 01/11/2018
  3. asst Do assignment: Module 1 Website Updates & Google Drive Due: 01/11/2018
  4. asst Do assignment: Weekly Development Report

Lab 1

  1. asst Do assignment: Review & Update the Collaborative Outline Due: 01/15/2018
2 Prototype Foundations 01/13/2018 - 02/02/2018

Overview

The work will begin on the prototype development environment. Teams must configure their virtual machines to support coding. Development milestones will be identified, along with a list of tasks for each milestone. A schedule will be created and resources applied. Lab1 will be outlined and individually written.

Objectives

At the end of this module, students will be able to:

  1. Maintain team website and communication tools
  2. Identify high level tasks with prioritization of CS410 user stories
  3. Assign personnel resources to tasks
  4. Identify and implement prototype development tools
  5. Prepare a Gantt chart of milestones for prototype development.
  6. Write a descriptive paper of the real world product and prototype development.

Relevance

The software design approach of agile development is reflected in our approach to prototype design. This is based around user stories that may change (usually do) along the way. The goal of prototype design in this module is to confirm mentor acceptance of the development approach of the detailed Gantt chart. The technical paper is representative of the type of descriptive documents students will be required to create in the workforce. The practice of following specific formatting and style is a critical skill set.

Activities
  1. lecture Read lecture notes: Module Overview
  2. lecture Read lecture notes: What is Collaboration?
  3. lecture Read lecture notes: Software Development Process Models
  4. lecture Read lecture notes: Week 3

Prototype Milestones & Design

  1. lecture Read lecture notes: From Design Elements to Milestones
  2. asst Do assignment: Module 2 Assignments Due: 02/02/2018

Lab 1

  1. lecture Read lecture notes: TBD
  2. lecture Read lecture notes: Example with Edits
  3. asst Do assignment: Lab 1 - Descriptive Paper Due: 01/29/2018
3 Detailed Design 02/03/2018 - 02/23/2018

Overview

The goal of Module 3 is to prepare a detailed list of tasks necessary to complete each milestone. The tasks will have associated timelines and resources. This will allow for the creation of a weekly “to do” list for the team and each individual of the team. The associate paper describes and defines the specifications and requirements. The mentors should be actively consulted during this design process. Actual coding of the prototype should begin.

Objectives

At the end of this module, students will be able to:

  1. Identify sub-tasks for each milestone
  2. Add sub-tasks to Gantt chart to include: resources and start and stop dates
  3. Identify those tasks that can begin immediately
  4. Create a list of design/coding elements to be completed each week
  5. Write in the style required for specification and requirement documents in the workforce

Relevance

An absolutely critical component of software design is the writing of specifications and requirements. There are industry expected characteristics of each that will provide students the ability to master this type of writing. Also critical is the ability to provide software code based upon provided documents.

Activities

Development Schedule

  1. lecture Read lecture notes: Milestone Tracking
  2. lecture Read lecture notes: Weekly Development Report

Specifications & Requirements

  1. lecture Read lecture notes: Specifications & Requirements
  2. lecture Read lecture notes: Example Requirements from Previous Semesters
  3. asst Do assignment: Write A Requirement Due: 02/10/2018

Prototype

  1. asst Do assignment: Development & Progress Evaluation Due: 02/23/2018

Lab 2

  1. lecture Read lecture notes: Lab 2 Examples & Guidance
  2. lecture Read lecture notes: Lab 2 - Template
  3. asst Do assignment: Lab 2 - Requirements Due: 02/26/2018
4 Testing 02/24/2018 - 03/23/2018

Overview

Testing is notoriously given the least amount of time and attention in software development. A move toward test-driven development has gained momentum. We are currently coding aspects of the prototypes, yet need to simultaneously prepare test cases for our requirements. Significant progress should be made on software development over the next four weeks. Each team will collaborate on an outline of Lab 3 – which is a test plan. A portion of the lab will be individually written, and a portion will be a collaborative effort of the team. This Module spans 4 weeks.

Objectives

At the end of this module, students will be able to:

  1. Maintain a Gantt chart of software development progress
  2. Prepare industry standard test cases of three types that verify and validate the requirements from Lab 2:
    1. unit tests
    2. integrations tests
    3. system tests
    4. acceptance tests
  3. Collaborate on the development of an outline for Lab 3

  4. Collaborate on the authoring of test cases and traceability matrices

Relevance

Software development in industry is heavily dependent upon adherence to requirements. The only way to guarantee that the correct software solution to a problem has been achieved is through verification and validation via testing. If the test cases are not written to properly assess the development, time, money and credibility are lost. Possibly resulting in job loss and business failure. Students will experience the detailed process of this critical V & V element using their prototypes as the test bed.

Activities
  1. lecture Read lecture notes: Implementation and Unit Tests
  2. lecture Read lecture notes: Integration & Systems Tests
  3. lecture Read lecture notes: Review Unit Testing and System/Integration Testing
  4. asst Do assignment: Write a Test Case Due: 03/15/2018
  5. asst Do assignment: Write a System or Integration Test Case Due: 03/15/2018

Lab 2 (Revise)

  1. asst Do assignment: Revise Lab 2 based on feedback

Lab 3

  1. lecture Read lecture notes: Getting Started & Examples
  2. lecture Read lecture notes: Example
  3. asst Do assignment: Lab 3 - Prototype Test Plan Due: 04/02/2018
5 Customer Interaction 03/24/2018 - 04/13/2018

Overview

The primary objective of this module is to practice agile scrum development of the prototype with frequent interaction with the instructor and mentor. A weekly examination of student progress will be conducted, and feedback provided. Adherence to requirements and development toward correct validation and verification is expected. The written lab for this week is a user manual of the prototype.

Objectives

At the end of this module, students will be able to:

  1. Collaboratively continue to make progress toward successful prototype development
    employing knowledge and skills learned about the software tools needed.
  2. Collaboratively prepare a single document of each user interface screen developed for the prototype.
  3. Understand the writing style necessary for user manuals.
  4. Demonstrate correct adherence to user manual authoring standards.
  5. Effectively demonstrate the prototype to the instructor and mentor.

Relevance

The ability to effectively communicate the purpose of user interface screens is a part of software engineering. If the user does not understand what each page is designed to do, they may not appreciate potential outcomes. The ability to take the reader of a user manual step by step on the usage of the screen is also a skillset needed in industry. If the user cannot correctly use the screen, they may not care to use the product. The process of interim reviews of software development requires unique skillsets. The developer must be able to take criticism as a professional, and be able to properly ask questions of the customer in order to deliver a product that solves a problem correctly.

Activities
  1. asst Do assignment: Create the pRototype and User Manual

Lab 3 (Revise)

  1. asst Do assignment: Revise Lab 3 based on feedback

Lab 4

  1. lecture Read lecture notes: Writing a User Manual
  2. asst Do assignment: Lab 4 - User Manual Due: 04/17/2018
6 Lessons Learned 04/14/2018 - 04/20/2018

Overview

This module guides the student to successful completion of all written labs (re-writes). Teams will be required to modify the software of their product as identified in Module 5. Demonstrations will be necessary to gain approval of their mentor, which is required by the end of the semester. Lab 5 will be due in the last week of this module, and is to be a summary of the weekly reflective journals. The goal is to provide each student with an appreciation of industry’s expectations upon graduation with a degree in computer science.

Objectives

At the end of this module, students will be able to:

  1. Summarize their journey through their professional preparation for employment
  2. Summarize the successes and challenges of developing professionally written technical documents typical of computer scientists
  3. Summarize their successes and challenges of working on a team to design, develop, and deliver a large scale software product
  4. Deliver a working product to their mentor

Relevance

At the end of every software development process industry members must analyze the successes and challenges. The goal is to repeat the aspects that were great, and avoid those that cost them time and money. Keeping on top of customer expectations is critical in order to provide a useful product that correctly solves the prevalent problems that generated their needs.

Activities
  1. asst Do assignment: Product Delivery

Lab 4 (Revise)

  1. asst Do assignment: Revise Lab 4
7 Lab Rewrites
Activities

Lab Guidance & Grading Notes

  1. lecture Read lecture notes: Grammar Code

Lab 1: Descriptive Paper

  1. Lab 1 Version 2 Due: 02/26/2018
  2. Lab 1 Version 3 Due: 03/19/2018

Lab 2: Requirements

  1. Lab 2 Version 2 Due: 03/19/2018

Lab 3: Test Plan

  1. Lab 3 Version 2
8 Website Updates
Activities
  1. Update Group Website with missing Labs Due: 04/11/2018
9 Special Events and Dates
Activities
  1. TBA

All times in this schedule are given in Eastern Time.

Symbol Key
lecture Read:
slides Slides :
event Event or important date
text Read
lab Do lab:
asst Assignment:
exam Take the
activity Do:
recitation In your recitation section:
construct Under construction: