Software Tools

Total Page:16

File Type:pdf, Size:1020Kb

Software Tools Integrated Development Environments ! An IDE usually includes ! You should know how to use Software Tools " Source code editor (usually a debugger! with color highlighting) " Place breakpoints " Compiler or interpreter " Step through code " Tools for “build # Step over automation” (i.e., keeps # Step into track of what needs to be # Step out of… recompiled) " Examine current call-stack " Debugger " Examine values of active " Class browser (for variables languages with classes) Lecture 9 # Some debuggers allow you to change a variable value Top 20 Tools of All Time CS 212 – Fall 2007 (http://uk.gizmodo.com/) ! Examples: DrJava, Eclipse " In Eclipse: As you type, ! Debuggers are usually much gives you list of options + more effective than placing documentation print-statements Unix Programming Languages ! Original version by Ken Thompson ! Philosophy ! Some of the languages used in ! Some other languages (from a (Bell Labs) in 1969 " Almost everything is a text file Cornell’s CS Dept Yahoo list) " Little programs (utilities) to do " Java ABC, ActiveX, Ada, AMOS, APL, little tasks ! An interactive, multi-user # 100, 211, 212 AppleScript, Assembly, awk, BASIC, operating system (not the first " Connect programs with pipes & BETA, C and C++, C#, Cecil, Cilk, redirection " C, C++, C# such system, but an early one) CLU, COBOL, ColdC, cT, Curl, Delphi, # % who | sort | lpr # Many of the upper level Dylan, Dynace, Eiffel, Forth, # Print an alphabetical list of who is courses (networks, Fortran, Guile, Haskell, Icon, IDL, ! Unix is closely tied to the active on the system distributed computing) Infer, Intercal, J, Java, JavaScript, development of C ! Linux is an open software version " Matlab JCL, JOVIAL, Limbo, Lisp, Logo, M - " Unix was originally written in PDP- of Unix # 100M, numerical analysis MUMPS, Magma, ML, Modula-2, 7 Assembly Language " Since 1991 courses Modula-3, Oberon, Obliq, Occam, " Then in B # Linus Torvalds (the kernel) " ML OpenGL, Pascal, Perl, PL/I, Pop, # " Then in C Richard Stallman (GNU) # Functional programming PostScript, Prograph, Prolog, Python, " Widely used for high-performance Rexx, Ruby, SAS, Sather, Scheme, " B and C were basically created to # 312, logic-related courses ScriptEase, SDL, Self, SETL, write Unix computing " … Smalltalk, SQL, Tcl/Tk, TOM, Verilog, VHDL, VRML, Visual, Visual ! Mac OS X is built on Unix ! Fortran, C, C++ are used widely in Engineering Basic, Z Scripting Languages Regular Expressions ! A script is a sequence of ! Example scripting languages: ! Common goal: search/match/do ! Some of the rules for regular common commands made into a Unix shell, Python, Perl, stuff with strings expressions single program Tcl (Tool command language) " A regular character matches " Unix uses shell scripts ! Idea: use special strings to itself " The shell is the interactive ! Some Python code: match other strings " A . matches any character interface to Unix " * implies 0 or more " Some characters are meta- " occurrences (of preceding You can combine commands class Stack (object): characters item) from the Unix shell to create def __init__ (self): programs self.stack = [ ] " + implies 1 or more def put (self, item): ! Regular expressions are closely occurrences self.stack.append(item) related to finite state ! A scripting language is " \ implies following character is def get (self): automata (CS 381/481) treated as a regular character " Usually easy to learn return self.stack.pop() " [ … ] matches any one " Interpreted instead of def isEmpty (self): return len(self.stack) == 0 character from within the compiled brackets; - can be used to indicate a range ! A regular expression in Java "((\\.[0-9]+)|([0-9]+\\.[0-9]*))" 1 Makefiles Memory Management ! Used when ! Once you have a makefile ! Modern programs are ! Manual memory management compiling/recompiling a " You recompile whatever is " Long running bugs large system (several necessary by typing make " Make dynamic use of " Dangling pointers interdependent files) memory # Memory has been freed, but part of the code is " Checks which files have ! To create a makefile changed and only still trying to use it " Usual strategy is to find ! Garbage collector recompiles those that are " Memory leaks some examples and modify necessary " Some languages (e.g., Java, # Memory that is no longer them C#) use a garbage " Because of dependencies, used, but is not freed " There are automated tools collector to reclaim unused more than just the # Long running program ⇒ for building makefiles memory changed files can need to run out of memory be recompiled " Other languages (e.g., C, C++) require programmers " Of course, can always to manage their own ! There are tools to help recompile everything, but memory catch such bugs this can be too expensive " E.g., purify for C, C++ Garbage Collection Garbage Collector Schemes ! Want to keep any object ! Once “not-in-use” objects ! Mark and Sweep ! For either scheme that can be reached from are found " Mark every object as “not-in- " Can “stop the world” use” program’s variables " Can reclaim the memory " Can interleave (i.e., take turns) " Starting from the call stack, " Either directly or through for re-use " Can run concurrently visit every reachable object, other objects that can be " Can also compact memory marking it as “in-use” ! Java’s current garbage reached # I.e., move all the “in-use” " Everything still marked “not- " Program’s variables = objects to another in-use” can be reclaimed collector anything in the call stack memory block (without " A 2-tier scheme (old gaps between objects) generation; new generation) ! Reference Counting " A mark-and-sweep method " Every object keeps a count of " With compaction how many pointers reference it " When count is zero, memory ! Java’s garbage collection can be reclaimed scheme has changed as new " Problem: cycles! Java versions were released Use of Standard Data Structures Version Control ! Packages for widely-useful ! For example, Java provides ! Allows you to keep track of ! CVS (Concurrent Version data structures " Interfaces changes for a large project System) " Java Collections # List, Map, Set " Can back up to old version " Open source Framework " Classes if changes create problems " Widely used tool for " C++ STL (Standard # ArrayList, LinkedList, " Multiple contributors can version control Template Library) HashMap, TreeMap, work on the system " Maintains a history of all HashSet, TreeSet changes made " " Provide tools for Algorithms " Supports branching, # Arrays.sort, # Sorting & searching allowing several lines of Arrays.search,… # Iteration development # List " Provides mechanisms for # Set merging branches back # Map (or dictionary) together when desired # Stack ! SVN (Subversion) # Queue " An alternative to CVS # Priority Queue 2 Profiling More Advanced Profiling ! The goal is to make a program run faster ! Need additional profiling ! Example: " Rule of thumb: 80% of the time is spent in 20% of the code tools for applications that VTune Performance " No use improving the code that isn’t executed often " Are multithreaded Analyzer (from Intel) " How do you determine where your program is spending its time? " Use multiple cores " Can monitor ! People are notoriously bad at predicting the most computationally # Memory usage expensive parts of a program # Performance during file ! Part of the data produced by a profiler (Python) I/O 2649853 function calls (2319029 primitive calls) in 53.502 CPU seconds # Thread overhead and Ordered by: standard name synchronization ncalls tottime percall cumtime percall filename:lineno(function) # 2521 0.227 0.000 1.734 0.001 Drawing.py:102(update) Load balancing 7333 0.355 0.000 0.983 0.000 Drawing.py:244(transform) # Idle time 4347 0.324 0.000 4.176 0.001 Drawing.py:64(draw) # Communication 3649 0.212 0.000 1.570 0.000 Geometry.py:106(angles) bottlenecks 56 0.001 0.000 0.001 0.000 Geometry.py:16(__init__) 343160/34316 9.818 0.000 12.759 0.000 Geometry.py:162(_determinant) 8579 0.816 0.000 13.928 0.002 Geometry.py:171(cross) 4279 0.132 0.000 0.447 0.000 Geometry.py:184(transpose) A List of Software Tools (from Wikipedia) ! No hammer? No screw or ! Revision control: Bazaar, Bitkeeper, ! Parser generators: Lex, Yacc, Parsec screwdriver? Bonsai, ClearCase, CVS, Git, GNU arch, ! Bug Databases: gnats, Bugzilla, Trac, Mercurial, Monotone, PVCS, RCS, SCM, Atlassian Jira, LibreSource ! Why the rifle and not the SCCS, SourceSafe, SVN, LibreSource ! Debuggers: gdb, GNU Binutils, valgrind Synchronizer cannon? Why the watch and ! Memory Leaks/Corruptions Detection: ! Interface generators: Swig dmalloc, Electric Fence, duma, Insure++ not the clock? ! Build Tools: Make, automake, Apache ! Memory use: Aard ! No electricity? Ant, SCons, Rake, Flowtracer ! Code coverage: GCT, CCover ! Compilation and linking tools: GNU ! toolchain, gcc, Microsoft Visual Studio, Source-Code Clones/Duplications CodeWarrior, Xcode, ICC Finding: CCFinderX ! ! Static code analysis: lint, Splint Refactoring Browser ! ! Search: grep, find Code Sharing Sites: Freshmeat, Krugle, Sourceforge, ByteMyCode, UCodit ! Text editors: emacs, vi ! Source code generation tools ! Scripting languages: Awk, Perl, Python, ! REXX, Ruby, Shell, Tcl Documentation generators: Doxygen, help2man, POD, Javadoc, Pydoc/Epydoc 3.
Recommended publications
  • Language-Level Support for Exploratory Programming of Distributed Virtual Environments
    In Proc ACM UIST ‘96 (Symp. on User Interface Software and Technology), Seattle, WA, November 6–8, 1996, pp. 83–94. Language-Level Support for Exploratory Programming of Distributed Virtual Environments Blair MacIntyre and Steven Feiner Department of Computer Science, Columbia University, New York, NY, 10027 {bm,feiner}@cs.columbia.edu http://www.cs.columbia.edu/~{bm,feiner} Abstract resulted in an unmanageable welter of client-server relation- ships, with each of a dozen or more processes needing to We describe COTERIE, a toolkit that provides language- create and maintain explicit connections to each other and to level support for building distributed virtual environments. handle inevitable crashes. COTERIE is based on the distributed data-object paradigm for distributed shared memory. Any data object in COTE- We spent a sufficiently large portion of our time reengineer- RIE can be declared to be a Shared Object that is replicated ing client-server code that it became clear to us that our fully in any process that is interested in it. These Shared implementation of the client-server model was unsuitable Objects support asynchronous data propagation with atomic for exploratory programming of distributed research proto- serializable updates, and asynchronous notification of types. The heart of the problem, as we saw it, was a lack of updates. COTERIE is built in Modula-3 and uses existing support for data sharing that was both efficient and easy for Modula-3 packages that support an integrated interpreted programmers to use in the face of frequent and unantici- language, multithreading, and 3D animation. Unlike other pated changes.
    [Show full text]
  • Ansys SCADE Lifecycle®
    EMBEDDED SOFTWARE Ansys SCADE LifeCycle® SCADE LifeCycle is part of the Ansys Embedded Software family of products and solutions that includes modules providing unique support for application lifecycle management. This product line features requirements traceability via Application Lifecycle Management (ALM) tools, traceability from models, configuration and change management, and automatic documentation generation. SCADE LifeCycle enhances the functionalities of Ansys SCADE® tools with add-on modules that bridge SCADE solutions and Requirement Management tools or PLM/ALM (Product Lifecycle Management/ Application Lifecycle Management) tools. With SCADE LifeCycle, all systems and software teams involved in critical applications development can manage and control their design and verification activities across the full life cycle of their SCADE applications. / Requirements Traceability SCADE LifeCycle Application Lifecycle Management (ALM) Gateway provides an integrated traceability analysis solution for safety-critical design processes with SCADE Architect, SCADE Suite, SCADE Display, SCADE Solutions for ARINC 661 and SCADE Test: • Connection to ALM tools: linkage to DOORS NG, DOORS (9.6 and up) Jama Connect, Siemens Polarion, Dassault Systèmes Reqtify 2016. • Graphical creation of traceability links between requirements or other structured documents and SCADE models. • Traceability of test cases from SCADE Test Environment projects. • Bidirectional navigation across requirements and tests. • Customizable Export of SCADE artifacts to DOORS or Jama Connect. • Compliant with DO-178B, DO-178C, EN 50128, IEC 61508, ISO 26262, and IEC 60880 standards. EMBEDDED SOFTWARE / SCADE LifeCycle® // 1 / Project Documentation Generation SCADE LifeCycle Reporter automates the time-consuming creation of detailed and complete reports from SCADE Suite, SCADE Display, SCADE Architect and SCADE UA Page Creator for ARINC 661 designs through: • Generation of reports in RTF or HTML formats.
    [Show full text]
  • Configuration Management for Distributed Development
    Software Configuration Management Configuration Management for Distributed Development By Nina Rajkumar. © Think Business Networks Pvt. Ltd., July 2001 All rights reserved. You may make one attributed copy of this material for your own personal use. For additional information or assistance please contact Nina at (+91)422-320-606. www.thinkbn.com • 697A, Trichy Road, Coimbatore, TN 641045. Table of Contents Configuration Management for Distributed Development.............................. 4 Configuration Management ................................................................................ 5 Distributed Development.................................................................................... 5 Cases of Distributed Development ..................................................................... 6 Distance Working ........................................................................................... 6 Outsourcing..................................................................................................... 6 Co-located Groups .......................................................................................... 7 Distributed Groups.......................................................................................... 7 Architecture ........................................................................................................ 8 Remote Login.................................................................................................. 8 Several sites by Master-Slave connections ....................................................
    [Show full text]
  • Obliq, a Language with Distributed Scope
    Obliq A Language with Distributed Scope Luca Cardelli June 3, 1994 © Digital Equipment Corporation 1994 This work may not be copied or reproduced in whole or in part for any commercial purpose. Permis- sion to copy in whole or in part without payment of fee is granted for nonprofit educational and re- search purposes provided that all such whole or partial copies include the following: a notice that such copying is by permission of the Systems Research Center of Digital Equipment Corporation in Palo Alto, California; an acknowledgment of the authors and individual contributors to the work; and all applicable portions of the copyright notice. Copying, reproducing, or republishing for any other pur- pose shall require a license with payment of fee to the Systems Research Center. All rights reserved. Abstract Obliq is a lexically-scoped untyped interpreted language that supports distributed object-oriented computation. An Obliq computation may involve multiple threads of control within an address space, multiple address spaces on a machine, heterogeneous machines over a local network, and multiple net- works over the Internet. Obliq objects have state and are local to a site. Obliq computations can roam over the network, while maintaining network connections. Contents 1. Introduction ................................................................................................................................. 1 1.1 Language Overview ............................................................................................................
    [Show full text]
  • GIT—A Stupid Content Tracker
    GIT—A Stupid Content Tracker Junio C. Hamano Twin Sun, Inc. [email protected] Abstract The paper gives an overview of how git evolved and discusses the strengths and weaknesses of its design. Git was hurriedly hacked together by Linus Torvalds, after the Linux kernel project lost its license to use BitKeeper as its source code management system (SCM). It has since 1 Low level design quickly grown to become capable of managing the Linux kernel project source code. Other projects have started to replace their existing Git is a “stupid content tracker.” It is designed SCMs with it. to record and compare the whole tree states ef- ficiently. Unlike traditional source code control Among interesting things that it does are: systems, its data structures are not geared to- ward recording changes between revisions, but for making it efficient to retrieve the state of in- 1. giving a quick whole-tree diff, dividual revisions. 2. quick, simple, stupid-but-safe merge, The unit in git storage is an object. It records: 3. facilitating e-mail based patch exchange workflow, and • blob – the contents of a file (either the 4. helping to pin-point the change that caused contents of a regular file, or the path a particular bug by a bisection search in pointed at by a symbolic link). the development history. • tree – the contents of a directory, by recording the mapping from names to ob- The core git functionality is implemented as a jects (either a blob object or a tree object set of programs to allow higher-layer systems that represents a subdirectory).
    [Show full text]
  • Bazaar, Das DVCS
    Bazaar, das DVCS Marek Kubica 20. November 2008 Marek Kubica Bazaar, das DVCS Vorweg ein paar Infos Mit was ich so spiele Bazaar in der Arbeit Mercurial für Python-Projekte Git für den Rest Welche Spielzeuge lass ich links liegen CVS wozu noch wo es SVN gibt? SVN wozu noch wenn es DVCS gibt? darcs lohnt sich nicht mehr monotone, codeville, arch obsolete das selbsgehackte, tolle DVCS deines Nachbarn ;) Marek Kubica Bazaar, das DVCS Geschichte In the beginning, there was GNU Arch Marek Kubica Bazaar, das DVCS GNU Arch Die Anfänge von DVCS CVS stinkt, wir brauchen was besseres SVN ist Evolution, keine Revolution GNU Arch war das erste DVCS mit dem ich in Kontakt kam (larch) fürchterlich kompliziert wurde dann von tla ersetzt immer noch fürchterlich Canonical hat tla 1.2 geforkt und Bazaar, baz genannt Paralell dazu: revc = Arch 2.0 Marek Kubica Bazaar, das DVCS Baz als Rettung? Von heiÿen Kartoeln baz war in C Was passiert: Canonical ruft Bazaar-NG ins Leben, bzr, lässt baz fallen Bazaar-NG wird in Bazaar umgetauft baz ist tot, tla ist tot, larch ist tot, revc ist bedeutungslos Hurra, GNU Arch ist endlich tot, es lebe bzr! Marek Kubica Bazaar, das DVCS bzr, der Retter Was bietet Bazaar? in Python geschrieben, mit einigen Speedups in Pyrex (C) reguläre Releases (quasi jeden Monat) Einfache Bedienung Meist ausreichende Performance Umfangreiche Dokumentation: Programmmeldungen, Manpages, Wiki, IRC-Channel (wenn man Geduld hat) Flexible Einsatzmöglichkeiten (verschiedene Workows) 1 Git mit Bazaar simulieren 2 SVN in Bazaar nachbauen (für Nostalgiker) freier Hoster wo man Code hochladen kann (Launchpad) Marek Kubica Bazaar, das DVCS Zeitleiste 2005 war eine aufregende Zeit 26.
    [Show full text]
  • 85 Attachment 1 –Organizational Chart
    Contract No. 071B3200143 Attachment 1 –Organizational Chart 85 Contract No. 071B3200143 Appendix A - Breakdown of Hardware and Related Software Table 1: Hardware Cost ($): State Brand, Model # Item Specifications will provide from Comments and Description existing Contracts Total # of Virtual The hardware is Machines: 48 sized for Production, QA/Staging, Secure-24 VMware Total # of Virtual Development, and Cluster Access for CPUs: 96 Sandbox Server deploying ISIM, environments in the ISAM and ISFIM Total Virtual RAM: primary data center components 416 GB and for Production, and QA environments in the OS: RedHat Linux secondary data 6.x center The total storage is estimated for Total Storage: 35.7 Production, , TB QA/Staging, Development and Enterprise Class Sandbox Storage (3.8TB of Bronze SAN Storage Tier, 15.8TB of environments in the Silver Tier, 5.1TB of primary data center Logs Tier, 11TB of and for Production, Gold Tier) QA environments in the secondary data center CD/DVD Backup Device None None Rack w/ Power Supply Rack mountable Redundant Power Screen None None A total of 10 Web Gateway appliances are estimated for Production, QA/Staging, Web Gateway Development and Any other Hardware (list) v7.0 Hardware Appliance Sandbox environments in the primary data center and for Production, QA environments in the secondary data center. TOTAL $ 86 Contract No. 071B3200143 Table 2: Related Software Software Component Product Name Cost ($): State # of Licenses Comments License and Version will provide from existing Contracts Contractor user laptops already include this software. We will reuse the Report writers MS Office 2010 State owned software State of Michigan user licenses laptops will need this software for up to 4 users.
    [Show full text]
  • Using Visual COBOL in Modern Application Development Micro Focus the Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK
    Using Visual COBOL in Modern Application Development Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com © Copyright 2018-2020 Micro Focus or one of its affiliates. MICRO FOCUS, the Micro Focus logo and Visual COBOL are trademarks or registered trademarks of Micro Focus or one of its affiliates. All other marks are the property of their respective owners. 2020-08-25 ii Contents Using Visual COBOL in Modern Application Development ........................... 4 Introduction to Modern Application Development ................................................................4 What is Modern Application Development? ..............................................................4 Key Concepts in Modern Application Development ..................................................5 Steps Involved in Modern Application Development ................................................ 6 Agile Methods ..................................................................................................................... 7 Introduction to Agile Methods ...................................................................................7 Agile Development Workflow ....................................................................................7 Agile Development and Micro Focus Development Tools .........................................9 Continuous Integration ...................................................................................................... 11 Introduction to Continuous Integration ..................................................................
    [Show full text]
  • Revision Control Solutions to Protect Your Documents and Track Workflow
    Revision Control Solutions to Protect Your Documents and Track Workflow WHITE PAPER Contents Overview 3 Common Revision Control Systems 4 Revision Control Systems 4 Using BarTender with Revision Control Systems 4 Limitations of Windows Security 5 Librarian 6 Librarian Features 6 Benefits of Using Librarian with BarTender 7 File States, Publishing and Workflow in Librarian 8 Don’t Forget About Security! 9 Related Documentation 10 Overview A revision control system is based around the concept of tracking changes that happen within directories or files, and preventing one user from overwriting the work of another. Some revision control systems are also used to establish and track workflow for the progression of a file through a series of states. The collection of files or directories in a revision control system are usually called a repository. These systems allow you to specify a directory, file or group of files that will have their changes tracked. This frequently entails users "checking out" and "checking in" files from a repository. Changes are tracked as the user edits the folder or file; these changes will be visible to all users once the item is checked back in. Each revision is annotated with a timestamp and the person making the change. Some of the benefits of revision control include: l Automatic revision numbering for easy tracking. l Enhanced security. Not only does a "check in" and "check out" system keep one user's work from overwriting another, it can prevent unauthorized or even malicious users from accessing a document. l Some revision control systems include publishing "states," which allow you to track the publishing progress of a document and establish a logical, traceable workflow.
    [Show full text]
  • A Visual Programming Language for Data Flow Systems
    Rochester Institute of Technology RIT Scholar Works Theses 10-14-1988 A Visual Programming Language for Data Flow Systems Timothy J. Wilson Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Wilson, Timothy J., "A Visual Programming Language for Data Flow Systems" (1988). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. Rochester Institute of Technology School of Computer Science and Technology A Visual Programming Language for Data Flow Systems by Timothy J. Wilson A thesis submitted to The Faculty of the School of Computer Science and Technology in partial fulfillment of the requirements for the degree of Master of Science in Computer Science. Approved by: Dr. Peter Lutz 10-18-88 Dr. Andrew Kitchen 10-18-88 Dr. Peter Anderson 10-18-88 October 14, 1988 Abstract The concept ofvisual programming languages is described and some necessary terms are defined. The value of visual languages is presented and a number of different visual languages are described. Various issues, such as user interface design, are discussed. As an example of a visual programming language, a graphical data flow programming environment is developed for the Macintosh workstation which functions as a preprocessor to a data flow simulator developed at RIT. Examples are presented demonstrating the use of the language environment. Issues related to the devel opment of the programming environment are described and conclusions regarding the development ofvisual programming languages in general are presented.
    [Show full text]
  • Analysis and Comparison of Distributed Version Control Systems
    Fachhochschul-Bachelorstudiengang SOFTWARE ENGINEERING A-4232 Hagenberg, Austria Analysis and Comparison of Distributed Version Control Systems Bachelorarbeit Teil 1 zur Erlangung des akademischen Grades Bachelor of Science in Engineering Eingereicht von Daniel Knittl-Frank Begutachter: DI Dr. Stefan Wagner Hagenberg, Juni 2010 Contents Abstract iii Kurzfassung iv 1 Introduction1 1.1 Motivation............................1 1.2 Goals...............................2 1.3 Content..............................2 2 Version Control in General3 2.1 Workflows.............................4 2.2 Foundations............................5 2.2.1 Glossary..........................5 2.2.2 Repository........................6 2.2.3 Working Directory....................7 2.2.4 Diff and Patch......................7 2.2.5 Merge...........................9 2.2.6 Mainline, Branches and Tags.............. 12 3 Centralized Version Control 14 3.1 Tools................................ 14 3.1.1 CVS............................ 14 3.1.2 Subversion........................ 15 4 Distributed Version Control 17 4.1 Differences............................. 17 4.2 Concepts............................. 19 4.2.1 Revision identifiers.................... 20 4.2.2 Integrity.......................... 20 4.2.3 History representation.................. 21 4.3 Tools................................ 21 4.3.1 Bazaar........................... 22 4.3.2 Git............................. 27 4.3.3 Mercurial......................... 32 i Contents ii 5 Comparison 38 5.1 Testing Scenario......................... 38 5.2 Results............................... 38 6 Conclusion 46 Abstract Version and configuration control systems have played an essential role in software development for the last decades. Starting with the new millennium a new trend surfaced, distributed version control: dedicated central servers for few authorized users lose importance in favor of a more dynamic workflow, in which every developer works with a copy of a project's complete history and changes are synchronized ad-hoc between developers.
    [Show full text]
  • Improving the Aircraft Design Process Using Web-Based Modeling and Simulation
    Reed. J.;I.. Fdiet7, G. .j. unci AJjeh. ‘-1. ,-I Improving the Aircraft Design Process Using Web-based Modeling and Simulation John A. Reed?, Gregory J. Follenz, and Abdollah A. Afjeht tThe University of Toledo 2801 West Bancroft Street Toledo, Ohio 43606 :NASA John H. Glenn Research Center 2 1000 Brookpark Road Cleveland, Ohio 44135 Keywords: Web-based simulation, aircraft design, distributed simulation, JavaTM,object-oriented ~~ ~ ~ ~~ Supported by the High Performance Computing and Communication Project (HPCCP) at the NASA Glenn Research Center. Page 1 of35 Abstract Designing and developing new aircraft systems is time-consuming and expensive. Computational simulation is a promising means for reducing design cycle times, but requires a flexible software environment capable of integrating advanced multidisciplinary and muitifidelity analysis methods, dynamically managing data across heterogeneous computing platforms, and distributing computationally complex tasks. Web-based simulation, with its emphasis on collaborative composition of simulation models, distributed heterogeneous execution, and dynamic multimedia documentation, has the potential to meet these requirements. This paper outlines the current aircraft design process, highlighting its problems and complexities, and presents our vision of an aircraft design process using Web-based modeling and simulation. Page 2 of 35 1 Introduction Intensive competition in the commercial aviation industry is placing increasing pressure on aircraft manufacturers to reduce the time, cost and risk of product development. To compete effectively in today’s global marketplace, innovative approaches to reducing aircraft design-cycle times are needed. Computational simulation, such as computational fluid dynamics (CFD) and finite element analysis (FEA), has the potential to compress design-cycle times due to the flexibility it provides for rapid and relatively inexpensive evaluation of alternative designs and because it can be used to integrate multidisciplinary analysis earlier in the design process [ 171.
    [Show full text]