System Generation for Time and Activity Management Product

System Generation for Time and Activity Management Product

System Generation for Time and Activity Management Product Lines presented by Jenya Levin Ottawa-Carleton Institute for Computer Science Overview Modeling and product lines Product line derivation Technologies involved Case studies 1. Klok 2. Leia 3. Anuko Time Tracker 4. TimeTrex Methodology analysis

Future work Contributions References System Generation for TAM Product Lines, presented by Jenya Levin 2 Modeling and Product Lines Modeling Stakeholder communication and documentation Modeling-driven development Automated processing and code generation Product Lines

Commonalities and variabilities Asset re-use and design for re-use Quality control and regression testing Documentation and traceability System Generation for TAM Product Lines, presented by Jenya Levin 3 Product Line Derivation Original systems System models S1 Product line + Invocation files VML4Umple Variety of systems in the domain S1 VML

UML S2 VML S2 UML VML Sn Sn+1 VML Sn UML

Sm VML System Generation for TAM Product Lines, presented by Jenya Levin 4 Technologies involved ERD to extract application data structures UML class and use case diagrams to model original systems UMLet GUI tool for graphical UML modeling that uses XML-based file format Umple textual language based on UML allowing for object-oriented code generation VML language for modeling variabilities

and invoking features to build individual systems VML4Umple product line modeling language System Generation for TAM Product Lines, presented by Jenya Levin 5 Case Studies Klok Free, single-user DB tables: N/A Classes: 2 Clusters: 2

Leia Proprietary, multiuser DB tables: 55 Classes: 54 Clusters: 7 Anuko Time Tracker Open source, multi-user DB tables: 16 Classes: 15 Clusters: 6 TimeTrex

Open source, multi-user DB tables: 99 Classes: 122 Clusters: 17 System Generation for TAM Product Lines, presented by Jenya Levin 6 Example Klok - Screenshot System Generation for TAM Product Lines, presented by Jenya Levin 7 Example Klok Use cases Class diagram Product line

System Generation for TAM Product Lines, presented by Jenya Levin 8 Example Klok Umple code class Project{ String name; Double hoursEstimate; Boolean archived; } class TimeEntry{ Date date; Double duration; String comment; Time startTime; Time endTime; } class Client{ String name; String emailAddress; String phoneNumber; } association { 0..1 Project parent <- * Project;

} association { 0..1 Project <- * TimeEntry; } association { 0..1 Client <- * Project; } System Generation for TAM Product Lines, presented by Jenya Levin 9 Example VML4Umple Concern CTimeEntry{ // time entry can have a rejection comment VariationPoint VPTimeEntryRejectedComment{ Kind: Optional; class TimeEntry{ String rejectedComment; } } // either duration or both start and end time are required VariationPoint VPEntryDuration{ Kind: Alternative; Variant VDuration{ class TimeEntry{

Double duration; } } Variant VStartEndTime{ class TimeEntry{ Time startTime; Time endTime; } } } } System Generation for TAM Product Lines, presented by Jenya Levin 10 Example Klok Invocation file // Invocation of a system similar to Klok alternative variation points // Time Entry // log time start and end times invoke(CTimeEntry, VPEntryDuration, VStartEndTime); // Project

// enter time against projects (client-related work items) invoke(CTimeEntryAgainstProject, VPEntryAgainstProject, VProject); // store optional comments for time entries invoke(CTimeEntryAgainstProject, VPTimeEntryComment); // allow projects to have parent projects invoke(CTimeEntryAgainstProject, VPProjectParent); // store project time estimates invoke(CTimeEntryAgainstProject, VPProjectEstimate); // allow archiving projects optional invoke(CTimeEntryAgainstProject, VPProjectArchive); variation // associate projects with clients points invoke(CTimeEntryAgainstProject, VPClient); // store client email invoke(CTimeEntryAgainstProject, VPClientEmail); // store client phone number invoke(CTimeEntryAgainstProject, VPClientPhoneNumber); System Generation for TAM Product Lines, presented by Jenya Levin 11 Example Klok Original vs

invoked // Umple code for original system class Project{ String name; Double hoursEstimate; Boolean archived; } class TimeEntry{ Date date; Double duration; String comment; Time startTime; Time endTime; } class Client{ String name; String emailAddress; String phoneNumber; } association { 0..1 Project parent <- * Project; } association { 0..1 Project <- * TimeEntry;

} association { 0..1 Client <- * Project; } // Umple code for the system based on Klok class TimeEntry{ Date date; } class TimeEntry{ Time startTime; Time endTime; } class Project{ String name; } association { 0..1 Project <- * TimeEntry; } class TimeEntry{ String comment; } association { 0..1 Project parent <- * Project; } class Project{ Double timeEstimate; } class Project{ Boolean archived; } class Client{ String name; } association { 0..1 Client <- * Project; }

class Client{ String emailAddress; } class Client{ String phoneNumber; } System Generation for TAM Product Lines, presented by Jenya Levin 12 System Generation for TAM Product Lines, presented by Jenya Levin 13 System Generation for TAM Product Lines, presented by Jenya Levin 14 System Generation for TAM Product Lines, presented by Jenya Levin 15 Methodology Analysis Domain-specific product line derivation: 1. Analyze and model several existing applications

2. Iteratively bring the systems to a common base 3. Build product line from base case up Process automation First two steps require human involvement Mapping similar functionality elements Annotations for original systems System Generation for TAM Product Lines, presented by Jenya Levin 16 Future Work

