Download presentation
Presentation is loading. Please wait.
Published byΙδουμα Δημητρακόπουλος Modified over 6 years ago
1
Software Engineering Lecture 14 - Software Lifecycle 2
2
Software Development Process
3
Agenda Configuration Management Deployment Maintenance
4
Software Configuration Management (SCM)
Changes to requirements drive the design Design changes affect the code
5
Motivation What if a fully tested program doesn’t work?
What if a difficult bug that was fixed reappears?
6
Without control Simultaneous updates Shared code Common code Versions
Problems Leads to wasting an enormous amount of time
7
Control the system To answer the questions
What is my current software configuration? What is its status? How do I control changes to my configuration? What changes have been made to the software? Do anyone else’s changes affect my software? What tests go together with this version?
8
Configuration Management Overview
Initial development Establish / Update Baseline Validate Baseline Baseline Changes Requirements / Design / Use Authorize change Implement change Validate change Approve change
9
Change Request Form
10
Configuration Control
Only one official copy of the code Baseline Not the same as version management Changes to the baseline must be approved
11
The version confusion “The user-interface crashes when I press this button” “But you told me you added this feature… I don’t see it” “There is an interface mismatch between these components”
12
Versioning Revisions Branches Merge Trunk (subversion) = Master (Git)
saved changes Branches the main projects is branched to enable simultaneous development Merge a point where branches are merged to form a new baseline Trunk (subversion) = Master (Git) The main branch of the project Baseline = Labels = Tags An approved version for all to work on Checkout, Commit, Conflict - Resolve, Delta compression (only retain the differences between successive versions of files), Repository where the current historical data is stored, working copy (local copy)
13
Versioning In some cases:
Odd-numbered versions for development releases Version 1.0 as a milestone major.minor[.build[.revision]] Or major.minor[.maintenance[.build]]
14
Tools Versioning / Change management tools Bug tracking CVS Subversion
Git Bug tracking Bugzilla Mantis Redmine
15
Release Management Deployment
16
Common Release Problems
Take too long – impacts revenue Unpredictable – impacts dependent plans Poor quality – impacts support Not useful – impacts revenue Contents unplanned – impacts integrity Contents uncontrolled – impacts reliability Overlooked distribution/installation – impacts support Cowham, Robert. “Release Management – Making it Lean and Agile” CM Crossroads, Aug 16,
17
The Challenge Time to Market vs Features vs Quality Time to Market
Only one top priority Balance – don’t ignore the other two Release criteria reflect priorities Product development methodology supports priorities: concurrent engineering, test-first development, prototyping Time to Market Features Quality
18
Types of Releases Major = significant new features, product launch, planned, pull, annual Minor = small new features, backwards compatible, planned, pull, semi-annual Patch = collection of bug fixes, planned, pull, quarterly Emergency = Urgent bug fix, harmful if not fixed, unplanned, push, as needed
19
Attributes by Release Type
Features/Functions Bugs Cost Urgent Scheduled Backwards Compatible Major Y (new) Minor Y (upgrade) Patch Fix
20
Release Process Define Content Assign Version Plan Release Build
Package Deploy Test Control Change Assess Readiness Release Iterate
21
1. Define Content Golden Build (software) Documentation
Training materials Marketing collateral Internal documents Customer Notification Release Notes
22
1. Define Content: Must and Nice
Disp ID Severity Pri Description Nice 41928 enhancement P3 Performance - Publish: loadSiteLite() to replace loadSite() 59439 trivial P4 Misalignment of Editable site and Proof site sections on Manage site screen once the actor checks Lock-site checkbox. 59929 minor P5 Error message:Get A Quote form:The listed items in error message may need some order; by logical or by alphabetic 57954 major P2 Only Ford Make is displayed in 'Quick Quote Form' : GM Design 59368 Masthead descenders are being chopped off in Klamath_B_Dst design 57019 Can't tell mouse over selection from current page selection in nav 59726 Design Celandine: Titles (Header) for static pages are not bold as those for dynamic pages 60108 Misalignment of footer in Hours and directions page-Celandine designs Must 64793 create new Saab luxury design and homepage 64796 create new Land Rover luxury design and homepage
23
2. Assign version Version is a unique identifier for the product state as of a certain point in time. Not all versions are released. Versions are sequential. Versioning Schemes relate to release types, product management, and configuration management: Major.Minor.Patch.Fix, e.g. 1.0, 1.1, 1.1.2, Major.Feature.Patch, e.g. 1.0, 1.1, 1.1.2 Major.Feature.Patch.Build, e.g
24
3. Plan Release Dependencies Customer commitments Revenue recognition
Resource availability: people, environments Introducing too much change at once Stabilizing between releases Organizational capability
25
3. Plan Release: Milestones
Scope Freeze 9/7 COMPLETE Functional Freeze 9/17 Functional Test Complete 9/30 Code Freeze 10/1 Regression Test Complete 10/13 Golden Build 10/8 Performance Test Complete Mock Deployment 10/12 FAILED 10/14 Deployment Plan Review 10/15 Go/No-Go COMPLETE – GO Executive Approval COMPLETE-APPROVED RELEASE
26
4. Build Build (What) Visibility (Who) Frequency (When) Purpose (Why)
Private System Build Individual Developer One or more times per change task Provide feedback to the developer of the changes just implemented in the private workspace. Integration Build Whole Development Team After each change task and/or one or more times per day (e.g. Nightly) Integrates the latest changes in the repository and runs automated tests against the release providing feedback to the development team. Release Build Independent Test (QA or V&V) Team and Customers At the end of each iteration/release Packages release for distribution to the development team’s customer. Appleton, Brad. “Agile Build Promotion: Navigating the Ocean of Promotion Notions”, CM Crossroads, September
27
5. Package Create the release package containing all release deliverables File: tar, .zip, .exe, .msi Medium: CD-ROM, Web, App-store, etc. Bill of Materials lists what’s in the package Final release package is “golden build” December 6, 2004
28
6. Deploy Deployment Plan Install Team Deployment Plan Review
Contact List
29
7. Test Plan ahead for test environments Execute Test Plan
Functional test: does it function as required? Regression test: did old bugs reappear? Performance test: does it perform within acceptable limits? Reliability test: does it function consistently over time? Stress test: does it function consistently under volume?
30
8. Control Change Baseline scope, requirements, design
Accommodate controlled change Allow change, it’s reality Change requests Change request decision (approve, reject, defer) Change Control Board (CCB) Cross-functional representation Impact analysis Business drivers
31
9. Assess Readiness Release Criteria define “done”
Defined Deliverables Features: Must Have vs Nice to Have Quality: test results, metrics Schedule: time-to-market criteria Objective, quantifiable criteria preferred Organizational Readiness Support, Training, Marketing, Sales Acceptable Risk
32
Assess Readiness: Metrics
Common metrics: fix rate, find rate, defect density, rate of change Example: find rate vs fix rate Stability reached at week 35 of testing, when defects fixed exceeds defects opened.
33
9. Assess Readiness: Go/No-Go
Release Readiness Assessment Are all release criteria equal? Can any criteria be waived? Go/No-Go Formal sign-off by stakeholders Meeting, vote Recommendation by Release Manager Executive Approval
34
10. Release Formal release by Configuration Mgmt
Deploy to Production or Distribute to Customer
35
What’s in the release? Getting your program ready for market
Help documents Executable file Icon library License Agreement Code Obfuscation Trial Version Install Wizard Uninstall Program
36
Maintenance
37
What maintainers do Alain Abran and James W. Moore, Executive Editors. Guide to the Software Engineering Body of Knowledge - SWEBOK®. IEEE Computer Society, ISBN
38
Types of Maintenance Corrective Maintenance Adaptive Maintenance
Perfective Maintenance (Preventative Maintenance)
39
Corrective Maintenance
Focuses on fixing defects, ie, fault repair It is a reactive process i.e. defects generally need to be corrected either immediately or in the near future Defects refer to the system not performing as originally intended or as specified in the requirements 17% of maintenance is correcting faults
40
Adaptive Maintenance It includes all changes to meet the evolving needs of the user and the environment i.e. modifications to a system to cope with a changing environment, eg changed hardware, operating system 18% of maintenance is change to adapt to a new environment It includes work to enhance a system’s functionality i.e. relates to changing a system when requirements change due to organisational or business changes The scale of this maintenance is often greater than for other types of maintenance 65% of maintenance is new requirements
41
Perfective Maintenance
It includes all efforts to improve the quality of the software It includes restructuring code, creating and updating documentation, improving reliability or efficiency, improving performance Maintenance work in the above categories is often performed concurrently
42
What maintenance is Re-engineering Refactoring Bug-fixing
Adding features Porting to new environments Improving quality attributes Etc.
43
Summary Larger systems require more control
Without control we end up wasting time We need to be able to track and control changes Release management What should be included in the release? Maintenance Less work if we did it right from the start Documentation, versioning, architecture design, plan ahead, etc.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.