Computer Applications Practicum

Course Description:

CSC4081 Computer Applications Practicum [1]. An independent software development project selected in conjunction with the instructor. This course includes the project planning, requirements specification, design, coding, testing and documentation phases of a significant software system. This course must be repeated three times over the last four terms of the program, for a total of three hours credit.

Co-rerequisite: CSC3024 Software and Systems Engineering.

Course Objectives:

A major independent software development project selected in conjunction with the instructor. Includes the project planning, requirements specification, design,Prerequisite: CSC3004 (Software Development), and senior standing or instructors permission.

This is a special course that runs in parallel with other courses, and lasts 6 months. This schedule is designed to give the student enough time to complete an entire software solutions from proposal to delivery.

Objectives of the course for the student:

A. Provide a significant experience in software system planning, specification, design and development.

B. Experience eliciting system requirements from stakeholders.

C. To gain experience managing a complete software system project.

D. To establish in the student a mindset of professionalism.

E. To apply modern software engineering practices to a real world software system need.

F. Development and implementation of test plans.

G. To gain experience in design and creation of software documentation.

Method used in this class:

This course involves the completion of a software development project. Each student will select a meaningful project, and develop a complete project plan, with milestones. These milestones will be defined in terms of appropriate deliverables, e.g. requirements specifications, design documents, test plans, source code, executable code, and documentation. At the end of the two-course sequence, each student will present the results of the project.

Method of evaluation:

A. Deliverables:

Each deliverable will be graded. Each deliverable may be turned in one week prior to the due date for a pre-evaluation. Deliverables for the first semester include the project proposal, system specification, software requirements specification, and a system design.

B. Activity Log:

Students will turn in a weekly log of all hours worked and description of project activity. The expectation is that the student will work 4-8 per week for the duration of the course. The log for each week should be entered as a Word document, using the format provided by the instructor. These will be submitted as Blackboard Assignments each Monday for the preceding week. The cumulative log will be included in your project workbook. You must work at least 2 hours each week on the project. Any week with less then 2 hours will not receive work credit for that week. The log for the preceding week must be posted to the course web site every Monday.

C. Weekly Meetings:

Students will meet individually (in person or online) with the instructor for 15-45 minutes each week, to review work in progress, discuss the deliverables, and any problems that need to be resolved. These meetings can be held in person, or virtually.

Grading:

Deliverables percent
Project Proposal Draft 2%
Project Proposal Final 3%
Project Requirements Draft 3%
Project Requirements Full 7%
Initial System Architecture Proposal 3%
Complete System Architecture Proposal 7%
Cyclic Objectives 10%
Cyclic Risk Analysis 10%
Cyclic Prototypes 10%

|Software Requirements Specification 20%

|Design draft 5%

|Software Design 20%

|Activity Log 20%

|Participation (meetings) 10%

Project Methodology and Schedule:

The goal of this course is to plan and develop a complete software system to meet a "real world" requirement. The goal of the course is to use principled software engineering techniques to produce such a significant software product. I is typical in such a project that many unknowns will exist, to be discovered and worked as as the project proceeds. These unknowns present a real risk of failure if a straight waterfall process technique is followed. Thus we will expect that the requirements and design of the system will evolve as the project unfolds, and as learning occurs. This is the nature of most significant software development projects. Because of this will adopt a risk-driven process approach. As studied in Software Engineering, this means we will move ahead in cycles. Within each cycle we will carefully evaluate the current state, and determine the greatest risk the project faces. We will then select risks to mitigate.

Spiral_model_Boehm_1988.png

About once a month, you will be expected to complete a complete cycle. You will be expected to deliver each of these for each cycle:

Monthly Deliverables:

  1. A list of accomplishments during this cycle
  2. A demo of the current work (with code)
  3. Analysis of the state of the project
  4. A risk analysis of the current project state
  5. A revised design and plan for next iteration (tahe will address the identifies risks)
You will proceed in a series of phases, each of which includes a set of deliverables. A deliverable is a tangible product of part of the software development process. Deliverables include reports for project stakeholders, software documentation, and the actual executable programs and source code. You will be graded on each of these. Below is an outline of the phases and deliverables :
Phase Deliverables:

I. The Planning Phase

  1. Project Proposal with Vision and Scope (draft) (revised)
  2. Software Requirements Specification (draft) (revised)
II. The Development Phase
  1. System Architecture (draft) (revised)
  2. Software Design Specification (draft) (revised)
  3. Software Development:
    • Prototype demonstration and code (one for each cycle)
    • Program Source Code (for each cycle) (final)
    • System, User, and programmer Documentation (draft) (revised)
III. Validation, Installation, and Maintenance Phase
  1. Test design
    • Test Specification (draft) (revised)
    • Test Results
    • Test Analsys
  2. Working System with Documentation
IV. Final Presenation

A final, formal presentation will be made of the system. This is a major event, and the final requirement of the degree program. The presentation should have the following elements:

  1. A 20 minute presentation and demonstration
  2. 10 minutes for questions and comments
  3. A presentation of the system goals
  4. A presentation of the major system requirements
  5. A presentation of the system architecture
  6. An explanation for the chosen architecture
  7. A presentation of the major project challenges, along with an explanation of how you dealt with each.
  8. A presentation of open issues with the project.
  9. A presentation of the the major lessons learned on this project.
  10. A complete system demonstration
  11. Presentation should include slides.
Each deliverable will be turned in on the assigned date. The Instructor will evaluate the deliverable, provide comments describing any necessary revisions, and then sign-off when it is acceptable. Each deliverable is to be neatly organized and typed.. All documents will be collected together as they are produced in a three-ring notebook, with dividers with tabs between each section.

Project Development iterations Each iteration of development will include the following:

A. Current Status (as a spreadsheet): 1. Include a complete list of system specifications/functions 2. For each, give an estimate (from 0%-100%) of the completion of that function. (100% complete means coded, fully tested, and documented), and a risk level, from 1 to 10. 3. For each uncompleted function, also give an estimate of the number of hours needed to complete. Describe briefly what remains to be completed. 4. Also for each function with a risk level higher then 3, describe the nature of the risk 5. Hours worked on each function/feature 6. Cumulative hours

B. Plan: 1. List each uncompleted task in order by priority (based on risk of failure to project). 2. Considering that I expect an average of 3-4 hours a in the fall, and 7-8 hours a week in the spring, create a plan for the next iteration, giving a number of days,, and total hours. No iteration should exceed 3 weeks, or be less t hen one week.

  • *
Topic attachments
I Attachment Action Size Date Who Comment
Pngpng SpiralModel.png manage 115.1 K 2013-10-08 - 21:42 JimSkon Spiral Model
Pngpng Spiral_model_Boehm_1988.png manage 57.6 K 2013-10-11 - 19:05 JimSkon Software Engineering Programs Are Not Computer Science Programs
Svgsvg Spiral_model_Boehm_1988.svg manage 57.6 K 2013-10-11 - 19:04 JimSkon Spiral Model
Topic revision: r5 - 2013-10-24 - RobertKasper
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback