In the modern world with large software projects, the specialized task of SCM has to be assigned to a skilled expert often called the Librarian. He is the person who has authority over custody of all the software components that are tantamount to work-in-progress and finished goods and has an accountability to build any of the past versions of the software products.
A quick look at the librarian’s task list runs thus:
1. Custody of all software artifacts
The librarian has complete possession of all the intermediate software products (often referred to as work products) like:
(a) Source code for all the software products.
(b) Test suit consisting of various test transactions.
(c) Design items, like:
(i) Tables/File layouts and ERD’s
(ii) Process specifications, flow charts, etc.
(iii) Input and output layouts
(iv) Codification schemes
(d) Document related to analysis done for user requirements.
(e) Requirements collected from and signed off by users.
At any point in time the librarian must have a full access and control over all these artifacts across all versions of all software products. These artifacts in his custody are called configuration items.
2. Check In/out of configuration items
Each member of the software development team is expected to work on some software component and accordingly borrows that item from the librarian and returns it back once the work is completed. Thus a programmer may get design specifications issued from the librarian (just a read access, as he is expected to modify the program to take it to the next version). A designer may request the librarian to issue the latest version of some specific item like say, a particular data file/ table design.
3. Tracking the lent out items
The librarian has to maintain a complete inventory assigned to him for each software product. He also keeps a neat track of all the items lent out to various colleagues. This tracking includes:
(a) Work product item along with ID, Name and Version No.
(b) Name of the borrowing member.
(c) Purpose of lending – read, review, rework, enhance.
(d) Issue mode read/modify mode.
(e) Date of issue.
(f) Expected date of return.
(g) Actual date of return.
(h) New version No. assigned (If returned, duly modified).
4. Inter-relations among all configuration items
From the earlier discussions, it would now be clear to you that the librarian needs to maintain inter-relations among the configuration items for each software product. This is essential to avoid cases where two members simultaneously handle an item disturbing the dependencies. Consider a scenario where a designer modifies a specific data file layout and at the same time, a programmer writes a program handling the older data file layout.
5. Building up a version of the software product
As a paramount function, the librarian builds up a specific version of a particular software product as per the directions of the concerned project head. Obviously, at this point there are no lent out items for that software product, as that may lead to internal inconsistencies in the software. Once the software ‘build’ takes place and is tested, the version number is frozen. All subsequent modifications to any components would relate to the next version, not the frozen one.
6. Drawing up a status report of configuration items
It is also one of the duties of the librarian to provide a current position of various library items to the concerned project head to enable him to review and monitor the progress of the project and take any necessary actions of modifying the schedules, etc. that may get reflected in the librarian’s due date whatever necessary.
From all these discussions and also in view of the tremendous expanse of the various software products and their umpteen work products, the librarian’s job cannot be performed without automated tools at his disposal.
Such software utility tools provide a handy way for the following tasks:
1. Maintenance of list of all the software development team members.
2. Record keeping of all the software artifacts in soft copy form.
3. Maintaining actual copies of each software artifact across all versions.
4. Tracking the inter-dependencies of software artifacts.
5. Validating an issue of software artifact for consistency/dependency.
6. Recording the issues with details of members, artifact and work mode.
7. Recording returns of such software artifacts from members.
8. Providing a status report (date-wise, member-wise…)
9. Assembling the desired components for software build.
Services: - Automated Tools Homework | Automated Tools Homework Help | Automated Tools Homework Help Services | Live Automated Tools Homework Help | Automated Tools Homework Tutors | Online Automated Tools Homework Help | Automated Tools Tutors | Online Automated Tools Tutors | Automated Tools Homework Services | Automated Tools
Software Engineering Assessment Help - Homework Help
Expertsmind.com offers help with software engineering homework and assignments, software engineering assessments and problems solutions, review software products and assessments, report writing help, help with software engineering projects and questions from online software engineering tutor's help. We offer email based homework help and assignment help for software engineering subject and topics. Get solved software engineering assessments and problems from qualified and experienced computer science experts at Expertsmind.com.
Related Links: Computer Science Engineering Help, Computer Science Assignment Help, Software Engineering Homework Help,Software Engineering Assignment Help