Commonwealth of Massachusetts Executive Office of Health and Human Services eohhs cto organization



Download 283.96 Kb.
Page5/5
Date29.01.2017
Size283.96 Kb.
#12124
1   2   3   4   5

4.4Requirements


The process and guidelines are being evaluated and will be published in future.

4.5Development

4.5.1Integrated Development Environment


Eclipse is an IDE that provides tools for developing Java EE and web applications.
Version 3.6.2 – Helios will be used.

More information is available at: http://www.eclipse.org/


4.5.2Project Structure


Project structure should follow Maven standards. Maven defines a standard project structure and allows common components to be shared across applications. Maven uses a repository to hold the modules used in the application. Modules developed for the Commonwealth can be shared by added then to a common repository.
Properly built Maven projects also allow modules within the same project. This provides a way for the code to be broken down into functional units where each module deals with a specific set of functions. Other modules may have dependencies to the modules but they do not need to include all the source code in each build. These modules allow developers to focus on the code in their functional area without needing to build out all the other modules.

Maven is also used as a build tool and can be used with other build tools such as Ant and it works well with continuous integration environments like Hudson.

Maven also supports the existence of multiple environments easily. Each environment can have its own set of resources and configuration. This structure allows environment specific information to remain isolated.

While working in Eclipse, install the m2eclipse plug-in for Maven builds and deployments from Eclipse.




src/main/java

Application/Library sources

src/main/resources

Application/Library resources

src/main/filters

Resource filter files

src/main/assembly

Assembly descriptors

src/main/config

Configuration files

src/main/webapp

Web application sources

src/test/java

Test sources

src/test/resources

Test resources

src/test/filters

Test resource filter files

src/site

Site

LICENSE.txt

Project's license

NOTICE.txt

Notices and attributions required by libraries that the project depends on

README.txt

Project's readme

More information is available at: http://maven.apache.org/guides/index.html


4.5.3Build Tool


Ant is a widely used tool for building Java based applications. It can be used either alone or within Maven to build and deploy the application. Additionally, Ant can be used within Hudson integrated build environment and within the Eclipse IDE.
Version 1.8.2 will be used.

More information is available at: http://ant.apache.org/


4.5.4Continuous Integration


Jenkins provides an easy-to-use continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
Version 1.406 will be used.

More information is available at: http://jenkins-ci.org/


4.5.5Code Quality

Check Style


Check Style is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Sun Code Conventions but it can be configured to support almost any coding standard.
Version 5.3 will be used.

More information is available at: http://checkstyle.sourceforge.net/


Find Bugs


Findbugs is a tool used to identify potential bugs within code. It inspects the bytecode for bug patterns.
Version 1.3.9 will be used.

More information is available at: http://findbugs.sourceforge.net/


PMD


PMD is a static analyzer that scans java source for problems. Capabilities include scanning for empty block statements, dead code, suboptimal code, overcomplicated expressions and duplicate code.
Version 4.2.5 will be used.

More information is available at: http://pmd.sourceforge.net/


4.5.6XML Editor


XML Spy is an XML Editor and validator. It can be used to create XML Schemas and WSDLs. All WSDLs and their XML schemas need to be validated with XML Spy before being published to the XML Gateway.
Please note XML Spy is a licensed product that requires procurement before using.
Version 2011 will be used.

Eclipse Plugin


The Eclipse XML editor can be used for initial development of the XML Schemas and the WSDLs. However, XML Spy has a better track record for validation of the schemas and the ability to run in the DataPower XI-50.

4.6Testing


All the applications must follow the process adopted by the Software Quality Assurance team. The following table provides the details of this process:


4.6.1Unit Testing

Java


JUnit is a simple, open source framework to write and run repeatable tests. It will be used to create the unit tests for java code.
Version 4.8.2 will be used.

More information is available at: http://junit.org/


Web Services


SoapUI is a tool for functional testing, mainly of Web Services like SOAP based Web Services and REST Web Services, but also HTTP based services and JMS Services. SoapUI has a commercial offering called SoapUI Pro, with extra functionality.
Version 3.6.1 will be used.

More information is available at: http://www.soapui.org/


File Transfers


CURL is used to test large xml files against the XML Gateway. SOAPUI can be used for smaller XML payloads.
Version 2.2.1 will be used.

More information is available at: http://curl.haxx.se/


HIPAA Transactions


OnlyConnect FirstPass is a windows desktop application that validates X12 EDI data for adherence to X12 syntax and other requirements as specified in the 5010 X12 Type 3 Technical Reports (TR3) adopted under HIPAA.

Web Page Inspection and Debugging


Firebug allows editing, debugging, and monitoring of CSS, HTML, and JavaScript live in any web page. It can be used to monitor request activity, visualize CSS metrics, information about errors in JavaScript, CSS and XML. Includes DOM explorer; execute JavaScript on the fly.
Version 1.7 will be used.

More information is available at: http://getfirebug.com/


TCP/IP Monitor


Use the TCP/IP monitor built into Eclipse or SOAPUI to see the payload and headers exchanged between the Web service client and the server. It can also be used to see browser based traffic between the browser and the server.

