B-Translator as a Software Engineering Project

Please download to get full document.

View again

of 30
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Document Description
The project B-Translator will be presented, trying to illustrate through it some software development/engineering concepts and practices (how they are actually applied in this project).
Document Share
Document Tags
Document Transcript
  B-Translator as a Software Engineering Project Author: Dashamir Hoxha<dashohoxha@gmail.com>Date: 28 August 2012 The project B-Translator will be presented, trying to illustrate through it some softwaredevelopment/engineering concepts and practices (how they are actually applied in thisproject). Table Of Contents • 1 Introduction • 2 Conception of the software • 2.1 The problems that B-Translator tries to solve and its goals • 2.2 Are there any existing alternatives to B-Translator? • 2.3 The meaning of B-Translator • 3 Description of its features and functionality • 3.1 The features of B-Translator • 3.1.1 Open access • 3.1.2 Authenticated voting • 3.1.3 Tracking votes • 3.1.4 Highly customizable • 3.1.5 Evaluation algorithms • 3.1.6 Detailed and comprehensive reporting and statistics • 3.1.7 Integration with the existing workflow of the project translations • 4 Analyzing the functionality in more details • 4.1 The actors and use-cases of B-Translator • 4.2 Interfaces • 4.2.1 Suggestion interface • 4.2.2 Query interface • 4.2.3 User configuration interface • 4.2.4 Export and import interfaces • 4.2.5 Admin interfaces • 5 Designing the software • 5.1 The DB schema of B-Translator • 5.2 API • 6 Construction (implementation/development) • 7 Managing the project • 8 Documentation • 8.1 Installation of B-Translator • 8.2 How B-Translator works • 8.2.1 Build a dictionary of l10n strings • 8.2.2 Collect feedback from users/reviewers • 8.2.3 Export the revised translations  • 8.2.4 The process/workflow for a project without translation • 8.2.5 Exporting only the latest suggestions (diffs) • 8.2.6 The process/workflow for an integrated translation • 8.3 Drupal interfaces (paths) • 8.3.1 translations[/<lng>/<sguid>] • 8.3.2 translations/search?lng=..&limit=..&mode=..&words=.. • 8.3.3 translations/project • 8.3.4 translations/user_settings • 8.3.5 translations/admin • 8.4 Importing and exporting translation files • 8.4.1 Translation files • 8.4.2 Importing • 8.4.3 Exporting • 8.4.4 Snapshots and diffs • 8.4.5 Misc 1 Introduction Software Engineering is an interdisciplinary branch between programing and projectmanagement, that tries to make efficient and effective the process of developing newsoftware, by identifying and trying to use principles and practices that have proved to besuccessful on the past projects. It was born as a response to the failures in softwareprojects for a long time.Programing is an art, and so is the project management. As a result software engineeringcannot be an exact discipline, although the word 'engineering' seems to imply a set of welldefined steps and rules. However, some guiding principles can be useful when appliedwisely to the current situation. Anyway, the most important factor still remains theexperience: you are good at managing software projects if you have enough experiencewith doing it.There are several models (or methods, or approaches, or paradigms) for managing asoftware project. The simples (and oldest) one is the waterfall model. The basic steps of thewaterfall model are these: • requirements • analysis • design • implementation • testing • deployment • maintenanceThese steps should be performed in the life cycle of every software development project.However the waterfall model is not very realistic, because in practice is very difficult to geteverything right with the first attempt. For example while gathering the softwarerequirement, most probably we can miss something; or maybe later there can be a requestfor updating the requirements.A better approach is the Iterative and Incremental model. The basic steps are the same,  however the development is performed in several cycles, with each of these stepsperformed in almost each cycle. During the cycles the software is improved from an initialprototype to a full featured product.There are other methodologies and variations as well, like Agile Software Development,Extreme Programing, etc. However the bottom line remains that the best method to usedepends on the concrete software that is to be developed, and any method that can beused should be adopted to match the current case.Therefore, here I will describe what I have done on the project B-Translator, trying toidentify the principles and practices of Software Engineering that are used, instead of trying to fit this project to one of the standard approaches. 2 Conception Of The Software Before a software starts to be built, the idea of such a software has to come somehow tomind. The idea for building such a software usually comes to mind because there is someproblem to be solved, or some need to be fulfilled, which for some reasons, cannot be done(or cannot be done properly) by the existing software. Before anything else, a softwareengineer/developer should have a clear idea of the problem (or problems) that thesoftware is trying to solve, and the overall aim (or goal) or the software. 2.1 The Problems That B-Translator Tries To Solve And Its Goals First of all, B-Translator is a software that helps to get feedback about l10n (localization,translations of programs into other languages). It also helps to unify all the differenttranslations and to ensure consistency among the translations. It is intended to be used forthe translations of programs into Albanian, but it can be used for any other languages aswell.The motivation for developing such a software is that the traditional (current) l10n work-flow requires highly dedicated people, and does not allow (or at least does not facilitate)small contributions from random people that do not have such a high dedication,determination and enough free time.Also, the process of reviewing and correcting translations is not easy and does not facilitatethe feedback from the users of the translated programs. Although the translators areusually very good and professional, they can make mistakes too, and sometimes they maymiss the best translation for some certain terms. Some feedback from the crowd of theusers would be more than welcome, if there are tools to collect and facilitate it.Another problem with translations is that sometimes they are not consistent. The samestring has different translations in different programs, and sometimes even the sametranslator may have provided different translations for the same string in different cases.This happens mainly because each program/project has its own translations and there is nocentral repository for all the translations.To summarize, the goals of this software are these: • Getting feedback about the translations from a wide crowd of people and users. Thisfeedback can be in terms of votes for the best translation (when there are more thanone translations for the same string), or it can be a new alternative translation (for anexisting translation), or it can be a new translation suggestion (for a string that is not  translated yet). • Helping to ensure consistency among the translations. • Merging translations from different sources (for example translations made onLaunchpad and those made on KDE or GNOME). 2.2 Are There Any Existing Alternatives To B-Translator? To my knowledge, there are no such existing tools. People frequently ask how B-Translatoris different from Pootle. Pootle, as far as I know, is just an online PO file editor; it doesn'thave any features for collecting feedback from a crowd of people that are not translators. 2.3 The Meaning Of B-Translator The name of the software is not the most important thing, however it should be somehowrelated to the basic idea of the software and to its goals, and it should be different fromany other software. And of course it is better to be a nice name, rather than an ugly one.The codename B-Translator can be decoded like Bee Translator , since it aims at collectingvery small translation contributions from a wide crowd of people and to dilute them intosomething useful.It can also be decoded like Be Translator , as an invitation to anybody to give his smallcontribution for translating programs or making their translations better. 3 Description Of Its Features And Functionality  After having a clear idea of the overall aim and goals of the software, the software engineershould go into details about the features that the software should have and how it shouldwork, so that it can properly achieve its goals. This is mainly a description of what thesoftware should do and how it should do it, preferably in a simple language that even non-technical people (non-developers) can understand.Maybe we cannot get everything 100% correct right from the beginning, however thisapproach is much better than starting to code right away, having just some vague ideas of what we are trying to build. Of course, we will take the chance later to correct and improvethe feature requirements, as things become more clear. 3.1 The Features Of B-Translator Here is a description of the main desired features of B-Translator. 3.1.1 Open Access Everybody should be able to use the system for the purpose of getting translationsuggestions for a certain string, even unauthenticated (anonymous/guest) users.Furthermore, it should be possible to use an API (web services), so that these suggestionscan be retrieved and used even by external applications. 3.1.2 Authenticated Voting Submitting votes or new suggestions will be allowed only for the subscribed users (which  have agreed to help and contribute). No contributions from anonymous/guests will beaccepted. 3.1.3 Tracking Votes Votes and suggestions will not be anonymous. For each vote or suggestion, the user whosubmitted it will be recorded and saved. This will allow the user to see all the strings that hehas already voted for, and also to change any of the votes, if he later changed his mind. Atthe same time it will prevent multiple votes by the same user for the same translation. 3.1.4 Highly Customizable The system should have a flexible configuration and customization page. This means thatthe user should be able to customize how much he would like to help and contribute. Forexample: • how many translation votes per day (an upper limit) • which communication means he prefers (email, facebook, google+, twitter, website,android app, iPhone app, etc.) • which projects or packages he would like to focus on (for example, if the user selectsthe package KDE, only strings that belong to a project on this package will be sent tohim for review and feedback) • which languages he would like to use as primary and secondary source languages (forexample a user that is not confident in English, may choose to use French as aprimary language and Italian+Spanish as secondary/helper languages) • sequential or random selection of strings (random is the default, but if the user isinterested in just one or a few projects, he may prefer to review the stringssequentially) 3.1.5 Evaluation Algorithms The contribution and performance of the users should be measured and evaluated usingcertain algorithms and/or heuristics. The users will be awarded points based on theirperformance. Probably some rewarding mechanisms can be integrated later for the topcontributors. 3.1.6 Detailed And Comprehensive Reporting And Statistics Different kinds of reports and statistics related to users, projects, activity etc. should besupported and provided. 3.1.7 Integration With The Existing Workflow Of The Project Translations Project translators will continue to work with their preferred tools (like Pootle, Lokalize,etc.). They will also continue to use their preferred workflows (the way that they coordinatetheir translation work with each-other and with the project releases).This system should help them to get feedback and possibly any new suggestions ortranslations from a big crowd of the contributors. The system should provide means andtools for easy integration with the workflow of the project translations.
Similar documents
Search Related
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks