ebook img

NASA Technical Reports Server (NTRS) 20110015640: FPA Depot - Web Application PDF

2.7 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview NASA Technical Reports Server (NTRS) 20110015640: FPA Depot - Web Application

FPA Depot - Web Application Edwin M. MartinezAvila', Ricardo MUfiir, JamieSzafran3,Adam Dalton4 UniversityofPuertoRicoatArecibo [email protected] [email protected] 'NationalAeronauticsandSpaceAdministration [email protected] [email protected] Abstract-Lines of code (LOC) analysis is one of the it does not fully cover the development process, only the methods used to measure programmer productivity and coding implementation; in addition it is not a consistent estimate schedules ofprogramming projects. The Launch measure to compare productivity across different tools and Control System (LCS) had previously used this method to platforms. Overtime, engineers havecome to conclusion that estimate the amount of work and to plan development using the LOC metric to measure both programmer efforts. The disadvantage of using LOC as a measure of productivity and estimation ofthe programming timelines is effort is that one can only measure 30% to 35% of the not very effective. This stance is further solidified by the total effortofsoftware projects involves coding [8]. In the revelation that given two algorithms for implementing application, instead of using the LOC we are using identical functionality, the method with fewer linesofcode is function point for a better estimation of hours in each usually preferable. On the other hand, Function Point softwaretodevelop. Analyses offers improved project estimation because it is an independent methodology that can be used to compare Because ofthese disadvantages, Jamie Szafran of productsacross differingtoolsets, languages,and platforms. theSystem SoftwareBranch ofControlAnd DataSystems (NE-C3) at Kennedy Space Canter developed a web In 2009, Jamie Szafran was a student employee of the application called Function Point Analysis (FPA) Depot. Kennedy Space Center and assigned the task ofcreating the The objective of this web application is that the LCS first version of the Function Point Analysis Depot. At the software architecture team can use the data to more time, itwasalittledifferentfrom thespreadsheeta(seeFigure accurately estimate the effort required to implement I) that was being used by the Launch Control System (LCS) customer requirements. This paper describes the for the collectionoffunction and was processed by hand. The evolution of the domain model used for function point problem with the use ofspreadsheets is that the estimate of analysisas projectmanagerscontinuallystrivetogenerate costs cannot be automated. In 2010, Szafran was hired moreaccurateestimates. fulltime and tasked with re-designing the Function Point Analysts Depot (FPA Depot) under the direction ofsoftware Nomenclature architect at the time. This implementation was then used to storeFunction PointAnalysis results. These results were used LCS: LaunchControlSystem by the architects of the LCS project to estimate the effort NE-C: NASAEngineeringControl andDataSystems needed to implement the requirements of the customer. Ruby: Adynamic, reflective,general-purposeobject-oriented Furthermore as stated in FPA Depot Orientation for New programminglanguage Developers[Il, "the application is expectedto supportdata Rubyon Rails: Webapplication framework forthe Ruby correlation between the entry pointfunction ofanalysis of language. software engineers and requirements management tool DA: DevelopmentActivity currently in use by the LCSproject". The newest version of CSCI: ComputerSoftwareConfiguration Item the FPA Depot promises to provide the LCS a precise FPA: FunctionPointAnalyses technique to objectively estimate efforts required with more FPAVersion: Differentversionsofan FPA. precisionthanpreviously possible. Keywords--Java, Ruby-an-Rails, Web-Application,Server,Mid On June 6, 2011, Edwin Martinez was selected by - Level,database,anddesign. SpaceGrant Puerto Rico for workatNASA KSC asan intern to working in the Space Station Processing Facility (SSPF) INTRODUCTION with Engineering Support Software NE-C2 branch on the For a long time, "the software engineeringfield has LCS project. The assignment included migrating the FPA counted Lines of Code (LOC), which is a hard and fast Depot from version 4.1 to version 5.1. The project required measurementofthe amountofeffort, time, andresources that the restructuring ofaJava servermid-level (web service) and a software project takes"[l}. LOC has the disadvantage that creation ofnew methods for the schema 5.1. The work was was used development and changing all the methods to the coordinatedwiththeeffortsofRicardo Muniz, intern member newversion 5.1. ofthe NE-C3 branch, who restructured the interface side of thisapplication. B.NewClassesandMethods I ~ Ii- I-I~ e-....lIII The new classes were developed for this application ~- were: Developers, Developer Activities, CSCI, FPA Version, ~1'1"* ~I~ Actuals, and Granularity. The classes that existed before but 1lOlC'l1ojK.t~ were changed for this version were: FPA, HTTP Request fldImII~I!GI Saecn opot1I Handler, Database Interface, Sax Event Handler, Xml Tags, Pr_R", t.W~~ andXml Builder. Below,the mostimportantandbasicclasses Softwa<I~ ofmidlevelareexplained. Hordww.~ bInII""(l!Ol..... ~, I) Sax Event Handler: SAX stands for "the Simple API Cot1eJt~..Hoi for XML" [3]. This class contains methods that receive EJrbelldld::ornIlJllr........ ...............,..11I') the info in XML (e.g. see Figure 3) from any GUI, and RlfermaDIII send them to the Http Request Handler to input the ~~ bJd0-.F'" informationintothedatabase. ........L"flcII....lUI ~bDnDlbG""... -,..b..3..d.D.loll4llIaT_- <developer> <deV81operHa.e>SaDeOne</developer &me> <userna.e>8aD8U8er</u8ername> </developer> FromFPADepotOrientationforNewDevelopers[I] 2) Http RequestHandler: ThisclassreceivesGET, POST PUT and DELETE methods and, the combined with the This paper is organized as follows. Section II URL determines what function will be processed. PUT, discusses thetools, methodsand approachesthatwere used in DELETE or POST contain information in XML format creating the Java mid-level of the application. Se~tion I~I and are parsed before being sent to the Sax Event describes the design ofthe FPA Depotinterface. Section IV IS Handler where the database is updated. On the other the results, section V is the conclusion, and section VI hand, ifthe class Http Request Handler receives a GET containsthereferencesforthispaper. request, itgoesdirectly tothe DatabaseInterfaceclassto gettheinformationfrom thedatabase. II.IMPLEMENTAnONOFTHEJAVAMID- LEVEL 3) Database Interface: This class is responsible for obtaining, creating, deleting, and modifying the data The Java mid-level is a web service, which is defined as from thetables inthe PostgreSQLdatabase.Thedataare "setofHypertext Transfer Protocol(HTTP) requestmessages obtainedfrom the databasethrough pre-specifiedqueries alongwith adefinition ofthe structure ofresponse messages, that provide additional security and abstraction by usuallyexpressedin an Extensible Markup Language (XML) preventing a user from interfacing with the database orJavaScript Object Notation (JSON) format [4}". This mid directly. level was developed to be functional independently of GUI implementation. GUI development could then be performed 4) Xml Builder: In this class, the data is retrieved from in different languages and use it with the mid level without databaseandconvertedto XML. problem. The changes made to the web ser:ice were implemented in accordance to REST (Representational State 5) Http Request Filter: This class is responsible for Transfer) style, athatworks by constrainingthe interfaceto a receiving the HTTP request from the Apache server and set of well-known, standard operations (specifically GET, filtering it using the REST protocol. In this way HTTP POST,PUT,andDELETE). operations can be routed to the appropriated Http Request Handlermethod. A. ToolsfortheJavaMid Level The design ofthe new schemafor the FPA Depotrequired configuration and development using a toolset consisting of the HTTP protocol, XML, the Apache Tomcat servlet container, and the PostgreSQL database. The Eclipse IDE c.OldSchema4.1 VersionFPADepot: The schema of versions 4.1 of the FPA Depot was revised to include information that would be moreusefultotheSoftwareArchitectureteam.Theoriginalschema(forthisrevision) wasthis: --------------------------~. I -----=:"I!! I ------1:I -- c4kn -..l':- IfK''*'"'l _.. ---*~~:::--- PK'''''"''l' kl} c _.:.... II ....~:- II II II II .~. II II II II II --c~....--- ,-- - - - - - - -II I -=- ~. _:~ (FromFPADepotOrientationforNewDevelopers[1]) Schema,lFPADepot4./ ----------------- D.NewSchema5.1 VersionFPADepot Inorderto utilizethechangeofthisschema,thedatabase had tobemigrated and theJavamid-level andRuby-on-RailsGUIhadtoberestructured. -_:- ..':. III -.Ji!:- ---:_"(1l1DJ' I I (FKC-=~:tiel" PIC.........."'Ijd} I I I "fk>. \fK,_.b.I_", P1C~'L~1 - -_:- - I!!I ~-- --).l.:.f!.I:IIo'l .-- I!l 1 --~'lIDJ' 1=~~:= - - ==;~ 1 1 - 1 1 I 1 IfK.~._J<, I P1C'-r-_~1 --"- '---~~_:-:-:---'--IIl' I _ ......- 1 :-.')-1=:=- :=-- 1,-----,_=,-.,.,---:::1 .-k.. 1 =-~--..:-- 1 I : - ....- 1 1 •......,..,... 1 1---:_.- 1~ 1__1... ~ __________________ ~........~..:_ ..--rI. 1 I -:::-:.,::=_ I - - - - - - - - - - - - - - - - - - - I I I _ ....._.:- ~~.--------------------~============~ I : J I ~~ 1 ) (FromFPADepotOrientation/orNewDevelopers[1]) Schema,}FPADepot5.1 ------------------------------------------------------------------- III.INTERFACEDESIGN With Active Resource we can do the same thing, but with fewer linesofcode. B.New InterfacesDeveloped TheGUI ofthe FPA Depotwasoriginallywritten by Jamie Szafran in Flex, an open-sourceversionofFlashthat is In order to change FPA Depotto the new version 5.1, and acombinationofActionScriptandMXML,whichcalledback with the approval of our mentors, Ricardo Muniz and I RESTfully to the mid-level. Flash proved to have some security issues, and the decision was restructure the interface decided to change the design ofthe GUI to a new one. In additionweworkedonthedesignofnew interfaces: design using Ruby-on-Rails. The initial refactoringconcluded on June 25, 2011, the main screen of the GUI looked as follow: I. LoginInterface: This interface has a requirement for the new FPA Depot 5.1. Here Ricardo Munizcreated the method of user authentication. Using this method the user has to havean accountinorderto login totheapplication. FPA Depot v5.1 MOs 1'__ _~ eSCI', Signin - ".". .-J ----- -- ----. .... - A. ActiveResourceon Ruby: The GUI for the application version 4.1 was coding on Ruby on Rails, but without using Active Resource. Adam Dalton (NE-C2 branch), had the ideaofimplementing Active 2. WelcomeInterface: Resource in this application. Active Resource is a class in Rails that "providesaframeworkforhandlingthe connection In the main interface, wecan seeonthe leftofthepagethe between business objectsandRESTfulweb services"[7]. We new menu for the user that is different from version 4.1 (see are using the XML methods thatthis class has to request and figure 2). Here the user can selectone option inorderto edit, send data to the mid-level. Remember that the mid-level was addorshowthedatathatthey needfrom thedatabase. created to receive and send the data using XML. The Active Resourcemodel werecreatedinsuchawaythattheXMLthat wasautomaticallygenerated by RailswouldadheretotheAPI oftheJavamid-level. FPA Depot v5.1 *** Example of the code without Active Resource. This function isfor gettingallCSCls. .. DA's ,1 , CSCI's I . ,t 1 1 FPA's I", ~ .Itj ,I t' I1t ModoIPackages Analysis *** Example of the code using Active Resource. This 3.DevelopmentActivities Interface: function isforgettingallCSCls. This interface is to display all the data of development activities. If the user needs to edit a development activity, theyjust have to select one activity and changethe data. The user can also create a new developmentactivity, ifthey press the"newDAlink"thatis belowtheinterface. FPA Depot v5.1 ShowFunctionPointAnalysis DA's FPA Depot v5.1 CSCl's 10:2 FPA's N..me:fpa.-4 ModelPackages CrollllonTime:2011·07·2709:23:55.06 DA's DevelopmentActivities Analysis Requirement:yes CSCI's Granularity:type! Developer:Adams FPA's FPAVersions: ModdPackagos •UIl_'l_11IJ"RD15 •1'''.17'"11"'''' Analysis •I'U.Il.21U'D1'24III •2111_I7·Mn'PHa •IIn·_U14-27-.n •lilt-au14-4n1.M •Ull-aUl$:lT-H.2!Ii 4, DeveloperInterface: 6. Analysis Interface: Thisisthedeveloper interfacefor showingdeveloper This interface has different options for analysis and information. In this interface the user can see the FPAs that belongtothedeveloperandclickittoseetheFPAVersions. estimationofthe function pointsand labourhours. FPA Depot v5.1 FPA Depot v5.l S9*fInasIUsemameNotyou?~ ShowDeveloper DA's CSC!'s !D:1 DA's FPA's Nome:Edwln...m1gud ModelPackages Usernilme:emmudS CSCI's Analysis CSC1:CMS FPA's IBesHIbyActu.lIsI IBest·RbyModelPackag.I FPA's: IEstimillo_ byAc1u~sIIEstimat._ byModo!PackageI ModelPackages •!IlU •f2A) •fEA] Analysis 5. FunctionPointAnalysis Interface: IV. Results In this interface the user can see all the information ofthe FPA that they selected, as well as see all ofthe FPA Using Java, Ruby-on-Rails, and other tools, we versions thatexistinsideofthe FPA, Inaddition the usercan achieved good results for this application. Some results that createanewFPAversionoreditanexistingone. weachievedwere: • Part of the Java mid-level and the Ruby-on-Rails GUI werechangedto handlethenewschema. • Parts of the database interface, XML processing, andresultsdisplayingwerechanged. • TheXMLschemaintheaccompanyingrelease notes filewaschanged. • The GUI was changed to accommodate the new schema. V.CONCLUSION [7]Ruby on Railsv3.0.9,"ClassActiveResource::Base," http://api.rubyonrails.org/classes/ActiveResource/Base.html. The purpose of this project was to edit an existing web [8] Karmanadham V.V.G.B. Gollapudi, "Function Points or application that will be used by developers in order to input and track function point analysis results from the Launch Lines of Code? - An Insight", Global Microsoft Business Control System(LCS)softwaredevelopmentteam. This web Unit,http://sst.umt.edu.pk applicationwill serveasacentral pointfor storingall function analysis results. The LCS software architect team will also [9]"Sourcelinesofcode," use the data from this app to estimate the effort required to http://en.wikipedia.org/wiki/Source lines of code implementcustomerrequirements. In this internshipmy work was implementing schema changes in the Java server mid [10] Andy Hertzfeld,"-2000Linesof level and changing XML format for FPA to conform to the Codes...http://www.folklore.org/StoryView.py?project=Macin newdesign. tosh&story=Negative 2000 Lines Of Code.txt [11] "LinesofCodes'',http://c2.comlcgi/wiki?LinesOfCode VI.ACKNOWLEDGEMENTS [12] RogerHeller,"An IntroductiontoFunctionPoint I think that this internship at Kennedy Space Center has Analysis",2000-2002, http://www.gpmg.com/fp-intro.htm given me the experience to work hard in a real environment, and has also increased my chances of having success in finding a good job or even increased the chances ofworking permanently at NASA in the future. It has also helped to expandmy knowledgeandincreasedmyself-esteem. Finally, I would like to thank all ofthe people that helped me to learn new methods and new languages to improve my work. Also I would like to thank all of the reviewers for helping to improve the work. This work was carried out as part ofthe project ofNE-C3 and NE-C2 branch on the LCS project. VII.REFERENCES [1]J. Szafran," FPA DepotOrientationforNewDevelopers," Lastrevised7June2011. [2] D. Megginson,"AboutSax,"http://www.saxproject.org. [3] D. Megginson,"MegginsonTechnologiesLtd."2000- 05 -05. [4] Packageorg.apache.http.protocol,"TheApacheSoftware Fundation''http://hc.apache.org/httpcomponents-core ga/httpcore/apidocs/org/apache/http/protocol/HttpReguestHan dler.html, 2005- 2011. [5]Benjamin,"DiseiiodeInterfacesde Usuario Usables: UnaGuia RapidaparaDesarrolladoresdeSoftwareLibreydeC6digo Abierto."Web.8Dicember2004. http://mundogeek.net/traducciones/interfaces-usuario usableslgui.html [6] SamRuby, DaveThomas, DavidHeinemeierHansson, "AgileWebDevelopmentwithRails,"TheFacetsofRuby Series,2011-03-31

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.