|
The TopCoder Software Application Development Methodology utilizes the TopCoder Component Catalog and distributed member base to create robust,
high quality applications. It combines our Component Development Methodology with our peer review, component customization, and application integration processes.
This methodology is designed to deliver a repeatable and consistent solution to our customers.
Specification
A TopCoder Project Manager performs the specification phase of the project hand-in-hand with all appropriate client resources.
At the conclusion of the specification phase, the applicable deliverables outlined below are presented to the client:
- Application Requirements Specification: Serves as a scope document, describing what functionality is to be included in the application,
as well as what functionality is not to be included.
- High Level Use Cases Diagrams: Includes UML use cases that describe primary actors and processes involved in the application.
- Activity Diagrams: UML Diagrams used to depict the business processes that will be automated by the application.
- Architecture Diagram: Defines the logical and physical layout of the system and explains design constraints such as third-party software,
language, platforms, standards and protocols.
- Site Map and Site Definition: Describes the logical layout and flow of the user interface as well as detailed page or screen definitions.
- Prototype: A graphical rendition of the application user interface. This includes the look, feel and navigation of the system.
The prototype is used both as an iterative tool for TopCoder Project Managers to develop Functional Requirements, as well as direction for TopCoder
Design and Development Teams. Prototypes are developed by TopCoder Creative Designers and Information Architects.
- Quality Assurance Plan: Defines the overall testing strategy and detailed test scenarios that verify the adherence of the application
to all of the requirements.
- Logical ER Model: Describes the data storage model, including all major entities and relationships that the application will require.
This deliverable is produced only for applications that require persistent data storage.
Application Architecture
In this phase, the TopCoder Project Manager and Component Architect design the application using Component Based Development (CBD) techniques that
result in the division of the application into the most granular components. Deliverables include:
- Design Specification Document: This document details the technical design of the application, which includes the interactions of components,
algorithms, and design patterns.
- Component Deployment Diagram: This UML diagram defines the functional components within the systems from the TopCoder Component Catalog
as well as proprietary components required for the application including any third party or legacy system components.
- Component Sequence Diagrams: UML diagrams that displays the interaction between components.
- Component Interface Diagram: This UML diagram splits the application project into its corresponding component pieces and defines key
interaction points between components.
- Persistence Schemas: Persistence strategy including required data storage design.
Component Production
In this phase, the TopCoder Component Development Methodology is used to design and develop components. The deliverables for each component are:
- Component Specifications: Individual specifications are defined for each new component, whether the component is being added to
the TopCoder Component Catalog or custom built for the application.
- Use Case Diagrams: Define the functionality required by each software component.
- Class Diagram: Displays the class and component relationships within the component.
- Sequence Diagrams: Displays the class and component interaction within the component.
- Configuration Data: Configurable parameters the application uses.
- Working solution: Fully unit tested, documented and system tested implementation of the design.
- Test Cases: Test Cases covering unit tests, stress tests, accuracy tests and boundary tests. Test cases are automated when appropriate.
Application Assembly
In this phase, a TopCoder application assembly team assembles the application using the component pieces. The result of this phase is:
- Complete Application: Fully unit tested, documented and system tested implementation of the specification.
Certification
The purpose of this phase is to perform system testing for the application on a quality assurance environment at TopCoder.
- Certified solution: Solution certified on the required platform and technologies. Verify the Quality Assurance Plan has been properly implemented.
- Certified performance: The solution will be certified to perform to the expectation of the user as defined by the deliverables from the Specification Phase.
Deployment
In this phase the fully functioning solution and all associated deliverables will be turned over to the client.
An onsite TopCoder Project Manager and TopCoder Deployment Engineers will deploy the application on quality assurance servers.
|