SteelTrace RESPONSE to INCOSE Survey
For immediate Release, March 26, 2002
Questions answered based on
Catalyze Tool Suite (including Catalyze Solo 1.0 & Catalyze Collaborate 1.0)
INCOSE Tools Database WG - Requirements Mgmt. Tool Survey
Last Survey Update: January 2000, International Business Meeting, Mesa
1. Capturing Requirements/identification
1.1. Input document enrichment/analysis
Using existing document information (such as glossary, index, etc.), aid the user in requirements analysis, identification of requirements, etc.
Full. Catalyze Tool Suite provides a structured approach to requirements capture thereby encouraging better quality requirements. The structure is use case oriented and many previously built requirements models, ship out of the box to accelerate requirements capture sessions. A full glossary structure is available as well as formatted document templates to allow for automatic generation of: glossary, high level specification document, full detailed specification document, Test/QA document. Additionally new document formats can be created allowing for full branding and data specification as is required.
In addition Catalyze Collaborate 1.0 provides an open SQL based repository which can be queried for incomplete/partial specifications as well as all requirements matching certain criteria such as goal-level of the requirement etc.
1.1.1. Input document change/comparison analysis
The ability to compare/contrast two different versions of a source document
Full. Catalyze Tool Suite provides a highly customisable Word document generation facility, wherein a document can be generated and any changes made to the document can be merged back into the originating Catalyze project via a highly intuitive visual merge facility. This graphically indicates any conflicts and allows the user select either contributor.
In addition, any non-Catalyze originating content such as excel spreadsheets, visio elements, screenshots can be embedded in the generated document using Word and any subsequent updates to the document will preserve those elements.
1.2. Automatic parsing of requirements
A mechanism for automatic identification of requirements by key words, structure, unique identifiers, etc. to create requirements from the text.
Partial. Catalyze Tool Suite provides an ability to copy and paste from text based documents into Catalyze project models.
1.3. Interactive/semi-automatic requirement identification
The ability to identify requirements from a text file via interactive means such as mouse highlighting of the requirement text or prompting by the system "is this a requirement?".
Full. Requirement text is selected within Word by highlighting text. The text is can be enclosed visually with 'tags' indicating that this is a requirement. Once requirements are identified they can be merged back into a Catalyze project using the visual merge facility. Requirements are synchronised in the Catalyze Project and the Word document and can be reconciled at any time by using the merge facility.
1.4. Manual requirement identification
A manual means of identifying or creating requirements.
Full. Requirement text is selected within Word by highlighting text. The text is can be enclosed visually with 'tags' indicating that this is a requirement. Once requirements are identified they can be merged back into a Catalyze project using the visual merge tool. Requirements are synchronised in the Catalyze Project and the Word document and can be reconciled at any time by using the merge tool.
1.5. Batch mode operation
A mechanism for inputing/identifying requirements from outside of the tool.
Full. Catalyze stores requirements in an XML (Extensible Markup Language) format as well as in relational database (SQL compliant) format within Catalyze Collaborate. Both of these formats are open and industry standard and 3rd party XML supporting tools such as Word XML Editors can be used to directly enter requirements. Additionally Report writers such as MS Access, Reportsmith can be used to generate custom reports based on user configurable criteria eg. 'Show me all of the requirements that do not have a full set of detail specified'.1.5.1. Batch-mode document/source-link update
Does the tool have the ability to update existing linked documents from new/changed versions of the source documents without having to re-establish traceability links
Full. Catalyze supports full round-tripping between the generated word document and the original Catalyze project. This means that any changes made in the requirements document can be merged back into the project using the visual merge tool. Additionally Catalyze provides an update facility wherein any new changes made in the project will be updated in the document without touching other elements of the document, including non-Catalyze elements such as excel spreadsheets screenshots etc.
1.6. Requirement classification
Does the tool have the ability to classify/categorize requirements during identification?
Full. Requirements can be classified as functional (objective based), or non-functional (constraint or quality based). Requirements can be further classified based on goal-level of requirement (very high summary, summary, high, etc.). These goal-levels are customisable per project. Other categorisations are available using attributes such as priority. Notes can be attached to requirements to further classify them if required.
2. Capturing system element structure
Once the requirements have been captured, the allocation of requirements to sub-system elements takes place. The tool must capture these elements so links/allocations can be made to those sub-systems elements.
2.1. Graphically capture systems structure
Can the tool graphically capture system implementation (such as architecture, functional decomposition, WBS, etc.) and display them graphically such that requirements can be linked to them.
Full. Catalyze provides a decomposition notion called 'refinement' which provides a traceable link to system elements. Refining a step at one requirement level to a more detailed requirement at the next level allows us to graphically navigate form very high level requirements to very detailed and system level requirements. At detailed levels notes/links can be specified which refer to system elements. These are then reflected as a visual icon associated with the given requirement. An XMI (XML Metadata Interchange) Export/Import facility translates the requirements into the UML (Unified Modeling Language) thereby allowing for a traceable link to system design elements.
2.2. Textural capture of systems structure
Can the tool textually capture system implementation (such as architecture, functional decomposition, WBS, etc.) and display them textually such that requirements can be linked to them.
Full. Catalyze provides all aspects of the requirements project in both a graphical and textual form, hence the graphical cues specified in question 2.1 are augmented with textual descriptions.
Once the requirements have been captured and system architecture captured, requirements are allocated to the various system elements.
3.1. Requirements derivation (req. to req, req. to analysis/text)
The ability to derive/create additional requirements and link between them such as requirement to requirement, or requirement to text (representing trade studies) to derived requirements.
Full. Catalyze provides a decomposition notion called 'refinement' which provides a traceable link to system elements. Refining a step at one requirement level to a more detailed requirement at the next level allows us to graphically navigate form very high level requirements to very detailed and system level requirements. Additional branching constructs are provided such that both conditional and unconditional jumps can be specified as part of a requirements flow. Any set of artefacts (such as spreadsheets, graphics screenshots) can be linked to requirements at any level. Additionally outside of the Catalyze environment within a Catalyze generated word document reserved tags can be inserted allowing any element to be inserted into the requirements document.
3.2. Allocation of performance requirements to system elements (weight, risk, cost, etc.)
The ability to link performance requirements to system elements such as weight, cost, throughput, etc. This also includes the ability to allocate portions of that performance requirement to system elements.
Full. Requirements can have attributes such as risk, cost etc. specified as non-functional properties. Additionally notes and links can be used to associate performance documents/artefacts with a given requirement.
3.3. Bi-directional requirement linking to system elements
The linking of requirements to system elements can be accomplished from either end of the link--from the implementation back to the requirement or from the requirement down to the system element.
Full. Flexible top-down or bottom up approach to graphically and textually defining requirements is provided. Catalyze also has no restrictions as to the levels of requirement (via the refinement mechanism) and as to where system elements can be linked. These links can also be specified within the word document, outside of the Catalyze environment.
3.4. Capture of allocation rationale, accountability, test/validation, criticality, issues, etc.--if so how and what mechanism does it use?
Also critical, is the ability to attach rationale, assignments, criticality, test/validation and many other issues to the requirement, allocation, and the system element to which a requirement is linked.
Full. Leveraging the notes and non-functional requirement facility Catalyze allows users specify rationale, allocation etc. to the requirement. This can be qualified with a specific type or category. Test specifications can also be generated and round-tripped in the same fashion as generated requirements documentation. The link facility allows any external artefacts to be bound to specific requirements.
Once the allocations are complete, the user will want the ability to see the links where they come from, where they go, and why they apply.
4.1. Identify inconsistencies (orphans,...if so what kind of...)
The tool should allow the user to identify inconsistencies such as unlinked requirements or system elements (orphans).
Full.Catalyze provides a comprehensive search mechanism which allows for unqualified traceability links to be easily identified. In projects that are stored in the Catalyze repository (using Catalyze Collaborate) SQL queries can be invoked which allow for full report generation relating to incomplete or suspicious links associated with specific requirements. The refinement and mechanism also provides a visual means indicating orphaned requirements. Finally the tight 'round-trip' integration with UML based design tools means that any inconsistencies between system elements and the requirements can be easily identified using the visual merge tool.
4.2. Visibility into existing links from source to implementation--i.e. follow the links
With the requirement links in place, the user needs the ability to follow the links to see where they come from and where they go to
Full. Catalyze provides a full requirements map which is a visual overview of all the requirements and their respective links and 'refinements'. The user can navigate across elements and also graphically drill into the specific flow diagram while still presented with the textual outline of the requirement and business rules as well as information pertaining to system elements. The tight 'round-trip' integration with UML based design tools means that the requirements can be traced into UML design elements.
4.3. Verification of requirement (was it done, how was done)
Throughout the life of the project, the requirement management tool will be used to verify that the requirements have been met. The tool should provide the ability to document that the requirement was fulfilled, how it was done, and who was responsible.
Full. Catalyze provides a very clear bridge from requirement to design via XMI links to design tools mapping requirement flows to UML Use Case diagrams and activity diagrams in the UML thereby ensuring that the design is 'ring-fenced' by requirement. Scope of the system is thereby controlled. The mechanism to visually merge the UML design back into the Catalyze project allows for a tight traceability between system deign and requirement. Attributes such as completeness, technical difficulty can be associated with the requirement via the notes or non-functional attributes. Additionally a full internal change tracking facility ships with the tool allowing for a full audit trail of all changes made and by whom.
4.4. Requirement performance verification from system elements (roll up of actuals)
Once performance requirements have been allocated to system elements, the requirements management tool should support the verification of those requirements by rolling up actuals and reporting on variances (this is the allocated weight versus the actual weight).
Partial. Performance requirements are captured in Catalyze using non-functional requirements associated with given functional requirements. The ability to specify completeness is provided by using the notes facility in the tool. Reports can be crafted in Catalyze Collaborate as part of the open repository approach supporting SQL report tools.
5.1. History of requirement changes, who, what, when, where, why, how.
Once requirements have been captured, the requirement management tool should maintain a history of requirement changes, who changed it, when it was done, why it was done, etc. Some of this tracking could be automatic, others could be procedural such as a rationale for the change and how the change is to be accomplished.
Full. Every requirement change is captured within Catalyze allowing easy identification of 'suspect' changes. Each change is automatically captured along with the date and time and person who made the change. Projects can be baselined such that significant milestones to be locked down.
5.2. Baseline/Version control
At various times the requirements will need to be baselined (saved and locked away). The requirements management tool should support this along with the ability to compare and contrast between various baselines.
Full. Catalyze has no need for alternative versioning systems to be installed and ships with a change tracking facility. An ability to baseline a project is provided which allows labels to be applied to all elements of the project. This includes baselining glossary items, notes etc. A description of the baseline label can be specified allowing more detail to be captured. Once baselined the project can be saved and two different baselines can be merged/compared using the Visual Merge facility.
5.3. Access control (modification, viewing, etc.)
The requirements should be able to be protected from modification, viewing, etc. by individuals or groups.
Partial. Catalyze Solo is a single user requirements tool running on a standalone basis. Catalyze Collaborate writes to a repository which which is SQL based. All common databases are supported and access permissions can be specified at the repository level through the database utilities. The granularity can be specified at the level of requirement.
6. Documents and other output media
6.1. Standard specification output (if so what kind)
The requirements management tool should output documentation in various military/commercial standard formats (490, 2167, etc.).
Full. Catalyze supports document generation to Word using a mechanism of profiles. Each profile represents the format of the output document. Catalyze ships with 4 profiles however new profiles can be added and amended to reflect the common industry formats, specifying given branding and or specific data/structure of the generated documents.
6.2. Quality and consistency checking (spell, data dictionary, )
The tool should also support document quality and consistency checking through spell checking, data dictionaries, acronym tables, etc.
Full. With its tight integration with MS Word via the round-tripping mechanism, Catalyze supports Word text-checking features (spelling, auto correction, thesaurus, etc…). Any changes to the document can then be visually merged back into the Catalyze project.
6.3. Presentation output
Once the information is loaded, the requirements management tool should support the generation of presentation quality charts and graphs.
Full. Catalyze stores requirements in an XML (Extensible Markup Language) format as well as in relational database (SQL compliant) format within Catalyze Collaborate. Both of these formats are open and industry standard and 3rd party XML supporting tools such as Word XML Editors can be used to analyze and generate charts and graphs. Additionally Report writers & productivity tools such as MS Access, Reportsmith Excel can be used to generate custom reports based on user configurable criteria eg. 'Show me all of the requirements that do not have a full set of detail specified'.
6.4. Custom output features and markings (user definable tables, figures, security markings..)
The tool should support the output of documents in finished form including page security markings, graphics/figures, user definable tables, indexes, etc.
Full. Catalyze generates full requirement documentation in Word, including table of contents, headers and footers etc. There are no restrictions as to the word processing facilities.
6.5. WYSIWYG previewing of finished output
The tool should allow the user to view the document on-screen in finished format.
Full. Catalyze generates full requirement documentation in Word and automatically inserts a link at the project level. This link is click through and will automatically launch word with the generated requirements document. This can be previewed within word while keeping in synch. with Catalyze. Catalyze also generates to HTML which can be published on the web.
6.6. Status reporting
Tool users need to status information in the requirements management tool.
Full. Catalyze provides an ability to specify the status information via notes and these can be associated with each requirement. Additionally each requirement can be mapped directly to a task in Microsoft project and can be assigned resources etc. with Microsoft project. This can be done via a customisable interface into the Catalyze project.
6.6.1. Technical Performance Measurement status accounting
Status current technical performance of various allocated performance requirements and monitor progress towards goals.
Partial. Each requirement can be mapped directly to a task in Microsoft project and can be assigned resources etc. with Microsoft project. This can be done via a customisable interface into the Catalyze project.
6.6.2. Requirement progress/status reporting
Status reporting on current compliance/non-compliance to various requirements
Full. The Catalyze search facility allows for easy detection of missing parts of the requirement document. The ability to visually see linked requirement and requirements related via Catalyze's 'refinement' mechanism allows for easy detection of compliance or not to requirements. The interface with design tools combined with the generation of test specifications ensures that the design and build map to requirements. In Catalyze Collaborate a full query facility is provided wherein reports can be crafted in third party tools such as ReportSmith, MS Access.
6.6.3. Other ad hoc query’s and searches
The requirements management tool should support ad hoc query’s and searches per the user’s discretion.
Full. Queries and search can be performed. Catalyze Collaborate offers a a full query facility wherein reports can be crafted and saved in third party tools such as ReportSmith, MS Access.
Since Systems Engineers rarely work as individuals, the ability for a team of engineers to look/work on the same information at the same time is critical.
7.1. Support of concurrent review, markup, and comment
The tool should support a team of engineers reviewing, marking up, and commenting on requirements or implementation alternatives.
Full. Catalyze Collaborate supports team development with locking down to the requirement level. Multiple people can work on the same project and the project can be disconnected from the repository to work offsite for example at a customer location and later reconcile the changes made to the central repository. Catalyze's refinement facility allows for multiple alternative requirements to be refined from a single more abstract requirement thereby offering a comprehensive facility for specifying alternative approaches to implementation. Finally the round-tripping support offered in conjunction with document generation means that customers can update documents without the need to have an install version of Catalyze and changes in these documents can be merged back into the originating project.
7.2. Multi-level assignment / access control
Access by the team to the database must be tempered by multi-level access control (i.e. the ability to protect things from being modified). This also includes the ability to submit changes into an approval cycle (for acceptance/voting) before committing the changes to the tool for everyone to see.
Partial. Access control is provided at the database level via permission on the database tables.
8.1. Inter-tool communications
Requirements management must have the ability to communicate requirements to other domain-specific design tools (CASE, EE, etc.). Full.
Full. Catalyze ships with an import/export facility which generates to/from all leading providers of CASE tools. This uses XMI, sponsored by the OMG (Object Management Group www.omg.org) the industry group which sets the UML standard. Common modeling tools such as Rational Rose, TogetherSoft ControlCenter etc. support XMI as a mechanism for exchanging models. The very tight relationship between Catalyze structured requirements maps directly into a more designer friendly view represented as use case diagrams etc.
Catalyze offers as a free download, the Catalyze Open API (Application Programming Interface) so that third party vendors may navigate the Catalyze data models. Two versions of the API are available one is a Java based entity while the other is a com based API for users of Microsoft products.
Catalyze Collaborate writes to an open SQL based relational database providing full transparency into the requirements data.
8.1.1. Interfaces to other tools?
What tools will your requirements management tool interface with or talk to?
Full. Catalyze ships with an import/export facility which generates to/from all leading providers of CASE tools. This uses XMI, sponsored by the OMG (Object Management Group www.omg.org) the industry group which sets the UML standard. Common modeling tools such as Rational Rose, TogetherSoft ControlCenter etc. support XMI as a mechanism for exchanging models. The very tight relationship between Catalyze structured requirements maps directly into a more designer friendly view represented as use case diagrams etc.
8.1.2. External Applications Program Interface available
To support the wide variety of tools in use by engineers, the requirements management tool should have programmable access to the information contained in the tool’s database (to get access to and deposit information).
Full. Catalyze offers as a free download, the Catalyze Open API (Application Programming Interface) so that third party vendors may navigate the Catalyze data models. Two versions of the API are available one is a Java based entity while the other is a com based API for users of Microsoft products.8.1.3. Support Open database system (standard query access)
Does the tool support Open Database standards such as standard query languages or exchange formats?
Full. All aspects of the Catalyze tools use open standards. We store the format for Catalyze Solo using XML, the format stored to in Catalyze Collaborate is to an SQL compliant database. XMI, the mechanism by which we integrate with design tools is the industry standard way of exchanging UML models in the XML format. Additionally the tools are written in Java which is an extremely open and extensible platform allowing strong support for open APIs.
8.1.4. Import of existing data from various standard file formats ?
Does the tool have the ability to import existing data (such as a ASCII text file containing link information) to create structures within the tool without having to re-enter the information?
Full. The tool supports additions that are made to the XML data via XML editors outside of the tool environment. The DTD (Document Type Definition) associated with the XML validates the structure of the changes ensuring that no structure rules are broken. Additionally the feature of copy/paste allows for copying of external text into the appropriate requirements within the Catalyze project.
8.2. Intra-tool communication
8.2.1. Exchange of information between same-tool different installations
Since the tool will be used at different sites and different projects, how does the tool exchange information between different tool installations or databases?
Full. The visual merge facility allows for multiple projects to be merged from different locations and/or different versions.
8.2.2. Consistency/comparison checking between same-tool datasets
Does the tool support comparing/contrasting of different same-tool datasets to allow consistency and verification checking?
Full. The visual merge facility allows for multiple projects to be compared and visual cues highlight the deltas between datasets. Additionally the generated documents may be compared using the Word compare facility.
9.1. Single user/multiple concurrent users
Is the tool support a single user or multiple concurrent users?
Full. Catalyze Solo is designed for small teams and non-concurrent access. Calalyz Collaborate supports multi-user requirements analysis, allowing multiple concurrent users locking on the requirement level. Both tools have the following licensing modes: single user mode, node locked mode and full floating license support.
9.2. Multiple Platforms/Operating Systems?
Which platforms and operating systems does the tool run on?
Full. Runs on windows 98 with DCOM plug-ins for word interaction. Runs on NT 4.0 NT 2000 and Windows XP (currently being tested)
Web interface supported on Netscape Navigator 4.x supported platforms and Microsoft Internet Explorer 4x and later supported platforms.
The requirements repository can reside on NT 4.0, NT 2000 or any Java JDBC supporting platform.
9.3. Commercial vs. unique database
Does the tool use a proprietary or commercially available database?
Full. Catalyze Solo stores the requirements in an XML format. Catalyze Collaborate writes to any JDBC compliant database (SQL). Collaborate ships with a MySql repository and has been tested against MS Access and Oracle. Other SQL databases shouldbe compliant however Catalyze has not been tested against these.
9.4. Resource requirements
Please identify hardware/software configuration requirements:
Software required for document generation: MS Word97, MS Word 2000 or MS Word XP (currently being tested)
9.4.1. Memory requirements
128 MB minimum
9.4.2. CPU requirements
Pentium class.
9.4.3. Disk space requirements
40 MB for Catalyze Solo,
40 MB for Catalyze Collaborate20 MB for Repository
10.1. Doing one thing while you are looking at another
Does the user have the ability run a report and look at a requirement at the same time?
Full. The graphical and textual views of requirements are maintained in synchronisation within Catalyze. An ability to spawn off multiple windows representing the same requirements is provided.
10.2. Simultaneous update of open views
If the tool allows for multiple windows/views into the tool--does a change in one view automatically reflect in all other views?
Full, all open views update and dynamically reflect any change to data. Catalyze Collaborate also notifies all other users when a requirement is being edited (locked) by other users. This is represented by appropriate visual cues rather than a notification dialog box approach, allowing for smoother and less intrusive acknowlegdement messages.
10.3. Interactive graphical input/control of data
Does the tool support graphical input and manipulation of data?
Full. Catalyze represents requirements both graphically and visually. It automatically generates flow diagrams and use case maps and provides thumbnail overview screens showing the context of a given requirement or portion of flow diagram. These mechanisms allow the tool to scale to hundreds of detailed requirements while allowing the user understand the context of these.
10.4. Which window’s standard do you follow?
If your tool supports a window’s standard, which one(s)?
Full. Microsoft standards.
10.5. Executable via scripts (recordable) or macros
Does the tool allow the user to create and playback commands or macros that allow the user to automate various tedious tasks?
Partial. The tool supports copy and paste of requirements and all associated artefacts, elimiating the need to start requirements from scratch. The API can be used to write scripts to modify Catalyze Solo requirements programmatically. Routine reports can be crafted for Catalyze Collaborate.
10.6. Web Browser Interface
Does the tool allow the user to access the data from a web browser?
Full. Catalyze generates a full HTML view of the requirements allowing for distributed development etc. The HTML generation (similar to word) uses a mechanism of customisable profiles to allow for rebranding of the generated HTML etc. Catalyze ships with two profiles, one which generates to frames the other is a basic non-frames representation of the requirements. New profiles can also be created.
11. Standards--which one’s do you comply with?
Which military/commercial standards does your tool comply with--including database standards, output document standards, exchange standards, display/graphics standards, etc.
Full. Catalyze ships with an import/export facility which generates to/from all leading providers of CASE tools. This uses XMI, sponsered by the OMG (Object Management Group www.omg.org) the industry group which sets the UML standard. Common modeling tools such as Rational Rose, TogetherSoft ControlCenter etc. support XMI as a mechanism for exchanging models. The very tight relationship between Catalyze structured requirements maps directly into a more designer friendly view represented as use case diagrams etc. Catalyze supports a mode of requirements capture centered around use cases which are the de facto standard in the software requirements community. Document and view outputs available in MS Word and HTML format.
12.1. Warrantee
Does your tool have a warrantee, if so what is it?
Full. Standard 30 day money-back warrantee.
12.2. Network license policy
Does the tool support network licensing (floating, node locked, etc.), if so which license manager?
Full. Both Catalyze Solo and Catalyze Collaborate have the following licensing modes: single user mode, node locked mode and full floating license support. The license manager is a custom one built by SteelTrace.
12.3. Maintenance and upgrade policy
How often are software updates released; are updates separately priced items, etc.?
Full. Catalyze ships point releases on average once a quarter. Major releases generally ship once every 9 months. By purchasing a maintenance license (15% of retail price), the user is entitled to full support and all upgrades for a year. This also allows users access a specific customer support area of the website and access to beta releases of other products.
12.4. Online help
Are the users manuals online, is there online help with the tool?
Full. All user manuals are online and printable. A Screencam is also available which is an automated tutorial of using the tool.
12.5. Internet access/World Wide Web home page location
Does the tool supplier have an Internet address or Mosaic home page location?
Full. SteelTrace's home page is www.steeltrace.com
12.6. Phone support
What type of phone support is available from the tool supplier?
First line support is 24x7.
Contact numbers (Toll Free):
From US : 1888 8070791
From UK :
0800 9047795
From Ireland : 1800 201136
13.1 Are tool specific training classes available? What geographical areas?
Yes. SteelTrace provides tool training as well as requirements capture training. Public classes, as well as onsite classes, are provided worldwide. Visit http://www.steeltrace.com/consultancy_overview.htm for details.
13.2 Can training be made available at a customer’s location?
Yes. Classes can be delivered onsite, at customer’s location.
13.3. Recommended training time?
What is the recommended training time for a user to become proficient in using the tool?
Full. Most users have found that using the automated tutorials allows them to use the tool immediately out of the box. A one-day course is available which covers the full features of the tool and also details aspects of requirements capture best practice and the use case approach to requirements capture.
13.4 Can software installation be performed by an individual with only basic training in the tool?
Full. Software installation Requires no tool knowledge.
14. What other requirements management features do you as a tool supplier think are important (modeling, etc.)?
Return to INCOSE Home
Content Owner: TDWG Chair
Contact us at info@incose.org
Copyright 1998-2004 International Council on Systems Engineering
Last Modified: September 22, 2004