HTTP Debugging


Fiddler is a HTTP debugging proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language. It can debug traffic from virtually any application and available only for Windows platforms.
Version 2 will be used.

More information is available at: http://www.fiddler2.com/fiddler2/


4.6.2Functional Testing

Test/Code Coverage Analysis


Cobertura is tool to identify which parts of a Java program are lacking test coverage and calculate % code coverage. It also reports McCabe cyclomatic complexity of the code.
Version 1.9.4 will be used.

More information is available at: http://cobertura.sourceforge.net/


Acceptance Tests


FitNesse is a lightweight, open-source framework that makes it easy for software teams to collaboratively define Acceptance Tests. Web pages containing simple tables of data inputs and expected outputs are used to run tests and see the results. The tables are expressed in the form of a wiki; the Fitnesse wiki enables easy creation and editing of the Wiki/Fitnesse pages. FitNesse is a web server.
Release 20110104 will be used.

More information is available at: http://fitnesse.org/


4.6.3Regression Testing

Web application


Canoo WebTest is a tool that tests the expected html against the result html. Since it compares expected html against result html, it can be used for regression tests. Reporting includes high level summary reports to details of each test.
Features

  • Reporting

  • Test scripts in Groovy or in XML

  • Test Suites

  • Integration with continuous integration tools like Hudson.

Version 3.0 will be used.

More information is available at: http://webtest.canoo.com/
Selenium is a suite of tools that allow web testing. Its firefox add-in based IDE allows the developer to record clicks, typing, and other user interactions into a "script" and replay it back for developer testing. The developers can also use Selenium to verify that the UI still functions to the specifications.
Version 1.0.10 will be used.

More information is available at: http://seleniumhq.org/


Database


DBUnit is a tool used for testing that puts a database in a known state between test runs. This allows tests to be repeated with a known set of data in the database.
Features

  • export your database data to XML datasets

  • import your database data from XML datasets

  • work with very large datasets when used in streaming mode

  • verify that your database data match an expected set of values as part of a test

Version 2.4.8 will be used.

More information is available at: http://www.dbunit.org/

Web Services


As mentioned above in the Unit Test section, JUnit can be used for regression tests to make sure that the service layer code meets the requirements as enhancements and bug fixes are made.
SOAPUI is used to verify the web services between and as part of releases. See the section on SOAPUI earlier in the document.

4.6.4Performance Testing


Load Runner will be used for load/stress testing tool for web and other applications. It supports a wide variety of application environments, platforms, and databases. It has a large suite of network/app/server monitors to enable performance measurement of each tier/server/component and tracing of bottlenecks.
Version 11.2 will be used.

4.6.5Accessibility Testing

ADA Compliance


IBM Policy Tester will be used for compliance testing to assess quality, privacy, and accessibility compliance issues across corporate web properties.
Version 5.5 will be used.

Screen Reader


The web content provided by either the web site or web application must work with an accessibility solution that reads information on your screen using synthesized speech. Freedom Scientific’s JAWS will be used.
Version 12 will be used.

Color Contrast Testing


Juicy Studio is the tool that will be used for color contrast checks.
Version 1.6 will be used
Web Accessibility Toolbar is IE plug-in that aids in manual examination of web pages for a variety of aspects of accessibility. It consists of a range of functions that:


  • identify components of a web page

  • facilitate the use of 3rd party online applications

  • simulate user experiences

  • provide links to references and additional resources

  • color contrast checks.

Version 2.0 will be used.


4.6.6Vulnerability Testing


IBM rational AppScan will be used to test web application security. Testing includes both

  • Dynamic analysis to test for all common web application vulnerabilities

  • Static analysis of JavaScript to identify client-side vulnerabilities

Version 8.0.x will be used.


4.6.7Defect Tracking


The guidelines are being evaluated and will be published in future.

ClearQuest will be used for defect tracking.


4.6.8Performance Monitoring

        1. Application Monitoring

4.6.8.1.1Wily

Wily is an Application Performance Management tool made by Computer Associates (CA). It provides a view to the performance of the application from the browser to the database. It can inspect and provide metrics at a component level for both Java and .NET applications. There are also power packs for application servers such as Oracle Weblogic and IBM WebSphere.
Version 8.2.3 will be used.
4.6.8.1.2JRockit Mission Control & Runtime Analyzer

Features

  • Memory Leak Detector

  • Eclipse Plug-in

  • Identify hotspots

  • Exception Counters

  • Profiling information

  • Stack traces for selected threads

The JRockit Runtime Analyzer (JRA) can be used to check the overall health of the JVM. It is important to note that JRA only works with the Oracle JRockit JVM. JRA supports real-time monitoring and captures over a specified period of time. Captures can be analyzed can then be used to tune the JVM so that it runs efficiently.


Some of the key areas to look at from the JRA recording are

  • thread local area (TLA) size

  • size of the largest object allocated

  • size of the heap

  • frequency of the garbage collections

  • locks

The JRockit documentation provides some good guidelines and should be consulted during the tuning phase of application delivery. Also check with the Architecture team for some tuning recommendations


