This lecture is formed of two
parts. In the first one,
Brice Copy presents the principles of
Iterative Development, why
it was introduced, where it is used and what the various
components are. In the second part,
Sebastian Lopienski,
after a setting the scene, presents the latest development
of CVS, advices about common problems and
pitfalls, suggest ways to use it and compare it to other
similar tools. |
Part 1 by
Brice Copy
What Is Iterative Development ?
— |
As opposed to monolithic approaches
(cascade model) |
|
— |
Perform full, fast and complete
development cycles (spec, code,
build, integrate, test and back
again) |
|
— |
In line with modern risk management
techniques |
|
— |
Enables you to cope with changing
requirements |
|
Why Iterative Development Was Introduced
— |
Cascade development too cumbersome |
|
— |
Full development cycles lets your
team members (Dev, QA, System) work
in parallel |
|
Where Is It Used
Ingredients List
— |
Source control management (SCM)
system |
|
— |
Somebody to write requirement and
design specifications |
|
— |
An eager team of developers ready to
work in parallel |
|
— |
Quality Assurance people |
|
— |
An integrated build tool (your Swiss
army knife) |
|
Integrated Build Tool
|
— |
Remote invocations stubs (Web
services, RMI etc...) |
|
— |
SCM integration (CVS, Perforce,
SourceSafe?
etc...) |
|
— |
Code compilation (from various
sources to various targets) |
|
— |
Functional and regression testing |
|
Integrated Build Tool (2)
— |
Deployment as a named deliverable |
|
|
— |
Shared library repository |
|
— |
Documentation generation |
|
|
— |
Specification in various formats (XDoc,
PDF etc...) |
|
Apache Ant
— |
All of the above plus more |
|
— |
Not Java specific, but well err.. |
|
— |
Easy to extend through Ant Tasks |
|
Apache Maven
— |
Your project is seen as a high level
object |
|
— |
Your project must follow a certain
structure |
|
— |
Really aimed at Java projects |
|
Automated Build Tools
|
Part 2 by
Sebastian Lopienski
Objectives of the presentation
• |
Basic and not so basic but still
useful functionality of CVS
(including branching, merging,
tagging, watching etc.) |
|
• |
Demystify the vocabulary
(repository, revision, tag, attic,
karma etc.) |
|
• |
Present available clients (command
line clients, GUIs and IDE
integrated clients) for both
Unix-like and Windows platforms |
|
• |
Present others tool for CVS (Web
interfaces etc.) |
|
• |
Show some good (and also bad) CVS
users' habits |
|
• |
warn about some common problems and
pitfalls |
|
• |
Discuss access control in CVS and
security issues |
|
• |
Suggest ways to use CVS in build
process |
|
• |
Mention other revision control
systems like SourceSafe, Subversion
etc. |
|
• |
Collect and present links to books,
tutorials etc. |
|
• |
Prepare some exercises to be
downloaded and run for further
studies. |
|
|
|