Why Is Software Difficult to Build?

Slides:



Advertisements
Similar presentations
Requirements Engineering Processes – 2
Advertisements

1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
Configuration management
Software change management
Configuration Management
Configuration Management
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
SE 555 Software Requirements & Specification Requirements Management.
Recall The Team Skills 1. Analyzing the Problem 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5. Refining the System.
Project Management Plan
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Change Request Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
Other Software Processes
Michael Solomon Tugboat Software Managing the Software Development Process.
Release & Deployment ITIL Version 3
SE-02 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): - What? - Why? - How?
Software Configuration Management (SCM)
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
S/W Project Management
Introduction to Software Quality Assurance (SQA)
Software Engineering Modern Approaches
Software Configuration Management
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Software Configuration Management (SCM)
Configuration Management Matti Kuikka CONFIGURATION MANAGEMENT by Matti Kuikka, Unit Manager, Ericsson, Turku, Telecom R&D, Wireless Charging.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Software Quality Assurance
Georgia Institute of Technology CS 4320 Fall 2003.
© Mahindra Satyam 2009 Configuration Management QMS Training.
KS3 Phase4 Client Server Monitoring System October 1, 2008 by Stephen, Seema, Kam, Shpetim.
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Develop Project Charter
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa Configuration management.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Management of Software Project CSM Software Configuration Management (SCM)
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Configuration Management
Project management Topic 8 Configuration Management.
Software Engineering Lecture 9: Configuration Management.
Configuration Control (Aliases: change control, change management )
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
Software Configuration Management (SCM)
Software Configuration Management -Subversion- RTLAB YuJin Park.
Change Request Management
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management CSC-532
Software Project Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Software Configuration Management
Configuration Management
Software Configuration Management
Configuration Management (managing change)
Chapter 11: Software Configuration Management
Chapter # 6 Software Configuration Management
Configuration Management
Software Configuration Management
Presentation transcript:

Why Is Software Difficult to Build? Lack of control Lack of monitoring Lack of traceability Uncontrolled changes

Conflicts in Team Software Development Simultaneous updates – how to prevent one person from undoing the changes of another Shared and common code – how to notify everyone who needs to know about a change Versions – how to make changes to all affected versions when needed

Other Software Processes With a focus on: Configuration management Change management Other Software Processes Other Processes

Other Processes Development Process is the central process around which others revolve Methods for other processes often influenced by the dev process Other Processes

Other Processes In the context of Dev Processes

Monitoring and control Aspect of project management process Lasts for the duration of the project and covers the development process Monitors all key parameters like cost, schedule, risks Takes corrective actions when needed Needs information on the dev process – provided by metrics Other Processes

Communication Facilitation Realistically no plan covers everything! Additional decisions are made during development Documents should be updated and communicated Typical environment Multiple teams Multiple user groups Multiple disciplines Multiple locations In many setting PM is center of communication hub Planning and content meetings Other Processes

Meeting Types Issues Meetings QA Meetings Regularly schedule meeting (ie. open in everyone’s schedule) Issues gathered the day before and distributed Issue initiator indicates required attendance QA Meetings Planning Discussion with business Discussion with developers Regular Review of open tickets Other Processes

Relationship with Dev Process Other Processes

Configuration Management Process Other Processes

Software Configuration Management Basics Identification – identifying software configuration items in a baseline Control – controlling the release of a product and changes to it throughout its lifecycle Status Accounting – recording and reporting of the status of components and changes Auditing and Reviewing – Validating the completeness of a product and that SCM procedures are being followed

SCM Definitions Baseline – One or more software configuration items that have been formally reviewed and agreed upon and serve as a basis for further development Software Configuration Item – A collection of software elements treated as a unit for the purposes of SCM Configuration – A collection of all the elements of a baseline and a description of how they fit together

SCM Definitions (cont’d) Configuration Control Board – Group with the responsibility for reviewing and approving changes to baselines Software – All of the code, specifications, plans, descriptions, processes, and documents associated with a software development effort Version – A specific instance of a baseline or configuration item

Background A software project produces many items - programs, documents, data, manuals, … All of these can be changed easily – need to keep track state of items Software Configuration Management (SCM) Systematically control the changes Focus on changes during normal evolution (req changes will be handled separately) CM requires discipline as well as tools Other Processes

Background SCM often independent of dev process Dev process looks at macro picture, but not on changes to individual items/files As items are produced during dev they are brought under SCM SCM controls only the products of the development process Other Processes

Examples of Configuration Items Product concept specification Software project plans Software requirements specifications Software design descriptions Source code Database descriptions SCM procedures Software release processes Software test documents User documentation Maintenance documentation

SCM Process and Dev process Other Processes

Need for CM CM needed to deliver product to the client What files should comprise the product? What versions of these files? How to combine these to make the product? Just for this, versioning is needed, and state of different items has to be tracked There are other functions of CM also Other Processes

Functionality Needed Capture current state of programs Capture latest version of a program Undo a change and revert back to a specified version Prevent unauthorized changes Gather all sources, documents, and other information for the current system Other Processes

