Code Monkey home page Code Monkey logo

ucwriter's Introduction

Welcome to UCWriter

UCWriter is a tool to represent use cases. It uses concepts of MDE to improve the model quality, creating a structured format to reduce ambiguity, inconsistency, lack of conformance to a standard, unclear documentation etc. The documentation can be found in the git wiki

This tool is a result of a research that proposes a concrete syntax to an existing abstract syntax and semantics. The representation of the behavioral requirements used by UCWriter is based on the abstract syntax and semantics of GUIMeta. The concrete syntax is inspired mainly on Cockburn works, but also looks to RUCM and UCMeta, and others. The theorical approach for this research is described on Theoretical Approach page in this wiki

Features

  • Represent use cases adressed by names and a tag number
  • Pre and post condition
  • Main flow:
    • Steps are numbered in ascend order;
    • Steps are specialized in user steps, system steps or repeating steps;
    • Repeating steps are similar to while loops, with a condition and a flow of steps inside (it allows loops inside loops);
  • Alternative Flows:
    • Reference to the step in the original flow where the alternative flow start;
    • Named with letters;
    • Steps are numbered in ascend order (but are not specialized);
    • Can end the use case or return to another step;
  • Allows including another use case
  • Can represent more than one use case in a single file
  • Has logical operators for conditions (and, or, not)
  • Steps have qualified name, what allows precise reference by Alternative flows:
    • All steps have a number such as '3'; but if this step is inside a loop named '5', its qualified name will be '5.3'. With alternative flows is the same: if the alternative flow is named 'c', the steps, for exemplo, will be named 'c.3'.

Web Version features

  • The web editor can save only one file (each file can have multiple use cases) per machine (uses HTML webstorage for local storage);
  • Syntax highlight;
  • Alert warning and errors.
  • You can test the web editor clicking here

The wiki page How to Use explains how to use the features of UCWrite.

Futures work and what you can help with

Publication

This work was publish in SBSI (Simpósio Brasiliero de Sistemas da informação) (Brazilian Symposium on Information Systems). Here is the link to the publication where you can dowload the pdf and get the citations models (bibtex, IEEE, ABNT, etc).

The article is in portuguese, but any doubt you can e-mail me ([email protected]), I will be glad to help you!

image

Team

This research was made by José Colombini with the advise of Professor Fabio Levy Siqueira, both at Escola Politécnica da USP, with the support of FAPESP, Fundação de Amparo a Pesquisa do Estado de São Paulo, grant #2019/12641-7, São Paulo Research Foundation (FAPESP)

The opinions, hypotheses and conclusions or recommendations express in this material are responsibilities of the authors and note necessarily reflect the vision of FAPESP.

ucwriter's People

Contributors

josecolombini avatar levysiqueira avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ucwriter's Issues

Web editor HerokuServer

The web editor that is hosted in heroku server stop to show error messsages, semantics and syntax errors.

The version lauched in local host by serverlauch work well.

Metamodel Problems

This topic list the metamodel problems, that this language is based. Therefore they won't be fixed in this specific language, but we can develop a new metamodel that could fix it.

The problems verifieds here are:

  • UserStep, SystemStep, RepeatingStep only exist in the (tradicional) MainFlow, they don't exist in the AlternativesFlows

Test bug

The file UCdslParsingTest.xtend in UCWriter/ucwriter.xtext.guimeta.ucdsl.parent/ucwriter.xtext.guimeta.ucdsl.tests/src/ucwriter/xtext/guimeta/ucdsl/tests/ is commented because the code in line 13

import ucwriter.xtext.guimeta.ucdsl.uCdsl.Model

Report error: ucwriter.xtext.guimeta.ucdsl.uCdsl.Model cannot be resolved to a type.

Line 19 report: Model cannot be resolved to a type.

And line 23: The field UCdslParsingTest.parseHelper refers to the missing type Model.

So I comment the entire file to compile the xtext features.

Review Documentation

Please if you can read and report some mistakes, misspell words, or something is not clear

Web design

If you know some web design you will help a lot, fell free to create something, if you like to discuss I will be open to, or just send a version of the page that you develop

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.