Project bcool standards document

  • 102 views
Uploaded on

Process document for a small startup I worked with as engineering manager prior to Symantec. We created 2 products for Nike & subsidiaries over period of 7 years.

Process document for a small startup I worked with as engineering manager prior to Symantec. We created 2 products for Nike & subsidiaries over period of 7 years.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
102
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Project BCOOL Standards Document Project BCOOL Standards Document DoTheSimplestThingThatCouldPossiblyWorkConfidential Page 1 of 15 1/17/2013
  • 2. Project BCOOL Standards Document Table of Contents PROJECT BCOOL STANDARDS DOCUMENT.............................................................................................................. 1 DOTHESIMPLESTTHINGTHATCOULDPOSSIBLYWORK............................................................................................. 1 TABLE OF CONTENTS................................................................................................................................................... 2 TABLE OF FIGURES....................................................................................................................................................... 21. ENGINEERING STANDARDS...................................................................................................................................... 22 REFERENCE WEBSITES............................................................................................................................................ 14EPILOGUEEAT OWN DOG FOOD.COURTESY: “SHOW-STOPPER!: THE BREAKNECK RACE TO CREATE WINDOWS NT AND THE NEXTGENERATION AT MICROSOFT” BY G. PASCAL ZACHARY. HARDCOVER (OCTOBER 1994)................................................................................15 Table of figuresFIGURE 1: THE BCOOL HIERARCHY OF JAVA PACKAGES SHOULD LOOK LIKE COMBINATION OF THESE TWO........................................................................................................................................................................................... 5FIGURE 2: SAP R/3 SUPPORT IN VAJ ENTERPRISE.................................................................................................... 6FIGURE 3: CONNECTING VAJ WITH VSS “CODEBASE”............................................................................................... 7FIGURE 4: DEFINING/CHANGING THE VSS CONNECTION FROM VAJ......................................................................7FIGURE 5: ADDING VAJ FILES TO VSS "CODEBASE".................................................................................................. 8FIGURE 6: PROPOSED BUILD CONFIGURATION INFRASTRUCTURES.....................................................................9FIGURE 7: THE RESULTS OF RUNNING ANT BUILD TOOL FROM COMMAND-LINE...............................................10FIGURE 8: SETTING ANT.MAIN PROPERTIES AFTER IMPORTING AND VERSIONING ANT AND JAXP................11FIGURE 9: THE RESULTS OF RUNNING BUILD.XML IN VISUALAGE FOR JAVA.....................................................12FIGURE 10: BRISTLECONE SOFTWARE DEVELOPMENT PROCESS MODEL.........................................................131. Engineering StandardsThe proposed engineering standards and toolset for the BCOOL project are as follows:1.1 Baseline StandardsBaseline Standards w/ Version Development PC Dev/Staging Servers Demo Servers Demo Client1.1.1 Basic “Image”Operating System v4.0SP6/2000 NT2000 Pro NT2k Server NT2k Server Win95/98/2kBrowsers (HTML4.0 compliant) IE 5.xx IE5, IE5.5 IE5.5 IE5.5Web Server (HTTP1.1 complaint) MS Personal Web Server IIS Server IIS NONEDatabase (SQL-92/3.0 compliant) Connect to database server SQL Server 7.0 SQL Server 7.0 NONEB2B XML Server (XML 1.0 based) NONE BizTalk Server BizTalk Server NONEPersonalization Engine (MS DB 2.1) File-system SQL Server SQL Server NONEVisualization Engine (2.0.3) InXight InXight InXight NONEOptimization Engine(ILOG OPL 3.1) OPLCOM API OPLCOM API OPLCOM API NONERules Engine (ILOG JRules) ILOG JRules (optional) (optional) NONE1.1.2 Source Control + Defect/Feature Tracking on LOKIVSS v6.0 SCCS API client VSS Server NONE NONEClearQuest v2001 client for vss, or web version CQ Server NONE NONEConfidential Page 2 of 15 1/17/2013
  • 3. Project BCOOL Standards Document1.1.3 Java 2 PlatformJava 2 Standard Edition v1.2.2 IBM JDK 1.2.2 IBM JDK 1.2.2 IBM JRE 1.2.2 IE w/ MSVMJava 2 Enterprise Edition server jBoss WebLogic 6.0 / IBM WAS 3.5 WebLogic 6.0 / IBM WAS 3.5 NONE1.2 Toolset1.2.1 Java TechnologyIDE for Java 2 platform v3.5 IBM VAJ Pro/Ent IBM VAJ Pro 3.5 NONE NONEJDBC 2.0 Driver jdbc-odbc bridge (IBM/MS) WebLogic / OPTA2000 WebLogic / OPTA2000 NONEJavaServlets v2.2 IBM VAJ Pro/Ent WebLogic / Websphere WebLogic / WebSphere NONEJavaServer Pages v1.1 WebSphere Studio WebLogic jspc compiler NONE NONEScripting HTML/ASP/JavaScript etc… ScriptBuilder / SitePad pro ScriptBuilder NONE NONEEJB v1.1 VAJ Websphere Test Env WebLogic/ Websphere WebLogic / Websphere NONEJavaMail (for alerts) v1.1.3 1.1.3 ref implementation ? ? NONEJava De-compiler tool DeCafe NONE NONE NONE1.2.2 XML tools for JavaXML parser for Java (v1.1.2) Xerces/XML4J Xerces/XML4J Xerces AelfredXML-Schema v4/7/2000 XML Spy 3.5 XML Spy 3.5 NONE NONEXML v1.0 editor XML Spy 3.5 XML Spy 3.5 NONE NONEXML DTD editor (v 12/17/1999) XML Spy 3.5 XML Spy 3.5 NONE NONEXSL v1.0 editor XML Spy 3.5 XML Spy 3.5 NONE NONEXSLT v1.0 editor XML Spy 3.5 XML Spy 3.5 NONE NONEWML v1.0 editor ScriptBuilder ScriptBuilder NONE NONEXpath v1.0 for Java (v0.20.0) Xalan XSLT Processor Xalan XSLT Processor Xalan XSLT Processor NONEXSLT Processor for Java (v0.20.0) Xalan XSLT Processor Xalan XSLT Processor Xalan XSLT Processor NONE1.2.3 OOAD/Schema DesignUML/OOD (UML 1.3) Rose/Ent 2001/Visio Ent NONE NONE NONEER Modeling (UML data modeling ext) Rose/Ent 2001/Visio Ent NONE NONE NONE1.2.4 Microsoft JavaMicorsoft Java SDK v4.0 MS Java SDK (NOT VJ++) NONE NONE NONE1.2.5 Life Cycle tools (for each iteration)Build tool Ant Ant NONE NONEEJB Deployment tool Ant / Bean-test Ant / Bean-test NONE NONEInstallation software InstallAnywhere InstallAnywhere NONE NONEDemo software DemoShield / Toolbook NONE NONE DemoShieldHTML Documentation tool Frontpage w/ CSS styles NONE NONE NONEConfidential Page 3 of 15 1/17/2013
  • 4. Project BCOOL Standards Document1.3 Coding StandardsThe “WIKI” web is the best programming practices reference: http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap1.3.1 Java Coding StandardThe coding standards that we should use are described in the pocketbook “the elements of Java Style” by Scott Amblerand Rougewave developers. These are based on the Sun Code Conventions(http://java.sun.com/docs/codeconv/).1.3.2 Java Source Code BeautifierUse JIndent with the Sun-Style.jin configurationhttp://home.wtal.de/software-solutions/jindent/frameset.html1.3.3 C++ Coding StandardC++ code should be gcc 2.95.2 compilable. C++ coding rules from Ellemtel http://www.cs.umd.edu/users/cml/cstyle/Ellemtel-rules.pdfAlso available in “Industrial Strength C++: Rules and Recommendations” by Mats Henricson and Erik Nyquist, a bookrecommended on the “WIKI” web: http://www.c2.com/cgi/wiki?IndustrialStrengthCplusPlusSee Also books like: “Effective C++” book/CD by Scott Myers. “Large-Scale C++ Software Design” by John Lakos1.4 QA & Testing Standards1.4.1 Unit Testing StandardsXP framework for unit testing:1.4.1.1 Junit 3.2JavaUnit link from the “WIKI” web: http://www.c2.com/cgi/wiki?JavaUnitJunitCreator for VAJ from “BigBenTools” link on the “WIKI” web: http://www.xpdeveloper.com/cgi-bin/wiki.cgi?BigBenTools1.4.1.2 CPPunit 1.5http://www.c2.com/cgi/wiki?CppUnit1.4.2 Use Case (Scenario) Testing StandardsRational QualityArchitect, an addin for Rational Rose Enterprise, should be used for scenario based test of J2EE andCOM components.1.4.3 Load Testing & Performance Testing StandardsWe can use Microsoft Web Stress Testing tool for now.Tool such as Empirix Bean-Test or Rational PerformanceArchitect may be required in future.1.4.4 Regression Testing StandardsRational TestStudio or similar regression testing tool may be required in future.Confidential Page 4 of 15 1/17/2013
  • 5. Project BCOOL Standards Document1.5 Version ControlVisual SourceSafe clients should be used from development PCs. VSS server will be running on the LOKI server.Typical VSS options- checking in a file in respective java package, checking it out for write access, canceling a checkoutin case the build broke or your code regressed, and getting latest for readonly access.Three types of Visual SourceSafe databases should be used:1.5.1 UmlModel- Model databaseThe “UmlModel” is the database version controlled for the entire architectural baseline- use case models, systemfunctions w/ algorithms, UML diagrams (domain object models, sequence diagram. class designs, state machines etc),and the data model (schema design).1.5.2 Codebase- Code databaseThe “Codebase” is the database version controlled for the entire codebase, pluggable into Java IDE and modeling tool.The schema “file” will be stored in the codebase. (Note that the schema “design”-diagram- should be stored in theUmlModel database.) Even the Java Archieve files – JARs, WARs and EARs, XML meta-info, EJB descriptors – arestored here. JavaDoc files also are generated from within the codebase. It should conform to the JavaDoc standards, forAPI documentation in the least. Patch release is used whenever branching is made.J2EE comes with an enterprise application, eStore. The codebase should be structurally baselined on the eStorepackage structures, to begin with. The entire BCOOL hierarchy of java packages should look like combination of these: Figure 1: The BCOOL hierarchy of java packages should look like combination of these two.1.5.3 Docs- Document databaseThe “Docs” is the database version controlled for the entire documentation- Word/html documents, and so on. Refer tothe “BristleCone Technical Notes Process”, technotes.doc for further details. The HTML documentation created can alsobe used in the RUP style sophisticated project website, by inserting “css-“stylish html docs into javadoc style comments.Confidential Page 5 of 15 1/17/2013
  • 6. Project BCOOL Standards Document1.6 Using IBM VisualAge for Java1.6.1 VAJ with EJB/JSP supportRefer to IBM’s website for the ”VisualAge for Java and WebSphere Studio Tutorials” series, e.g.http://www7.software.ibm.com/vad.nsf/data/document39361.6.2 VAJ with SAP R/3 supportThe screenshots for Advanced generation of Java proxies using the “AccessBuilder for SAP R/3” in VAJ3.5 are givenbelow. The AdvancedGenerationDlg option in the AccessBuilder.ini file has to be set to true for it to be enabled, defaultis false. Setting it to true brings up the screen in AccessBuilder as shown below: Figure 2: SAP R/3 support in VAJ EnterpriseConfidential Page 6 of 15 1/17/2013
  • 7. Project BCOOL Standards Document1.6.3 VAJ with VSS1.6.3.1 Connecting VAJ with VSS “codebase”To point to the VSS “codebase” database, you will have to first install VSS client on your machine and then you need topoint to the “//loki/vss/codebase/sourcesafe.ini” file, vss is the share on the //loki server. Figure 3: Connecting VAJ with VSS “codebase”When you define your “connection” to the VSS “codebase” database, with the “$ProductName/src” VSS project; youhave to set to the “src” subdir of your working folder on your hard disk. Figure 4: Defining/changing the VSS connection from VAJConfidential Page 7 of 15 1/17/2013
  • 8. Project BCOOL Standards Document1.6.3.2 Adding class “files” from VAJ to VSS “codebase”You need to add to “codebase” the class “files” you created newly in VAJ as follows: Figure 5: Adding VAJ files to VSS "codebase"1.6.3.3 Other VSS optionsThese options work from within VAJ, just as they do for any other tool such as Rational Rose. But what if you do NOTuse VAJ repository? If you use a file editor instead, then you must add your file to the VSS codebase “packages”,appropriately. VAJ developers then can either “get” or “checkout” that file, if needed.1.7 Labeling the Build from command-line into VSS “codebase”The VSS "codebase" should have all files checked in for the build. The build process should begin with an emailnotification of the "check-in within 15 minutes" kind. After the VSS “get latest” codebase, the build process should endup in a (hopefully unbroken) successful build. Start labeling the build with the build date, e.g. 20000731-1 for a build #1,dated 07/31/2000. Most "Rational" builds follow this type of convention. For each build, the labeling should be done bythe build master against the VSS “project” $/bcoolBuild/src. We will use the ant build tool to do the command line labeloperations with VSS at the end of the successful “build”. We will also explore if we can use the ant build tool to dodeployment for Bea Weblogic server. Please refer to the updated documentation on the build process from VSS “docs”.The buildmaster sends an email to development@bcone.com re. the structure of bcool build document whenever it isupdated. That will reinforce the classpath across the dev/qa boxes for the bcool team.Confidential Page 8 of 15 1/17/2013
  • 9. Project BCOOL Standards Document1.8 Proposed Build configuration infrastructure: hardware & software DEVELOPMENT STAGING SERVER DEMO I (SERVER) DEMO II (Mirror) SERVER Win2k Server (MSDN) Win2k Server (MSDN) Win2k Server (MSDN) Win2k Server (MSDN) WebLogic WebLogic WebLogic WebLogic SQL Server (MSDN) R/3 w/ SQL Server R/3 w/ SQL Server SQL Server (MSDN) Dashboard (MSDN) (SAP Customer copy) (SAP customer copy) Dashboard (MSDN) ILOG COM API Dashboard (MSDN) Dashboard (MSDN) ILOG COM API Bcool build ILOG (node-locked) ILOG (node-locked) Bcool build Bcool build Bcool build DATABASE SERVERR/3 SERVER NT 4.0 Server (MSDN) BW SERVER APO SERVERNT 4.0 Server (MSDN) SQL Server (MSDN) NT 4.0 Server (MSDN) NT 4.0 Server (MSDN)R/3 w/ Oracle ClearQuest and Rose BW 2.0B w/ Oracle APO 2.0B w/ Oracle(SAP Production copy) (floating license server) (SAP Production copy) (SAP Production copy) SourceSafe Server File server ILOG (floating server) Figure 6: Proposed Build configuration infrastructures1.8.1 Nightly Build on Build MachineWe run the ant build.xml based builds to develop the web/ejb/eis tiers on development build machine.The build should be scheduled to start exactly at 2 AM every night.1.8.2 Nightly Deployment on Development Server (Stage I)We should ideally not do builds on development servers, since other developers might be testing their JSPs against theservlets and EJBs deployed the previous night. We run the ant deploy.xml script to deploy the WAR, the EJB-JAR andthe EAR files (wherever applicable) on the development server.The deployment script should be scheduled to start exactly at 2 AM every night.1.8.3 Weekly Deployment on Staging Server (Stage II)We should ideally not do builds on staging servers. We run the ant deploy.xml script to deploy the WAR, the EJB-JARand the EAR files (wherever applicable) on the staging server.The deployment script should be scheduled to start exactly at 2 AM every Friday.Confidential Page 9 of 15 1/17/2013
  • 10. Project BCOOL Standards Document1.8.4 Milestone Deployment on Demo/Mirror Servers (Stage III)We should never do builds on demo/production servers. We run the ant deploy.xml script to deploy the WAR, the EJB-JAR and the EAR files (wherever applicable) on the demo/production boxes. The deployment script should bescheduled to start exactly at 2 AM every milestone-end.We also update the database server and the R/3 server with the latest test data.1.8.5 Making the build on Development Servers1.8.5.1 Bill of Materials(BOM) for buildsRefer to the build document, “Structure of Bcool Build” for Bcool build structure & the build process.1.8.5.2 Making the Build using Ant command-lineAssuming you have Ant installed, to execute this build, change to the directory where youve done a VSS “get” on the file“build.xml” and from a command line enter ant. You should see the output shown below. Figure 7: The results of running Ant build tool from command-lineAdmittedly, its not too useful so far, but it does show you the basic structure of a build.xml file. The Ant documentationexplains the options and tasks available, and Ant provides its own build file that you can model your builds on.Confidential Page 10 of 15 1/17/2013
  • 11. Project BCOOL Standards Document1.8.5.3 Making the Build using Ant in VisualAge for JavaWhile Ant is most often used as a command-line tool for automated nightly builds, the command line is not the easiestplace to debug problems with your build or create custom tasks. Its easier to integrate Ant into VisualAge for Java tocreate and debug custom tasks.1.8.5.3.1 Importing Ant into VisualAge for JavaThe most effective way to import Ant into VisualAge for Java is to import the source code. Its easier to debug yourcustom tasks when you can step through all the code and see whats happening. Ant uses a Java API for XML Parsing(JAXP) compliant XML parser to read the build.xml files. The binary release of Ant includes Suns jaxp.jar and parser.jarfiles, the reference implementation of JAXP. You can get the JAXP parser from Sun.To import Ant into VisualAge for Java: Extract the source code from jakarta-ant.tar.gz into the /tmp directory. Import from the directory /tmp/jakarta-ant/src into a new project named Ant. Import the .jar files /tmp/jakarta-ant/lib/jaxp.jar and /tmp/jakarta-ant/lib/parser.jar into a project named JAXP. Select the class org.apache.tools.ant.Main in the Ant project, and select Properties from the Selected menu. Select the Classpath tab, and select Edit beside the Project Path field. Select JAXP, then OK twice. Select IBM XML Parser for Java, then OK twice. Version the Ant project to 1.1, IBM XML Parser for Java to 1.0, and the JAXP project to 1.0.Once you are done, set the ant.Main properties in your Workbench as shown below: Figure 8: Setting ant.Main properties after importing and versioning Ant and JAXPConfidential Page 11 of 15 1/17/2013
  • 12. Project BCOOL Standards Document1.8.5.4 Running & Debugging the build from within VisualAge for JavaThe simplest way to run a build from within VisualAge for Java is to execute the main method of theorg.apache.tools.ant.Main class, passing in any parameters on the command line. When you run Ant without any options,it looks for a build.xml file in its current directory. Due to the way VisualAge for Java starts an application, that currentdirectory will always be ~/vaj/ide/project_resources/Ant, where ~/vaj is the directory where you installed VisualAge forJava. So to run your build, you can either import build.xml with the Import dialog into your project resources directory, oryou can use the -buildfile command-line option, which lets you specify which build file to use.Running the main method of the org.apache.tools.ant.Main class produces the output as shown below: Figure 9: The results of running build.xml in VisualAge for JavaConfidential Page 12 of 15 1/17/2013
  • 13. Project BCOOL Standards Document1.9 Deploying the BCOOL application from the build machineRefer to “Structure of Bcool Deployment” document for details on Bcool deployment structure & deployment process.Also refer to the “Bristlecone Software Development Process Model” shown below, Implementation, test and deployment process workflows: Bristlecone Software Process Model Product Management Engineering Engineering Engineering Engineering Product Management Roll In Roll Out Business Analysis &Process Workflow: Requirements Implementation Test Deployment Modeling Design Business Systems Software Tech Leads & DBA with QA & Test ReleaseRoles responsible: Analyst(s) Analyst(s) Architect(s) Build Master Lead(s) Manager Business Scope-level Analysis Model Build-level Scope-level Build-levelResponsibilities: Domain Model Use-Case Model & design Model Implementation Model Test Plans DeploymentsOutput artifacts: Business requirements doc Use-case Models Analysis models Component Design Diagrams System test plan execution "Bcool" Bill of Materials Scope-level block diagrams Use-case specs Design models Structure of "Bcool" Build Defect/feature tracking database Deployment Plan Business Process flowcharts Scope-level seq diagrams Object-level seq diagrams Html API/Javadoc & technotes Use-case based system testing Installation & Release Notes Requirement Attributes UI-level activity/state charts UI-level Proofs of Concept Scope-level build w/ junit tests regression test dev & exec User Manual SAP Mappings Scope-level Data model Design-level Data model Implementation-level Schema Test data creation & replication On-line Help files Business Rules Domain object model Model of Systems Architecture Ant-based build development Ant-based build deployment Manual/Auto Demo scripts GlossaryResource Infrastructure: Laptop Desktop Desktop Build Machine Stage I (Dev) Server Stage II (Staging) Server with with with Word, Excel & Visio Rose and Visio Rose and Visio Figure 10: Bristlecone Software Development Process Model1.10 What if the Build is “broken”?Penalty ;-) Penalize the developer responsible for breaking the build!Even if the unit tests were successful, it does not mean that the build can be integrated from these.1.11 Installation Process for demos1.11.1 InstallAnywhere Standard Edition APIReference website http://www.zerog.com1.12 Testing the build for demosRefer to the test plan documentation, created by test lead, Vijay Aliseti.Confidential Page 13 of 15 1/17/2013
  • 14. Project BCOOL Standards Document2 Reference websitesWe need to expand this list for all items listed in the topics “Engineering Standards”, “Coding Standards”, and “Bill ofmaterials for the build machine”: • The Apache XML project http://xml.apache.org/index.html • UNIX toolset for Windows http://sourceware.cygnus.com/cygwin/2.1 Issues • The JSP developer’s JSP tag library can call the EJB developer’s session bean, which may call the entity beans or directly execute the SQL statements (using JDBC) on the build machine running SQL server. • The repository of IBM VisualAge for Java connects using the SCCS API to the VSS version control “codebase” database on the build machine. • The JDBC RowSet 1.0 spec (part of JDBC 2.0 Optional package API) should be used for client-side caching. This concept is similar to Microsoft COM+ concept of disconnected recordsets. • When does Rational Rose “synchronize” code with VSS codebase? The “code freeze” time looks good for this, after the build is installed and tested on the build machine, with no major regressions. • Test planning documentation pending until Vijay Aliseti begins working on it. • The command line scripts need to be developed- for labeling the VSS codebase, incremental builds, and to do the master build. • Defect/Feature tracking process and tool TBD.Confidential Page 14 of 15 1/17/2013
  • 15. Project BCOOL Standards Document Epilogue Eat own dog food. Courtesy: “Show-Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft” By G. Pascal Zachary. Hardcover (October 1994)Confidential Page 15 of 15 1/17/2013
  • 16. Project BCOOL Standards Document Epilogue Eat own dog food. Courtesy: “Show-Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft” By G. Pascal Zachary. Hardcover (October 1994)Confidential Page 15 of 15 1/17/2013