You are on page 1of 28

BCA SPM

UNIT-II

(Project Scheduling & Software configuration management)

[1]. Project Scheduling Basic Concepts


Software project scheduling is an activity that distributes work. Project-task
scheduling is a significant project planning activity. In order to schedule the
project activities, a software project manager needs to do the following:

1. Identify all the major activities.

2. Break down each activity into tasks.

3. Determine the dependency among different tasks.

4. Establish the time estimates for the tasks.

5. Represent the information in the form of an activity network.

6. Determine task starting and ending dates.

7. Determine the critical path. A critical path is a chain of tasks that


determines the duration of the project.

8. Allocate resources to tasks.

The first step in scheduling a software project involves identifying all the
activities necessary to complete the project. A good knowledge of the
details of the project and the development process helps the managers to
effectively identify the important activities of the project. Next, the
activities are broken down into a logical set of smaller
activities(subactivities). The smallest subactivities are called tasks which are
assigned to different developers.

After the project manager has broken down the activities into tasks, he has
to find the dependency among the tasks. Dependency among the different
tasks determines the order in which the different tasks would be carried out.
If a task A requires the results of another task B, then task A must be
scheduled after task B and A is said to be dependent on B.

1
[2]. Project Scheduling Basic Principles
Following basic principles guide software project scheduling:

1. Modularization:

The project must be divided into a number of manageable activities and


tasks. In Modularization, both the product and the process are decomposed.

2. Interdependency.

The interdependency of each activity or task must be determined. Some


tasks must occur in sequence, while others can occur in parallel. Some
activities cannot commence until the work product produced by another is
available. Other activities can occur independently.

3. Time allocation.

Each task must be assigned start date and a completion date.

4. Effort validation.

Every project has a defined number of people on the software team. As time
allocation occurs, you must ensure that no more than the allocated number
of people has been scheduled at any given time.

5. Defined responsibilities.

Every scheduled task should be assigned to a specific team member.

6. Defined outcomes.

Every task that is scheduled should have a defined outcome. For software
projects, the outcome is normally a work product (e.g., the design of a
component) or a part of a work product.

2
7. Defined milestones.

Every task should be associated with a project milestone. A milestone is


accomplished when one or more work products has been completed.

[3]. Relationship between People and Effort


For your knowledge {There is a common myth that is still believed by many
managers who are responsible for software development work: “If we fall
behind schedule, we can always add more programmers and catch up later
in the project}

Software engineering handles the relationship between people and effort


management for product development phase. These some points are as
follows:-

1. When software size is small single person can handle same project.

2. If the project is large additional people are required to complete.

3. Unfortunately, adding people late in a project often has a disruptive effect


on the project, causing schedules to slip even further. The people who are
added must learn the system, and the people who teach them are the same
people who were doing the work. While teaching, no work is done, and the
project falls further behind.

4. A project can be completed soon if more people are added in early stage
of project development. It also possible to expand the completion date by
reducing number of resources.

5. The Putnam norden Rayleigh (PNR) curve shows the relationship


between effort and delivery time.

3
6. If we want to deliver the software fast (at time t d ), then curve rises very
sharply to left of td. The pnr curve indicates that project delivery time should
not be compressed much behind on td.

7. The number of delivery lines of code are L. Relationship of L with


effort & development time by equation can be described as

L= P × E1/3 T3/4

Here ‘E’ represents development effort in person months, P is productivity


parameter (typical values for P range between 2000 and 12000), and t is the
project duration in calendar months.

Rearranging this software equation, we can arrive

where E is the effort (in person-years) t is the development time (in years).

Consider a software project contains 33000 LOC, 12 person-years of effort.


If eight people are assigned to the project team, the project can be
completed in approximately 1.3 years. If, however, we extend the end date
to 1.75 years, the highly nonlinear nature of the model described in
Equation

4
yields:

This implies that, by extending the end date by 6 months, we can reduce the
number of people from eight to four!

[4]. Task Network


Task network or activity network, is created to enable the software team to
meet the scheduled delivery deadline. A graphic representation of the task
flow for a project. This network depicts major software engineering actions.
Task network diagram identifies the critical path and the duration of the
project.

