4
I Use This!
Activity Not Available

News

Analyzed 5 months ago. based on code collected 5 months ago.
Posted over 13 years ago
Chasing Quality One of the maxims we try to follow in NavalPlan (LibrePlan) is to create a project with good quality. Quality in software refers to two different notions: Functional quality. It is the degree in which a software satisfies the ... [More] specifications. The better the software complies with them, the higher the quality a program is. Structural quality. It is related to all the non-functional requirements which can be stated over a program. For instance, how good is the development cycle, how maintainable the source code is, what performance is achieved, etc. Said that and taking into account this classification, I would like to introduce automated web tests and relate them to this taxonomy. In the first place, I will define what they are for those of you not familiarized with them. In short, we can say that automated web tests are black box tests in which the interface of a web application is tested in an automatic way. In other words, they are a type of tests in which a program performs the role of a real user and interacts with web pages with the aid of a browser to assure that the behavior of a web application is the one expected. In second place, as I told you, I would like to link them with quality. In general, we can say that they provide structural quality because, on the average, a web application with functional tests has a higher quality than one application without them. They help to detect failures and regressions and, therefore, in the end, the likelihood of having bugs is smaller. Sahi Web Tests In the NavalPlan team we have been looking for the best alternative to do automated web tests. Apart from the general cited reason of having higher quality, we try to address the jointly effect of having a large-featured application and a short-numbered testing team. When these two factors are combined the likelihood of regressions is big and the cost of a comprehensive manual test of the application high. Therefore, for sure, with a good set of web tests we would improve both in robustness and productivity allowing us to plan less testing time. After looking for several alternatives, the technology that we chose is Sahi and the reasons which supported our decision are the next ones: In NavalPlan we use the web interface framework ZK. This is a framework which generates dynamically the id attribute of the HTML entities which make up the web pages. This makes difficult to develop automated tests because the id is one of the easiest ways to locate HTML entities in the DOM and, some of the most common testing frameworks, like Selenium, relies basically on them. However, as they are dynamic in ZK, i.e., each time a page is rendered they are different, it is impossible to make the tests being repeatable with a technology based on the ids. Luckily, Sahi allows to overcome this situation because it has a powerful accessor API which helps to locate HTML elements using concepts like indexes, human DOM relationships as can be near or parent, CSS classes, etc. Sahi is browser independent. This means that the automated tests can be executed in several browsers. This is great, because a RIA application like NavalPlan uses the latest HTML technologies and some of them might be not fully supported in a particular browser. We can run the tests in all of them and this is a big advantage for us. Tests are programmed in JavaScript what in my opinion is a great idea. To start with, because JS is the language used by browsers since the very beginning and is a standard with a good API to interact with the DOM. Another good feature is that, because of being the tests written in a programming language, we have the programming tools like functions, data types, control structures… which gives you the highest flexibility to build tests as complex as you need. Some other testing technologies relies on configuration files, like XML files, and this limits a lot the possibility to get off the path of what the web test framework developers initially thought. Now I will focus on the things I would like to be different in Sahi. Among them, I would highlight that there is a proprietary product (Sahi Pro) built on top of the Sahi Open Source. Sahi Pro provides the more advanced features and I really miss that some of them were in the open source product. For example, a better report system. For me it would be nice that they had an open source license for the Sahi Pro product to be used with free software products like NavalPlan.It is a way to promote both quality in open source and open source itself without damaging the comercial interests of a company supporting a free software product. Where are we ? We started developing Sahi tests last month and, at present, we have tests for some of the simpler use cases, which are CRUD use cases related to administrative operations. If you feel like having a look to how they work, I encourage you to deploy NavalPlan, to download the git repository and to read the README file in the script/functional-tests folder where the instructions to run them are described. Additionally, they say that tests are successful when they detect errors and, in this sense, we proudly can say that right now we have reported some new bugs on the bugzilla thanks the functional Sahi tests developed so far. Where are we going ? Our roadmap concerning web tests will consist of increasing the coverage and facing up more complex interface operations in the near feature. After it, a last final desired scenario will consist of having a platform in which: We develop a Maven plug-in or write a configuration to be able to pass the tests integrated in the building process as part of the Maven test phase. In NavalPlan we use CI and the continuous integration server we have is Hudson. It would be great to integrate the Sahi tests execution in Hudson build cylce and to have the test results published in the Hudson interface to find them easily. [Less]
Posted over 13 years ago
One of the important features of NavalPlan is the integration with other software like, for example, ERPs. This integration is done with different web services provided by the application. When we talk about NavalPlan integration we usually explain ... [More] two different ways: With 3rd party applications: Allowing connect your ERP with NavalPlan to send your project data, resources and even the hours worked by them. In order to send data to NavalPlan or extract data from it you will need to use the implemented web services. I’ve been writing a small document explaining how to use and test NavalPlan web services, as some users where lately asking the same questions about this topic. There’re web servicies for a lot of entities and it’s not hard to develop a new one if needed. With other NavalPlan instances: Sending parts of your project to subcontractors allowing to report project progress. This is done in the main interface of NavalPlan with different visual options. I hope you find this new document useful and now you can understand better how NavalPlan web services work. [Less]
Posted over 13 years ago
It’s been over 4 years since I joined Igalia back in April 2007. This has been a really nice period in my personal and professional life, I haven’t stopped to learn from the beginning and enjoyed the time with the rest of Igalia crew. Following the ... [More] expected path, past month I’ve become parter and co-owner of the company, which makes me feel really happy and proud. It’s really great share this experience with all you guys . On the other hand, last weekend of May, we arranged a new Igalia Summit, this time in Palas de Rei (Lugo). As usual I didn’t miss the chance to attend and I took advantage to meet the last igalians joining the team and enjoy the weekend there. Even being a poor guitarist, I dared to join the Igalia Blues Band (the band that doesn’t play blues) . Like my last times in Igalia are fully attached to NavalPlan, I’d like to give a update in project as I haven’t written any posts during May (this could mean that we’ve been working really hard in NavalPlan 1.1 release): Back in May Diego Pino presented NavalPlan at LinuxTag 2011 in Berlin (see the slides with some demo videos). A new company, ComtecSF, is joining the development team together with Igalia and Wireless Galicia. They are currently working in LDAP integration, I’d like to thank Ignacio Díaz and Cristina Alvariño for their work and collaboration. More companies are showing interest in the project too and, as time passes, more users appear. Version 1.2 is planned for September and roadmap is already defined. This will be the first version using the new name LibrePlan 1.2, we’ll try to have the new website ready on time. Finally past Tuesday, the 7th, we published NavalPlan 1.1.1, the last stable release, with several performance improvements. PS: If you haven’t tried NavalPlan yet, you should give it a try. It’s going to make your life easier in your daily project management tasks and it’ll help you to manage and plan your projects and resources. [Less]
Posted almost 14 years ago
Next June, the 10th, I will be attending the DDD exchange 2011 in London. DDD exchange is an event to learn and share experiences about using Domain Driven Design and it is the 4th annual edition. There I hope to meet up with people interested in ... [More] this topic and to know first-hand information about professionals applying this way of designing software. So, if you are comming, I see you there! I liked very much the concept of DDD I learnt by reading the book of the same title Domain Driven Design, written by Eric Evans who, by the way, will give a keynote at the exchange. To sum up very briefly, DDD is based on the next three points extracted from wikipedia article: Placing the project’s primary focus on the core domain and domain logic Basing complex designs on a model Initiating a creative collaboration between technical and domain experts to iteratively cut ever closer to the conceptual heart of the problem. I have being taking part in NavalPlan from the beginning doing roles of project management and analysis and, in the team, we use part of the practices and ideas of DDD. My opinion is that the result after this experience has been good and I would recommend to use DDD in applications which require quite amount of business logic, like NavalPlan. Finally, any trip is an occason to meet people living in other regions who share interests with you. So, if you are in London in June, the 10th, and want to know more about NavalPlan, please, let me know [Less]
Posted almost 14 years ago
Next June, the 10th, I will be attending the DDD exchange 2011 in London. DDD exchange is an event to learn and share experiences about using Domain Driven Design and it is the 4th annual edition. There I hope to meet up with people interested in ... [More] this topic and to know first-hand information about professionals applying this way of designing software. So, if you are comming, I see you there! I liked very much the concept of DDD I learnt by reading the book of the same title Domain Driven Design, written by Eric Evans who, by the way, will give a keynote at the exchange. To sum up very briefly, DDD is based on the next three points extracted from wikipedia article: Placing the project’s primary focus on the core domain and domain logic Basing complex designs on a model Initiating a creative collaboration between technical and domain experts to iteratively cut ever closer to the conceptual heart of the problem. I have being taking part in NavalPlan from the beginning doing roles of project management and analysis and, in the team, we use part of the practices and ideas of DDD. My opinion is that the result after this experience has been good and I would recommend to use DDD in applications which require quite amount of business logic, like NavalPlan. Finally, any trip is an occason to meet people living in other regions who share interests with you. So, if you are in London in June, the 10th, and want to know more about NavalPlan, please, let me know [Less]
Posted almost 14 years ago
Lately we have been teaching training courses for NavalPlan users and developers. These courses are a great opportunity to see how people uses the application, which allows us to detect different usability problems in some windows. As time passes ... [More] , project is gaining some relevance, for example NavalPlan will be present at LinuxTag 2011. This implies that more people are starting to use the application and, accordingly, starting to report more bugs. We’ve detected a problem in the error messages in NavalPlan, as currently they’re not informative and just show a basic message when some runtime error appears. Moreover, in some cases users don’t have access to server logs, therefore they can’t send us more information that a screenshot with the error message shown. We’ve modified the way errors are reported to users and now NavalPlan shows more comprehensive information about the exception including stacktrace. This will make user’s life easier when detecting some issue in order to report them using the bugzilla, without needing to dig into the logs. NavalPlan example error message As you can see in the picture, apart from error message, exception type, status code and stacktrace are shown. Stacktrace appears into a textbox in order to make easier copy&paste the information. For the future, we should study the possibility to add some button to allow users send the information directly to the development team via e-mail, web service, … [Less]
Posted almost 14 years ago
Tomorrow a NavalPlan development course for AGASOL companies will start in Santiago de Compostela. The aim of the course is to spread our community having more people involved in the project. Basically the course will be divided in two parts: User ... [More] part. During it the main functionalities of the application will be explained. Development part. In this part example use cases will be developed covering the different technologies used in the project and examining  the architecture from top to bottom. In order to introduce the development part I wrote several class diagrams with the main entities of the application. I composed them using the tool Linguine Maps , about which I talked in my previous blog post NavalPlan Domain Model diagram. I prepared some slides with these UML class diagrams and I uploaded them to the files section of the project in SourceForge.net. I think that they can be useful not only for the course but as technical documentation to all the people interested in NavalPlan. Click here to download the material. [Less]
Posted almost 14 years ago
Tomorrow a NavalPlan development course for AGASOL companies will start in Santiago de Compostela. The aim of the course is to spread our community having more people involved in the project. Basically the course will be divided in two parts: User ... [More] part. During it the main functionalities of the application will be explained. Development part. In this part example use cases will be developed covering the different technologies used in the project and examining  the architecture from top to bottom. In order to introduce the development part I wrote several class diagrams with the main entities of the application. I composed them using the tool Linguine Maps , about which I talked in my previous blog post NavalPlan Domain Model diagram. I prepared some slides with these UML class diagrams and I uploaded them to the files section of the project in SourceForge.net. I think that they can be useful not only for the course but as technical documentation to all the people interested in NavalPlan. Click here to download the material. [Less]
Posted almost 14 years ago
Next week, Javi Morán and me, will be in Valencia giving a NavalPlan user course to some people from Generalitat Valenciana. They already had a successfully experience working with free software in public administration with gvSIG project, and we ... [More] hope that the history could be repeated again with NavalPlan in the short term. So, if you are around Valencia (between Sunday 20th and Wednesday 23rd) and want to meet us to talk about NavalPlan, Igalia, or free software in general; just leave a comment in this post or contact us. Valencia here we go! [Less]
Posted almost 14 years ago
NavalPlan is a Java application built using Object Oriented Programming and whose data are stored in a relational database – currently PostgreSQL and MySQL are the RDBMS supported and tested-. To map objects from the objects models to relational ... [More] tables the Hibernate ORM is used, which is a well-known framework in Java platform widely deployed. In the business layer, it is applied the Domain Model architecture pattern which briefly consists of having rich business objects which encapsulate in the same class the data and the behavior related to them. I think that it was a good decision and I am happy with it. Among other advantages, it allows to organize complex behavior and to reuse business logic easily. The NavalPlan domain model is large and complex, and one of the problems is its maintenance from documentation point of view. This is so because to have UML diagrams updated is time consuming. To address the problem above and to have some nice diagrams to teach NavalPlan to new developers, I have being playing today with a tool to infer UML class diagrams from the Hibernate mapping files. With a tool like this a lot of time would be saved !! The tool I found is Linguine Maps. You have to develope a program to use it but, after resolving some configuration issues, I got a quite good result. Therefore, we will use it in NavalPlan from now on. With Linguie Maps you can configure several things and create diagrams just with the classes you are interested in. As an example and to view a whole picture of NavalPlan I generated a chart with all the classes. I know that maybe it reminds you of an Indian war with so many arrows, but I think that it could be got a good poster from it [Less]