From: Gerard F. <ger...@us...> - 2000-10-22 18:17:01
|
Update of /cvsroot/kuml/kuml/docs/developer/analysis/requirements In directory slayer.i.sourceforge.net:/tmp/cvs-serv19251 Modified Files: kuml_design.dtd kuml_design_to_html.xsl requirements.xml Log Message: Updated requirements document: version 0.4 Index: kuml_design.dtd =================================================================== RCS file: /cvsroot/kuml/kuml/docs/developer/analysis/requirements/kuml_design.dtd,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** kuml_design.dtd 2000/10/17 19:15:48 1.2 --- kuml_design.dtd 2000/10/22 17:50:18 1.3 *************** *** 28,32 **** > <!ATTLIST PROJECT ! name CDATA #REQUIRED > --- 28,33 ---- > <!ATTLIST PROJECT ! name CDATA #REQUIRED ! version 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.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** kuml_design_to_html.xsl 2000/10/17 19:15:48 1.3 --- kuml_design_to_html.xsl 2000/10/22 17:50:18 1.4 *************** *** 21,24 **** --- 21,26 ---- <A name = "product_project"></A> <H1><CENTER>PROJECT REQUIREMENTS for <xsl:value-of select = "@name"/></CENTER></H1> + <H2><CENTER> + <FONT color = "#0000ff">Document version <xsl:value-of select="@version"/></FONT></CENTER></H2> <DIV align = "center"> <TABLE width = "80%"> Index: requirements.xml =================================================================== RCS file: /cvsroot/kuml/kuml/docs/developer/analysis/requirements/requirements.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** requirements.xml 2000/10/17 19:15:48 1.4 --- requirements.xml 2000/10/22 17:50:18 1.5 *************** *** 22,26 **** <!-- The current maintainer is Gerard Flynn <ger...@fr...> --> ! <PROJECT name = "kuml"> <DESCRIPTION> The kUML project aims to produce a general purpose graphical UML modeling --- 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 *************** *** 38,44 **** </DESCRIPTION> ! <REQUIREMENT product = "project" req_id = "2" priority = "1"> <DESCRIPTION> ! The system shall be able to open/edit/show/whatever a <TERM>project</TERM>. </DESCRIPTION> <RATIONALE></RATIONALE> --- 38,45 ---- </DESCRIPTION> ! <REQUIREMENT product = "project" req_id = "2" priority = "1" status = "deleted"> ! <!-- This requirement has been superseded by requirements (7), (8) and (9) --> <DESCRIPTION> ! The system shall be able to open/edit/show a <TERM>project</TERM>. </DESCRIPTION> <RATIONALE></RATIONALE> *************** *** 52,90 **** <REQUIREMENT product = "project" req_id = "3" priority = "3"> <DESCRIPTION> ! The system shall be able to store the project in such a way that ! merging changes made by different developers is possible. </DESCRIPTION> <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> <NOTE> ! <PAR> ! Ok, this is a different approach. I'm not talking about CVS here and i'm not ! talking about locking packages or diagrams. So if one guy adds a new method to ! a class and another adds another it should be possible to merge the class and ! have a new one that contains both methods. If one guy changes a diagram and ! raises a class a bit, and another lowers the same class that should result in a ! conflict. ! </PAR> ! Now suppose the diagram data is stored in ascii and the position is stored as ! follows: ! <BR/> ! Class X pos (x,y,w,h) ! than this could be perfectly handled by for instance CVS (i'm using CVS here as ! an example, i'm not saying that it should be implemented this way, or that we ! should use CVS!). Two developers change the same line and end up with different ! values. ! <BR/> ! ***** MyChanges *** ! Class X pos (1,1,50,50) ! ----- HisChanges --- ! Class X pos (9,9,50,50) ! <PAR> ! The last guy checking in will get the job of solving the conflict and will ! choose one of the two lines. It's really ! no difference from what's happening now with C++ code.</PAR> ! </NOTE> </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "4" priority = "3"> <DESCRIPTION> The system shall limit access to the model to authorized developers --- 53,78 ---- <REQUIREMENT product = "project" req_id = "3" priority = "3"> <DESCRIPTION> ! The system shall furnish concurrent access to a centralized persistent repository ! of UML models and their associated presentation data. </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 *************** *** 110,114 **** <NOTE> It's not easy to say who does the version control, and also to what ! gradation 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. --- 98,102 ---- <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. *************** *** 116,123 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "6" priority = "3"> <DESCRIPTION> ! The system shall inform developers of changes in the model performed by ! other developers. </DESCRIPTION> <RATIONALE></RATIONALE> --- 104,112 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "6" priority = "3" status = "deleted"> ! <!-- Superseded by requirement (2) --> <DESCRIPTION> ! The system shall provide a mechanism allowing developers to be informed of changes in the ! model performed by other developers. </DESCRIPTION> <RATIONALE></RATIONALE> *************** *** 141,148 **** <REQUIREMENT product = "project" req_id = "16" priority = "2"> <DESCRIPTION> ! The system shall permit code generation in C++. </DESCRIPTION> <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> <NOTE> </NOTE> --- 130,142 ---- <REQUIREMENT product = "project" req_id = "16" priority = "2"> <DESCRIPTION> ! The system shall support plugins for automatic code generation in various ! object-oriented 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> </NOTE> *************** *** 151,163 **** <REQUIREMENT product = "project" req_id = "17" priority = "2"> <DESCRIPTION> ! The system shall permit reverse engineering of C++ code. </DESCRIPTION> <RATIONALE></RATIONALE> ! <DETAIL></DETAIL> <NOTE> </NOTE> </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "28" priority = "2"> <DESCRIPTION> The system shall permit code generation in Java. --- 145,165 ---- <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"> ! <!-- Superseded by requirement (16) --> <DESCRIPTION> The system shall permit code generation in Java. *************** *** 169,173 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "29" priority = "2"> <DESCRIPTION> The system shall permit reverse engineering of Java code. --- 171,176 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "29" priority = "2" status = "deleted"> ! <!-- Superseded by requirement (17) --> <DESCRIPTION> The system shall permit reverse engineering of Java code. *************** *** 179,185 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "30" priority = "2"> <DESCRIPTION> ! The system shall permit interface generation in Corba IDL. </DESCRIPTION> <RATIONALE></RATIONALE> --- 182,189 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "30" priority = "2" status = "deleted"> ! <!-- Superseded by requirement (16) --> <DESCRIPTION> ! The system shall permit interface generation in CORBA IDL. </DESCRIPTION> <RATIONALE></RATIONALE> *************** *** 189,195 **** </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "31" priority = "2"> <DESCRIPTION> ! The system shall permit reverse engineering of Corba IDL interfaces. </DESCRIPTION> <RATIONALE></RATIONALE> --- 193,200 ---- </REQUIREMENT> ! <REQUIREMENT product = "project" req_id = "31" priority = "2" status = "deleted"> ! <!-- Superseded by requirement (17) --> <DESCRIPTION> ! The system shall permit reverse engineering of CORBA IDL interfaces. </DESCRIPTION> <RATIONALE></RATIONALE> *************** *** 199,202 **** --- 204,214 ---- </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> *************** *** 243,247 **** <DESCRIPTION> &APP; shall allow the saving and loading of models and their ! corresponding visualization elements. </DESCRIPTION> <RATIONALE></RATIONALE> --- 255,259 ---- <DESCRIPTION> &APP; shall allow the saving and loading of models and their ! corresponding visualization elements in XMI files. </DESCRIPTION> <RATIONALE></RATIONALE> *************** *** 263,269 **** </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "12" priority = "3"> <DESCRIPTION> ! The system shall attempt to respect the notational guidelines defined in UMLv1.3 </DESCRIPTION> --- 275,281 ---- </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "12" priority = "1"> <DESCRIPTION> ! &APP; shall attempt to respect the notational guidelines defined in UMLv1.3 </DESCRIPTION> *************** *** 277,282 **** <REQUIREMENT product = "&APP;" req_id = "13" priority = "2"> <DESCRIPTION> ! &APP; shall permit the exportation of diagrams in various graphic ! formats (ps, eps, png, gif, etc.) </DESCRIPTION> <RATIONALE></RATIONALE> --- 289,294 ---- <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> *************** *** 313,317 **** <REQUIREMENT product = "&APP;" req_id = "18" priority = "3"> <DESCRIPTION> ! &APP; shall be integrated in a complete IDE (kdevelop). </DESCRIPTION> <RATIONALE></RATIONALE> --- 325,331 ---- <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> *************** *** 331,335 **** </REQUIREMENT> ! <REQUIREMENT product = "&APP;" req_id = "20" priority = "3"> <DESCRIPTION> &APP; shall furnish remote access to shared persistent model --- 345,350 ---- </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 *************** *** 344,349 **** <REQUIREMENT product = "&APP;" req_id = "27" priority = "2"> <DESCRIPTION> ! The system shall support the generation of documents (possibly using ! Kugar? http://www.thekompany.com/projects/kugar). </DESCRIPTION> <RATIONALE></RATIONALE> --- 359,364 ---- <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> *************** *** 355,359 **** <REQUIREMENT product = "&APP;" req_id = "32" priority = "1"> <DESCRIPTION> ! The application shall allow viewing and navigating UML models even if they contain no compatible presentation data. </DESCRIPTION> --- 370,374 ---- <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> *************** *** 370,374 **** <REQUIREMENT product = "&APP;" req_id = "33" priority = "3"> <DESCRIPTION> ! The application shall allow the automatic generation of diagrams from UML model data alone. </DESCRIPTION> --- 385,389 ---- <REQUIREMENT product = "&APP;" req_id = "33" priority = "3"> <DESCRIPTION> ! &APP; shall allow the automatic generation of diagrams from UML model data alone. </DESCRIPTION> *************** *** 379,382 **** --- 394,400 ---- his needs. </DETAIL> + <DETAIL> + The auto layout algorithm will be customizable. + </DETAIL> <NOTE> This requires the use of some sort of auto-routing algorithm, *************** *** 387,391 **** <REQUIREMENT product = "&APP;" req_id = "34" priority = "1"> <DESCRIPTION> ! The application 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 --- 405,409 ---- <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 *************** *** 423,426 **** --- 441,469 ---- </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> *************** *** 431,439 **** 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 --- 474,482 ---- 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 *************** *** 441,450 **** </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 KumlGui. It does not depend on any specific Desktop environment such as KDE or GNOME. </PAR> --- 484,493 ---- </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> *************** *** 465,471 **** <REQUIREMENT product = "&LIB;" req_id = "22" priority = "1"> <DESCRIPTION> ! &LIB; shall provide an API for creating and manipulating UML models. ! This API would preferably be standardized and would ideally be that presented ! in UMLv1.3. </DESCRIPTION> <RATIONALE></RATIONALE> --- 508,513 ---- <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> *************** *** 508,511 **** --- 550,567 ---- </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> *************** *** 523,530 **** --- 579,589 ---- </DEFINITION.priority> + <!-- <DEFINITION.term term = "project"> A project is a systemModel possibly with some additional information. </DEFINITION.term> + + --> <DEFINITION.term term = "UMLv1.3"> |