Top Banner
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming ight © 2009–2012 National Academy Foundation. All rights reserved.
14

Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Dec 15, 2015

Download

Documents

Evelyn Brake
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Unit 1, Lesson 4

Software Development Cycle

AOITIntroduction to Programming

Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Page 2: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Software development requires a structured process

• A software development process defines the steps to develop a software product.

• The software development process is also called the software life cycle.

Why do you think a development process would be called a life cycle?

Page 3: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

There are two main models for software development

• The waterfall model

• The iterative (or incremental) model

Can you predict any differences between the waterfall model and the iterative model?

Page 4: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The waterfall model flows down

Problem statement

Requirements

Coding, testing

Design

Deployment

Maintenance

What are the problem statement and requirements for circle.py?

How is software typically “deployed” to users?

Page 5: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The waterfall model has important limitations

• Too “linear” (no way to “circle back” during the process to correct or to apply lessons learned along the way)

• No user feedback after deployment

What does linear mean?

How does the waterfall model illustrate a linear process?

Page 6: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The iterative model is cyclical

1. Problem statement

2. Requirements

6. Implementation

4. Design

7. Testing

9. Maintenance

3. Planning

5. Prototyping10. Evaluation

8. Deployment

Circular,not linear

Page 7: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The agile development process is based on the iterative model

• Cross-functional teams collaborate

• Requirements and solutions evolve iteratively through collaboration

• Project management involves discussion, inspection, adaptation

What can you learn from the diagram about important aspects of Agile development?

Page 8: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The agile development process is based on the iterative model

• Cross-functional teams collaborate• Each team member can perform

several functions

• For example, coders can also act as testers.

• Requirements and solutions evolve iteratively through collaboration

• Project management involves discussion, inspection, adaptation

Why is it important for teams to be "cross-functional"?

Page 9: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The iterative model has many advantages

• Test ideas by prototyping

• Divide the software project into more manageable “releases” of code

• Respond to customer feedback

• Change even the original problem statement (if necessary) after experience in the field

Page 10: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Most software development uses a team approach

• Marketing team• Management team• Architecture and design team • Software development team• Test team • Information development team • Customer support team

Page 11: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

This course also has programming teams

• Our programming pairs are a small team.

• We take advantage of multiple skills.

• We divide up the work.

• We try out different roles.

How else are programming pairs like a mini software development team?

Page 12: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Our teams are using the iterative model

1. Write problem statement.2. Write requirements.3. Create design of the first “iteration” (e.g., Basic

Snowman) and evaluate for extensibility.4. Code, test, fix bugs, deploy first iteration.5. Design next iteration (e.g., Advanced

Snowman).6. Code, test, fix bugs.7. Deploy, maintain, evaluate for the next

“product release.”

What might happen in the next iteration of the Snowman program?

Page 13: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

The Snowman project followed this process

Problem statement

Requirements

Implementation

Design

Testing

Maintenance

Planning

PrototypingEvaluation

Deployment

When you did the Snowman project, how many times did you go around the circle?

Page 14: Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.

Professionals use the software life cycle

• Software development requires structure.

• The iterative model is preferred because• it allows multiple teams to work on different parts of the

cycle at the same time, and• it allows teams to learn and improve on their program

designs over time.

• We use a simplified version of the iterative model in this course, developing skills required in the professional programming environment.