An activity network shows the different activities making up a project, their


estimated durations, and their interdependencies. Two equivalent
representations for activity networks are possible and are in use:

Activity on Node (AoN): In this representation, each activity is represented


by a rectangular node and the duration of the activity is shown alongside
each task in the node. The inter-task dependencies are shown using
directional edges.

Activity on Edge (AoE): In this representation tasks are associated with the
edges. The edges are also marked with the task duration. The nodes in the
graph represent project milestones.

PROBLEM Determine the Activity network representation for the MIS


development project for which the relevant data is given in Table.

TABLE Project Parameters Computed from Activity Network

Task Task Duration Dependent on


Number Tasks
T1 Specification 15 -
T2 Design database 45 T1
T3 Design GUI 30 T1
T4 Code database 105 T2
T5 Code GUI part 45 T3
T6 Integrate and test 120 T4 and T5
T7 Write user manual 60 T1

5
FIGURE: Activity network representation of the MIS problem.

[5]. Scheduling
Project scheduling is used to define start and end dates to individual tasks
and allocating appropriate resources within an estimated budget. It only
focuses on the tasks, their deadlines and project dependencies.

Time-Line Charts/ Gantt Chart

When creating a software project schedule, we begin with a set of tasks (the
work breakdown structure). In addition, tasks may be assigned to specific
individuals. As a consequence of this input, a time-line chart, also called a
Gantt chart, is generated. A time-line chart can be developed for the entire
project. Alternatively, separate charts can be developed for each project
function or for each individual working on the project.

Figure illustrates the format of a time-line chart.

Here’s a Gantt chart example:

6
Each activity listed on the left-hand side of a Gantt chart has a colored bar
next to it.

The position and length of that bar depends on the activity’s timeline and
duration: when it starts and when it ends.

 For example, in the daily project status Gantt chart above, Activity 1 (Task 1) will take place
from March 3 to 7 and then from March 10 to 13. The due date is Thursday of that week.
Each week is color coded.

Here’s another example:

7
8
[6]. PERT charts

A PERT chart, also known as a PERT diagram, is a tool used to schedule,


and organize, tasks within a project. PERT stands for Program Evaluation
and Review Technique. It provides a visual representation of a project's
timeline. These charts are similar to Gantt charts, but structured differently.

9
PERT Chart Creation Steps

To create a PERT chart has five steps. Which includes

1. Identify project tasks

The first step is to identify and collection of necessary project information


and tasks. This can include:

 A business case
 A communication plan
 An initial kickoff meeting

2. Define task dependencies

A task dependency shows relationship between the various tasks. Creating


dependencies help to properly track work, ensure tasks are completed, and
establish clear communication.

Dependencies are visualized by connecting and numbering tasks.

3. Connect project tasks

Once task dependencies have been created, PERT is prepared by connecting


project tasks to one another. These connections consist of arrows, which
represent tasks, and nodes, which represent events or milestones.

4. Estimate project time frame

After the step 3, overall project time frame is prepared using the critical
path method (CPM) and the PERT formula. The critical path is the longest
sequence of tasks that must be completed to successfully finish an entire
project.

Time estimates can be calculated based on the following:

 Optimistic time: The minimum amount of time needed to accomplish a


task.
 Pessimistic time: The maximum amount of time needed to accomplish
a task.
 Most likely time: The best estimate of how long it will likely take to
accomplish a task.

You can use the PERT formula to calculate the expected duration of a task
and completion time using: (O + (4 × M) + P) ÷ 6. This can be measured by
minutes, hours, days, or even weeks.

10
For example, if the optimistic time is 30 minutes, the pessimistic time is 60
minutes, and the most likely time is 45 minutes, the PERT formula would
be: (30min + (4 × 45min) + 60min) ÷ 6 = 45 minutes.

Once you’ve calculated the expected time per task, you can then add each of
the estimates of your critical path together to get an average project
timeline.

5. Manage task progress

The final step in creating a PERT chart is to manage task progress to project
completion. This can be done by closing dependencies and mitigating issues
along the way until all tasks and project milestones are completed.

