Changes between Version 36 and Version 37 of DEVELOPMENT_OVERVIEW


Ignore:
Timestamp:
11/26/08 21:56:45 (17 years ago)
Author:
kyli
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DEVELOPMENT_OVERVIEW

    v36 v37  
    33 
    44= 0. The Setup = 
    5 This is a step-by-step tutorial for installing the development tools, used during Sophie2 development. [[BR]] 
     5This is a step-by-step tutorial for installing the tools used during Sophie2 development. [[BR]] 
    66 
    77'''Accounts creation'''. In order to communicate with the team members, you must create the following accounts: 
    8   * Google groups: [http://groups.google.com/group/sophie2-devs Developers Mail Group], [http://groups.google.com/group/sophie2-users Users Mail Group]. You must have a gmail account to apply for a mambership. 
     8  * Google groups: [http://groups.google.com/group/sophie2-devs Developers Mail Group], [http://groups.google.com/group/sophie2-users Users Mail Group]. You must have a gmail account to apply for a membership. 
    99  * Skype account: provide it to our Human Resource Manager and you will be included in the group chat. 
    1010  * SVN/Trac accounts: ask someone from the team for these.[[BR]] 
     
    1515'''SVN setup'''. Subversion (SVN) is the version control system that we use. On Windows you can use TortoiseSVN (download it from [http://tortoisesvn.net/download]). The official site of SVN is [http://subversion.tigris.org/]. There you can find SVN binaries for other OS-es. You must install the subversion client in order to continue to the next step, e.g.[[BR]] 
    1616 
    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]] 
    18 1) Create the new file in the desired folder (for reports, it is /manage/reports/[current iteration]/. The format of reports is explained below, in the "Process" chapter). [[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]] 
     181) Create the new file in the desired folder (for reports, it is /manage/reports/{current iteration}/. The format of reports is explained below, in the "Process" chapter). [[BR]]  
    19192) Use "svn add" to schedule the file for commiting to the repository. [[BR]] 
    20203) Use "svn commit" to commit it. Attention: commiting without comment is NOT allowed! [[BR]] 
    2121A sample boook about subversion can be found at [http://svnbook.red-bean.com/].[[BR]] 
    2222 
    23 '''JDK'''. Since Sophie2 is written in Java, it requires Java Development Kit (JDK) in order to delop it, and Java Runtime Environment to run it. JDK can e downloaded and installed from [http://java.sun.com]. [[BR]] 
     23'''JDK'''. Since Sophie2 is written in Java, it requires Java Development Kit (JDK) in order to delop it, and Java Runtime Environment to run it. JDK can be downloaded and installed from [http://java.sun.com]. [[BR]] 
    2424 
    2525'''Maven setup'''. Maven is a software tool for Java project management and build automation. Downloads and installation  
    2626instructions are located at [http://maven.apache.org/download.html]. A tutotial for building with Maven is written here:  
    27 [wiki: PLATFORM_DEPLOYMENT_BUILD_MAVEN]. If you build the project with maven, you would probably need to open  
     27[wiki:PLATFORM_DEPLOYMENT_BUILD_MAVEN]. If you build the project with maven, you would probably need to open  
    2828[http://asteasolutions.net:7080/sophie2/browser/trunk/sophie2-platform/old/lib/readme.txt sophie2-platform/old/lib/readme.txt] and read the bottom lines. [[BR]] 
    2929 
    3030'''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]] 
     31Download 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]] 
    3232You already have everything needed to develop Sophie2 :) 
    3333 
     
    4747 * END_PRODUCT: here are a few tasks related to application tuning and making user help. [[BR]] 
    4848 
    49 '''Additional'''. The non-development side of the project is described in the [wiki: PROJECT_OVERVIEW] document. There you can read some things about Astea, Sophie, the license we use, and other useful things. 
     49'''Additional'''. The non-development side of the project is described in the [wiki:PROJECT_OVERVIEW] document. There you can read some things about Astea, Sophie, the license we use, and other useful things. 
    5050 
    5151= 2. The Process = 
    5252This chapter includes the states of each task until it is completed, the rules you have to follow when performing a task, some good/bad examples. The "writing reports" thing is also placed here. [[BR]] 
    53 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. [[BR]] 
     53Generally 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. [[BR]] 
    5454Every state of a task is important. However, here are the existing recomendations for performing various actions: 
    55  * Analyzing: [wiki: PLATFORM_STANDARDS_ANALYSIS how to write good analysis]. 
    56  * Coding: [wiki: CODE_TASKS_REQUIREMENTS code tasks requirements], [wiki: CODE_SMELLS code smells](bad code examples),  
    57 [wiki: LOGGING logging]. [wiki: JAVADOC_CONVENTIONS Javadoc] should also be here. 
    58  * Testing: [wiki: TESTING auto tests](unit / system), [wiki: PLATFORM_STANDARDS_MANUAL_TESTS_R0 manual tests]. [[BR]] 
    59 The process is executed with the help of Trac - the issue tracking system we use. If you have problems with using it, go to [wiki: TracGuide]. 
     55 * Analyzing: [wiki:PLATFORM_STANDARDS_ANALYSIS how to write good analysis]. 
     56 * 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. 
     57 * Testing: [wiki:TESTING auto tests](unit / system), [wiki:PLATFORM_STANDARDS_MANUAL_TESTS_R0 manual tests]. [[BR]] 
     58The process is executed with the help of Trac - the issue tracking system we use. If you have problems with using it, go to [wiki:TracGuide]. 
    6059 
    6160= 3. The Product = 
    6261'''Design'''. Here will be some of the main design features, which are present in Sophie2.  
    63  * 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.[[BR]] 
    64 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]. 
     62 * 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.[[BR]] 
     63Decomposition 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]. 
    6564 * 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.  
    66  * 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]. 
    67  * 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]] 
    68  * 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]] 
     65 * 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]. 
     66 * 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]] 
     67 * 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]] 
    6968 
    7069= 4. Extras =  
    7170You will certainly encounter a problem you cannot resolve on your own. You can find help:  
    72  * In the [wiki: FAQ] section 
     71 * In the [wiki:FAQ] section 
    7372 * In our mail groups (see the begining of this document);  
    7473 * In our Skype group chat (again, see the begining of this document);