35
Software Development Process Yonglei Tao 1

Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Embed Size (px)

Citation preview

Page 1: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

1

Software Development Process

Yonglei Tao

Page 2: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

2

Software Development

Communication CoordinationConceptualization

Solutions• Processes and methodologies for analysis and design• UML for communication and coordination• Tools that automate or support methodology steps.

Tasks

Page 3: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

3

Software Process A software process defines a series of

activities performed to construct a software system Each activity produces some artifacts, which are

the input to other phases Each phase has a set of entrance criteria and a

set of exit criteria

Page 4: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

4

The Waterfall ModelSystem Engineering

Software Requirements Analysis

Software Design

Coding & Unit Testing

Integration & Integration Testing

Acceptance Testing

Maintenance

Page 5: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

5

Merits of the Waterfall Model Simplifies project management Supports function-oriented project

organization Each project is carried out by a pipeline of

functional teams Each functional team is specialized in one

function such as requirements analysis, design, implementation, integration and testing, and so forth

Page 6: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

6

Problems of the Waterfall Model It is inflexible to requirements change The long development duration means the

system is outdated when it is delivered Users cannot experiment with the system

to provide early feedback The customer has to wait until the entire

system is implemented and deployed to reap the benefits

The customer may lose the entire investment if the project fails

Page 7: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

7

Software Process Models Prototyping Process Model Evolutionary Process Model Spiral Process Model Unified Process Model Personal Software Process Model Team Software Process Model Agile Process Models

Page 8: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

8

Agile Processes Agile development values

individuals and interactions over processes and tools working software over comprehensive

documentation customer collaboration over contract negotiation responding to changes over following a plan

Agile processes emphasize teamwork joint application development with the user design for change rapid development and frequent delivery of small

increment in short iterations

Page 9: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

9

Agile Process Models

phas

es in

an

itera

tion

Iterations

Page 10: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

10

Some Well-Known Agile Methods Dynamic Systems Development Method

(DSDM) Feature Driven Development (FDD) Scrum Extreme Programming (XP) Crystal Clear Lean Development

Page 11: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

11

Agile versus Plan-Driven Agile methods work well for small to medium-

size projects that face frequent changes in requirements

Plan-driven approaches remain the de facto choice for large, complex systems where predictability is important

Both are needed “The challenge is to balance the two

approaches to take advantages of their strengths and compensate for their weaknesses.” – Boehm and Turner

Page 12: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

12

Process and MethodologyProcess Defines a framework of phased activities Specifies phases of WHAT Does not dictate representations of artifacts It is paradigm-independent A phase can be realized by different

methodologies

Methodology Defines steps to carry out phases of a process Describes steps of HOW Defines representations of artifacts (e.g., UML) It is paradigm-dependent Steps describe procedures, techniques, and

guidelines

Page 13: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

13

Software Design Paradigms Include a set of theories, standards, and

methods A way to organize knowledge A perspective to view a software system

Also provide notations, guiding principles, evaluation criteria, and support tools

Page 14: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

(1) Structured Analysis and Design

14

SA / SD SA uses Data Flow Diagrams (DFDs) SD uses Structure Charts

View point Functional What needs to be done

Design strategy Top-down decomposition

Page 15: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Data Flow Diagrams

15

Page 16: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Problem Solving

16

Page 17: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

DFD Example - Context Diagram

17

Page 18: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Level 1 DFD

18

Page 19: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Level 2 DFD

19

Page 20: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Structured Design – Structure Charts

20

M

MMM 1 32

M 1,1 M 1,2

XX Y

Y

X XX

11

Page 21: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

From Analysis to Design

21

Page 22: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Structure Chart

22

Page 23: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

A Travel Agency Booking System

23

Page 24: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

(2) Jackson System Design

24

JSP / JSD JSP does not address issues of modularity, but

JSD does View point

How input and output data are organized A program structure reflects the structure of

what to be processed Design strategy

Compositional

Page 25: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Jackson System Programming

25

A

DCB

(a)

X

Y*

(c)

H

L Mo o

(b)

Page 26: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Example - A Gas Station System

26

Page 27: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Step 1: Draw a Structure Diagrams for I/O

27

Page 28: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Step 2: Merge Structure Diagrams to Form the Program Structure Diagram

28

Page 29: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Step 3: Allocate Operations to Elements of the Program Structure Diagram

29

Page 30: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Steps 4 & 5: Create a Textual Description of the Program Structure Diagram

30

Page 31: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

31

(3) Object-Oriented Design A different way of viewing the world

Page 32: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Object-Oriented Concepts Agents and communities Classes and objects Responsibilities Object interaction Computation as simulation

Using the application domain as a metaphor

32

Page 33: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Methodology in the Textbook It is designed for beginners as well as

seasoned developers. It is aimed at educating software architects

and systems analysts. It can be applied to agile as well as plan-

driven projects. It has been applied to industrial projects Many students continue practicing the

methodology after graduation

33

Page 34: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

Methodology Overview – Planning Phase

Deriving Use Cases from Requirements

Allocating Use Cases &to Iterations

Acquiring Requirements & Domain Modeling

Business goals & needs Current situation

Requirements

Abstract & high level use cases, use case diagrams

Use case-iteration allocation matrix

Producing an Architecture Design

Software architecture34

Page 35: Software Development Process Yonglei Tao 1. 2 Software Development Communication Coordination Conceptualization Solutions Processes and methodologies

AccommodatingRequirements Change

Methodology Overview – Iterative Phase

Deriving Design Class Diagram

Actor-System Interaction Modeling & UI Design

Domain Modeling

Behavioral Design

TDD, Integration, & Deployment

Iteration use cases

Domain model

Expanded use cases & UI design

Behavior diagrams

Design class diagram

Domain model

Use case-iteration allocation matrix

Software architecture

35