New Account Helpful Tips
  CORE
  caCORE SDK 4.1 Scope Document
Added by Ann Wiley, last edited by Ann Wiley on Oct 09, 2008  (view change)

Labels

 
(None)
Author:  Charles Griffin, Satish Patel
Email:
griffinch@mail.nih.gov
Team:
caCORE SDK
Contract:
26XS234
Client:
National Cancer Institute Center for Bioinformatics
National Institutes of Heath
US Department of Health and Human Services

Purpose and Focus of Document

The purpose of this document is to collect, analyze, and define high-level needs and features of the NCICB caCORE SDK Release 4.1. This document focuses on the functionalities proposed by the SDK stakeholders and target users in order to make it a better product. The use-case and supplementary specifications document will detail how the framework will fulfill these needs.

Vision and Dependencies

Vision or Problem Statement

The objective of this release of the caCORE SDK 4.1 is to provide features that have been requested and deemed high priority by users in the caBIG community.

This release will addresss the following:

  • Modeling: caCORE will be enhanced to support additional modeling constructs such as abstract classes and marker interfaces.
  • HL7 Support: For HL7 Support, the caCORE SDK will be working along with the caGrid and other Core development teams to identify realistic use cases for HL7 Support and construct a prototype that will be utilized to elicit feedback from the caBIG community.  A determination will [[sentence not complete in current document]].
  • caGrid Integration: The goals for better integration between caCORE SDK and caGrid are centered around ease of maintainability as new versions are developed and usability for users wanting to turn an SDK generated system into a grid service.
  • Iterative Development Support: The need for supporting iterative development mainly comes from users who customize, extend, or customize and extend the artifacts generated by the caCORE SDK. Currently, the caCORE SDK generates new artifacts for a system every time it is run.  Often times, the model that users provide as input into the SDK changes during the lifecycle of the project thus requiring them to rerun the model through the SDK to generate updated artifacts. If developers have made customizations to the SDK generated artifacts, they have to manually and tediously identify what has changed and subsequently merge their customizations into the newly created SDK generated artifacts. For the 4.1 release, the caCORE SDK will at the minimum provide users with information concerning what has changed between newly created and previously generated artifacts generated by the SDK.

A number of high priority defects will be fixed as part of the 4.1 release as well. 

Product Dependencies

This release is dependent on the caCORE components or products documented on the dependencies wiki page (example for caCORE 3.2).

