Скачать презентацию An Introduction to Large-Scale Software Development Steve Varnau Скачать презентацию An Introduction to Large-Scale Software Development Steve Varnau

c6cc1e452e42a13cb62407ff41df4e34.ppt

  • Количество слайдов: 21

An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000 Page 1

Large. Scale SW Devel. Agenda • • • Software Change Software Configuration Management (SCM) Large. Scale SW Devel. Agenda • • • Software Change Software Configuration Management (SCM) Change Control Large-Scale Software Development Example: HP-UX Operating System October 31, 2000 2

Large. Scale SW Devel. Software Evolution The Need for Managing Software Change • Environment Large. Scale SW Devel. Software Evolution The Need for Managing Software Change • Environment Changes • Computer Hardware • Competition • Business Processes • External Requirements (Y 2 k, Euro, …) • New Standards (XML, MP 3, e-Speak, …) • All Software Demands Change • Incremental Development • Maintenance (Corrective, Perfective, Adaptive) October 31, 2000 3

Large. Scale SW Devel. Benefits of Source Control / SCM • Manage Constant Software Large. Scale SW Devel. Benefits of Source Control / SCM • Manage Constant Software Change • Improve Debugging Productivity • Trace Defect Reports to Correct Versions of Source Code • Understand Change History • Reproducibility • Build (Compile) Software Accurately, Repeatably • Grow Project Size • Avoid Over-writing and Losing Changes • Concurrent Development (Improve TTM) • Coordinate Work with Development Policies October 31, 2000 4

Large. Scale SW Devel. Terminology - File Versioning SCM • Revision / Version - Large. Scale SW Devel. Terminology - File Versioning SCM • Revision / Version - Single copy of a source file as it appeared at given point in its change history (checkpoint) • File / Element - Complete change history; all versions • Branch - Set of successive versions; parallel to other branches • Delta - Change from one file version to the next October 31, 2000 5

Large. Scale SW Devel. Terminology - Version Tree SCM October 31, 2000 6 Large. Scale SW Devel. Terminology - Version Tree SCM October 31, 2000 6

Large. Scale SW Devel. Terminology - Multiple File Configuration Management SCM • Variant - Large. Scale SW Devel. Terminology - Multiple File Configuration Management SCM • Variant - File based on another, co-exists with original • Derived Object - File automatically generated from source files • Change Set - Set of versions across multiple files making up a single logical change (e. g. , feature or fix) • Baseline - Consistent set of versions across all files October 31, 2000 7

Large. Scale SW Devel. Terminology - Baseline SCM October 31, 2000 8 Large. Scale SW Devel. Terminology - Baseline SCM October 31, 2000 8

Large. Scale SW Devel. Coordinating Work SCM Problem: Multiple people working on same file Large. Scale SW Devel. Coordinating Work SCM Problem: Multiple people working on same file at the same time can result in lost work. • Solution 1: Serialize work with file locking. • Solution 2: Work in isolation (branch) and merge. Branching and merging scales much better. Merging can be semi-automated using 3 -way merge algorithms. October 31, 2000 9

Large. Scale SW Devel. Merging - Version Tree SCM October 31, 2000 10 Large. Scale SW Devel. Merging - Version Tree SCM October 31, 2000 10

Large. Scale SW Devel. Formal definition (IEEE) SCM is the process of identifying and Large. Scale SW Devel. Formal definition (IEEE) SCM is the process of identifying and defining the items in the system, controlling the change of these items throughout their life cycle, recording and reporting the status of items and change requests and verifying the completeness and correctness of the items. Related Terms: Source Control, Version Control October 31, 2000 11

Large. Scale SW Devel. Change Control Managing Change Control - Formal processes for tracking Large. Scale SW Devel. Change Control Managing Change Control - Formal processes for tracking and approval of software modifications. Managed with SCM and defect tracking tools. Usual Policy Areas: • Documentation - Change request / defect report filed. • Approval - Change request reviewed by release management or technical board. • Quality Requirements - Code reviewed, regression tests passed. Policies often change by release stage and in response to problems. October 31, 2000 12

Large. Scale SW Devel. Change Control Development Process Key Components of Development Process: • Large. Scale SW Devel. Change Control Development Process Key Components of Development Process: • Software Configuration Management • Change Control • Quality Control October 31, 2000 13

Large. Scale SW Devel. Principles of Large-Scale Software Development Scaling • Reproducibility • Policy Large. Scale SW Devel. Principles of Large-Scale Software Development Scaling • Reproducibility • Policy Enforcement versus Policy Auditing • Process, Process A process must be defined to be improved • Automation A process must be automated to be repeatable • Continuous Functional Integration and Test October 31, 2000 14

Large. Scale SW Devel. Software Integration Scaling Integration: Combining multiple features or components developed Large. Scale SW Devel. Software Integration Scaling Integration: Combining multiple features or components developed in isolation. Large projects are subject to constant change, so isolation on a stable base is necessary. Continuous Functional Integration and Test (CFIT) • Changes integrated throughout development. • Changes not allowed to regress functionality or quality. October 31, 2000 15

Large. Scale SW Devel. HP-UX Development HP-UX • • • 220, 000+ Source Files Large. Scale SW Devel. HP-UX Development HP-UX • • • 220, 000+ Source Files ~2. 5 Million Versions 52, 000+ Derived Files (Single Nightly Build) 900+ User Accounts More Than 1 Terabyte of Disk Space October 31, 2000 16

Large. Scale SW Devel. HP-UX Concurrent Development HP-UX • Normally 2 -3 Releases Under Large. Scale SW Devel. HP-UX Concurrent Development HP-UX • Normally 2 -3 Releases Under Development • Several Releases Under Maintenance • Heavy Use of Branching and Merging October 31, 2000 17

Large. Scale SW Devel. HP-UX Multisite Development HP-UX • Four Primary Development Sites • Large. Scale SW Devel. HP-UX Multisite Development HP-UX • Four Primary Development Sites • Three in USA (Three Time Zones) • One in India • One USA Site Hosts Three Logical Sites • Partner Companies • Several Secondary Sites October 31, 2000 18

Large. Scale SW Devel. Tiered Software Integration Model HP-UX 1. Developer Task - Edit, Large. Scale SW Devel. Tiered Software Integration Model HP-UX 1. Developer Task - Edit, Compile, Test 2. Submit - Batch Changes, Acceptance Test 3. Baseline - Nightly Build, Regression Test 4. Integration - Monthly Packaging, Partner Test 5. Release - Semi-annual Delivery, Production Use October 31, 2000 19

Large. Scale SW Devel. Integration Levels HP-UX Release Integration Cycle Baseline Submit Build Modifications Large. Scale SW Devel. Integration Levels HP-UX Release Integration Cycle Baseline Submit Build Modifications October 31, 2000 20

Large. Scale SW Devel. Process Evolution • Continuous Process Improvement • Root Cause Analysis Large. Scale SW Devel. Process Evolution • Continuous Process Improvement • Root Cause Analysis (RCA) • Capability Maturity Model (CMM) 1. Initial 2. Repeatable 3. Defined 4. Managed 5. Optimizing October 31, 2000 21