PERT chart example

Another Example

11
[7]. Staffing
Software project managers select their project team members. Therefore,
they need to identify good software developers for the success of the
project. The worst developers may reduce the overall productivity of the
team. Therefore, choosing good software developers is crucial to the success
of a project. Thus, staffing is the process that includes possession, retention,
promotion, and compensation of the human capital, that is, the most
important resource of the organization.

Staffing Process

The process of staffing consists of several interrelated activities, such as


planning for human resources requirements, recruitment, selection, training
development, remuneration, and so on. These activities together make the
staffing process.

1. Manpower Planning

It involve two kinds of analysis, i.e., workload analysis and workforce


analysis. Workload analysis defines the number and type of employees
required to perform various jobs. Workforce analysis shows the number and
type of human resources available with an organization.

The difference between workload and workforce defines the shortage and
surplus of manpower. Excess workload indicates understaffing, i.e., the
need of appointing more people and excess workforce indicates
overstaffing, i.e., need to remove or transfer some employees to other
places.

12
2. Recruitment

Recruitment refers to a process of searching for prospective employees and


encouraging them to apply for jobs in the organization.

3. Selection

Selection is the process of choosing and appointing the right candidates for
various job positions in the organization. It involves many steps such as
screening, filling-in application, written test, interviews, medical
examination, checking references, and issuing a letter of appointment to the
candidates. The most suitable candidates are selected.

4. Placement and Orientation

Under this process, every selected candidate is assigned a job most suitable
for him. The purpose of placement is to fit the right person to the right job
so that the efficiency of work is high and the employees get personal
satisfaction.

5. Training and Development

Every individual must be given a chance to rise to the top. For this,
organizations either provide training themselves within the organization or
through external institutions. This is beneficial for the organization as well.

13
The employees will be able to perform even better for the organization with
greater efficiency and productivity.

6. Performance appraisal

Appraisal refers to the evaluation of the employees of the organization


based on their past or present performance by some pre-decided standards.
The employee should be well aware of his standards and his superior is
responsible for proving feedback on his performance.

7. Promotion and Career planning

Promotions are an essential part of any employee’s career. Promotion refers


to the transferring of employees from their current positions to a higher
level increasing their responsibilities, authority and pay.

8. Compensation

All kinds of payments or rewards provided to the employees is referred to as


compensation. The compensation may be in the form of direct financial
payments, such as salary, wages, bonuses, etc., or indirect payments like
insurance or vacations provided to the employee.

[8]. Project monitoring and control


Project monitoring and control needed to track, review, and regulate the
progress and performance of the project. It also identifies any areas where
changes.

The Monitoring & Controlling process group includes eleven processes,


which are:

14
Monitor and control project work: The generic step under which all other
monitoring and controlling activities fall under.

Perform integrated change control: The functions involved in making


changes to the project plan. When changes to the schedule, cost, or any
other area of the project management plan are necessary, the program is
changed and re-approved by the project sponsor.

Validate scope: The activities involved with gaining approval of the


project's deliverables.

Control scope: Ensuring that the scope of the project does not change and
that unauthorized activities are not performed as part of the plan (scope
creep).

Control schedule: The functions involved with ensuring the project work is
performed according to the schedule, and that project deadlines are met.

Control costs: The tasks involved with ensuring the project costs stay
within the approved budget.

Control quality: Ensuring that the quality of the project?s deliverables is to


the standard defined in the project management plan.

Control communications: Providing for the communication needs of each


project stakeholder.

Control Risks: Safeguarding the project from unexpected events that


negatively impact the project's budget, schedule, stakeholder needs, or any
other project success criteria.

Control procurements: Ensuring the project's subcontractors and vendors


meet the project goals.

Control stakeholder engagement: The tasks involved with ensuring that


all of the project's stakeholders are left satisfied with the project work.

[9]. Software configuration management Concepts and definitions


The configuration of the software is the state of all project deliverables at
any point of time. Software

configuration management controls the configuration of a software during


its life cycle.

