0% found this document useful (0 votes)
38 views37 pages

Software Configuration Management

The document discusses software configuration management (SCM) including SCM repositories, SCM processes, baselines, and configuration items. It also covers risk management, technology evolution models, software process trends, collaborative development, software reuse, test driven development, global software development challenges, and computer aided software engineering (CASE).

Uploaded by

Nehul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views37 pages

Software Configuration Management

The document discusses software configuration management (SCM) including SCM repositories, SCM processes, baselines, and configuration items. It also covers risk management, technology evolution models, software process trends, collaborative development, software reuse, test driven development, global software development challenges, and computer aided software engineering (CASE).

Uploaded by

Nehul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Software Engineering

-Amruta Patil

This courseware material are to be used in conjunction with "Software Engineering: A practioner's Approach" 7/e and
are provided with permission by R.S. Pressman and associates. The course material is also having contents copied
from internet. Changes are made wrt Pune University Syllabus
Formal Methods Recent Trends
In Software Engineering
UNIT-VI
SCM
• Software configuration management (SCM) is an umbrella activity that is applied throughout the
software process.
• software configuration = computer programs + work products + data or content
• SCM activities are developed to
(1) identify change,
(2) control change,
(3) ensure that change is being properly implemented, and
(4) report changes to others who may have an interest.
1. An SCM Scenario:
A typical CM operational scenario involves
1) a project manager
2) a configuration manager
3) software engineers
4) Customer

2. Elements of a Configuration Management System


a) Component elements – e.g database
b) Process elements - actions and tasks
c) Construction elements - tools
d) Human elements – features

3. Baselines
- A baseline is a software configuration management concept that helps you to control change without
seriously impeding justifiable change.
- a baseline is a milestone in the development of software.
- once a baseline is established, changes can be made, but a specific, formal procedure.
3. Software Configuration Items
configuration objects, DesignSpecification, DataModel, ComponentN, SourceCode, and TestSpecification.
SCM Repository
• SCM maintains project repository or project database.
1. The Role of the Repository
2. General Features and Content
3. SCM Features
A. Versioning.
B. Dependency tracking and change management
C. Requirements tracing.
D. Configuration management.
E. Audit trails.
Contents of repository
SCM Process
• Objectives:
(1) to identify all items that
collectively define the software
configuration,
(2) to manage changes to one or more
of these items,
(3) to facilitate the construction of
different versions of an
application,
(4) to ensure that software quality is
maintained as the configuration
evolves over time.
Risk Management
• Recognizing what can go wrong is the first step, called “risk
identification.”
• Next, each risk is analyzed to determine the likelihood that it will
occur and the damage that it will do if it does occur.
• Once this information is established, risks are ranked, by probability
and impact.
• Finally, a plan is developed to manage those risks that have high
probability and high impact.
Reactive vs Proactive Risk Management
• Reactive risk management tries to reduce the damage of potential
threats and speed an organization’s recovery from them, but assumes
that those threats will happen eventually.
• after the event
• Proactive risk management identifies threats and aims to prevent
those events from ever happening in the first place.
• before they happen and figure out ways to avoid or alleviate the risk.
Technology evolution
1. breakthrough phase
a problem is recognized
At some point, a solution shows
promise.
2. Replicator phase
gains wider usage
3. Empiricism
govern the use of the technology
4. Theory
broader theory of usage Fig: Technology Innovation life cycle
5. Automation
creation of automated tools
6. Maturity
S-curve model
• S-curve model is for technology evolution
• appropriate for considering the long-term effects of core
technologies.
• The Gartner Group cycle exhibits five phases:
1. Technology trigger
2. Peak of inflated expectations
3. Disillusionment
4. Slope of enlightenment
5. Plateau of productivity

Fig: The Gartner Group’s hype cycle for


Emerging technologies.
Process Trends
1. As SPI(Software Process Improvement) frameworks evolve, they will emphasize
“strategies that focus on goal orientation and product innovation
2. Because software engineers have a good sense of where the process is weak, process
changes should generally be driven by their needs and should start form the bottom up.
3. Automated software process technology (SPT) will move away from global process
management to focus on those aspects of the software process that can best benefit from
automation.
4. Greater emphasis will be placed on the return on investment of SPI activities
5. As time passes, the software community may come to understand that expertise in
sociology and anthropology may have as much or more to do with successful SPI as
other, more technical disciplines.
6. New modes of learning may facilitate the transition to a more effective software process.
Collaborative Development
• Success factors that lead to successful collaborative efforts:
1. Shared goals
2. Shared culture
3. Shared process
4. Shared responsibility
software Reuse
Use of existing software systems to develop new software systems which means re-use of software.
What can be reused?
• Requirements specification
• Design
• Code
• Test cases
• Knowledge

Fig: Software Reuse Development Frameworks


Basic issues in any reuse program
1.Component creation
2.Component indexing and storing
3.Component search
4.Component understanding
5.Component adaptation
6.Repository maintenance

Advantages :
1. Software products are costly.
2. Reduce development costs and time
3. Use again also leads to the higher quality of the developed products.
Test Driven Development
Advantages:
1. You only write code that’s needed
2. More modular design
3. Easier to maintain
4. High test coverage
5. Tests document the code
6. Less debugging

