среда, 11 мая 2011 г.

Review of project requirements

Hi everyone! 

Today, after all discussions is over, I'd like to reveal the curtain over such very important aspect of my GSoC project as project requirements. Yes, we have discussed it hard with my mentor. I have made a lot of corrections, brought a lot of changes into initial version of corresponding document. But now, I expand all the project objectives and requirements on the clearly sort through.

So, the main aim of current project is to provide opportunity for users to run the setup and update wizards in their selected language. Yes, and this is very clear, I suppose that anybody doesn't have any questions about that. And we can continue. We won't going deep into details

Following to most commonly used practice, we have highlighted non functional and functional groups of requirements. I'd like to clarify that those requiremnts are described with the developer's perspective, and more closely reflect understanding of the technical details. Lets begin from functional requirements.

Functional requirements:
  •  Appropriate page should be shown for user at first step of the setup wizard (see fig. 1);
 Anyway, you must not be surprised. As the localization style of web app must be alike desktop's app, and if we wont have suchlike page, our project goal will be unreached fundamentally.

  • That page should contain selection list with all possible languages, checkbox for indicate that selected language should be persisted after wizard’s finish and navigation element (next arrow) for continue;
  • Selection list should be dynamically filled with languages basing on existing web app's message resource files;
  • The user should be able to move back and forth through the each wizard's pages by using appropriate navigation elements (arrows are preferred in case when the text displayed is in a language they don't understand so well or if they selected a wrong language by mistake);
  • When user is moving through the initial setup wizard's pages, language should not be changed until user will return to 1st page and change it;
  • Selected by user language should be saved into cookie (or as http session's attribute) during wizard’s work and (if user have marked checkbox), it should be persisted into DB as admin’s property;
  • When user is running the database update wizard, all pages should be displayed in previously persisted language or in English by default;
All functional requirements to the system can be formalized by using following use case diagram:
As you can see we have defined precisely such requirements, without which the project will not work at all or will work not as excepted. Next group is non-functional requirements.
Non-functional requirements:
  • Support for new languages should not require recompilation;
  • Access translated text with resource bundles;
  • Resource bundles should be loaded as fast as possible (on web app startup or at first request).
  • Textual elements, such as status messages and the GUI component labels of both wizards should be completely translated into most of supported languages (Italian, Spanish, French and Portuguese);
  • Employ the use of arrows as navigation elements instead of buttons with text;
  • Only Unicode encoding characters should be used for translation;
Admittedly, that without providing of these requirements, project won't be broken, but  a great usability damage will be made

So, I think that this is complete list of requirements and it will help me to do my further work as well as possible.

I will wait exactly for your comments! 

With best wishes, Taras Chorny!


Комментариев нет:

Отправить комментарий