DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Data Engineering
  3. Data
  4. How Architexa Makes Life Easy For Developers

How Architexa Makes Life Easy For Developers

James Sugrue user avatar by
James Sugrue
CORE ·
May. 18, 10 · Interview
Like (0)
Save
Tweet
Share
14.67K Views

Join the DZone community and get the full member experience.

Join For Free

I found out about Architexa last week, a really useful tool for generating UML diagrams from your existing code. I see huge potential in this tool for helping out with code reviews, or for getting into a new code base. I had the chance to speak to Vineet Sinha to find out more about the tool and how it works. 

James: Hi Vineet, could you give us some background into your motivation for creating the tool?

Vineet: I was working 10 years ago at Microsoft on the Office codebase and realized that I was spending a lot of time just understanding the code. It would take me a lot of time to figure out what I needed and then I would typically end up working with a pen and paper to draw a diagram of what was going on. It was just too time consuming to remember how all the 10+ classes interacted with one another - a paper was necessary to just draw it.

I kept wishing for better high level diagrams and even something similar to the MFC hierarchy diagrams would have been helpful. When I could not find any such documentation, I looked into some of the tools that were available. And the reality was, that they all focused on designing and generating code from diagrams - their support for diagrams from code was limited at best.

I ended up building a tool in my spare time. As I did that I hit alot of technical challenges in having something that I as a developer would find useful. So I ended up doing my PhD (at MIT CSAIL) on this problem. I built some prototypes there, and another when doing work for Accenture research labs. By about 2 years ago, I had great results - and I wanted to convert it into something that others could use (adding the undo, redo features). Two years later and after 6 months in beta - we are bringing the tool out slowly.

James: Could you introduce the team behind the tool? 

Vineet: One of the nice things about trying to really improve the lives of developers is that there most developers care about it. We have a really great, passionate team, that is all developers.

Liz joined me when the company was just starting - she was graduating from MIT and had been working with me on my PhD work. Last year we decided to get two more people to help get the product out of the door - Seth and Abhishek joined then. And they have been working on some really cool stuff.

James: What technologies are you using to make the tool?

Vineet: As a developer I am lazy - I want the functionality right in the IDE. Most developers are using Eclipse today, and it being open source allows us to add features deeply integrated into the IDE. So I started building on Eclipse, and Eclipse's GEF for the drawing features.

James: How are the collaboration features written? Are you using ECF?

Vineet: We didn't want to go overboard, but realized that developers often want to share a diagram with others on their team and that shared diagram forms a create documentation of their codebase. So the primary feature that we wanted to support was just a simple central repository. Just supporting your code repository wasn't enough because most developers know their own codebase and therefore don't document it - it is those using it that need to document it before the original developer fixes it. This was the story I kept hearing when talking with companies so we built our own simple but secure diagram repository (using Jetty, Rest/Jersey, and hosted on Google App Engine). Developers can easily use it or even have a version of it running internally in their network.

We are considering a communication framework to send messages to other users - but before we just add features we want to make sure that there is a need for it. When doing that we will likely use ECF to implement it.

James: What was the most challenging part to write?

Vineet: Our focus is in really pushing for 'usability'. This means implementing something, getting feedback from alot of people, and then often reimplementing it from scratch to behave differently - so that we can not only solve other developers needs but also build a tool that they do not need a huge amount of training to use. Interfaces can easily overwhelm users by show too much, but at the same time not showing much results in users not feeling in control of their application - getting the balance right is not easy. The reality is that not many tools have tried to give developers such power, so doing so means we have to figure out what is right ourselves. Making a complex/ugly piece of picture to look simple is not easy.

Technically speaking the main challenge is in (i) building a highly interactive UI, (ii) getting layout to be smart but not do unexpected things - especially with the interactiveness, and (iii) building an index to provide the sophisticated results quickly without taking too much time.

James: How do you find building on top of Eclipse?

Vineet: Building on top of Eclipse is great. There is a large community that we are part of, with everyone trying.

James: What is the most well received feature?

Vineet: It really is the overall usability of it. I keep hearing comments like 'the tool gives me power over my code' and the regarding our suite ''the difference with all these tools is that it is designed to "surf" the source code through UML diagrams, so that one may be watching more or less detail as you need. It is not an all or nothing, which is usually [how you] operate traditional UML tools."

Hopefully we will be able to give a more granular answer as we get more feedback.

James: How do you create the sequence diagrams?

Vineet: I think I put the best answer for it on your post comments:

The system does not depend on runtime information but can take advantage of it when given. This allows us to not have the performance limitations of the runtime tools, but allow users to view any execution possible from the code.
We have added 'scripts' to show take into account stack traces and are adding support for various xml specifications. We can also add support for Spring AOP and/or using runtime information as done by jTracert

The other comments of mine on your post also do a good job (IMO) of explaining my/our philosophy.

James: When will the tool be available, and at what cost?

Vineet: We want to make it available as soon as possible. Our initial plan was within a week - but we are a little overwhelmed by the amount of response that we have received. So we plan on just getting those people to use the software, and providing the level of support that we would like for them, before we allow the whole world in.

We are trying to build a tool that we can get it to every developer, so we want to make the tool very accessible.  We also want to make sure that developers want to use it throughout their development effort (and not just in the beginning). So we will be happy with charging $250/year (per user). We do plan on a launch discount for the first month.

James: What are your plans for the future?

Vineet: In the short term, we want to make those using the tools *really really* happy. So the first few releases will be focused on just that. Instead of rushing to add other languages, we will talk to our users and see if there are certain situations that they need more help in. Are they having problems with understanding how Struts, Spring, Swing, etc work in their project? If so, we will try to add better support for them first.

I believe that the big need out there is in helping developers work with large codebases. So we launched our blog, now this tool, and we will be focusing on just that until we are happy with it.

dev code style Diagram

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Getting a Private SSL Certificate Free of Cost
  • Microservices 101: Transactional Outbox and Inbox
  • Steel Threads Are a Technique That Will Make You a Better Engineer
  • Using Swagger for Creating a PingFederate Admin API Java Wrapper

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: