Lab Assignment 2

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Lab Assignment 2

1. Choose an application (from any open source site)? Explain what is the application?

Application Name: BOUML.


BOUML is an open source UML tool allowing us to specify, generate and re-engineer code in C+
+, Java, Php, Python.

2. Give open source software name with full URL?

Software Name: BOUML 4.22.2


URL: http://bouml.free.fr/index.html

3. Why did you choose the application?

We chose this application because:

o it is free/.

o it runs under Linux, Mac OS X and Windows

o it allows to program simultaneously in C++, Java, Php, Python and IDL

o we have full control over the diagrams and can merge various tools

o it is extensible, and the external tools may be developed in C++ or Java, using BOUML
for their definition as any other program.

o it is very fast and doesn't require much memory to manage several thousands of classes.

4. How does it meet the criteria of reverse engineering?

This software is sufficiently advanced for the process of reverse engineering. It is capable of
generating class and artifact diagrams from a given source code. The complete process is as
follows:

When you start the application, it asks you for directories where the code is located. Then it
reads all the sources placed under the selected directories and sub-directories. The sources read
by the application are the ones having the extension specified in the settings. The tree formed
by the directories and sub-directories produce an equivalent tree of sub-packages, on whose the
needed class view and artifact view are made to support the classes and artifacts.

The software tries to produce the definitions made in BOUML at the artifact / class / operation /
relation / attribute levels. When it is possible it creates a relation rather than an attribute.

Suryamanyu sharma Priyanka kaushik Vaibhav saxena


8104677 8104770
5. List the goal for performing the reverse engineering study; i.e., what will be learned from the
study.

Reverse engineering helps us to identify software components, their inter-relationships and


representing these entitities at a higher level of abstraction. It involves only analysis and not
change.

The detailed study of a software helps us:

o To examine how a product works, what components it consists of, estimate costs, and
identify potential legal issues

o Removal of copy protection, circumvention of access restrictions

o Learn from others' mistakes so that we do not make the same mistakes that others have
already made and subsequently corrected

o Reverse engineering often is done because the documentation of a particular device has
been lost (or was never written), and the person who built it is no longer available.

6. Describe if application borrows from anything(any API, Header file, component etc)

BOUML includes numerous Header files.

For the C++ Reverse Component :

o Class.h
o ClassContainer.h
o Namespace.h, etc.

For the JavaGenerator:

o UMLActivity.h
o UMLClass.h
o UMLFlow.h, etc

BOUML has plug-outs for integration . Plug-outs, written by hand help us in our daily tasks:

o C++ code generator, reverse, roundtrip


o Java code generator, catalog, reverse, roundtrip
o Php code generator, reverse
o Python code generator
o Idl code generator

Suryamanyu sharma Priyanka kaushik Vaibhav saxena


8104677 8104770
Some plug outs are:

o State machine generator


o HTML documentation generator, diagrams may be produced through PNG or SVG
pictures
o XMI 1.2 and 2.1 generators
o XMI 2.1 import
o pro file generator, etc.

7. Were there any other versions of application you are able to find?

Some of the latest Versions of the Software:

4.22.2 - July 14th, 2010

4.22.1 - June 23th 2010

4.22.0 - June 22th 2010

8. Describe the key component of the application and how they function.

Some of the key components of the application are:

o GUI framework: The complete graphic interface has been designed by a user "Qt". it is
responsible for diagrams, menu systems etc.

o Usecase view: A use case view may contain other use case views, use cases, actors,
classes, class instances, activities, state machines, use case diagrams, object
diagrams,sequence diagrams, collaboration diagrams and class diagrams in any order

o Class view: A class view is used to design the classes and may contain classes, class
instances, states, activities, class diagrams, object diagrams, sequence diagrams
andcollaboration diagrams in any order

o C++ generator: When the code generation is applied on a artifact associated to several
classes, the code generation is made for all these classes. Nevertheless the C++ code
generator produces first the code in memory and update the appropriate files only
when it is necessary, to not change the last write date of the files for nothing

o C++ Reverse tool: (see answer 4)

o Java generator: same as above

o Java Reverse Tool: same as above

o C++ utilities: When it is applied to a class, it allows to add specific operations not yet
defined, such as, Constructors, Destructors, operator overloading etc.

Suryamanyu sharma Priyanka kaushik Vaibhav saxena


8104677 8104770
9. Describe what was learned about this application and its functionality.

BOUML is a wonderful tool that helps in modelling of already written code and vice-versa. We
can use various components like C++ Code Generator, C++ Reverse, JAVA Generator,JAVA
reverse etc. to automate many tedious processes and generate an efficient and a well-
documented application.

The complex task of reverse engineering is made simple by this application. The C++ Reverse
tool is especially beneficial for us as we have been working with C++ for a long time.

For real time projects, having a proper documentation of software applications is of prime
importance. Having tools like BOUML proves to be handy at that time. Majority of indian IT
companies today do not have proper documentation of their software. Understanding huge
projects manually is a tedious and time-consuming task. Hence UML modelling tools are used.

10. Provide suggestion for changes that would improve the application. EXAMPLE: How to
improve the functionality of the application?

One major task for automation is the ease of Multi-user programming. A feature for real time
multi-user handling in BOUML should be introduced to enhance the functionality and purpose of
the application.

Currently, to share the same project files, all the users work on the same project files, this
means that no one has a copy of the project files. This is possible because when we save, only
the modified files are written. However, atmost one user modifies a given project file, else
modifications made by several will quickly be done.

There are two ways to allow at most one user to modify a file : to use the write permission set
using your OS (difficult under Windows) with the help of File Control, or to use Project Control.

11. Describe what you would change if you could design and implement this application from
scratch.

The application gets pretty complicated to use because of its innumerable features. Installing
the application from its source code by compilation is cumbersome and time-consuming.

If I were to implement this application from scratch, I would, first of all, include a help within the
application.

Secondly, the UML designing is not very intuitive and needs a lot time to master. This can
resolved by using existing code fragments which support better graphics and user interfaces like
zooming, flick panning etc.

Thirdly, the code generated is very complex and sometimes quite buggy. It would be better to
generate simpler code with fewer errors.

Suryamanyu sharma Priyanka kaushik Vaibhav saxena


8104677 8104770
12. Give if any reference book, articles, and website you referred for this?

Website references:

 List of open source UML tools.


http://en.wikipedia.org/wiki/List_of_UML_tools[http://en.wikipedia.org/wiki/List_of_UML_
tools]
 BOUML website - An open source UML tool.
http://bouml.free.fr/
 All About Reverse Engineering
http://en.wikipedia.org/wiki/Reverse_engineering  

Suryamanyu sharma Priyanka kaushik Vaibhav saxena


8104677 8104770

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy