12 | | '''Workstation setup'''. Every machine in the office should have at least ''two users'': one for private usage (you choose your username and password) and one for public usage(ask a team member for the username and password). A ''text editor'' is neccesary (for example, Notepad++, you can download it from [http://notepad-plus.sourceforge.net/uk/site.htm]). Other important software: ''web browser'', ''PDF reader'', ''Flash player'', ''Skype'', |
13 | | ''Sophie'' ([http://opensophie.org/en/downloads]).[[BR]] |
| 12 | '''Workstation setup'''. Every machine in the office should have at least ''two users'': one for private usage (you choose your username and password) and one for public usage(ask a team member for the username and password). A ''text editor'' is necessary (for example, Notepad++, you can download it from [http://notepad-plus.sourceforge.net/uk/site.htm]). Other important software: ''web browser'', ''PDF reader'', ''Flash player'', ''Skype'', |
| 13 | ''Sophie'' ([http://sophieproject.cntv.usc.edu/]).[[BR]] |
17 | | '''Repository setup'''. Once you have installed SVN, you can download the repository on your own machine. Basically, this means you will have your copy of the project. In Windows, just choose a folder on your drive, right click and select SVN Checkout. Further explanation for the repository links / structure / rules for commiting can be found at [wiki:PLATFORM_STANDARDS_REPOSITORY]. Just before you continue to the next step, you should know how to submit a file to the repository (for example, your daily report).[[BR]] |
| 17 | '''Repository setup'''. Once you have installed SVN, you can download the repository on your own machine. Basically, this means you will have your copy of the project. In Windows, just choose a folder on your drive, right click and select SVN Checkout. Further explanation for the repository links / structure / rules for committing can be found at [wiki:PLATFORM_STANDARDS_REPOSITORY]. Just before you continue to the next step, you should know how to submit a file to the repository (for example, your daily report).[[BR]] |
30 | | '''Eclipse setup'''. The software platform we use for developing Sophie2 is Eclipse. First of all, the intallation. |
31 | | Download the latest eclipse version from [http://www.eclipse.org/downloads/] and install it to your computer. Then, modify your compiler esttings according to the [wiki:COMPILER_SETTINGS] document. The next two steps, subclipse installation and maven integation, are described in [wiki:PLATFORM_INFRASTRUCTURE_OVERVIEW#EclipsePlug-ins]. The most important for these is that they are eclipse plugins, which integrate the subversion and maven functionalities in Eclipse. The M2 plugin is required for loading our maven project in eclipse. Once you have installed the plugins, you can follow the steps from [wiki:PLATFORM_DEPLOYMENT_BUILD_ECLIPSE], which describes how to import Sophie2 in Eclipse and run the FakeAuthor configuration. [[BR]] |
| 30 | '''Eclipse setup'''. The software platform we use for developing Sophie 2 is Eclipse. First of all, the installation. |
| 31 | Download the latest eclipse version from [http://www.eclipse.org/downloads/] and install it to your computer. Then, modify your compiler settings according to the [wiki:COMPILER_SETTINGS] document. The next two steps, Subclipse installation and Maven integration, are described in [wiki:PLATFORM_INFRASTRUCTURE_OVERVIEW#EclipsePlug-ins]. The most important for these is that they are eclipse plugins, which integrate the subversion and maven functionalities in Eclipse. The M2 plugin is required for loading our maven project in eclipse. Once you have installed the plugins, you can follow the steps from [wiki:PLATFORM_DEPLOYMENT_BUILD_ECLIPSE], which describes how to import Sophie2 in Eclipse and run the FakeAuthor configuration. [[BR]] |
39 | | '''Schedule'''. The Sophie2 project is split into about 600 tasks, each with one or more revisions (totally, about 2000). These tasks have several states, and you will learn about them in the next chapter. The tasks are divided into 12 sprints (iterations), each sprint is about 1 month long. The methodology used for the schedule of the project is not exactly SCRUM, but is similar to it. For more information what SCRUM is, read [http://en.wikipedia.org/wiki/Scrum_(development)]. [[BR]] |
| 39 | '''Schedule'''. The Sophie2 project is split into about 600 tasks, each with one or more revisions (in total, about 2000). These tasks have several states, and you will learn about them in the next chapter. The tasks are divided into 12 sprints (iterations). Each sprint is about 1 month long. The methodology used for the schedule of the project is not exactly SCRUM, but is similar to it. For more information what SCRUM is, read [http://en.wikipedia.org/wiki/Scrum_(development)]. [[BR]] |
57 | | Generally speaking, every task must first be analyzed, then a design must be made, and finally the design is implemented. If the task is a coding one, its implementation is tested. After each phase, a review is made. The tasks, sorted by iterations, can be looked at [http://asteasolutions.net:7080/sophie2/roadmap]. The exact task states and much more are described and regularly updated at [wiki:PROCESS]. This document is fundamental, so read it carefully. Also, tasks are several different types. For explanation what the types are, read [wiki:PLATFORM_STANDARDS_GENERAL]. [[BR]] |
58 | | Every state of a task is important. However, here are the existing recomendations for performing various actions: |
59 | | * Analyzing: [wiki:PLATFORM_STANDARDS_ANALYSIS how to write good analysis]. Please note, that when you create an analysis, the wiki page you write it in most probably won't exist. If you are logged in the Trac, you will be asked whether to use a page template. You should use TaskPageTemplate. |
| 57 | Generally speaking, every task must first be analyzed, then a design must be made, and finally the design is implemented. If the task is a coding one, its implementation is tested. After each phase, a review is made. The tasks, sorted by iterations, can be looked at [http://asteasolutions.net:7080/sophie2/roadmap]. The exact task states and much more are described and regularly updated at [wiki:PROCESS]. This document is fundamental, so read it carefully. Also, tasks are of several different types. For an explanation what the types are, read [wiki:PLATFORM_STANDARDS_GENERAL]. [[BR]] |
| 58 | Every state of a task is important. However, here are the existing recommendations for performing various actions: |
| 59 | * Analyzing: [wiki:PLATFORM_STANDARDS_ANALYSIS how to write good analysis]. Please note that when you create an analysis, the wiki page you write it in most probably won't exist. If you are logged in the Trac, you will be asked whether to use a page template. You should use TaskPageTemplate. |
61 | | * Coding: [wiki:CODE_TASKS_REQUIREMENTS code tasks requirements], [wiki:CODE_SMELLS code smells](bad code examples), [wiki:LOGGING logging]. [wiki:JAVADOC_CONVENTIONS Javadoc] should also be here. |
62 | | * Testing: [wiki:TESTING auto tests](unit / system), [wiki:PLATFORM_STANDARDS_MANUAL_TESTS_R0 manual tests]. [[BR]] |
| 61 | * Coding: [wiki:CODE_TASKS_REQUIREMENTS code tasks requirements], [wiki:CODE_SMELLS code smells] (bad code examples), [wiki:LOGGING logging]. [wiki:JAVADOC_CONVENTIONS Javadoc] should also be here. |
| 62 | * Testing: [wiki:TESTING auto tests] (unit / system), [wiki:PLATFORM_STANDARDS_MANUAL_TESTS_R0 manual tests]. [[BR]] |
69 | | * Plugins: software units. In the context of our project, "plugin" is the same as module, or bundle. In eclipse, they are actually represented as different projects. Have a look at [wiki:PLATFORM_STRUCTURE platform structure]. There you can see where modules are located and what their structure is. |
70 | | Decomposition to plugins of Sophie 2 is one of the most important things to do for the project. If you need to create a new module, one of the ways to do this is the way, described in [wiki:PLATFORM_DEPLOYMENT_BUILD_ECLIPSE#Howtocreateanewmodule how to create a new module]. |
71 | | * Extensions / Extension points: these are used to reverse the dependencies, so that we cannot have cyclic dependencies in the project. The other advanage of extensions is that it provides extensible functionality. |
72 | | * Editions: different standalone subsets of Sophie2 platform. Sophie2 has 3 editions: Author, Reader and Server. The page dedicated to editions is [wiki:PLUGIN_EDITIONS_STRUCTURE Plugin editions structure]. |
73 | | * Distributions: the distribution is the end product an user will see on his/her hard drive after installing the edition. In order to be fully functional, a distribution has to provide executables and/or some other needed resources.The problem here is the way we provide these things, and the solution is the /distrib directory (look again at [wiki:PLATFORM_STRUCTURE platform structure]). [[BR]] |
74 | | * High-level design. This refers to the Model-View-Controller (MVC) design pattern. Its idea is to define how the model and the view interact each other. There is a MVC tutorial at [wiki:CORE_MVC_BASE]. There is a problem with the standard MVC pattern, and it is that it becomes too complicated in this particular project. This is why Properties are introduced here. So, each model in Sophie2 is defined by a property. This way the controller is replaced by Logics, and this simplifies the whole pattern. The properties are represented by the ProLib library, and you can read the important Properties tutorial here: [wiki:PRO_LIB_CORE_TUTORIAL]. [wiki:PRO_LIB_CORE_CODE_TEMPLATES This page] defines useful code templates for properties. [[BR]] |
| 69 | * Plugins: software units. In the context of our project, "plugin" is the same as module or bundle. In Eclipse, they are actually represented as different projects. Have a look at [wiki:PLATFORM_STRUCTURE platform structure]. There you can see where modules are located and what their structure is. |
| 70 | Decomposition to plugins of Sophie 2 is one of the most important things to do for the project. If you need to create a new module, one of the ways to do this is described in [wiki:PLATFORM_DEPLOYMENT_BUILD_ECLIPSE#Howtocreateanewmodule how to create a new module]. |
| 71 | * Extensions / Extension points: these are used to reverse the dependencies so that we cannot have cyclic dependencies in the project. The other advantage of extensions is that they provide extensible functionality. |
| 72 | * Editions: different standalone subsets of the Sophie 2 platform. Sophie 2 has 3 editions: Author, Reader and Server. The page dedicated to editions provides information about the [wiki:PLUGIN_EDITIONS_STRUCTURE plugin editions structure]. |
| 73 | * Distributions: the distribution is the end product a user will see on his/her hard drive after installing the edition. In order to be fully functional, a distribution has to provide executables and/or some other needed resources. The problem here is the way we provide these things, and the solution is the /distrib directory (look again at [wiki:PLATFORM_STRUCTURE platform structure]). [[BR]] |
| 74 | * High-level design. This refers to the Model-View-Controller (MVC) design pattern. Its purpose is to define how the model and the view interact with each other. There is an MVC tutorial at [wiki:CORE_MVC_BASE]. There is a problem with the standard MVC pattern: it is too complicated for this particular project. This is why Properties are introduced here. So, each model in Sophie 2 is defined by a property. This way the controller is replaced by Logics, and this simplifies the whole pattern. The properties are represented by the ProLib library, and you can read the important Properties tutorial here: [wiki:PRO_LIB_CORE_TUTORIAL]. [wiki:PRO_LIB_CORE_CODE_TEMPLATES This page] defines useful code templates for properties. [[BR]] |