Hot topics in Evolutionary Software Development - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Hot topics in Evolutionary Software Development

Description:

Evolutionary software development recognizes that planning for the whole ... How to reuse walkthroughs? How to reuse reviews? How to beta-test successive releases? ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 21
Provided by: wmorveng
Category:

less

Transcript and Presenter's Notes

Title: Hot topics in Evolutionary Software Development


1
Hot topics in Evolutionary Software Development
National Research Council Canada Institute
for Information Technology
Conseil national de recherches Canada Institut
de technologie de linformation
  • W. Morven Gentleman
  • Institute for Information Technology
  • Ottawa, ON
  • Morven.Gentleman_at_NRC.CA

2
What is Evolutionary Software Development?
  • Successful software must evolve
  • To address new requirements
  • To take advantage of new technology
  • To meet new expectations.
  • Conventionally each update is treated as an
    isolated project with fixed specifications

3
What is Evolutionary Software Development?
  • Evolutionary software development recognizes that
    planning for the whole lifetime, with all its
    changes, can reduce life cycle costs and
    accelerate delivery of new functionality

4
1. Choices for Process Software Architecture
  • What architectures preserve investment?
  • What architectures facilitate evolution?
  • What architectures inhibit evolution?
  • What processes avoid redundancy?
  • What processes facilitate evolution?
  • What processes inhibit evolution?
  • How would you substantiate these claims?

5
2. Incremental Delivery
  • Is the time scale nightly build?
  • Is the time scale product release?
  • How do you decide what to defer?
  • How does deferred functionality appear?
  • What provision is made for upgrades?

6
3. Concurrent Development of Successive Releases
  • When to initiate development on new release?
  • Same team or different teams?
  • How to (retro)fit changes to multiple releases?
  • How to represent ideas for future releases?

7
4. Coping with Platform Evolution
  • Both hardware and software platforms?
  • Anticipated and unexpected evolution?
  • Exploit generated code and other indirection?
  • Other tools?

8
5. Coping withProcess Change
  • Change to mandated process for use?
  • If process changes, how must history change?
  • Can history with old process aid new process?

9
6. Data Structure Format Evolution
  • Changes in
  • Input?
  • Output?
  • Database?
  • Control actions?
  • Conversion tools?

10
7. Interoperability
  • Interoperability supported at all levels
  • coexistence with other software?
  • backward and forward compatibility?
  • explicit complementary competitive products?
  • Recognize that software used in conjunction with
    this software evolves too?

11
8. Scaffolding
  • (Ancillary software used to build products)
  • What scaffolding is unique to a specific release?
  • What scaffolding need be reused for each release?
  • Implications for building scaffolding?

12
9. Configuration Management
  • Developers geographically distributed?
  • Developers organizationally distributed?
  • Product families?
  • Nontextual entities?
  • Configuration management at customer sites?

13
10. Automated Upgrading
  • Improve registry concept and implementation?
  • Better configuration probing?
  • Identifying and updating saved data?
  • Verification of successful installation?
  • Uninstall and other failure handling?
  • Generating feedback to developers?

14
11. Testing
  • What regression testing is appropriate?
  • Can integration testing be simplified?
  • What inter-release consistency testing is needed?
  • How to do installation testing?
  • Changes induce how much integrity testing?

15
12. Incremental Quality Assurance
  • How to reuse walkthroughs?
  • How to reuse reviews?
  • How to beta-test successive releases?
  • How to achieve incrementality?

16
13. Field Support for Several Releases
Simultaneously
  • Detection of which release automatic?
  • Automatically identify relevant data and snapshot
    it?
  • Choice of updates automatically?
  • Adequate recording in registry?

17
14. Aids for Retraining Users
  • Semi-automation for design and production of
    training tutorials?
  • Semi-automation for design and production of
    interactive exercises?
  • Semi-automation for design and production of
    integrated wizards?

18
15. Project Metric Tracking
  • Product metrics
  • What metrics are required?
  • How to collect data?
  • How to interpret results?
  • Process metrics
  • What metrics are required?
  • How to collect data?
  • How to interpret results?

19
16. Implications for Procurement
  • Balancing long-term relationships
  • Cost of maintaining team?
  • Challenge of sustaining interest?
  • Commitment to continued activity?
  • Opportunities for reassessment?
  • Support for long-term Prime/Sub relationships?
  • Alternatives for progress payments?
  • How to change the culture Change to what?

20
Conclusions
  • Plentiful opportunities for research
  • Gaining acceptance is the principal challenge
  • Technical problems must be solved, but ultimate
    issues are not technical
Write a Comment
User Comments (0)
About PowerShow.com