Software Development Lifecycle Tuesday, November 19th 1 Hardware - - PowerPoint PPT Presentation

software development lifecycle
SMART_READER_LITE
LIVE PREVIEW

Software Development Lifecycle Tuesday, November 19th 1 Hardware - - PowerPoint PPT Presentation

Software Development Lifecycle Tuesday, November 19th 1 Hardware wears out Infant Wear out mortality Failure rate Time Failure curve for hardware 2 Software doesn't wear out Increased failure rate due to side effects


slide-1
SLIDE 1

Software Development Lifecycle

Tuesday, November 19th

1

slide-2
SLIDE 2

Hardware wears out

2

“Wear out” “Infant mortality” Time Failure rate

Failure curve for hardware

slide-3
SLIDE 3

Software doesn't wear out

3

Increased failure rate due to side effects

Time Failure rate Change Actual curve Idealized curve

slide-4
SLIDE 4

Software doesn't wear out

3

Increased failure rate due to side effects

Time Failure rate Change Actual curve Idealized curve

slide-5
SLIDE 5

Software doesn't wear out

3

Increased failure rate due to side effects

Time Failure rate Change Actual curve Idealized curve

Software deteriorates

slide-6
SLIDE 6

SDLC – Software Development Lifecycle

4

https://www.tutorialspoint.com/sdlc/ sdlc_overview.htm

slide-7
SLIDE 7

Big Bang Model

Develop code Understand requirements as you go ahead Basically, no planning, defining, or designing

5

slide-8
SLIDE 8

Waterfall

6

slide-9
SLIDE 9

Waterfall

6

slide-10
SLIDE 10

Pros

7

slide-11
SLIDE 11

Pros

Well documented requirements & documentation Easy to manage phases across teams

7

slide-12
SLIDE 12

Cons

8

slide-13
SLIDE 13

Cons

Rigid phases No working software until late stage Not much reflection or revision Big Bang Integration at the end

8

slide-14
SLIDE 14

The impact of change

(for waterfall)

9

1× Definition 1.5–6× Development 60–100× After release Cost to change

slide-15
SLIDE 15

Spiral model

10

Construction & release Customer evaluation Risk analysis Planning Customer communication Engineering Project entry point axis Product maintenance projects Product enhancement projects New product development projects Concept development projects A typical spiral

slide-16
SLIDE 16

Pros

11

slide-17
SLIDE 17

Pros

Used for medium – high risk projects Complex and unclear requirements that need evaluation Early involvement with system development & users

11

slide-18
SLIDE 18

Cons

12

slide-19
SLIDE 19

Cons

Management & process is complex Large number of cycles require lots of documentation When is end of cycle not always clear

12

slide-20
SLIDE 20

Iterative model

13

slide-21
SLIDE 21

Pros

14

slide-22
SLIDE 22

Pros

Major requirements (and risks) are identified upfront Working model at early stage Parallel development can be planned Suited for large, mission critical systems

14

slide-23
SLIDE 23

Cons

15

slide-24
SLIDE 24

Cons

Defining iterations may require definition of complete system Not all requirements is gathered upfront; changing requirements still expensive Increased pressure on user engagement

15

slide-25
SLIDE 25

Agile

16

slide-26
SLIDE 26

Agile Manifesto

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

17

slide-27
SLIDE 27

Pros

18

slide-28
SLIDE 28

Pros

Manage changing requirements Minimal planning or documentation Promotes team work & collaboration Quickly change directions

18

slide-29
SLIDE 29

Cons

19

slide-30
SLIDE 30

Cons

Overall plan/agile manager Can't handle complex dependencies Iterations determine scope of project Heavy reliance on personnel (minimal documentation, newcomer onboarding, customer interaction)

19

slide-31
SLIDE 31

20

slide-32
SLIDE 32

Agile methods

Scrum Kanban Extreme Programming DSDM (Dynamic Software Development Method) Feature Driven Development (FDD) Behavior Driven Development (BDD)

21

http://www.guru99.com/agile-scrum- extreme-testing.html

