software engineering - rs1

12

Click here to load reader

Upload: atakan-aral

Post on 11-Jun-2015

74 views

Category:

Software


1 download

DESCRIPTION

BLG 411E – Software Engineering Recitation Session 1 Source Control and Requirements Traceability

TRANSCRIPT

Page 1: Software Engineering - RS1

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

Page 2: Software Engineering - RS1

BLG 411ESoftware

Engineering

Recitation 1

SourceControlTerminology

Centralized vs.Distributed

RequirementsTraceabilityOSRMT

References

Outline

1 Source ControlTerminologyCentralized vs. Distributed

2 Requirements TraceabilityOSRMT

3 References

Page 3: Software Engineering - RS1

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.

Page 4: Software Engineering - RS1

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.

Page 5: Software Engineering - RS1

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.

Page 6: Software Engineering - RS1

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

Page 7: Software Engineering - RS1

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.

Page 8: Software Engineering - RS1

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)

Page 9: Software Engineering - RS1

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

Page 10: Software Engineering - RS1

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

Page 11: Software Engineering - RS1

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.

Page 12: Software Engineering - RS1

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