Saturday, May 7, 2011

Conceptual Model of Agile Release and Iteration Scheduling

A conceptual model (or domain model) represents entities and relationships between them. The aim of a conceptual model is to express the meaning of terms and concepts used by domain experts to discuss the problem, and to find the correct relationships between different concepts.


In my article (titled: Conceptual scheduling model and optimized release scheduling for agile environments), I proposed a conceptual model of agile planning that defines a common language for experts of agile software development. The aim of the model to provide a global and common view for agile planning and to avoid the different interpretations that are used in the field. This model not only helps to identify and define the main notions but with its precise relationships it can also be used in the design of agile planning applications.



Our proposed conceptual model of agile release and iteration scheduling is visualized with UML notation in the figure below.




Generally, scheduling mandates defining who will realize what and when. Team, Feature and Release concepts answer to these questions in agile release scheduling. In this case, a Feature can be a Requirement or a DefectRepair; and a Release consists of several Iterations. Whereas, Developer, TechnicalTask and Iteration concepts answer to the previous questions in agile iteration scheduling. Due to the structural similarity of release and iteration scheduling,these concepts are expressed with Resource and Workproduct abstract concepts. 



Additionally, schedule constraint must also be defined: resource constraints can be expressed by iteration velocity or the number of developers, temporal constraints can be asserted as attributes (e.g. deadlines) or Precedence and Coupling dependencies. In the figure, shaded objects (like Developer and TechnicalTask) pertain to iteration scheduling only. Objects in italics point out abstract objects (cannot be instantiated), and the lower compartments of entities with double compartment give the list of attributes of each object.


If you are interested in the details, the whole article can be found in the Selected Publications page.





Tuesday, April 5, 2011

LaTeX code listing definition for Manchester OWL Syntax and UML Profiles

The listings package is a source code printer for LaTeX. It can be used to typeset stand alone files as well as listings with an environment as well as you can print code snippets. Many parameters control the output and if your preferred programming language isn’t already supported, you can make your own definition.

The presently supported languages don't include the following syntaxes:

  • Manchester OWL syntax: The Manchester OWL Syntax, is a new syntax that has been designed for writing OWL class expressions. Although the syntax borrows ideas from the OWL Abstract Syntax, it is much less verbose, meaning that it is quicker to write and easier to read.
  • UML Profile XML format: A profile in the UML (Unified Modeling Language) provides a generic extension mechanism for customizing UML models for particular domains and platforms. Profiles are defined using stereotypes, tag definitions, and constraints that are applied to specific model elements (such as Classes, Attributes, Operations, and Activities).
I implemented both of them, the results can be downloaded from the links below (Please note, the keywords section may be completed depending on your need.):

The following code snippet points out usage examples:

...
\usepackage{listings}


\usepackage{xcolor}      
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{light-gray}{rgb}{0.97,0.97,0.97}


...
\lstinputlisting[language=owlms]{<filename>} 
\lstinputlisting[language=umlprofile]{<filename2>}
...