slide-33
SLIDE 33

Extreme Programming

One the first agile methods TDD, continuous integration, refactoring were

  • riginally introduced by XP.

22

slide-34
SLIDE 34

XP Practices

Pair Programming TDD Continuous Integration Refactoring Small Releases Coding Standards Collective Code Ownership Simple Design Sustainable Pace

23

slide-35
SLIDE 35

Scrum

24

slide-36
SLIDE 36

Scrum terminology

Product Backlog: An ordered list of everything that is known to be needed in the product. A Product Backlog is never complete. Increment: The sum of all the Product Backlog items completed during a Sprint plus the value of the increments

  • f all previous Sprints. At the end of a Sprint, the new

Increment must be “Done.” Sprint Backlog: the set of Product Backlog items selected for the Sprint, plus a plan for delivering the product Increment and realizing the Sprint Goal

25

slide-37
SLIDE 37

Scrum terminology

Story Points: A unit of measure for expressing an estimate of the overall effort that will be required to fully implement a product backlog item or any other piece of work. Velocity: The sum of all the story points that are "Done" at the end of the Sprint.

26

slide-38
SLIDE 38

27

slide-39
SLIDE 39

28

slide-40
SLIDE 40

Scrum roles

Product Owner: is responsible for maximizing the value of the product resulting from the work of the Development Team. The sole person responsible for managing the Product Backlog Clearly expressing Product Backlog items. Ordering the items in the Product Backlog

29

slide-41
SLIDE 41

Scrum Roles

Development Team: consists of professionals who do the work of delivering a potentially releasable Increment of “Done” product at the end of each Sprint. They are self-organizing. No one tells the Development Team how to turn Product Backlog into Increments of potentially releasable functionality.

30

slide-42
SLIDE 42

Scrum Roles

Scrum Master: responsible for promoting and supporting Scrum. Helping the team to reach consensus for what can be achieved during a specific period of time. Removing obstacles that are impeding the team's progress. Protecting the team from outside distractions.

31

slide-43
SLIDE 43

Scrum Activities

Sprint planning: What can be delivered in the Increment resulting from the upcoming Sprint? How will the work needed to deliver the Increment be achieved? Time-boxed to a maximum of eight hours for a one- month Sprint.

32

slide-44
SLIDE 44

Scrum Activities

Daily Scrum: a 15-minute time-boxed event for the Development Team to synchronize activities and create a plan for the next 24 hours. Sprint Review: held at the end of the Sprint to inspect the Increment and adapt the Product Backlog if needed.

33

slide-45
SLIDE 45

Scrum Activities

Sprint Retrospective: an opportunity for the Scrum Team to inspect itself and create a plan for improvements to be enacted during the next Sprint. The team discusses: What went well in the Sprint What could be improved What will we commit to improve in the next Sprint

34

slide-46
SLIDE 46

Kanban

Work flows continuously through the system, instead

  • f being organized into distinct timeboxes.

Work items are represented visually on a kanban board, allowing team members to see the state of every piece of work at any time.

35

slide-47
SLIDE 47

36

slide-48
SLIDE 48

Work in Progress

In Kanban, Work in Progress is limited. This allows the team to develop a flow, without loosing time switching between different tasks The board allows the team to identify blockers, and clear them out quickly.

37

slide-49
SLIDE 49

When to choose a particular kind of process

slide-50
SLIDE 50

When to choose a particular kind of process

Waterfall is often a good choice for small systems whose requirements can be fully understood before any design or coding.

slide-51
SLIDE 51

When to choose a particular kind of process

Waterfall is often a good choice for small systems whose requirements can be fully understood before any design or coding. Spiral is often a good choice for larger systems with vague requirements and many alternatives for designing and coding.

slide-52
SLIDE 52

When to choose a particular kind of process

Waterfall is often a good choice for small systems whose requirements can be fully understood before any design or coding. Spiral is often a good choice for larger systems with vague requirements and many alternatives for designing and coding. Agile is often a good choice for systems where you can rapidly create something very small but useful, and then expand from there.