Java Development Environment


Published on

Brief introduction to various development tools used at various development steps such as design, code, build, validate, test and release.

Published in: Software
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Java Development Environment

    1. 1. Development Environment for Java
    2. 2. Collaboration  Collaboration tools such as GitHub and Huddle are used for collecting and sharing information within the development teams and teams such as release, testing and other development teams
    3. 3. Release Management   Version Control System such as SVN and CVS are used to maintain design and code artifacts Branching is done to isolate onto a separate line of development and then merged and tagged
    4. 4. Build Environment   Build tools such as Apache Maven can be used to organize the code, compile, validate and test it Continuous Integration Tools can build, validate and test the changes on going basis
    5. 5. Design         Design for optimum usage of computer resources such as Memory, CPU, I/O & Connection Follow design principles such as OCP, Liskov Substitution , IOC, Interface, etc Create the Stub classes following JEE design patterns for Controller, View, Model, Listener / Command, Delegate, Facade, Manager & DAO Generate UML diagrams such as Collaboration, Sequence, Activity and Deployment diagrams using the stubs Generate JDependency & JavaNCSS reports and re-factor the stubs based on these report output Design for singleton objects, object pooling, caching (both service & data), queing techniques Use annotation extensively for injecting business services & dao entities, webservice, messaging and transaction Design security as a cross concern (filter, aop, etc) rather than handling it part of the application logic
    6. 6. UML
    7. 7. Coding     Be conversant with the Java API specification for the core and dependent libraries before referring to forums / google Use Automated Review tools / plugins such as Eclipse Metrics, PMD, Findbugs Update local copy from version control frequently, provide adequate Comments and perform atomic commits For Minor Enhancements perform Impact Analysis on UI, Service, DAO, Configuration, Master Data and provide Help & Release Document
    8. 8. Deployment Use Maven and Eclipse plugins to deploy and bootstrap with configuration and master data  Use Maven Profiles to maintain configuration for various environments i.e dev, test and prod 
    9. 9. Testing      List down the High Level Scenarios under Functional, Security & Performance categories Identify the various environments and the test cycles Automate Testing using JUnit, TestNG, Marathon, etc Mock actual services with SOAP UI, EasyMock, etc Track Code Coverage using Cobertura, Emma, etc
    10. 10. Continuous Integration