4.6.8.1.3HP Open View

HP Open View should be used for monitoring memory, CPU, file system usage. It can be accessed using the following URL:

http://ovopvm1.itd.state.ma.us:8081/OVPM/Analyzer
ITD is phasing this out and replacing with Tivoli monitoring. The guidelines are being evaluated and will be published in future.
        1. DB Monitoring

4.6.8.1.1Oracle Tools

The standard application used for tuning the database is the Oracle set of tools including

  • Automatic Workload Repository (AWR) Reports

  • Oracle Performance Pack

  • Oracle Diagnostic Pack

  • Oracle Automatic Database Diagnostic Monitor.
4.6.8.1.2Toad

Toad is a tool-suite provided by Quest. It has versions for developers, DBAs, and analysts. The DBA tools can be used to tune both the Oracle DBMS and it can also identify SQL statements that are performing poorly. Toad can take a poorly performing query and test the various ways in which the same statement could be written and come up with the best performing permutation of the query that gives the same results.
Version 10.6.1 will be used.
4.6.8.1.3ION

(Workload Interface Statistics Engine) - Ion is the only tool outside OEM that will plot time-series data from AWR and ASH. It allows you to view Oracle trends by day-of-the-week and hour-of-the-day. The Ion EE also allows the same interface to Oracle8i and Oracle

Features


  • Fast drill-down into table access details

  • Built-in intelligence finds problems fast

  • Spot trends with time-series regression

  • See all components of Oracle response time

  • Easily spots hidden resource bottlenecks

  • Predict problems before they cripple your database.

  • Supports Oracle 9i through 11g.

4.7Environment

4.7.1Application Categories


Each application must be reviewed by the architecture team to determine its classification as either an Enterprise application or a standard application.

Enterprise Applications


Enterprise applications are mission critical applications with a large user base and high performance needs. These applications will be deployed on Weblogic application servers.

Standard Applications


Standard applications are non-mission critical applications, with a small user base. They do not have highly active development cycles. These applications will be deployed on JBoss application servers.

4.7.2Application Environments


There will be 5 environments in which the application will be deployed during its life cycle. They are:

  • Development – This is used by the development team during construction phase. All development activities including unit testing will be executed in this environment. The application test results will be reviewed and upon on approval will be ready for promotion to System Test environment.

  • System Test – This is used by the development team for integration testing. The application under development will be deployed and integrated with other systems. Testing focused on the integration aspects will be performed in this environment. The test results will be reviewed and upon approval will be ready for promotion to QA environment.

  • QA – This is used by QA team for load testing, capacity planning, accessibility, vulnerability testing. The application in its integrated state will be subject to performance tests, to identify any performance issues. Once tuned for performance service level agreements, the application will be subjected to load. Once tuned for performance, the operating capacity of the application is identified. The application is also subject to different tests to identify accessibility and vulnerability issues. Once the results are review and upon approval will be ready for promotion to production.

  • Production –This is the environment where the application is available for business users.

  • Training – This is the environment where the application is made available for training business users.

4.7.3Virtual Gateway


It provides the necessary infrastructure for deploying applications that adheres to enterprise security policies. It consists of the following:

  • A cluster of Weblogic application servers

  • A cluster of JBoss application servers

  • A cluster of Apache web servers in a DMZ with mod_security

  • An XML gateway

  • A cluster of oracle database servers supporting high availability in active/passive configuration

All applications based on JEE will deployed in virtual gateway.

The following links provide details of virtual gateway infrastructure in different environments:

Development & System Test: https://massforge.state.ma.us/sf/go/doc23273?nav=1

QA: https://massforge.state.ma.us/sf/go/doc23271?nav=1

Production: https://massforge.state.ma.us/sf/go/doc22726?nav=1

Training: https://massforge.state.ma.us/sf/go/doc23272?nav=1


4.7.4Virtual Datacenter


It provides VMWare based virtualized environment for deploying applications that adheres to enterprise security policies. It consists of the following:

  • Infrastructure divided into 4 different security zones (Public Internet, Production Internal, Non-Production, ILO).

  • Follows a charge back model for usage of the infrastructure

All applications that have infrastructure requirements, licensing model that cannot be met by the VG environment will be deployed in virtual data center. For example: .Net applications, Fax Servers.

4.8Release Management


The guidelines are being evaluated and will be published in future.

4.9Configuration Management


Even though there are multiple source management models available, EHS will be follow a centralized model where all the revision control functions take place on a shared server. All EHS applications should use Subversion as the version control software. This provides the following advantages:

  • Atomic Commits

  • Optimistic Locking

  • Version Merging

  • Base lining, Labeling and Tagging

  • Distributed Version Control

  • Integration with Multiple IDEs

  • Integration with MassForge

4.10Change/Risk/Issue Management


The guidelines are being evaluated and will be published in future.

5.Helpdesk Services


The processes and guidelines are being evaluated and will be published in future.




Download 283.96 Kb.

Share with your friends:
1   2   3   4   5




The database is protected by copyright ©ininet.org 2024
send message

    Main page