18 March - PowerPoint PPT Presentation

About This Presentation
Title:

18 March

Description:

– PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 37
Provided by: csU8
Learn more at: http://wwwx.cs.unc.edu
Category:
Tags: march

less

Transcript and Presenter's Notes

Title: 18 March


1
18 March
  • Implementation

2
Tools
  • Do you need them?
  • When do you need them?
  • What can they do better then you?

3
Tools
  • Version Management
  • Build Systems
  • Integrated Development Environments
  • Documentation Extraction

4
Version Management
  • Both during and after development
  • Both code and documentation
  • Uses
  • Multi-developer change control
  • Releases
  • Support for different environments
  • Computers
  • Operating systems

5
Top 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 changes

6
Questions 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?

7
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 people

8
Basic 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 version

9
Need 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

10
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 early

11
No 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 version

12
But there are tools
  • CVS Concurrent Version System
  • Subversion (SVN)
  • SourceForge
  • Actually uses CVS and SVN, but a different model

13
Concurrent 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/wiki

14
What 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 files

15
Subversion
  • 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 performance

16
SourceForge
  • Open source development environment
  • Free web-based facility
  • Purchasable software as well
  • SourceForge.net supports
  • CVS and SVN
  • Compile farm
  • Trackers
  • Web site

17
Lots of Others
  • Google code
  • TRAC

18
Tools
  • Version Management
  • Build Systems
  • Integrated Development Environments
  • Document Extraction

19
Build System Functions
  • System configuration
  • Executing
  • preprocessors
  • compilers
  • linkers
  • Manage paths and libraries
  • Create executables and libraries

20
Types of Build Systems
  • Platform
  • specific
  • independent
  • Part of
  • version management systems
  • integrated development environments
  • nothing (standalone)

21
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 rebuilt

22
Open Source SystemsLots 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)

23
Apache Ant build
  • http//ant.apache.org
  • Introduction
  • Workflow elements
  • XML-based configuration files
  • Java based
  • contains features specifically for J2EE

24
Ant 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 true

25
Tools
  • Version Management
  • Build Systems
  • Integrated Development Environments
  • Document Extraction

26
Integrated 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 system

27
History
  • Early programming was not done with IDEs
  • Coding sheets and keypunches
  • Line command make files
  • Hardware enhancements
  • typewriter-like terminals
  • computer screens
  • Which of these enabled IDEs? Why?

28
Dartmouth Time Sharing System (1964)
  • Command line system
  • Supported Basic, Algol and FORTRAN
  • DTSS commands
  • NEW, OLD, LIST, SAVE, RUN
  • Line starting with number replaced that line in
    the current program
  • All other commands implied execution
  • Considered by most people the first IDE

29
Todays IDEs
  • Menu-driven
  • Proprietary
  • Microsoft Visual Studio (C, C, Visual BASIC)
  • Borland JBuilder (Java)
  • Apple XCode (Mac OS X)
  • Open Source
  • SharpDevelop (.NET)
  • GNU Emacs (Unix) major modes for languages

30
Eclipse
  • www.eclipse.org
  • Both an IDE and an architecture
  • IDEs
  • Java, C, C, C, Python, PHP, Perl, Smalltalk,
    CMFL (Coldfusion), Cobol, Fortran, Prolog, Erlang
  • (you get the idea)
  • IDE built using architecture
  • Enhancements through plug-ins

31
Tools
  • Version Management
  • Build Systems
  • Integrated Development Environments
  • Documentation Extraction

32
What can be extracted?
  • Documentation
  • Signatures
  • Building interfaces first
  • Initial documentation
  • Tools avoid update issues
  • Are there drawbacks?

33
Tools
  • Doxygen open source
  • Javadoc from Sun

34
Software Engineering Elaborated Steps
  • Concept
  • Requirements
  • Architecture
  • Design
  • Implementation
  • Unit test
  • Integration
  • System test
  • Maintenance

35
Models of Software Development
  • Process or people oriented
  • Early Watts Humphrey work people, later process
  • Different balances from each model
  • Number of iterations
  • Waterfall
  • Spiral
  • Agile

36
Software Craftmanship
  • Software craftsmanship (McBreen 2001)
  • Craft of writing software
  • Craft of using software
  • Distinguish from software engineering
  • Scope
  • Rigor
  • Relevant distinction?
Write a Comment
User Comments (0)
About PowerShow.com