From: Gerard F. <ger...@us...> - 2000-10-31 05:56:41
|
Update of /cvsroot/kuml/kuml/docs/developer/analysis/requirements In directory slayer.i.sourceforge.net:/tmp/cvs-serv30697 Modified Files: kuml_design.dtd kuml_design_to_html.xsl requirements.xml Added Files: requirements_kumlgui.xml requirements_kumllib.xml Log Message: Version 0.5 of requirements doc. -source document split into 3 (main doc. plus 2 external entities) -supports linking of reqs from project to product level (inheritance) -supports sub-requirements -new reqs added (Ed and Thomas) --- NEW FILE --- <?xml version="1.0" encoding = "ISO-8859-1" ?> <!-- ***************************************************************** --> <!-- WORKING DRAFT --> <!-- ***************************************************************** --> <!-- NOTE: ONLY THE REQUIREMENTS LIST MAINTAINER SHOULD COMMIT CHANGES --> <!-- TO THIS DOCUMENT. --> <!-- ***************************************************************** --> <!-- If you would like to propose a change to this document --> <!-- post your proposal to the kuml-devel mailing list --> <!-- (kum...@ba...). --> <!-- The current maintainer is Gerard Flynn <ger...@fr...> --> <PRODUCT name = "&APP;"> <DESCRIPTION> &APP; is a general purpose UML modeling tool. It will provide a powerful and easy to use user interface allowing the creation, modification and visualization of UML models represented as diagrams according to the notational conventions of UMLv1.3 chapter 3. It will also allow the user to navigate, view, create and modify models directly through table and/or tree based interfaces even if no diagrams or visualization elements have been defined. It will allow the storage of UML models as well as their accompanying presentation data in XMI files. It will be able to read model data from any XMI file which conforms to UMLv1.3. It will allow the exportation of diagrams in various graphical formats. </DESCRIPTION> <FULL_DESCRIPTION> <DETAIL> Based on KDE2/Qt2. </DETAIL> </FULL_DESCRIPTION> <REQ_LINK req_id = "11"/> <REQ_LINK req_id = "35"/> <REQ_LINK req_id = "14"/> <REQUIREMENT product = "&APP;" req_id = "7" priority = "1" status = "deleted"> <DESCRIPTION> &APP; is an end-user application which constitutes a general purpose UML modeling tool. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "8" priority = "1"> <DESCRIPTION> &APP; shall furnish an easy to use and intuitive GUI for creating and editing visual representations of UML models (diagrams). </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> <REQUIREMENT product = "&APP;" req_id = "8.1" priority = "1"> <!-- Was req 34 --> <DESCRIPTION> &APP; shall make clearly apparent to the user which actions will result in changes to the UML model and which actions will only change the visual presentations of that model. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> Ideally the application will never display a diagram in a way which suggests that the underlying model is not in a well-defined state (no dangling association line for example), even during user interaction. </NOTE> <NOTE> Separate tool bars might be provided for the two types of actions. </NOTE> <NOTE> A possible scenario for creating an association between 2 classes might be the following: <PAR>--the user selects an association creation tool</PAR> <PAR>--the user selects the first class member</PAR> <PAR>--the program changes the display in some way to indicate it is waiting for the second member of the association</PAR> <PAR>--the user selects the second class member</PAR> <PAR>--the program draws a line in some canonical form between the two classes</PAR> <PAR>--the user may select display tools to change the way the association is represented : class edge anchor points, diagonal lines, step lines or arcs, points by which the line passes, other visual attributes (color, thickness, etc.)</PAR> </NOTE> <NOTE> --the user should not be allowed to modify representations in ways that would conflict with ch. 3 of UMLv1.3 (at least not without warning). </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "8.2" priority = "2"> <!-- Was req 10 --> <DESCRIPTION> &APP; will be usable for completely documenting a model while maintaining diagram readability. This necessitates a highly flexible and user configurable mechanism for information hiding. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "8.3" priority = "2"> <!-- Was req 37 --> <DESCRIPTION> &APP; shall furnish a multi-level undo mechanism. The size of the undo history shall be customizable. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "8.4" priority = "2"> <!-- Was req 38 --> <DESCRIPTION> &APP; shall allow zooming and scaling of diagrams. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "8.5" priority = "2"> <!-- Was req 15 --> <DESCRIPTION> &APP; shall allow information sharing between diagrams. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> For example when a user adds a message to a colloboration diagram a corresponding method may be created if it does not yet exist in the object's class. </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "8.6" priority = "2"> <DESCRIPTION> &APP; shall provide user configurable functionality for information hiding. </DESCRIPTION> </REQUIREMENT> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "9" priority = "1" inherits = "35" status = "deleted"> <DESCRIPTION> &APP; shall allow the saving and loading of models and their corresponding visualization elements in XMI files. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "12" priority = "1"> <DESCRIPTION> &APP; shall respect the notational guidelines defined in UMLv1.3 </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "13" priority = "2"> <DESCRIPTION> &APP; shall support plugins for the exportation of diagrams in various graphic formats. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> <REQUIREMENT product = "&APP;" req_id = "13.1" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the exportation of diagrams in SVG format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "13.2" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the exportation of diagrams in postscript format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "13.3" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the exportation of diagrams in encapsulated postscript format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "13.4" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the exportation of diagrams in PNG format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "13.5" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the exportation of diagrams in GIF format. </DESCRIPTION> </REQUIREMENT> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "18" priority = "3"> <DESCRIPTION> &APP; shall be integrated in a complete IDE (kdevelop) using a component approach. &APP; will nonetheless be fully useable without the integrated IDE. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "19" priority = "2"> <DESCRIPTION> &APP; shall be integrated with KDE2. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> <REQUIREMENT req_id = "19.1" priority = "2"> <DESCRIPTION> &APP; shall furnish access to a KDE2 text editor as a component for editing the non-UML parts of project documentation. </DESCRIPTION> </REQUIREMENT> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "20" priority = "3" status = "deleted"> <!-- Superseded by requirement (3) --> <DESCRIPTION> &APP; shall furnish remote access to shared persistent model repositories. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "27" priority = "2"> <DESCRIPTION> &APP; shall support plugins for the generation of documents in various formats. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> <REQUIREMENT product = "&APP;" req_id = "27.1" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the generation of documents in postscript format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "27.2" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the generation of documents in pdf format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "27.3" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the generation of documents in ascii format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "27.4" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the generation of documents in man format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "27.5" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the generation of documents in texinfo format. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "27.6" priority = "2"> <DESCRIPTION> &APP; shall provide a plugin for the generation of documents in dvi format. </DESCRIPTION> </REQUIREMENT> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "32" priority = "1"> <DESCRIPTION> &APP; shall allow viewing and navigating UML models even if they contain no compatible presentation data. </DESCRIPTION> <RATIONALE> Provide a degree of limited compatibility with all applications which support XMI exported models. </RATIONALE> <DETAIL></DETAIL> <NOTE> May be done with a combination of hyperlinked table and tree views. </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "33" priority = "3"> <DESCRIPTION> &APP; shall allow the automatic generation of diagrams from UML model data alone. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL> User interface tools will be provided to allow the user to easily rearrange the automatically generated diagrams to suite his needs. </DETAIL> <DETAIL> The auto layout algorithm will be customizable. </DETAIL> <NOTE> This requires the use of some sort of auto-routing algorithm, perhaps similar to those used by circuit board layout tools. </NOTE> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "36" priority = "2"> <DESCRIPTION> &APP; shall allow printing of diagrams and documents. </DESCRIPTION> <REQUIREMENT product = "&APP;" req_id = "36.1" priority = "2"> <DESCRIPTION> &APP; shall allow the automatic scaling of diagrams or selected parts of diagrams to fit on the printed page. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "36.2" priority = "2"> <DESCRIPTION> &APP; shall furnish a print preview functionality. </DESCRIPTION> </REQUIREMENT> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "42" priority = "1"> <DESCRIPTION> &APP; shall prodide functionality for viewing and navigating diagrams at different levels of scale/detail. </DESCRIPTION> <REQUIREMENT product = "&APP;" req_id = "42.1" priority = "1"> <DESCRIPTION> &APP; shall allow zooming in diagrams. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "42.2" priority = "1"> <DESCRIPTION> &APP; shall allow scrolling of diagrams. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "42.3" priority = "2"> <DESCRIPTION> &APP; shall allow arbitrary scaling of diagrams. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&APP;" req_id = "42.4" priority = "2"> <DESCRIPTION> &APP; shall allow scaling of diagrams to fit external media. </DESCRIPTION> </REQUIREMENT> </REQUIREMENT> </PRODUCT> --- NEW FILE --- <?xml version="1.0" encoding = "ISO-8859-1" ?> <!-- ***************************************************************** --> <!-- WORKING DRAFT --> <!-- ***************************************************************** --> <!-- NOTE: ONLY THE REQUIREMENTS LIST MAINTAINER SHOULD COMMIT CHANGES --> <!-- TO THIS DOCUMENT. --> <!-- ***************************************************************** --> <!-- If you would like to propose a change to this document --> <!-- post your proposal to the kuml-devel mailing list --> <!-- (kum...@ba...). --> <!-- The current maintainer is Gerard Flynn <ger...@fr...> --> <PRODUCT name = "&LIB;"> <DESCRIPTION> <PAR> &LIB; is a component library for the manipulation of UML models and associated data. It will store UML models in accordance with UMLv1.3, respecting the syntax and static semantics (well-formedness rules) defined therein. It will implement the CORBA facility interface defined for the manipulation of UML models. </PAR> <PAR> It will implement a kUML specific CORBA interface for the storage and retrieval of presentation information which will be linked to UML model's via inheritance from the Foundation::Core::PresentationElement class defined in UMLv1.3. </PAR> <PAR> It will implement a kUML specific CORBA interface for the conversion of complete as well as partial UML models to XMI streams and the inverse operation (creation of models from XMI streams). </PAR> <PAR> &LIB; may be used independently of &APP;. It does not depend on any specific Desktop environment such as KDE or GNOME. </PAR> </DESCRIPTION> <REQ_LINK req_id = "35"/> <REQ_LINK req_id = "14"/> <REQUIREMENT product = "&LIB;" req_id = "21" priority = "1" status = "deleted"> <DESCRIPTION> &LIB; is a component library whose purpose is to support the use of UML models in special purpose applications. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&LIB;" req_id = "22" priority = "1"> <DESCRIPTION> &LIB; shall implement the CORBA Facility defined in UMLv1.3 for creating and manipulating UML models. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&LIB;" req_id = "23" priority = "1" inherits = "35" status = "deleted"> <!-- Superseded by inheritance from req. 35 --> <DESCRIPTION> &LIB; shall provide an API for importing/exporting UML models from/to XMI streams. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&LIB;" req_id = "25" priority = "2" status = "deleted"> <!-- Superseded by inheritance from req 14 --> <DESCRIPTION> &LIB; shall provide a facility for optionally verifying the static and dynamic semantics of models as defined in UMLv1.3. </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&LIB;" req_id = "26" priority = "1"> <DESCRIPTION> &LIB; shall not depend on graphic environments such as KDE or GNOME or their libraries (except for standalone XML libraries). </DESCRIPTION> <RATIONALE></RATIONALE> <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> <REQUIREMENT product = "&LIB;" req_id = "39" visibility = "internal" priority = "2" inherits = "16"> <DESCRIPTION> &LIB; shall furnish a framework for the development of code generation plugins. </DESCRIPTION> </REQUIREMENT> <REQUIREMENT product = "&LIB;" req_id = "40" visibility = "internal" priority = "2" inherits = "17"> <DESCRIPTION> &LIB; shall furnish a framework for the development of reverse engineering plugins. </DESCRIPTION> </REQUIREMENT> </PRODUCT> Index: kuml_design.dtd =================================================================== RCS file: /cvsroot/kuml/kuml/docs/developer/analysis/requirements/kuml_design.dtd,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** kuml_design.dtd 2000/10/22 17:50:18 1.3 --- kuml_design.dtd 2000/10/31 05:56:38 1.4 *************** *** 69,73 **** <!-- A project or product requirement --> ! <!ELEMENT REQUIREMENT (DESCRIPTION,RATIONALE,(DETAIL|NOTE|COMMENT)*)> <!-- REQUIREMENT ATTRIBUTES --> <!-- ****************************************************************** --> --- 69,73 ---- <!-- A project or product requirement --> ! <!ELEMENT REQUIREMENT (DESCRIPTION,RATIONALE,(DETAIL|NOTE|COMMENT)*,(REQUIREMENT)*)> <!-- REQUIREMENT ATTRIBUTES --> <!-- ****************************************************************** --> *************** *** 89,97 **** <!-- ****************************************************************** --> <!ATTLIST REQUIREMENT ! product CDATA "project" ! req_id CDATA #REQUIRED ! priority CDATA "3" visibility (internal|external) "external" status (proposed|accepted|deleted) "proposed" > --- 89,104 ---- <!-- ****************************************************************** --> <!ATTLIST REQUIREMENT ! product CDATA "project" ! req_id CDATA #REQUIRED ! priority CDATA "3" visibility (internal|external) "external" status (proposed|accepted|deleted) "proposed" + inherits CDATA "0" + > + + <!-- Permits referencing a previously defined requirement --> + <!ELEMENT REQ_LINK EMPTY> + <!ATTLIST REQ_LINK + req_id CDATA #REQUIRED > Index: kuml_design_to_html.xsl =================================================================== RCS file: /cvsroot/kuml/kuml/docs/developer/analysis/requirements/kuml_design_to_html.xsl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** kuml_design_to_html.xsl 2000/10/22 17:50:18 1.4 --- kuml_design_to_html.xsl 2000/10/31 05:56:38 1.5 *************** *** 46,49 **** --- 46,51 ---- <xsl:apply-templates select = "REQUIREMENT" mode = "full"/> + + <xsl:apply-templates select = "./REQUIREMENT/REQUIREMENT" mode = "full"/> <BR></BR> <xsl:apply-templates select = "PRODUCT"/> *************** *** 90,93 **** --- 92,97 ---- <xsl:apply-templates select = "REQUIREMENT" mode = "full"/> + <xsl:apply-templates select = "./REQUIREMENT/REQUIREMENT" mode = "full"/> + </xsl:template> *************** *** 117,120 **** --- 121,125 ---- <xsl:template name = "req_row"> <xsl:variable name = "anchor" select = "@req_id"/> + <xsl:variable name = "parent_anchor" select = "@inherits"/> <TR> <TD bgcolor = "{$color}"> *************** *** 137,140 **** --- 142,151 ---- <A href = "#req{$anchor}"><xsl:apply-templates select = "@status"/></A> </TD> + + <TD bgcolor = "{$color}"> + <xsl:if test = "@inherits != '0'"> + <A href = "#req{$parent_anchor}"><xsl:apply-templates select = "@inherits"/></A> + </xsl:if> + </TD> </TR> </xsl:template> *************** *** 234,237 **** --- 245,277 ---- </TD> </TR> + <TR> + <TD colspan = "2" align = "center"> + <H2>SUB-REQUIREMENTS</H2> + </TD> + </TR> + <TR> + <TD colspan = "2"> + <TABLE width = "100%" border = "2" frame = "box" rules = "none" cellspacing = "0"> + <THEAD> + <TR colspan = "6"> + <DIV align = "center"> + <H2>SUB-REQUIREMENTS</H2> + </DIV> + </TR> + <TR> + <TH>ID</TH> + <TH>Description</TH> + <TH>Visibility</TH> + <TH>Priority</TH> + <TH>Status</TH> + <TH>Inherits</TH> + </TR> + </THEAD> + <TBODY> + <xsl:apply-templates select = "REQUIREMENT" mode = "table"/> + </TBODY> + </TABLE> + </TD> + </TR> </TBODY> </TABLE> *************** *** 289,292 **** --- 329,346 ---- </xsl:template> + <xsl:template match = "REQ_LINK"> + <xsl:variable name = "link_id" select = "@req_id"/> + <TR> + <TD colspan = "6" bgcolor = "#cacaca"> + Product supports project requirement : <A href = "#req{$link_id}"> + <xsl:value-of select = "@req_id"/></A> + <P> + <xsl:for-each select = "/PROJECT/REQUIREMENT[@req_id = $link_id]"> + <xsl:value-of select = "./DESCRIPTION"/></xsl:for-each> + </P> + </TD> + </TR> + </xsl:template> + <xsl:template name = "top"> <DIV align = "center"> *************** *** 308,314 **** --- 362,370 ---- <TH>Priority</TH> <TH>Status</TH> + <TH>Inherits</TH> </TR> </THEAD> <TBODY bgcolor = "#cacaca"> + <xsl:apply-templates select = "REQ_LINK"/> <xsl:apply-templates select = "REQUIREMENT[@visibility = 'external']" mode = "table"> <xsl:sort select = "@priority"/> *************** *** 330,333 **** --- 386,390 ---- <TH>Priority</TH> <TH>Status</TH> + <TH>Inherits</TH> </TR> </THEAD> Index: requirements.xml =================================================================== RCS file: /cvsroot/kuml/kuml/docs/developer/analysis/requirements/requirements.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** requirements.xml 2000/10/22 17:50:18 1.5 --- requirements.xml 2000/10/31 05:56:38 1.6 *************** *** 1,3 **** ! <?xml version="1.0" encoding = "ISO8859-1" ?> <!DOCTYPE PROJECT SYSTEM "kuml_design.dtd" [ <!-- ************************************************************* --> --- 1,3 ---- ! <?xml version="1.0" encoding = "ISO-8859-1" ?> <!DOCTYPE PROJECT SYSTEM "kuml_design.dtd" [ <!-- ************************************************************* --> *************** *** 9,12 **** --- 9,14 ---- <!ENTITY APP "kUMLGui"> <!ENTITY LIB "kUMLLib"> + <!ENTITY PRODUCT-KUMLGUI SYSTEM "requirements_kumlgui.xml"> + <!ENTITY PRODUCT-KUMLLIB SYSTEM "requirements_kumllib.xml"> ]> *************** *** 22,26 **** <!-- The current maintainer is Gerard Flynn <ger...@fr...> --> ! <PROJECT name = "kuml" version = "0.4"> <DESCRIPTION> The kUML project aims to produce a general purpose graphical UML modeling --- 24,28 ---- <!-- The current maintainer is Gerard Flynn <ger...@fr...> --> ! <PROJECT name = "kuml" version = "0.5"> <DESCRIPTION> The kUML project aims to produce a general purpose graphical UML modeling *************** *** 57,78 **** </DESCRIPTION> <RATIONALE></RATIONALE> ! <DETAIL> ! The system shall allow merging of changes made by different ! developers. ! </DETAIL> ! <DETAIL> ! The system shall furnish a mechanism allowing project ! administrators to limit access to models to authorized persons. ! </DETAIL> ! <DETAIL> ! The system shall provide a mechanism allowing developers to be informed ! of changes to models performed by others. ! </DETAIL> ! <NOTE> ! </NOTE> </REQUIREMENT> <REQUIREMENT product = "project" req_id = "4" priority = "3" status = "deleted"> ! <!-- Superseded by requirement (2) --> <DESCRIPTION> The system shall limit access to the model to authorized developers --- 59,98 ---- </DESCRIPTION> <RATIONALE></RATIONALE> ! <REQUIREMENT product = "project" req_id = "3.1" priority = "3"> ! <DESCRIPTION> ! The system shall allow merging of changes made by different ! developers. ! </DESCRIPTION> ! </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "3.2" priority = "3"> ! <DESCRIPTION> ! The system shall furnish a mechanism allowing project ! administrators to limit access to models to authorized persons. ! </DESCRIPTION> ! </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "3.3" priority = "3"> ! <DESCRIPTION> ! The system shall provide a mechanism allowing developers to be informed ! of changes to models performed by others. ! </DESCRIPTION> ! </REQUIREMENT> ! ! <REQUIREMENT product = "project" req_id = "3.4" priority = "3"> ! <!-- Was req 5 --> ! <DESCRIPTION> ! A project shall contain version information. ! </DESCRIPTION> ! <NOTE> ! It's not easy to say who does the version control, and also to what ! degree data will be versioned. This will have to be worked out later. Lets ! first agree that we need version control and we have to build 'things' into the ! system to realise that. ! </NOTE> ! </REQUIREMENT> ! </REQUIREMENT> <REQUIREMENT product = "project" req_id = "4" priority = "3" status = "deleted"> ! <!-- Superseded by requirement (3) --> <DESCRIPTION> The system shall limit access to the model to authorized developers *************** *** 90,107 **** </REQUIREMENT> - <REQUIREMENT product = "project" req_id = "5" priority = "3"> - <DESCRIPTION> - A project shall contain version information. - </DESCRIPTION> - <RATIONALE></RATIONALE> - <DETAIL></DETAIL> - <NOTE> - It's not easy to say who does the version control, and also to what - degree data will be versioned. This will have to be worked out later. Lets - first agree that we need version control and we have to build 'things' into the - system to realise that. - </NOTE> - </REQUIREMENT> - <REQUIREMENT product = "project" req_id = "6" priority = "3" status = "deleted"> <!-- Superseded by requirement (2) --> --- 110,113 ---- *************** *** 118,124 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "11" priority = "3"> <DESCRIPTION> ! The system shall support all diagram types defined by UMLv1.3. </DESCRIPTION> <RATIONALE></RATIONALE> --- 124,130 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "11" priority = "1"> <DESCRIPTION> ! The system shall support diagram types defined by UMLv1.3. </DESCRIPTION> <RATIONALE></RATIONALE> *************** *** 126,129 **** --- 132,182 ---- <NOTE> </NOTE> + <REQUIREMENT product = "project" req_id = "11.1" priority = "1"> + <DESCRIPTION> + The system shall support class diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.2" priority = "1"> + <DESCRIPTION> + The system shall support object diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.3" priority = "2"> + <DESCRIPTION> + The system shall support use case diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.4" priority = "2"> + <DESCRIPTION> + The system shall support sequence diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.5" priority = "2"> + <DESCRIPTION> + The system shall support collaboration diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.6" priority = "2"> + <DESCRIPTION> + The system shall support statechart diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.7" priority = "2"> + <DESCRIPTION> + The system shall support activity diagrams. + </DESCRIPTION> + </REQUIREMENT> + + <REQUIREMENT product = "project" req_id = "11.8" priority = "2"> + <DESCRIPTION> + The system shall support implementation diagrams. + </DESCRIPTION> + </REQUIREMENT> </REQUIREMENT> *************** *** 143,162 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "17" priority = "2"> ! <DESCRIPTION> ! The system shall support plugins for reverse engineering of code in ! various object-oriented programming languages. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL>a plugin for C++ will be developed</DETAIL> ! <DETAIL>a plugin for CORBA IDL will be developed</DETAIL> ! <DETAIL>a plugin for Java will be developed</DETAIL> ! <DETAIL>plugins for other languages may be developed by the kUML project ! or by third parties</DETAIL> ! <NOTE> ! Reverse engineering here means the creation of UML models from code ! written in various object-oriented programming languages. ! </NOTE> ! </REQUIREMENT> <REQUIREMENT product = "project" req_id = "28" priority = "2" status = "deleted"> --- 196,215 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "17" priority = "2"> ! <DESCRIPTION> ! The system shall support plugins for reverse engineering of code in ! various object-oriented programming languages. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL>a plugin for C++ will be developed</DETAIL> ! <DETAIL>a plugin for CORBA IDL will be developed</DETAIL> ! <DETAIL>a plugin for Java will be developed</DETAIL> ! <DETAIL>plugins for other languages may be developed by the kUML project ! or by third parties</DETAIL> ! <NOTE> ! Reverse engineering here means the creation of UML models from code ! written in various object-oriented programming languages. ! </NOTE> ! </REQUIREMENT> <REQUIREMENT product = "project" req_id = "28" priority = "2" status = "deleted"> *************** *** 171,175 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "29" priority = "2" status = "deleted"> <!-- Superseded by requirement (17) --> <DESCRIPTION> --- 224,228 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "29" priority = "2" status = "deleted"> <!-- Superseded by requirement (17) --> <DESCRIPTION> *************** *** 180,184 **** <NOTE> </NOTE> ! </REQUIREMENT> <REQUIREMENT product = "project" req_id = "30" priority = "2" status = "deleted"> --- 233,237 ---- <NOTE> </NOTE> ! </REQUIREMENT> <REQUIREMENT product = "project" req_id = "30" priority = "2" status = "deleted"> *************** *** 193,197 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "31" priority = "2" status = "deleted"> <!-- Superseded by requirement (17) --> <DESCRIPTION> --- 246,250 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "31" priority = "2" status = "deleted"> <!-- Superseded by requirement (17) --> <DESCRIPTION> *************** *** 202,568 **** <NOTE> </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "project" req_id = "35" priority = "1" status = "proposed"> ! <DESCRIPTION> ! The system shall allow the storage and retrieval of UML models and associated ! presentation data in XMI files. ! </DESCRIPTION> ! </REQUIREMENT> ! <PRODUCT name = "&APP;"> <DESCRIPTION> ! &APP; is a general purpose UML modeling tool. It will provide a ! powerful and easy to use user interface allowing the creation, modification ! and visualization of UML models represented as diagrams according to the ! notational conventions of UMLv1.3 chapter 3. It will also allow the user to ! navigate, view, create and modify models directly through table and/or tree based ! interfaces even if no diagrams or visualization elements have been defined. It ! will allow the storage of UML models as well as their accompanying presentation ! data in XMI files. It will be able to read model data from any XMI file which ! conforms to UMLv1.3. It will allow the exportation of diagrams in various ! graphical formats. </DESCRIPTION> ! <FULL_DESCRIPTION> ! <DETAIL> ! Based on KDE2/Qt2. ! </DETAIL> ! </FULL_DESCRIPTION> ! ! <REQUIREMENT product = "&APP;" req_id = "7" priority = "1"> ! <DESCRIPTION> ! &APP; is an end-user application which constitutes a general purpose UML ! modeling tool. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "8" priority = "2"> ! <DESCRIPTION> ! &APP; shall furnish an easy to use and intuitive GUI for creating and ! editing visual representations of UML models (diagrams). ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "9" priority = "1"> ! <DESCRIPTION> ! &APP; shall allow the saving and loading of models and their ! corresponding visualization elements in XMI files. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "10" priority = "2"> ! <DESCRIPTION> ! &APP; will be usable for completely documenting a model while ! maintaining diagram readability. This necessitates a highly flexible and user ! configurable mechanism for information hiding. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "12" priority = "1"> ! <DESCRIPTION> ! &APP; shall attempt to respect the notational guidelines defined in ! UMLv1.3 ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "13" priority = "2"> ! <DESCRIPTION> ! &APP; shall support plugins for the exportation of diagrams in various graphic ! formats (svg, ps, eps, png, gif, etc.) ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "14" priority = "2"> ! <DESCRIPTION> ! &APP; shall provide a facility for optionally verifying the static and ! dynamic semantics of models as defined in UMLv1.3. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "15" priority = "2"> ! <DESCRIPTION> ! &APP; shall allow information sharing between diagrams. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! For example ! when a user adds a message to a colloboration diagram a corresponding method ! may be created if it does not yet exist in the object's class. ! </NOTE> ! </REQUIREMENT> ! ! ! <REQUIREMENT product = "&APP;" req_id = "18" priority = "3"> ! <DESCRIPTION> ! &APP; shall be integrated in a complete IDE (kdevelop) using a ! component approach. &APP; will nonetheless be fully useable without ! the integrated IDE. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "19" priority = "2"> <DESCRIPTION> ! &APP; shall be integrated with KDE2. </DESCRIPTION> - <RATIONALE></RATIONALE> - <DETAIL></DETAIL> - <NOTE> - </NOTE> </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "20" priority = "3" status = "deleted"> ! <!-- Superseded by requirement (3) --> ! <DESCRIPTION> ! &APP; shall furnish remote access to shared persistent model ! repositories. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "27" priority = "2"> ! <DESCRIPTION> ! &APP; shall support plugins for the generation of documents in ! various formats (pdf, ps, dvi, ascii, man, texinfo, etc.). ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "32" priority = "1"> ! <DESCRIPTION> ! &APP; shall allow viewing and navigating UML models ! even if they contain no compatible presentation data. ! </DESCRIPTION> ! <RATIONALE> ! Provide a degree of limited compatibility with all applications ! which support XMI exported models. ! </RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! May be done with a combination of hyperlinked table and tree views. ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "33" priority = "3"> ! <DESCRIPTION> ! &APP; shall allow the automatic generation of ! diagrams from UML model data alone. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL> ! User interface tools will be provided to allow the user to ! easily rearrange the automatically generated diagrams to suite ! his needs. ! </DETAIL> ! <DETAIL> ! The auto layout algorithm will be customizable. ! </DETAIL> ! <NOTE> ! This requires the use of some sort of auto-routing algorithm, ! perhaps similar to those used by circuit board layout tools. ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "34" priority = "1"> ! <DESCRIPTION> ! &APP; shall make clearly apparent to the user which ! actions will result in changes to the UML model and which ! actions will only change the visual presentations of that ! model. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! Ideally the application will never display a diagram in a way ! which suggests that the underlying model is not in a ! well-defined state (no dangling association line for example), ! even during user interaction. ! </NOTE> ! <NOTE> ! Separate tool bars might be provided for the two types of actions. ! </NOTE> ! <NOTE> ! A possible scenario for creating an association between 2 ! classes might be the following: ! <PAR>--the user selects an association creation tool</PAR> ! <PAR>--the user selects the first class member</PAR> ! <PAR>--the program changes the display in some way to indicate it is waiting for ! the second member of the association</PAR> ! <PAR>--the user selects the second class member</PAR> ! <PAR>--the program draws a line in some canonical form between the two classes</PAR> ! <PAR>--the user may select display tools to change the way the association is ! represented : class edge anchor points, diagonal lines, ! step lines or arcs, points by which the line passes, ! other visual attributes (color, thickness, etc.)</PAR> ! </NOTE> ! <NOTE> ! --the user should not be allowed to modify representations in ways that ! would conflict with ch. 3 of UMLv1.3 (at least not without warning). ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&APP;" req_id = "36" priority = "2"> <DESCRIPTION> ! &APP; shall allow printing of diagrams and documents. </DESCRIPTION> - <DETAIL> - The application shall allow the automatic scaling of diagrams or - selected parts of diagrams to fit on the printed page. - </DETAIL> </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "37" priority = "2"> <DESCRIPTION> ! &APP; shall furnish a multi-level undo mechanism. The size ! of the undo history shall be customizable. </DESCRIPTION> </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "38" priority = "2"> <DESCRIPTION> ! &APP; shall allow zooming and scaling of siagrms. </DESCRIPTION> </REQUIREMENT> - - ! </PRODUCT> - <PRODUCT name = "&LIB;"> - <DESCRIPTION> - <PAR> - &LIB; is a component library for the manipulation of UML models - and associated data. It will store UML models in accordance with - UMLv1.3, respecting the syntax and static semantics (well-formedness rules) - defined therein. It will implement the CORBA facility interface defined - for the manipulation of UML models. - </PAR> - <PAR> - It will implement a kUML specific CORBA - interface for the storage and retrieval of presentation information which - will be linked to UML model's via inheritance from the - Foundation::Core::PresentationElement class defined in UMLv1.3. - </PAR> - <PAR> - It will implement a kUML specific CORBA interface for the conversion of complete - as well as partial UML models to XMI streams and the inverse operation - (creation of models from XMI streams). - </PAR> - <PAR> - &LIB; may be used independently of &APP;. It does not depend on any - specific Desktop environment such as KDE or GNOME. - </PAR> - </DESCRIPTION> ! <REQUIREMENT product = "&LIB;" req_id = "21" priority = "1"> ! <DESCRIPTION> ! &LIB; is a component library whose purpose is to support the use ! of UML models in special purpose applications. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&LIB;" req_id = "22" priority = "1"> ! <DESCRIPTION> ! &LIB; shall implement the CORBA Facility defined in UMLv1.3 for creating and ! manipulating UML models. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&LIB;" req_id = "23" priority = "1"> ! <DESCRIPTION> ! &LIB; shall provide an API for importing/exporting UML models ! from/to XMI streams. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&LIB;" req_id = "25" priority = "2"> ! <DESCRIPTION> ! &LIB; shall provide a facility for optionally verifying the static ! and dynamic semantics of models as defined in UMLv1.3. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&LIB;" req_id = "26" priority = "1"> ! <DESCRIPTION> ! &LIB; shall not depend on graphic environments such as KDE or GNOME ! or their libraries (except for standalone XML libraries). ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&LIB;" req_id = "39" visibility = "internal" priority = "2"> ! <DESCRIPTION> ! &LIB; shall furnish a framework for the development of code generation ! plugins. ! </DESCRIPTION> ! </REQUIREMENT> ! ! <REQUIREMENT product = "&LIB;" req_id = "40" visibility = "internal" priority = "2"> ! <DESCRIPTION> ! &LIB; shall furnish a framework for the development of reverse ! engineering plugins. ! </DESCRIPTION> ! </REQUIREMENT> - </PRODUCT> <DEFINITION.priority priority = "1"> --- 255,321 ---- <NOTE> </NOTE> ! </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "35" priority = "1" status = "proposed"> <DESCRIPTION> ! The system shall allow the storage and retrieval of UML models and associated ! presentation data in XMI files. </DESCRIPTION> ! </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "14" priority = "2"> ! <DESCRIPTION> ! The system shall provide facilities for optionally verifying the static and ! dynamic semantics of models as defined in UMLv1.3. ! </DESCRIPTION> ! <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> ! <NOTE> ! </NOTE> ! </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "41" priority = "2"> ! <DESCRIPTION> ! The system shall support the management of use case data both as UML use-case ! diagrams and as user definable use case documents. It will manage ! information exchange and referential intergrity between the two representations. ! </DESCRIPTION> ! <REQUIREMENT product = "project" req_id = "41.1" priority = "2"> <DESCRIPTION> ! The system shall support the storage and retrieval of user definable use case documents ! using XML files. </DESCRIPTION> </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "41.2" priority = "3"> <DESCRIPTION> ! The system shall provide version and change management support for use ! case documents. </DESCRIPTION> </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "41.3" priority = "3"> <DESCRIPTION> ! The system shall allow the integration of components from a test ! environment (KTest) so that test cases may be appended/edited for ! selected use cases. </DESCRIPTION> </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "41.4" priority = "3"> <DESCRIPTION> ! The system shall prodide a means of viewing test cases related to a ! given use case. </DESCRIPTION> </REQUIREMENT> ! </REQUIREMENT> + &PRODUCT-KUMLGUI; ! &PRODUCT-KUMLLIB; <DEFINITION.priority priority = "1"> |