Generate original systems through annotations Feature selection via dependency tree GUI-driven invocation file adjustments GUI-driven system addition to product line Umple-based UI generation for CRUD functions Product lines for other domains Registration systems Shopping carts and point-of-sale systems Blogs and forums Task management and scheduling Calendars System Generation for TAM Product Lines, presented by Jenya Levin

Budget applications 17 Contributions General methodology for product line derivation Thoroughly documented derivation process Case study in TAM domain VML4Umple language Time and activity product line Models and generated code Suggestions on automation Possible future extensions System Generation for TAM Product Lines, presented by Jenya Levin 18

References Auer, M., Tschurtschenthaler, T. and Biffl, S. (2003, A flyweight UML modelling tool for software development in heterogeneous environments. Euromicro Conference, 2003. Proceedings. 29th, pp. 267-272, 2003. Forward, A., Lethbridge, T. C. and Brestovansky, D. Improving program comprehension by enhancing program constructs: An analysis of the Umple language, in 2009, pp. 311-312. Loughran, N., Snchez, P., Garcia, A. and Fuentes, L. (2008, Software Composition, pp. 36-51, 2008. System Generation for Time and Activity Management Product Lines - Support materials, accessed 2009, http://www.site.uottawa.ca/~tcl/gradtheses/jlevin/ Software Architecture: Foundations, Theory, and Practice. Wiley Publishing, 2009, pp. 750. VML Online, accessed 2009, http://cruise.site.uottawa.ca/umpleonline/vml.html System Generation for TAM Product Lines, presented by Jenya Levin

19 References Snchez, P., Loughran, N., Fuentes, L. and Garcia, A., "Engineering languages for specifying product-derivation processes in software product lines," in Software Language Engineering: First International Conference, SLE 2008, Toulouse, France, September 29-30, 2008. Revised Selected Papers Anonymous Springer-Verlag, 2009, pp. 188-207. Klok, accessed 2009, http://klok.mcgraphix.com/ Lixar I.T. Inc., accessed 2009, http://www.lixar.com/ Anuko TimeTracker, accessed 2009, http://www.anuko.com/content/time_tracker/ TimeTrex, accessed 2009, http://www.timetrex.com/ Illustration References 1. Salvador Dal, La persistencia de la memoria, 1931 2. John Tenniel , White Rabbit, 1866, illustration to Alices Adventures in Wonderland by Lewis Carroll, 1865 3. Arabesque gifts, Dal-style melting clocks,

http://www.arabesque-gifts.co.uk/, 2009 System Generation for TAM Product Lines, presented by Jenya Levin 20 Thank you Questions?

Recently Viewed Presentations

  • ESE534: Computer Organization Day 21: April 4, 2012

    ESE534: Computer Organization Day 21: April 4, 2012

    Day 21: April 4, 2012 ... DeHon * Example First line of Dr. Suess's Green Eggs and Ham I AM SAM SAM I AM Recurring substrings? ... Run Algorithm Encoding Finite Window Finite Window Complexity Tree Node Representation Tree Node...
  • TITLE

    TITLE

    It is based on a composite index of data on the rural population by county, where rural is defined by Census as all land/population outside of urban areas. Therefore it shows economic status of the rural population residing in both...
  • m a e T e s l u

    m a e T e s l u

    Rob Culbertson (Langley HS, McLean, VA), Dottie Edwards (Strasburg HS, Strasburg, VA), Russ Kohrs (Broadway HS, Broadway, VA), Duncan Lorimer (WVU), Steve Rapp (Linwood Holton Governor's School, Abingdon, VA) Abstract Fifteen pointings, each containing plots of data were analyzed.
  • CHEAT SHEET HOW TO SIGN UP 1. Go

    CHEAT SHEET HOW TO SIGN UP 1. Go

    HOW TO CREATE A GLOG. Log in to Glogster. On Your Dashboard, click . Create New . Glog. Select . Vertical . You are now . ready to begin . creating your . blog.
  • Cumberland Mills Elementary School  Black History Presentation Dr.

    Cumberland Mills Elementary School Black History Presentation Dr.

    Cumberland Mills Elementary School Black History Presentation Dr. Linda Wilson-Jones Fayetteville State University Harriet Tubman Frederick Douglass Sojourner Truth Phillis Wheatley Jackie Robinson Hank Aaron Booker T. Washington Marian Anderson William Christopher Handy W.E.B. Du Bois Rosa Parks Martin Luther...
  • Clinical Supervision - Northeastern Illinois University

    Clinical Supervision - Northeastern Illinois University

    Parallel means : extending in the same direction, everywhere equidistant, and not meeting, or the development of similar new characters by two or more related organisms in response to similarity of environment -- called also parallel evolution Isomorphic processes in...
  • Cutin and Suberin Yan Liang PBIO691 Fall 2010

    Cutin and Suberin Yan Liang PBIO691 Fall 2010

    Forward genetics. Mutant identification and positional cloning. Reverse genetics. Transcriptome analysis of epidermis. Co-expression analysis. Genes regulated by specific transcription factors. Major steps of cutin/suberin/cuticle wax biosynthesis.
  • CHAPTER 14 Education and Religion

    CHAPTER 14 Education and Religion

    Objectives: Explain how the views of functionalist, conflict, and interactionist sociologists differ concerning education. Identify some of the current issues in American education.