15
The results (deliverables) of a software consist of a large number of objects,
e.g., source code, design document, SRS document, test document, user’s
manual, etc. These objects are modified by a number of software developers
throughout the life cycle of the software. As a software is changed, new
revisions and versions get created.

Software revision versus version

 A new version of a software is created when there is significant change in functionality,


technology, or the hardware it runs on, etc.
 A new release is created if there is only a bug fix, minor enhancements to the functionality,
usability, etc.

5.1. Configuration Management Activities

Configuration management is carried out through two principal activities:

Configuration identification: It involves deciding which parts of the


system should be monitored.

Configuration control: It ensures that changes to a system happen


smoothly.

Configuration identification

Project managers normally classify the objects into three main categories—
controlled, precontrolled, and uncontrolled.

Controlled objects are those that are already under configuration control.

Precontrolled objects are not yet under configuration control, but will
eventually be under configuration control.

Uncontrolled objects are not subject to configuration control.

Typical controllable objects include:

 Requirements specification document


 Design documents
 Tools used to build the system, such as compilers, linkers, lexical analysers,
parsers,
 etc.
 Source code
 Test cases
 Problem reports

16
Configuration control

 Configuration control is the process of managing changes to objects.


 The configuration control directly affects the day-to-day operations of
developers.
 In order to change an object, a developer gets a private copy of the module.
 Only one person can reserve a module at any time.
 Once an object is reserved, it does not allow anyone else to reserve this module
until the reserved module is restored.

[10]. Need and importance of SCM


Need of SCM

Multiple people are working on software which is consistently updating. It


may be a method where multiple version, branches, authors are involved in
a software project, and the team is geographically distributed and works
concurrently. It changes in user requirements, and policy, budget, schedules
need to be accommodated.

Importance of SCM

 It helps in controlling and managing the access to various SCIs e.g., by


preventing the two members of a team for checking out the same component
for modification at the same time.
 It provides the tool to ensure that changes are being properly implemented.
 It has the capability of describing and storing the various constituent of
software.
 SCM is used in keeping a system in a consistent state by automatically
producing derived version upon modification of the same component.
 It is an umbrella activity that is applied throughout the software process.
 It is a set of tracking and control activities that begin when a software
engineering project begins and terminate only when the software is taken out
of operation.
 It provides a set of activities designed to control change by identifying the
work products that are likely to change, establishing relationships among
them.

[11]. Benefits of SCM

Software Configuration Management (SCM) is the process of managing and


controlling the evolution of software products. The following are some of the
benefits of using SCM:

17
1. Better quality control: SCM helps to manage the development process in
a more organized manner. This leads to better quality control and reduces
the risk of errors.
2. Version control: SCM helps to keep track of different versions of the
software. This is particularly useful when working on large projects or
when collaborating with multiple developers.
3. Improved collaboration: SCM tools enable developers to work
collaboratively on projects. They can share code, track changes, and
manage conflicts more effectively.
4. Automated builds and testing: SCM tools can automate the build and
testing process, making it easier to maintain and deploy the software.
5. Faster release cycles: SCM can help to speed up the release cycles of
software products. By automating the build and testing process, developers
can release new features and fixes more quickly.
6. Traceability: SCM provides a complete history of the software
development process, making it easier to track changes and understand the
evolution of the product over time.

Overall, SCM helps to improve the efficiency, quality, and reliability of the
software development process.

[12]. The SCM Process

Configuration management provides a disciplined environment for


smooth control of work products. It involves the following activities:

1. Identification and Establishment – Identifying the configuration items


(such as design, code, or test) from products.

Example:
 Instead of naming a File login.php its should be named login_v1.2.php where
v1.2 stands for the version number of the file
 Instead of naming folder “Code” it should be named “Code_D” where D
represents code should be backed up daily.
 A baseline configuration is a known state of configuration that will
successfully operate the dependent software without error.
2. Version control – Creating versions/specifications of the existing product to
build new products with the help of the SCM system. A description of the version is
given below:

