Unformatted text preview:

22 FebruaryTournamentSoftware Engineering Elaborated StepsToolsVersion ManagementTop Reasons for Using Version ManagementQuestions AddressedDocumentation that Needs Version ControlBasic FunctionsNeed a BaselineWhen To Start Using Version ControlNo Special Tools NeededBut there are tools …Concurrent Versioning SystemWhat CVS DoesSubversionSourceForgeLots of OthersSlide 19Build System FunctionsTypes of Build SystemsPlatform Specific System: Unix makeOpen Source Systems: Lots of ThemApache Ant: build +++Ant Control Commands (sample)Slide 26Integrated Development EnvironmentHistoryDartmouth Time Sharing System (1964)Today’s IDEsEclipseXMLSlide 33Slide 34Script ExampleSlide 36HTML XMLRelated TechnologiesSlide 39How to Use XML22 FebruaryImplementationTournamentGood conceptImplementation problemsStatus:terminate or find an alternative that does not require fixed time or locationSoftware Engineering Elaborated StepsConceptRequirementsArchitectureDesignImplementationUnit testIntegrationSystem testMaintenanceToolsVersion ManagementBuild SystemsIntegrated Development EnvironmentsVersion ManagementBoth during and after developmentBoth code and documentationUsesMulti-developer change controlReleasesSupport for different environmentsComputersOperating systemsTop Reasons for Using Version ManagementBugs which were fixed reappearLatest versions of code overwritten by old versionsWhich version is the right one? I have so manyI have lost my latest changesQuestions AddressedDevelopment Issues How do we integrate parallel work?How do I know which changes were in the code that was being tested?Who changed this module? When? Why?Multi-version IssuesWhat versions have been made available to people?How do I assure that all versions get the changes that they need?What versions need to be re-released to support changes made?Documentation that Needs Version Control Manuals: need to reflect the variations of the different releasesTest data: what tests have been run and what was the resultBug reportsPlanned changesAny document being edited by multiple peopleBasic FunctionsAbility to add and remove changesAbility to identify differencesRecord of changes madeStorage of different versionsAbility to get access to one or more versionsIdentification of all the components needed to build any versionNeed a BaselineAgreed upon document or code levelin large project, formally reviewed and agreed uponin your project, requires consensus agreementBasis for further development in large project, changed only through formal change control procedureIn your project, changed when the developer is “comfortable”When To Start Using Version Control Should you use it during unit testing?What is unit testing?How much structure does your unit testing require?If unit testing requires significant infrastructure or scaffolding, it makes sense to start using it very earlyNo Special Tools NeededIdentify procedures and data needed toadd and remove changesidentify differencesrecord changes madestore different versionsget access to one or more versionsbuild any versionBut there are tools …CVS: Concurrent Version SystemSubversion (SVN)SourceForgeActually uses CVS and SVN, but a different modelConcurrent Versioning SystemDeveloped in the mid 80sPredecessor RCS (Revision Control System)Vrije University, AmsterdamNow open sourceUntil recently, the most commonly used toolximbiot.com/cvs/wikiWhat CVS DoesSupports hierarchical directoriesmanages changes on a per file basisRemote repository accessimport locally for useSupports parallel developmentmerges changesidentifies, does not resolve, conflictsBasic tasksgetting a working copycommitting changesreverting to prior leveladding or removing a filesynchronizing to the latest codetagging versions of filesSubversionhttp://subversion.tigris.org/improved version of CVSconsistent interfaces except for “compelling reasons”key changeseverything is versioned: directories and file meta-data as well as filesatomic commitsguarantee that all aspects are completed or none arebetter performanceSourceForgeOpen source development environmentFree web-based facilityPurchasable software as wellSourceForge.net supports CVS and SVNCompile farmTrackersWeb siteLots of OthersGoogle code TRACToolsVersion ManagementBuild SystemsIntegrated Development EnvironmentsBuild System FunctionsSystem configurationExecutingpreprocessorscompilerslinkersManage paths and librariesCreate executables and librariesTypes of Build SystemsPlatform specific independentPart of version management systems integrated development environmentsnothing (standalone)Platform Specific System: Unix makeUses a makefileCan build full systems or partsDefines dependenciesSimplest example: object file depends on its source fileExecutes commands for any (and only) pieces that need to be rebuiltOpen Source Systems:Lots of ThemGNU makeBeen around for a whileConsBuilt in PerlSConsPython scriptsCMake cross-platformused in conjunction with the native build environmentJamC and C++See also FT Jam (additional platforms)Apache Ant: build +++http://ant.apache.orgIntroductionWorkflow elementsXML-based configuration files Java basedcontains features specifically for J2EEAnt Control Commands (sample)Ant: Runs Ant on a supplied buildfileAntCall: Runs another target within the same buildfileExec: Executes a system command (can be OS specific)Java: Executes a Java class Parallel: Forks a new thread for another Ant tasksSequential: Grouping of commands Waitfor: Blocks execution until a set of specified conditions become trueToolsVersion ManagementBuild SystemsIntegrated Development EnvironmentsIntegrated Development EnvironmentWhat is an IDE? A programming environment integrated into a software applicationNormally includesSource code editorCompiler and or interpreterGUI development toolsBuild systemMay also includeGraphical tools (e.g., class hierarchy diagram)DebuggerClass browserVersion management systemHistoryEarly programming was not done with IDEsCoding sheets


View Full Document

UNC-Chapel Hill COMP 523 - Implementation

Download Implementation
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Implementation and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Implementation 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?