CM Mechanisms Configuration identification and baselining Version control Access control These are the main mechanisms, there are others like naming conventions, directory structure,… Other Processes

Configuration Items Sw consists of many items/artifacts In CM some identified items are placed under CM control Changes to these are then tracked Periodically, system is built using these items and baselines are established Baseline – logical state of the system and all its items; is a reference point Other Processes

Version Control Allows different projects to use the same source files at the same time Isolates work that is not ready to be shared by the rest of the project Isolates work that should never be shared Allows software engineers to continue development along a branch even when a line of development is frozen

Version and access control Key issues in CM Done primarily on source code through source code control systems, which also provide access control Allows older versions to be preserved and hence can undo changes Examples: CVS – Original open source system (1986) Subversion – Open source CVS replacement (1999) Microsoft Visual SourceSafe (VSS) – targeted for smaller dev projects IBM Rational ClearCase – Industrial strength solution Other Processes

Version and Access Control When programmer developing code – is in private area When code is made available to others, it goes in an access-controlled library For making changes to an item in library, it has to be checked out Changes made by checking-in the item – versioning is automatically done Final system is built from the library Other Processes

Version/Access Control Generally both version and access control done through CM tools Tools limit access to specified people - formal check in, check out procedures Automatic versioning done when a changed file is checked-in Check-in, check-out control may be restricted to a few people in a project Require successful compile/build cycle Other Processes

CM Process Defines the activities for controlling changes Main phases CM Planning Executing the CM process CM audits Other Processes

CM Planning Identify items to be placed under CM Define library structure for CM Define change control procedures Define access control, baselining, reconciliation, procedures Define release procedure Other Processes

CM Audit During project execution CM procedures have to be followed (e.g. moving items between directories, naming, following change procedures, …) Process audit has to be done CM audit can also check if items are where they should be Other Processes

Summary – CM CM is about managing the different items in the product, and changes in them Developing a CM plan at the start is the key to successful to CM CM procedures have to be followed; audits have to be performed Requires discipline and tools Other Processes

Requirements Change Management Process Other Processes

Background Requirements change at any time during the development Changes impact the work products and the various configuration items Uncontrolled changes can have a huge adverse impact on project in cost/sched Changes have to be allowed, but in a controlled manner Other Processes

Change Control Proposed changes to baselines must have some level of review The impact of proposed changes must be identified and understood. When appropriate the approval of the CCB, key managers and project members must be obtained Approved changes must be properly implemented After changes are made all affected parties must be notified

A Change Mgmt Process Log the changes Perform impact analysis on the work products and items Estimate impact on effort and schedule Review impact with stakeholders Rework the work products/items Other Processes

Changes Change often triggered by change request Change req log keeps a record of requests Impact analysis for a change request involves identifying the changes needed to diff items, and the nature of change The impact of changes on the project is reviewed to decide whether to go ahead Cumulative changes also often tracked Other Processes

http://www. marinebiodiversity http://www.marinebiodiversity.ca/COINAtlantic/development-implementation-sustainability/geoconnections-coinatlantic/web- mapping-application/User%20Acceptance%20Test%20Plan%20and%20Change%20Request%20Process%20-%20Cur....pdf/view

Baseline CM Recall: A baseline is one or more software configuration items that have been formally reviewed and agreed upon and serve as a basis for further development Other Processes

Baseline Management What baselines are required to be defined and managed? Typically aligned with major milestones Applies to documents as well as code How is the current software configuration defined? A snapshot of everything the product has produced at some point in time

Baseline Management (cont’d) Who must approve changes to baselines? Usually the Change Control Board (CCB) How and when are baselines created and physically controlled? Through the use of document control systems, code control tools, and procedures to prevent the making of unapproved changes

Baseline Management (cont’d) How are people informed of changes? The CCB disseminates change information How are baselines verified? By reviews, inspections, and the testing of code Are baselines tied to project milestones? Many are, but during coding many may not be

Baseline Management (cont’d) What information is required to process a change to a baseline? A description of the proposed changes Reasons for making the changes List of other items affected by the changes What tools, resources, and training are required to perform baseline change assessment? File comparison tools to identify changes Resources and training depend on size and complexity of project

Baseline Management (cont’d) How are unauthorized changes to source code prevented, detected, and corrected? No way to prevent unauthorized changes Provide software engineers with training A commercial available SCM systems provide adequate protection Unauthorized changes should be caught during assessment procedures

Baseline Management (cont’d) What tools, resources, and training are required to perform baseline management? A fully featured SCM tool On large projects a separate SCM group may be needed SCM training is required for all involved in the process

For your project: Should have a configuration management process defined Change management procedures Any changes to the baseline documents should be documented and include a formal change management request Other Processes

Examples Collegiate Project Services http://www.collegiateproject.com/articles/Pr eliminaryChangeManagementPlan.pdf Eclipse: http://www.eclipse.org/epf/process/change_r equest_faq.php Other Processes