18
Suppose after some changes, the version of the configuration object changes from
1.0 to 1.1. Minor corrections and changes result in versions 1.1.1 and 1.1.2, which is
followed by a major update that is object 1.2. The development of object 1.0
continues through 1.3 and 1.4, but finally, a noteworthy change to the object results
in a new evolutionary path, version 2.0. Both versions are currently supported.
3. Change control – Controlling changes to Configuration items (CI). The change
control process is explained in Figure below:

A change request (CR) is submitted and evaluated to assess technical merit, potential
side effects, the overall impact on other configuration objects and system functions,
and the projected cost of the change. The results of the evaluation are presented as a

19
change report, which is used by a change control board (CCB) —a person or group
who makes a final decision on the status and priority of the change. An engineering
change Request (ECR) is generated for each approved change. Also, CCB notifies
the developer in case the change is rejected with proper reason. The ECR describes
the change to be made, the constraints that must be respected, and the criteria for
review and audit. The object to be changed is “checked out” of the project database,
the change is made, and then the object is tested again. The object is then “checked
in” to the database and appropriate version control mechanisms are used to create the
next version of the software.
4. Configuration auditing – A software configuration audit is a technical review
of the process and product. It focuses on the technical correctness of the
configuration object that has been modified. The audit confirms the completeness,
correctness, and consistency of items in the SCM system.
5. Reporting – Providing accurate status and current configuration data to
developers, testers, end users, customers, and stakeholders through admin guides,
user guides, FAQs, Release notes, Memos, Installation Guide, Configuration guides,
etc.

[13]. Infrastructure setup


These five pre-development steps may be used to make software
development project more efficient, organized and quality-oriented in the
long run.

1. Create a test environment

This is the platform where a project will be tested. Here, all modules are
assembled and are checked that whether all modules are working properly
or not. This environment will change frequently, probably daily, and is
subject to being “broken” at any given time due to all the activity. So
developing a test environment helps in successful s/w development.

2. Create a QA and staging environment

This will be the environment where the application is “staged” and where
quality assurance testing is done. Project manager will be able to use this
environment to demonstrate the project/ product to stakeholders at various
stages of production.

3. UI environment

To verify that user interface will behave in the desired way, developers may
need to set up an isolated environment for testing the design and interface.

4. Create a pipeline for automatic build, test, and deploy

20
When developers add changes to the system, this pipeline will ensure that
the changes initiate an automatic response. The system changes the product,
which triggers a suite of automated tests to detect the errors in the code. The
system then runs a report of which tests passed and failed. After this, the
code will be automatically deployed.

This process is crucial to software project infrastructure. It saves an


enormous amount of time over the life of the project. It also dramatically
reduces or eliminates mistakes.

5. Basic model page

For web-based projects, this simple page will communicate design


guidelines, brand definition and other standards that need to be carried out
on subsequent pages. It’s the model that sets the path between the web front
end, the service middle tier, and the database backend.

[14]. Team Training


A software development team is a group of developers who work towards
designing, building, testing, deploying, and maintaining software products
or services. Employers often need team training when they introduce new
business software, discover common training needs across departments,
want to enhance customer service or want to promote technical skills.

How to train the team

1. Use your team's input to determine training needs

A great way to determine type of training is to get feedback from your team.
They might be able to provide one or more areas where they want more
experience.

2. Establish a training schedule that aligns with department activities

Once training needs are finalized, a training schedule is prepared to ensure


that team has adequate time to learn new skills. For example, if the busiest
days for your marketing team are Thursdays and Fridays, you could set
training for Mondays and Tuesdays with Wednesdays as a break period.

3. Create lesson plans for each session

Lesson plans include lectures, group activities, presentations and other


educational components. These are used to enhance team knowledge and
understanding.

4. Balance lecture-style training with team activities


21
A team stay engaged during training sessions by changing up the learning
format. For example, for the first 20 minutes of training, you could run a
PowerPoint presentation then GD then any activity.

5. Create key points for each session

The trainer must has a document of summary of key talking points,


questions answered and topics covered.

6. Test the Team learning

A test should be conducted to check the learning of team. Based on their


scores, you can determine the success of a training session. You can also
send out a survey asking training participants to rate the training session and
give ideas for how it could improve.

7. Evaluate the success of team training

After training ends, you can measure its success by evaluating the
performance levels of individual participants.

