Portfolio

MSE Portfolio Requirements

Requirements for the Portfolio

This document is intended as a guide to developing a portfolio in partial fulfillment of the masters of software engineering degree. The portfolio is required as part of the CIS 895 course. There are items that are required in the portfolio and expectations that students will do more than the minimal requirements in a number of areas. The products in the portfolio will be supplemented with oral presentations (after items 2 - 5, 6 - 13, and 14 - 21). The final evaluation of the portfolio rests with the major professor and the supervisory committee.

Purpose of the Portfolio

The purpose of the portfolio is to demonstrate the student's ability in all phases and activities of software development. The contents are examples of the student's activities in those phases and activities. It is expected that the use of state-of-the-practice tools and methodologies, such as CASE tools, testing tools, and formal methodologies, will be evident. The professionalism of the student should be evident in these examples. The portfolio may represent work on one major project, or with the agreement of the major professor and supervisory committee, a series of related projects. Documentation Requirements

The following section describes the minimal set of documents that must be contained in the portfolio. It is expected that additional effort will be made in some of the areas based on the nature of the project. The major professor and committee must approve those areas. Each document will be made available to the via a project web page. The web page will maintain the current version of the document as well as all previous major versions. Major versions are those that have been given to the student’s major professor or any committee member for review.

Each project will have at least three presentations. The student will give each presentation to the committee over a specific set of documents. The student should not begin work on the next phase until the committee has agreed that the presentation has been satisfactorily completed. There will be at least one month between each presentation.

Required Documentation

  1. Engineering Notebook - As software engineering struggles to become more professional, it becomes obvious that individual software engineers need to know more about their own work. A standard approach in engineering is the maintenance of an engineering notebook that records activities and effort. This notebook will be a record of the effort involved in the project both in terms of ideas and in terms of effort. As suggested by Watts Humphries, we will keep track of the quantity of our own effort in projects. This part of the engineering notebook will be as a record of the student's activities on this project. Each time spent on the project will be recorded along with a description of the phase and activity. Because of the importance of errors, each failure will be logged as well as the effort spent identifying and removing the fault.

Presentation I – Objectives

  1. Vision Document – There will be two parts to the vision document: the project overview and the requirements.

    Overview – This section will include an overview of the project, its purpose, goals, risks, constraints, and direction. It will also discuss the main product features, quality attributes, and external interfaces.

    Requirements Specification – At this point, the requirements specification will capture the main or “driving” requirements of the project. Model based techniques such as use cases or dataflow diagrams are appropriate. The requirements will describe all key functionality required of the resulting system. At a minimum, the requirements will include the valid range of inputs and the expected outputs associated with those inputs. Each requirement will also be given a unique identifier. This document will continue to evolve at least until the architecture presentation and will be continually updated.

  2. Project Plan - The project plan will detail the phases, iterations, and milestones that will comprise the project. Each deliverable will be included in the plan with estimated dates, sign-offs and evaluation criteria. PERT or Gantt charts are appropriate inclusions in this plan.

    Cost Estimate - The document will also provide a detailed estimate on the size, cost and effort required for the project. At the conclusion of the project, the estimation effort will be critiqued.

    Architecture Elaboration Plan – The Architecture Elaboration plan will define the activities and actions that must be accomplished prior to the Architecture Presentation. The plan must include the set of requirements to be formalized and the artifacts that will undergo formal technical inspection. The plan will also include the names of at least two MSE students that have agreed to participate in the formal technical inspection.

  3. Demonstration – The student will demonstrate at least one executable prototype, simulation, or other such representation that establishes the feasibility of the important or risky elements of the requirements. Projects with a graphical user interface will include an executable prototype of the user interface.

  4. Software Quality Assurance Plan – The student will create a SQA Plan that describes the required documentation, standards and conventions, test tracking and problem reporting, and tools used during the project. The plan will also identify the set of quality metrics used to assess product reliability.

Presentation II – Architecture

  1. Action Items – Action items identified during Presentation II, along with the efforts made to satisfy them, will be documented.

  2. Vision Document – The Vision Document will be updated to provide a complete representation of all requirements. These requirements will be ranked according to importance, and a set of “critical” requirements identified.

  3. Project Plan - The project plan will detail the phases, iterations, and milestones that will comprise the project. Each deliverable will be included in the plan with estimated dates, sign-offs and evaluation criteria. PERT or Gantt charts are appropriate inclusions in this plan.

    Cost Estimate - The document will also provide an updated estimate on the size, cost and effort required for the project implementation.

    Implementation Plan – The Implementation plan will define the activities and actions that must be accomplished during implementation. The plan will include a Work Breakdown Structure, complete with time and costs estimates and completion criteria.

  4. Formal Requirement Specification - One part of the project will be formally specified using a published, formal methodology such as OCL.

  5. Architecture Design - The complete architectural design will be documented using appropriate diagrams such as class and object diagrams, sequence/collaboration diagrams, statechart/activity diagrams, hierarchy diagrams, etc. Each component in the architecture will be documented at the interface level. Reuse of commercial, or pre-existing components will be documented.

  6. Test Plan - A plan will be developed for the project to address the required tests to show that the product satisfies the requirements. The plan will include evaluation criteria for all critical use cases and a set of test data deemed adequate for acceptance testing. Specifically, the test plan will identify a set of test cases, the types of tests that will be used for these test cases, the data that will be used for each case, and the requirement traces for each test case.

  7. Formal Technical Inspection - One of the technical artifacts (design, formal requirement, or executable prototype) will be subjected to a formal technical inspection by at least two independent MSE students (inspectors). A formal checklist to be used by the inspectors will be prepared by the student. Each independent inspector will provide a report on the result of their inspection, which will contain, at a minimum, a cover letter and the annotated checklist. These reports will become part of the project documentation.

    1. In addition, the student must participate as a technical inspector for two other MSE students before their portfolio can be approved by the committee (see item 21 below).

  8. Executable Architecture Prototype – Prior to the Presentation II, an executable architecture prototype will be built in one or more iterations. The prototype will address all critical requirements identified in the vision document and expose the top technical risks.

Presentation III – Implementation

  1. Action Items – Action items identified during Presentation II, along with the efforts made to satisfy them, will be documented.

  2. User Manual - A user manual will be provided. Sections will include (if appropriate) an overview and explanations of common usage, user commands, error messages, and data formats.

  3. Component Design – The internal design of each component will be documented. The documentation required will be consistent with the complexity of the individual components. The use of model-based diagrams such as class diagrams, sequence/collaboration diagrams, and statechart/activity diagrams will be considered.

  4. Source Code - Well-documented source code will be submitted. This code will correspond directly to the architecture and component design.

  5. Assessment Evaluation - The documentation will include a document detailing the testing done on the project. Included will be descriptions of the testing, failures, and reliability estimates. Graphical methods will be used, e.g. error rate diagrams, etc.

  6. Project Evaluation - The student will review the project. The process will be reviewed, including the usefulness of the methodologies used, the accuracy of the estimations, and the usefulness of the reviews. Similarly, the product will be reviewed and evaluated for whether it accomplishes the ideas presented in the initial overview and for the quality of the product.

  7. References – The annotated bibliography will include cited references for all notations used in the portfolio.

  8. Formal Technical Inspection Letters – The student must include letters from two other MSE students stating that the student successfully participated in the other student's MSE projects as an inspector and that their projects  had successfully passed the architecture presentation (or at least their formal technical inspection section).