| -- ****************************************************************************** |
| -- Copyright (c) 2005 INRIA. |
| -- All rights reserved. This program and the accompanying materials |
| -- are made available under the terms of the Eclipse Public License v2.0 |
| -- which accompanies this distribution, and is available at |
| -- http://www.eclipse.org/legal/epl-v20.html |
| -- |
| -- Contributors: |
| -- INRIA - Initial implementation |
| -- |
| -- ****************************************************************************** |
| |
| -- @name Bugzilla |
| -- @version 1.1 |
| -- @domains Software bug tracking |
| -- @authors Hugo Bruneliere (hugo.bruneliere@gmail.com) |
| -- @date 2005/07/07 |
| -- @description This metamodel describes the structure used by Bugzilla to import/export bugs in XML format. Bugzilla is a free "Defect Tracking System" or "Bug-Tracking System" which allows individual or groups of developers to keep track of outstanding bugs in their product effectively. |
| -- @see bugzilla.dtd, http://www.mantisbt.org/mantis/view.php?id=4024 at the bottom of the page |
| |
| package Bugzilla { |
| |
| -- @begin Bugzilla special types |
| |
| --@comment Defines the type of error for a bug |
| enumeration ErrorType { |
| literal et_null; |
| literal et_NotFound; |
| literal et_NotPermitted; |
| literal et_InvalidBugId; |
| } |
| |
| -- @comment Defines the type of severity for a bug. |
| enumeration SeverityType{ |
| literal st_null; |
| -- @comment Blocks development and/or testing work. |
| literal st_blocker; |
| -- @comment Crashes, loss of data, severe memory leak. |
| literal st_critical; |
| -- @comment Loss of function. |
| literal st_major; |
| -- @comment A normal problem. |
| literal st_normal; |
| -- @comment Loss of function, or other problem where easy workaround is present. |
| literal st_minor; |
| -- @comment Cosmetic problem. |
| literal st_trivial; |
| -- @comment Request for enhancement. |
| literal st_enhancement; |
| } |
| |
| -- @comment Defines the type of status for a bug. |
| enumeration StatusType{ |
| literal st_null; |
| -- @comment A new bug, when a product has voting. |
| literal st_UNCONFIRMED; |
| -- @comment Recently added or confirmed. |
| literal st_NEW; |
| -- @comment Has been assigned. |
| literal st_ASSIGNED; |
| -- @comment Was once resolved but has been reopened |
| literal st_REOPENED; |
| -- @comment Has been resolved (e.g. fixed, deemed unfixable, etc.), see the "ResolutionType". |
| literal st_RESOLVED; |
| -- @comment The resolution has been approved by Quality Assurance. |
| literal st_VERIFIED; |
| -- @comment Over and done with. |
| literal st_CLOSED; |
| } |
| |
| -- @comment Defines the type of operating system on which a bug was observed. |
| enumeration OperatingSystemType{ |
| literal ost_null; |
| literal ost_all; |
| literal "ost_Windows 3.1"; |
| literal "ost_Windows 95"; |
| literal "ost_Windows 98"; |
| literal "ost_Windows ME"; |
| literal "ost_Windows 2000"; |
| literal "ost_Windows NT"; |
| literal "ost_Windows XP"; |
| literal "ost_Windows Vista"; |
| literal "ost_Windows Server 2003"; |
| literal "ost_MacSystem 7"; |
| literal "ost_MacSystem 7.5"; |
| literal "ost_MacSystem 7.6.1"; |
| literal "ost_MacSystem 8.0"; |
| literal "ost_MacSystem 8.5"; |
| literal "ost_MacSystem 8.6"; |
| literal "ost_MacSystem 9.x"; |
| literal "ost_Mac OS X 10.0"; |
| literal "ost_Mac OS X 10.1"; |
| literal "ost_Mac OS X 10.2"; |
| literal "ost_Mac OS X 10.3"; |
| literal ost_Linux; |
| literal "ost_BDS/OS"; |
| literal ost_FreeBSD; |
| literal ost_NetBSD; |
| literal ost_OpenBSD; |
| literal ost_AIX; |
| literal ost_BeOS; |
| literal "ost_HP-UX"; |
| literal ost_IRIX; |
| literal ost_Neutrino; |
| literal ost_OpenVMS; |
| literal "ost_OS/2"; |
| literal "ost_OSF/1"; |
| literal ost_Solaris; |
| literal ost_SunOS; |
| literal ost_other; |
| } |
| |
| -- @comment Defines the type of priority for a bug. |
| enumeration PriorityType{ |
| literal pt_null; |
| -- @comment Most Urgent |
| literal pt_P1; |
| literal pt_P2; |
| literal pt_P3; |
| literal pt_P4; |
| -- @comment Least Urgent |
| literal pt_P5; |
| } |
| |
| -- @comment Defines the type of platform on which a bug was reported. |
| enumeration ReportedPlatformType{ |
| literal rpt_null; |
| literal rpt_all; |
| literal rpt_DEC; |
| literal rpt_HP; |
| literal rpt_Macintosh; |
| literal rpt_PC; |
| literal rpt_SGI; |
| literal rpt_Sun; |
| literal rpt_other; |
| } |
| |
| -- @comment Defines the bug's type of resolution |
| enumeration ResolutionType{ |
| literal rt_null; |
| -- @comment The bug has been fixed. |
| literal rt_FIXED; |
| -- @comment The problem described is not a bug. |
| literal rt_INVALID; |
| -- @comment This bug will never be fixed. |
| literal rt_WONTFIX; |
| -- @comment This bug will not be fixed in this version. |
| literal rt_LATER; |
| -- @comment This bug probably won't be fixed in this version. |
| literal rt_REMIND; |
| -- @comment This is a duplicate of an existing bug. |
| literal rt_DUPLICATE; |
| -- @comment This bug could not be reproduced. |
| literal rt_WORKSFORME; |
| -- @comment This bug has been moved to another (Bugzilla) database. |
| literal rt_MOVED; |
| } |
| |
| -- @end Bugzilla special types |
| |
| |
| -- @begin Bugzilla structure |
| |
| class BugzillaRoot { |
| attribute version : String; |
| attribute urlbase : String; |
| attribute maintainer : String; |
| attribute exporter[0-1] : String; |
| |
| reference bugs[1-*] ordered container : Bug oppositeOf bug_bugzillaRoot; |
| } |
| |
| class Bug { |
| reference bug_bugzillaRoot : BugzillaRoot oppositeOf bugs; |
| |
| attribute error[0-1] : ErrorType; |
| |
| -- @comment The identification number of the bug |
| attribute bug_id : String; |
| |
| attribute exporter : String; |
| attribute urlbase : String; |
| |
| -- @comment The current status of this bug. |
| attribute bug_status : StatusType; |
| -- @comment The resolution's level of this bug. |
| attribute resolution[0-1] : ResolutionType; |
| -- @comment The name of the software product |
| attribute product : String; |
| -- @comment The bug's priority. |
| attribute priority : PriorityType; |
| -- @comment The name of the version of the software product or component |
| attribute version : String; |
| -- @comment The type of the platform on which the bug was reported. |
| attribute rep_platform : ReportedPlatformType; |
| -- @comment The current owner of this bug. |
| attribute assigned_to : String; |
| -- @comment The time at which information about this bug changing was last emailed to the cc list. |
| attribute delta_ts : String; |
| -- @comment The name of a software product's component. |
| attribute component : String; |
| -- @comment The user who has reported this bug. |
| attribute reporter : String; |
| -- @comment The current target milestone for this bug. |
| attribute target_milestone[0-1] : String; |
| -- @comment The evaluation of this bug's severity. |
| attribute bug_severity : SeverityType; |
| -- @comment The times of the bug's creation. |
| attribute creation_ts : String; |
| -- @comment The "quality assurance" contact for this bug. |
| attribute qa_contact[0-1] : String; |
| -- @comment Some comments about the status of this bug. |
| attribute status_whiteboard[0-1] : String; |
| -- @comment The operating system on which this bug was observed. |
| attribute op_sys : OperatingSystemType; |
| -- @comment A URL which points to more information about the bug. |
| attribute bug_file_loc[0-1] : String; |
| -- @comment A short textual description of the bug |
| attribute short_desc[0-1] : String; |
| -- @comment A list of keywords relating to this bug. |
| reference keywords[*] ordered container : Keywords; |
| -- @comment Represents the bugs from which this bug depends. |
| reference dependson[*] ordered container : Dependson; |
| -- @comment ??? |
| reference blocks[*] ordered container : Blocks; |
| -- @comment Represents the users who have asked to receive email when a bug changes. |
| reference cc[*] ordered container : Cc; |
| -- @comment Long descriptions about the bug |
| reference long_desc[*] ordered container : LongDesc; |
| -- @comment Represents the attachments associated to this bug. |
| reference attachment[*] ordered container : Attachment; |
| |
| } |
| |
| abstract class StringElt { |
| attribute value : String; |
| } |
| |
| -- @comment Defines a keyword relative to a bug |
| class Keywords extends StringElt {} |
| |
| -- @comment Defines a bug from which an other bug depends |
| class Dependson extends StringElt {} |
| |
| -- @comment Defines ??? |
| class Blocks extends StringElt {} |
| |
| -- @comment Defines a user who have asked to receive an email when a bug changes. |
| class Cc extends StringElt {} |
| |
| -- @comment Defines a long description about the bug |
| class LongDesc { |
| attribute isPrivate : Boolean; |
| attribute who : String; |
| attribute bug_when : String; |
| attribute thetext : String; |
| } |
| |
| -- @comment Defines an attachment associated to a bug. |
| class Attachment { |
| attribute isObsolete : Boolean; |
| attribute isPatch : Boolean; |
| attribute isPrivate : Boolean; |
| attribute id : String; |
| attribute date : String; |
| attribute desc : String; |
| attribute type : String; |
| attribute data : String; |
| } |
| |
| -- @end Bugzilla structure |
| |
| } |
| |
| package PrimitiveTypes { |
| |
| datatype Integer; |
| datatype String; |
| datatype Boolean; |
| datatype Double; |
| |
| } |