Menu

Portal:NiCE_Training

Alex McCaskey Dasha
There is a newer version of this page. You can find it here.

NiCE Development Team Training

Software Development Process

_ The development of any quality product requires thoughtful consideration, construction, testing, and deployment by a dedicated team of individuals working in concert _

NiCE development is a strict realization of the above statement, and as such, strives for the thoughtful consideration, construction, testing, and deployment of NiCE in all NiCE Development Team activities. Consideration includes thorough team planning and the development of an on-going relationship with NiCE stakeholders to understand their stringent requirements throughout modeling and prototyping. Construction includes up-front analysis and design before implementing actual product code. Additionally, it promotes software version control, as well as modern software development best-practices such object-orientation and [Test_driven_development]. Deployment includes a quality-oriented, customer-focused effort to document all facets of the product and its development and ensure a timely release of the product.

NiCE utilizes a software development process that facilitates the realization of this overall philosophy. The process is top-down, iterative, model-based, and use case driven. The development of a system model that traces directly to gathered stakeholder requirements enforces a strict adherence to thoughtful design and analysis. The NiCE development process is a tailoring of IBM's Model Driven Systems Development (MDSD), a derivation of the Rational Unified Process (RUP). As such, it is a process that is conducive to team collaboration as well as extremely adaptable to any future stakeholder requirement changes or requests. The following describes the basic pillars of the NiCE software development process:

  • Top-Down Design

    NiCE is developed from a top-down perspective and begins with the compilation of a system or product vision. This vision defines the overall scope of the product to be developed, and focuses on system stakeholder definitions, functional requirements, external tools to be leveraged, and why the product is needed at all. Once the vision is established, formal interviews are held with stakeholders and subject-matter experts to gather all necessary system requirements. These

  • Iterative Development

  • Model Based Design
  • Use Case Driven
  • Testing and Continuous Integration
  • Documentation

Object Oriented Analysis

  • Abstraction
  • Encapsulation
  • Modularity
  • Hierarchy

Unified Modeling Language

Detail UML and its components, give picture examples

Test Driven Development

Describe TDD with Activity Diagram

NiCE Individual Team Flow

When fixing a bug or adding a feature to NiCE, the following steps should be followed:

  • File a task in the SourceForge Tracker
  • Jay Billings reviews the bug fix or feature request and delegates the task accordingly
  • Appropriate team member fixes the bug or adds the feature:
    • Request any necessary changes to the use cases, model, or IT infrastructure from Jay Billings
    • Update the model per guidance
    • Transform the UML model to source
    • Fix the tests firsts, then fix the product code to comply with those tests (See Test Driven Development)
    • Report the fix to other team members for review
    • Commit the fix or feature to the repository
  • Jay Billings and the team member mark the bug fix or feature add as complete