BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
BLG 411E – Software EngineeringRecitation Session 1
Source Control and Requirements Traceability
Atakan Aral, Bilge Süheyla Akkoca
30.09.2014
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Outline
1 Source ControlTerminologyCentralized vs. Distributed
2 Requirements TraceabilityOSRMT
3 References
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
DefinitionWhat is source control?
Revision control is the management of changes to acollection of (usually textual) data over time.
Large documentsBooksSoftware source code
Source control tracks and provides control overchanges to source code.
as well as configuration and documentation files.
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
MotivationWhy do we need it?
Usually multiple versions of the software are developedin different locations.
Trade-off between bugs and featuresSingle piece of code is edited by multiple teammembers simultaneously.
Ownership of changes should be known.Coding efforts should not be overwritten.Rolling back should be allowed.
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Terminology 1Copies
Trunk (Baseline, Mainline, Master)The unique line of develop-ment that is not a branch
Branch (Fork) A copy of the trunkthat is created at a point intime and developedindependently.
Tag (Label) An importantsnapshot in time with auser-friendly, meaningfulname or revision number.
Working copy (Sandbox) Local copy offiles from a repository.
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Terminology 2Operations
Check out To create a local workingcopy from the repository.
Check in (Commit) To write or mergethe changes made in theworking copy back to therepository.
Merge (Integration) An operation inwhich two sets of changesare applied to a file or set offiles.
During check inDuring check outDuring branch return
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Terminology 3Others
Conflict Changes to the samedocument from differentmembers that can not bemerged by the system.
Resolve User intervention to addressa conflict.
Combine changesSelect one of thechanges
Repository (Depot) Location wherecurrent and historical data ofthe files are stored.
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Centralized Revision ControlServer-client approach
There is a single shared data store, the repository.Check-outs and check-ins done with reference to it(slow).
Only the requested files are copied from the repositoryduring a check out (fast).Both merging and locking mechanisms are available.Typical example: Apache Subversion (SVN)
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Distributed Revision ControlPeer-to-peer approach
Each working copy is a complete repository.Check-outs and check-ins done with reference to localrepository (fast).
Push and pull operations are available to sharechanges across repositories.
Users can work productively when not connected to anetwork.Users can keep early drafts private.
Initial pull (clone) downloads the whole repository(slow).
There is no single point of failure, each repository actsas a backup.Locking mechanisms are not available for critical ornon-mergable files.
Typical example: Git
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
DefinitionWhat is Requirements Traceability?
Requirements Management is:the process of documenting, analyzing, tracing,prioritizing and agreeing on requirements,controlling change and communicating to relevantstakeholders.
Requirements Traceability is a sub-discipline ofrequirements management. It allows:
tracing each requirement in both directions,tracking every change that was made to eachrequirement,detailed documentation and visualization.
Tracing beyond the requirementsTraceability matrix
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
Open Source Requirements Management ToolOSRMT
Discontinued and obsolete (32-bit only)A good tool to learn basics of requirementsmanagement
Modern tools (including commercial ones) inherit manyconcepts and features from it.
Designed for tracing beyond the requirementsFor all artifacts in software development life-cycle(features, requirements, design, implementation andtesting)Allows requirements derivation, version control,common or custom attributes, rationale, source, risk,effort, etc.
BLG 411ESoftware
Engineering
Recitation 1
SourceControlTerminology
Centralized vs.Distributed
RequirementsTraceabilityOSRMT
References
References and Further Reading
http://git-scm.com/
https://github.com/
https://subversion.apache.org/
http://en.wikipedia.org/wiki/Revision_control
http://www.dwheeler.com/essays/scm.html
http://www.youtube.com/watch?v=4XpnKHJAok8
http://sourceforge.net/projects/osrmt/
http://www.ideastub.com/osrmt.php
http://www.ideastub.com/osrmt_docs/osrmt_user_manual.pdf
http://en.wikipedia.org/wiki/Requirements_management
http://en.wikipedia.org/wiki/Requirements_traceability
http://en.wikipedia.org/wiki/Traceability_matrix
http://www.youtube.com/watch?v=MfsAi0Rnemc