[15]. System Maintenance


Software maintenance is a continuous process that occurs throughout the
entire life cycle of the software system.

 The goal of software maintenance is to keep the software system


working correctly, efficiently, and securely.
 This can include fixing bugs, adding new features, improving
performance, or updating the software to work with new hardware or
software systems.
 It is important to have a well-defined maintenance process.
 It’s important to note that software maintenance can be costly and
complex, especially for large and complex systems. Therefore, the
cost and effort of maintenance should be taken into account during
the planning phase of a software project.
 It’s also important to have a clear and well-defined maintenance plan
that includes regular maintenance activities, such as testing, backup,
and bug fixing.

Key Aspects of Software Maintenance

Bug Fixing: The process of finding and fixing errors and problems in the
software.

22
Enhancements: The process of adding new features or improving existing
features.

Performance Optimization: The process of improving the speed,


efficiency, and reliability of the software.

Porting and Migration: The process of adapting the software to run on


new hardware or software platforms.

Re-Engineering: The process of improving the design and architecture of


the software to make it more maintainable and scalable.

Documentation: The process of creating, updating, and maintaining the


documentation for the software, including user manuals, technical
specifications, and design documents.

Types of Software Maintenance

Corrective Maintenance: This involves fixing errors and bugs.

Adaptive Maintenance: This involves modifying the software system to


adapt it to changes in the environment, such as changes in hardware or
software, government policies, and business rules.

Perfective Maintenance: This involves improving functionality,


performance, and reliability, and restructuring the software system.

Preventive Maintenance: This involves taking measures to prevent future


problems, and implementing preventive measures such as backups.

Maintenance can be categorized into proactive and reactive types. Proactive


maintenance involves taking preventive measures to avoid problems from
occurring, while reactive maintenance involves addressing problems that
have already occurred.

[16]. System Retirement


It is the process of shutting down the jobless or obsolete business
applications. It is also known as applications decommissioning. It is
important to note that application retirement does not affect a company’s
primary systems, and data.

It is a systematic process of retiring an software. It involves identifying


obsolete applications, migrating relevant data, and managing associated

23
risks. The goal is to reduce operational costs, enhance system performance,
and optimize resources.

The Need for Application Retirement

Several factors contribute to the need for application retirement:

1. Technological Advancements
2. Changing Business Requirements
3. High Maintenance Costs
4. Security Risks

Retirement Process

Following are the basic steps in software retirement

1. Comprehensive Analysis and Planning: Initially, the existing software


is analyzed. Then, a plan of retirement is created.

2. Migration and Data Management: Develop a well-defined migration


strategy to ensure a smooth transition from legacy systems to new system.

3. Stakeholder Engagement: Involve key stakeholders in retirement


process. Engage users, managers, and IT teams to gather insights, address
concerns, and ensure a successful transition.

4.Continuous Monitoring and Optimization:

After retiring legacy systems:

1. Monitor the performance of the new applications and collect


feedback from users.
2. Continuously optimize and refine the systems based on user needs
and evolving business requirements.
3. Regularly assess the effectiveness of the retirement strategy and
make adjustments as needed.

5. Testing: During system retirement, we must test the migration tools. The
effect of retirement on business is also estimated.

6. Migrate users: We can not turn off access to old system in a day. Users
must be by notified for the upcoming retirement.

7. Archive. The existing data, code, documentation, and other system


artifacts must be properly archived so that it may be restored at a future date
if required.

24
8. System removal. This is often a complex task. It’s a good idea to take a
complete backup of your system before you begin the system retirement.

[17]. Configuration Baselines


In configuration management, a baseline is an agreed description of the
attributes of a product, at a point in time, which serves as a basis for
defining change. A change is a movement from this baseline state to a next
state.

A baseline may be established for a single purpose of marking an approved


configuration item. A baseline may refer to a single work product, or a set
of work products that can be used as a logical basis.

Baseline control

In many environments, baselines are controlled such that certain subsequent