[Provide additional explanation as applicable. For example, "The EVS vocabulary systems are used by the Java client to retrieve and validate concept information for naming and defining meanings." 

Stakeholder, Technical and User Descriptions

Stakeholder Summary

Customer Name
Role
Interest/Need
David Hau
Associate Director, Core Infrastructure Engineering
Oversees NCICB caCORE Software Engineering
caCORE SDK Product Manager
Denise Warzel Associate Director
Core Infrastructure, caCORE Product Line Manager
Oversees NCICB caCORE Product Line
caArray Project Power users who provided feedback during user interviews  
CGEMS Project Power users who provided feedback during user interviews  
caBIO Project Power users who provided feedback during user interviews  
caDSR Project An NCICB Core Infrastructure product. An integration partner with caCORE SDK, affected by changes within caCORE SDK  
caGRID Project An NCICB Core Infrastructure product. An integration partner with caCORE SDK, affected by changes within caCORE SDK  
caTissue Project Power users who provided feedback during user interviews  
caCORE SDK Users    

Technical Environment

This product uses the following technical components which have been derived from the current NCICB Technology Stack.

  • Client Interface
    • Internet Explorer 6.0 and above
    • Mozilla v. 1.5.0.3 and above
  • Application Server
    • Apache Tomcat 5.5.9
    • Jboss 4.0.5
  • Database Server
    • Oracle 9i
    • MySQL 4.1.19
  • Operating System
    • Windows 2000, XP
    • Unix (Sun Solaris)
  • Portable ANSI-SQL compliant relational schemas
  • Java 1.5

Summary of Key Stakeholder or User Needs

The following subsections provide a description of key requirements to address the solution as perceived by the stakeholders and users.

Stakeholder and User Requirements

[High level bulleted list of the requirements; "See below" if all items are GForge entries.] (You may use this section to describe high level features which have more than one corresponding item in the In-Scope Requirements and Enhancements, for example, Improve user interfaces for the caAdapter mapping tools.)

Current Solution to Meeting Needs

The current 4.0 release of the caCORE SDK was released in late 2007. The 4.0 version can be downloaded at the caCORE SDK download site. The caCORE SDK 4.0 version will be supported by the caCORE SDK development team during the version 4.1 development lifecycle.

Proposed Solution to Meeting Needs

The "In-Scope Requirements and Enhancements" section describes the requirements that will be incorporated within the scope of the 4.1 release. The 41 development project will be performed utilizing portions of the Unified Process with a focus on iterative development and releasing dot or beta versions of the software prior to the final release to meet high priority customer needs.

During the duration of the 4.1 development lifecycle the requirements of future construction iterations will be evaluated near the end of the current iteration under development. The caCORE SDK project manager along with the NCICB Product Manager will review already proposed requirements listed in the "In-Scope Non-Functional Requirements" section along with the requirements listed in the "Bugs", "Feature Requests", and "Suggestions" Trackers made to the caCORE project via the caCORE SDK Gforge Web Site (http://gforge.nci.nih.gov/tracker/?group_id=148), the NCICB Core product listservs, or face to face meetings with projects planning to use or already using the caCORE SDK.  If an iteration's requirements change as a result of the review mentioned above, the following is expected to occur:

  1. This scope document will be updated to reflect the correct scope for the iteration being modified.
  2. The project schedule must be adjusted to reflect the resources and time needed to perform the work for the updated requirements.

In-Scope Requirements and Enhancements

In-Scope Functional Requirements (Enhancements or New Features) Iteration 1 Approved

This section describes the functional requirements for version 4.1 by iteration. As stated earlier, the overall 4.1 scope can be adjusted as each iteration comes to completion.  Details are provided below for scope items whose iterations have been approved. For additional detail, click on the hyperlinks provided in the requirement header fields which will take you to the Gforge Tracker item for the requirement. The Gforge Tracker is the source of truth for the requirement which actually may contain links to use cases or a requirements specification document.

Each new enhancement, modification or new feature is described in detail below. Please note that only hyperlinks are provided for existing defects that are included in a particular release.

Modeling

GF#2958 Abstract Class Support

In general, full abstract base classes are classes either explicitly declared to be abstract, or contain abstract (unimplemented) methods. Except for the instantiation capability, they have the same capabilities as a concrete class or type.

Starting with SDK v4.1, users must be able to designate a class as abstract in their EA or ArgoUML models by checking the "abstract" checkbox modifier in the class properties dialog or pane.  Concrete class(es) will need to "extend" the abstract class by using a "Generalization" link between the abstract and concrete class(es).  The source of a given "Generalization" link should be the concrete sub-class; the target should be the abstract class.

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=2958&atid=774

Estimated level of effort: [LOE]

GF#2958 Marker Interfaces
 
In SDK 4.1, users must be able to create marker interfaces (with no behavior, or methods) in their models. To indicate that a given class implements a marker interface, create a dependency link between the class and interface. The source should be the class, the target should be the interface. The dependency link should have a "realize" stereotype.

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=2958&atid=774

Estimated level of effort: [LOE]

GF#11539 Implicit Inheritance

The requirement implies that for a given class, if there is no corresponding table, then in that case the table should be present for the subclass. While generating Java classes, we ignore the O/R mapping fact and we do not do anything about it. While generating O/R mapping files, the base class should be ignored and the attributes and associations of the base class should be mapped inside the subclass mapping which has a corresponding table.

The limitation of this approach is that the base class is not searchable by Hibernate as it is not mapped in O/R mapping file.

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=11539&atid=774

HL7 Support

GF#12410 HL7 Prototype

HL7 is a widely accepted standard for exchanging clinical trials information. HL7 data types are building blocks for HL7 messages and caCORE SDK currently does not support these data types. The users of the caCORE SDK should be allowed to use the HL7 data types and map them to the database. Allowing users to use the HL7 data types in UML model would enable them to 1) use the same data types across all the layers of application and 2) quickly build the HL7 message from the information model.
 