Disadvantages :
1. No silver bullet
2. Slow process
3. Tests got to be maintained when
requirements change
4. All the members of a team got to do it
Global software development challenges
1. Changing Requirements
2. Providing complete Security to the software
3. Misinterpreted requirements
4. System and Application integration
5. Adapting to the latest Technology
6. Project infrastructure / Limited resources
7. Defects or Errors in last minute
8. Time limitations
9. Communication and Coordination
10. Works with another developer’s code
11. Don’t get the required support from the Project Manager/Leader
Computer Aided Software Engineering (CASE)
• implementation of computer-facilitated tools and methods in software development.
• to ensure high-quality and defect-free software
• Types of CASE Tools
1. Diagramming Tools
2. Computer Display and Report Generators
3. Analysis Tools
4. Central Repository
5. Documentation Generators
6. Code Generators
CASE Taxonomy
• Classification scheme:
1. Enumerative – fixed class
2. Faceted – classes can be combined and extended

Classification Structure
1. Hierarchy: single top class that “includes” all sub- and sub-sub classes, is-a
relationship
2. Tree – similar to hierarchy but no relationship
3. Paradigm - two-way hierarchical relationships
4. Faceted analysis - multiple perspectives, Each facet is independent and can have its
own classes
CASE Tool-kits
• Loosely coupled collections of tools.
• typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set
• typically perform integration via piping or some other basic mechanism to share data and pass control.
• Easy integration
Workbenches
• A set of tools which supports a particular phase in software process
• Tools works together to provide comprehensive support
• Types:
1. Programming
2. Design
3. Testing
Some workbenches are open and some are closed
Advantages:
1. Available on personal machines
2. Result in standardized documentation
3. 40% higher productivity rate with less defects
Environments
• It is the foundation on which software engineering can
implement the policies and methodologies needed to
efficiently produce the software systems of the future.
• Elements are a computer program, toolset, object
management system (OMS), and a repository.
Advantages:
1. enables developers to create high-quality software
systems efficiently.
2. provide a comprehensive solution for software
development.
Components of CASE
• Components:
1. Central Repository
2. Upper: Planning, analysis, and designing of different stages of the software
development life
3. Lower: Implementation, testing, and maintenance can be performed using lower case.
4. Integrated: All the stages of the software development life cycle right from the
gathering of requirements for testing and documentation can be performed using
integrated tools.
13 Types of CASE Tools :
1. Diagram Tools – flow chart tools 7. Configuration Management Tools – Git

2. Process Modelling – choose process model 8. Change Control – ticketing tools

3. Project Management – Creative Pro office 9. Programming – Eclipse

4. Documentation Tools – Doxygen, DrExplain 10.Prototyping – prototype composer

5. Analysis Tools – Accept 360 11.Web Development – Adobe edge

6. Design – Animated Software Design 12.Quality Assurance – Soap Test

13.Maintenance – Bugzilla, JIRA


Introduction to agile tools - Jira
• A process of leading the work of a team to achieve all
project goals within the given constraints.
• Activities such as plan a project, delegate tasks to
various team members, document processes, keep
communications in one location and evaluate the
project’s progress.
What is JIRA?
• Jira is a proprietary issue tracking product developed by Atlassian that allows bug tracking and agile project
management.
• History:
Japanese word pronounced as Gojira i.e., Godzilla.
Atlassian developers used to refer to Bugzilla, which was previously used internally for bug-tracking
JIRA is
• Jira Software is the #1 agile project management tool used by teams to plan, track, release and support world-
class software with confidence
• Jira is used for issue tracking and project management by over 180,000 customers in 190 countries.
• Trusted by more than 100,000 organizations, Jira Software comes out-of-the-box with the features and best
practices agile teams need to develop and evolve their agile practices.
Who uses JIRA
• Agile teams

• Bug tracking teams

• DevOps teams

• Product management teams

• Project management teams

• Software development teams


JIRA Packages
• Jira is offered in four packages:

• Jira Work Management is intended as generic project management.


• Jira Software includes the base software, including agile project
management features (previously a separate product: Jira Agile).
• Jira Service Management is intended for use by IT operations or
business service desks.
• Jira Align is intended for strategic product and portfolio management.
JIRA
• Revisit JIRA:
https://www.youtube.com/watch?v=JU0QNX4xJ-c

• What is a Jira project?


• A JIRA project can be thought of as a container used to organize and track those tasks, or issues, across the
entire team
• A Jira Software project is highly configurable and can be easily customized to map around organizational
structure, workflow, or level of agile maturity.
• It can fit to any team’s unique way of working.
• A team can use a Jira project to track and resolve bugs, launch a new feature, and more.
JIRA Board
• The board displays a selection of issues in columns, with each column representing a step in your team’s
workflow for taking work through completion.
• Scrum Board – This board is great for teams that like to work in sprints, or time-boxed periods when a team
works to complete a set amount of work.
JIRA Terminologies
JIRA
Reports
Reports in JIRA
Kanban
• Kanban is a visual method for managing workflow at the individual, team, and even
organizational level.
• Pronounced “kahn-bahn,” the term translates from its original Japanese to “visual signal”
or “card.”
• A whiteboard, divided into vertical lanes. Each lane represents a step in your process,
from “To Do,” to “Doing,” to “Done.” or according to the predefined process in project
team.
• In Kanban, work always begins on the left side of the board, and works its way to the
right: The far left lane typically holds work items that have not been started, and the far
right lane holds work items that have been completed.
A Kanban card is a visual representation of a work item on a Kanban board. Think of a Kanban board as a
whiteboard, with vertical lanes representing the steps in a process.

Steps:
1. Visualize your work
2. Limit work in progress
3. Use, monitor, adapt and improve
Kanban Board
Kanban Advantages and Disadvantages
Advantages:
1. Task Clarity
2. Status Alignment
3. Improved Team Efficiency
4. Better Focus And Avoid Burnout
Disadvantage:
1. lack of time frames and schedule details
2. Complexity Limitations
3. Updates Are Essential

You might also like