activities against work products are either prohibited or permitted. These
activities are selected and controlled, and again, depending upon the
configuration management system, are also monitored. Configuration audits
may include an examination of specific actions performed against the
baseline, identification of individuals involved in any action, an evaluation
of change within the baseline, (re-)certification for approval, accounting,
metric collection, comparison to another baseline, or all of these.

[18]. Interface Control


Interfaces are points of communication between different components of
an application or system. They can also define interactions between a
hardware, software and a user.
Interfaces are tools and concepts that developers use as points of
interaction between hardware and software components. They help all
components within a system communicate with each other via an input-
output system and detailed protocols. Interfaces also help users to interact
with various types of devices like keyboards, mice and touch screens and
software programs like operating systems or internet protocols.

Types of interfaces

Here are some common interface types:

Hardware interfaces

25
Hardware interfaces help various hardware devices connect and
communicate with each other. Some common hardware interfaces in
computing are:

 USB (universal serial bus) interfaces

 Serial interfaces (They transmit data as single streams of items and act as
communication interfaces between two digital systems)

 Parallel interfaces (They allow developers to send multiple bits of data


across different command lines or channels)

 PCI and PCI-Express interfaces (Peripheral Component Interconnect


(PCI) interfaces)

 IEEE 1394 interface (helps to communicate between various audio and


video-based hardware devices)

Software interfaces

Software interfaces, also called programming interfaces, are the languages


that are used to communicate with each other and with a hardware. They
typically control a system's resources, such as its memory, and CPU. Some
common examples of software interfaces are:

 Operating systems
 Simple Mail Transfer Protocol (SMTP) email
 IP network protocols
 Software drivers

User interfaces

They facilitate all manual interactions between users and hardware or


software, supporting the overall functionality of these systems. They may
also help make complex operations more accessible with the help of
intuitive graphic designs. Some common types of user interfaces are:

 Command-line interface: This is a text-only interface that allows users to


issue basic commands to a computer.

 Graphical User Interface (GUI): This system enables users to control


computing devices using graphical icons and audio indicators.

 Menu-driven interface: This type of user interface uses a series of


screens, called menus, that help the user interact with devices.

26
[19]. Submitting Change Request
A change request is made to change functionality of a project.

Steps for Managing Change Requests


Companies take different approaches to how they manage change requests,
but these five steps are generally the minimum required as part of the
process:
1. Collect all the relevant supporting documentation
To check trhe validity of a CR, all relevant documentation to describe the
change should be collated. The request should outline why the change is
required and what benefits the change will bring about.
2. Decide whether it is inside or outside of scope
Before any work is done, it should be determined whether it sits inside or
outside the scope of the project.
3. Prioritise the change request
The next key step is to analyse how important the change is. Is it completely
essential to the business? How big is the benefit to the business?
4. Approve/reject the change request
Using all of the information and analysis from the previous steps, you
should now be able to make the decision as to whether to approve or reject
the request. If you have a change request team and it is a relatively small
change, the team should have the authority to approve or reject the change.
However, if it is a bigger change with large costs, it may need to get
approved by the appropriate budget owner/executive.
5. Plan the implementation
If the decision is to reject the request, the person who submitted the request
should be informed and the reason for rejection should be explained. If the
change is approved, then the next step is to put the relevant plans into place
to implement the change. This will involve allocating the tasks to the
relevant team/resources.

[20]. Configuration Control Tool


Software configuration management is an automation process that involves
conducting various maintenance tasks repetitively to ensure that software
functions properly. It perform a series of program tests, data validation,

27
security checks and other process monitoring tasks to evaluate system
performance and to identify problems.

Types of software configuration management tools

Here are some of the general types of tools for configuration management:

A. Version control software (VCS)

These tools track software changes, such changes in the source code
and application code.

B. Build automation tools

This type of tool automates the process of compiling, testing and


packaging software. Common uses include continuous integration
(CI), build scheduling, test execution and deployment automation.

C. Configuration management systems

This software manages system configurations and ensures consistency


across multiple environments.

D. Artifact repositories

Artifact repositories store and organize binary artifacts, such as compiled


code, libraries and dependencies.

E. Issue and bug-tracking software

This type of software tracks and manages issues, and bugs throughout the
development process.

28

You might also like