Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Lecture 14 - Software Lifecycle 2

Similar presentations


Presentation on theme: "Software Engineering Lecture 14 - Software Lifecycle 2"— Presentation transcript:

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.


Download ppt "Software Engineering Lecture 14 - Software Lifecycle 2"

Similar presentations


Ads by Google