As part of the development effort, an initial prototype is required to be built which demonstrates code generation from a model which uses HL7 data types and allows users to search on the generated system. Once the prototype is reviewed and accepted, SDK can build support for remaining HL7 types across all tiers of SDK.

https://gforge.nci.nih.gov/tracker/index.php?func=detail&aid=12410&group_id=148&atid=774\\

In-Scope Functional Bug Fixes Iteration 1 Approved

Each bug fix included in this release is described in detail below.

GF#8951 GetHTML query syntax does not support slashes in the criteria

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=8951&atid=730

GF#9392 Uppercase association names generate error in WS

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=9392&atid=774

GF#11189 Search Object drop down is not populated with the correct classnames

https://gforge.nci.nih.gov/tracker/?group_id=148&atid=730&func=detail&aid=11189

GF#9639 Pagination does not work

https://gforge.nci.nih.gov/tracker/?group_id=148&atid=730&func=detail&aid=9639

GF#4150 WS does not handle inheritance properly

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=4150&atid=730 

In-Scope Functional Requirements (Enhancements or New Features) Iteration 2 Approved

Writeable APIs

GF#13288  Writeable API in Java Client

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=13288&atid=774

GF#13287 Enhance Hibernate mapping file generator

[]https://gforge.nci.nih.gov/tracker/index.php?func=detail&aid=13287&group_id=148&atid=774

GF#13289 Security in the writeable API

https://gforge.nci.nih.gov/tracker/index.php?func=detail 

GF#13658 Provide the ability to inject data validation into the Writeable APIs

https://gforge.nci.nih.gov/tracker/index.php?func=detail&aid=13658&group_id=148&atid=774 

In-Scope Functional Requirements (Enhancements or New Features) Iteration 3 Approved

Defects

GF#13443 Could not obtain DAO for: as

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=13443&atid=774https://gforge.nci.nih.gov/tracker/?group_id=148&atid=774&func=detail&aid=13367

GF#13868 Nested queries no longer possible with REST-API

https://gforge.nci.nih.gov/tracker/index.php?func=detail&aid=13868&group_id=148&atid=774

GF#13134 Invalid classname

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=13134&atid=774

GF#8637 JSP Utils error handling

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=8637&atid=774

GF#8638 Several UI issues in Internet Explorer

https://gforge.nci.nih.gov/tracker/index.php?func=detail&aid=8638&group_id=148&atid=774

GF#15102 Attribute level security

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=15102&atid=774

GF#13367 equals() and hashcode() methods

https://gforge.nci.nih.gov/tracker/?group_id=148&atid=774&func=detail&aid=13367

GF#12987 Nested Searches

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=12987&atid=774

caGRID Integration 

 GF#15119 SDK Grid Authentication

Implement an Authentication manager in SDK which can take grid proxy as input. The manager should retrieve user Id from the proxy and then get user account information from CSM so that it can be used for authorization purpose. Implementation of this feature may need a bug fix/upgrade of the grid grouper. Also, the Introduce generated data service plugin may need to be upgraded to support this new functionality out of the box.https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=15119&atid=774

GF#15122 SDK Grid Authentication

Integrate CQL in SDK service layer such that if user intends to pass grid CQL to SDK then they can do so. As part of this effort CQL and CQL2HQL need to be converted into separate projects. SDK and Grid projects can download the required JARs either manually or using IVY.

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=15122&atid=774 

GF#15118 Proxy Framework and XML serialization integration in Grid Service

