Software Management Systems

scacchicgardenΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 3 χρόνια και 5 μήνες)

72 εμφανίσεις

Software Management Systems


Support for mbone videoconferencing for the research community
-

SUMOVER




Socrates Varakliotis

Piers O’Hanlon


{kirstein, piers, socrates}@cs.ucl.ac.uk

Peter Kirstein



UCL Computer Science

28
-
30 November 2005

2

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

What are they?


Configuration management/control (CMS)


management and control of features and changes of an
automated information system, throughout its development and
operational life


Source code or s/w configuration management (SCM)


a methodology to control and manage a software development
project



"set of activities designed to control change by identifying the work products that are likely to

change, establishing relationships among them, defining mechanisms for managing different

versions of these work products, controlling the changes imposed, and auditing and reporting

on the changes made.“






R. Pressman, ‘
Software Engineering: A Practitioner's Approach’

3

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Outline


Part A: Revision management systems


Part B: Bug/feature tracking systems


Part C: Static analysis tools


Part D: Testing tools

4

28
-
30 Nov. 2005

SUMOVER Workshop, UCL


Part A

Revision management systems

5

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Revision management


Aka revision control (RCS) or version control

a)
Distributed:

b)
Non
-
distributed

c)
Other



History

1970’s: Unix make, diff, SCCS

1980’s: RCS, patch

1985’s: CVS

2000’s: Arch, BitKeeper

6

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Git


Directory content manager (git is a filesystem, not SCM!)


A tree history storage system, ‘plumbing’ not ‘porcelain’


Designed to handle very large and complex projects (Linux
kernel tree > 2.6.12 and others)


Every working directory is a full repository


Design principle: speed & efficiency for project manager
and developers


Not using centralised server

7

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Git: Cogito


Set of scripts that build a SCM around git and
simplify its usage


A couple of web
-
based front ends developed

8

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

CVS


Client
-
server architecture, originally built on top of
RCS


Very popular with open source community


Compare files, request complete history of
changes, check out historical snapshot,
anonymous read access, branching


Currently used for UCL mbone tools (VRVS?)

9

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

CVS (2)


Uses delta compression


Various web
-
based front ends, like ViewCVS


Limitations:


Cannot rename files


Cannot delete modules (directories)


Limited support for UNICODE files

10

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Subversion: svn


Modern ‘replacement’ for CVS


Can run as standalone server (svnserve) or via Apache
(svn uses URLs to identify versioned resources) => http
logging available


If Apache is used then the most recent repository browsing
is available


Svn supported by ViewCVS (adds history browsing,
coloured diffs, syntax colouring via enscript, but no
cvsgraph)


Integrates well with Trac


Used by VideoPresence (Rhys Hawkins)

11

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

GNU Arch


Each revision is uniquely globally identifiable


Source tree depth scalability


allows easy merging


Decentralised:


Local copies read only, no need for authorised access, work offline,
publish changeset, modifications manually merged by head
developer


+ Allows renaming, atomic commits…


-

Difficult to learn, large command set, unusual naming
conventions (difficult to port), doesn’t scale well (width).

12

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

BitKeeper, BK/Web


Proprietary


Community version known from Linux kernel
development


13

28
-
30 Nov. 2005

SUMOVER Workshop, UCL


Part B

Bug/feature tracking systems

14

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Bugzilla


Generic web
-
based bug tracking system,
developed and used by the Mozilla foundation


Requires web server and D/B


Anyone can submit bugs, assigned to developers,
status updates, user notes, code examples


AG dev team uses it


15

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Trac


Minimalistic approach to web
-
based project
management


Combines:


Wiki


Issue/bug tracking database


Interface to svn


Using wiki markup it builds a network of links
between bugs/issues/tasks, code changes, wiki
text, documentation and source files

16

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Trac (2)


Relatively good support from the community:


Scripts for ticket and bug data importing and conversion from other
systems (Bugzilla, SourceForge, Mantis)


Scripts have limitations => manual editing may be required


Written in Python as a single CGI script and can be extended
easily with plug
-
ins (webadmin interface, account manager)


Uses SQLite d/b


Supports syntax colouring


RSS feeds for the Trac browser to follow specific dir/file


Future integration with CVS and Arch

17

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Mantis


Web
-
based bug
-
tracking system in beta phase


Written in PHP, requires MySQL and webserver


Claims to be lightweight:


Core system supports basic functionality


Advanced features come modular in PHP


Not tied to any specific RCS

18

28
-
30 Nov. 2005

SUMOVER Workshop, UCL


Part C

Static analysis tools

19

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Static analysis tools


Programs that examine source code and report on
possible weaknesses


Source code checking:


Security vulnerabilities


flawfinder: useful for quickly finding and removing at least some
potential security problems
before

a program is widely released to the
public


Memory leaks


Software Assurance Metrics and Tool Evaluation


systematic set of activities that ensures that software processes
and products conform to requirements, standards, and procedures

20

28
-
30 Nov. 2005

SUMOVER Workshop, UCL


Part D

Testing tools

21

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Testing tools


Unit test


UCL common library


22

28
-
30 Nov. 2005

SUMOVER Workshop, UCL

Your feedback


What CMS/bug tracking systems are you using?


Why would you prefer one system over another?


Most common tasks?


Problems experienced?


Management overhead?


Size of development team?


A system to serve the mbone tools development
community for the longer term