SDK provides Castor mapping files that are capable of serializing objects and its associations till one level. The Introduce generated data service currently overrides this implementation which causes LazyInitializationExceptions for certain users. Moving forward, a common framework needs to be agreed upon and implemented in respective systems.

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=15118&atid=804 

GME Namespace

GF#12415 GME Namespace Cross Cutting Support Development

https://gforge.nci.nih.gov/tracker/index.php?func=detail&aid=12415&group_id=148&atid=774

GF#12414 XSD Import Statements

Unnecessary import statements are present in the XSDs which can be reduced to only the classes that are used in the XSD

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=12414&atid=774 

GF#6137 Permissible Values

Generate permissible values as enums in the Schema

https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=6137&atid=774 

In-Scope Non-Functional Requirements

None

In-Scope General Support Activities

The caCORE SDK team will reserve 45% of 1 FTE to provide support, integration help and training to the user community.

Out of Scope Requirements and Enhancements

The following sections describe items that have been identified as requirements for the caCORE SDK that may be addressed in the caCORE 4.1 release. For readability, the potential requirements will be provided in the "feature request" and "suggestions" trackers on the caCORE SDK Gforge web site.

Out of Scope Functional Requirements (Enhancements or New Features)

Items that are out of scope were evaluated as part of the initial scoping activities for this release, and subsequently not included in the final approved scope. These items are also documented in the cumulative backlog of requirements found on the product GForge site.

GF#12402   Freestyle Search

 https://gforge.nci.nih.gov/tracker/?func=detail&group_id=148&aid=12402&atid=804

GF#12401   Installer UI

https://gforge.nci.nih.gov/tracker/?group_id=148&atid=774&func=detail&aid=12401

Out of Scope Functional Bug Fixes if Applicable

None

Out of Scope Non-Functional Requirements

Perform BDA Refactoring for the SDK

The SDK team will work with the Automated Build and Deploy team to implement continuous integration and automated deployment for the caCORE SDK.

Out of Scope General Support Activities

None

Document History and Project Information

Revisions Prior to this Wiki Document 

Version Number Revision Date Author Summary of Changes
0.1 02/10/08 Charles Griffin
Initial Draft
0.2 02/13/08 Charles Griffin
Iteration 1 Approval
0.3
03/12/08
Charles Griffin
Iteration 2 Proposed
0.4
03/14
Charles Griffin
Added GF#13568 to iteration 2 Scope
Name Team/Role Version Date Reviewed Reviewer Comments
Avinash Shanbhag SDK Product Manager 0.2 02/13/08
Iteration 1 approved
Avinash Shanbhag
SDK Product Manager
0.4
04/17/08
Iteration 2 approved

Revisions to this Wiki Document

Document Version:
Click the Info tab. View the Recent Changes or click the link to view the page history.
Last Modified:
Refer to the first line displayed in the document window.
Project GForge site:
[Project GForge site link]
Most current version:
Unless the display includes a notice that you are viewing a previous version, you are viewing the most current version of this Scope Document for the release indicated in the title.
Revision history:
Click the Info tab. In the Recent Changes area, click the link to view the page history.
Review history:
Click the Info tab. In the Recent Changes area, note the developer who made each change and the date and time. Refer to the Key People Directoryfor their roles. Click the link to view any page or to view the page history, and then click the link for a page. When the page opens, view the comments and changes made in that version.
Related documents:
[Name and URL of each related document]
NCICB Management
Role Responsibilities
David Hau
Product Manager
Oversees development of the product: features, functions, definition of stakeholders, priorities within the scope, timeframe for release
David Hau
Engineering Manager
Oversees NCICB caCORE software engineering practices, conducts design reviews, guides technical development
Denise Warzel
Product Line Manager
Oversees NCICB caCORE product line. Responsible for overall product integration, major and minor release cycles. Supports Product Manager.


CONTACT US PRIVACY NOTICE DISCLAIMER ACCESSIBILITY APPLICATION SUPPORT
National Cancer Institute Department of Health and Human Services National Institutes of Health USA.gov