Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development Process

Similar presentations


Presentation on theme: "Software Development Process"— Presentation transcript:

1 Software Development Process
Yonglei Tao

2 Software Development Tasks Solutions Conceptualization Communication
Coordination Solutions Processes and methodologies for analysis and design UML for communication and coordination Tools that automate or support methodology steps.

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

4 The Waterfall Model System Engineering Software Requirements Analysis
Software Design Coding & Unit Testing Integration & Integration Testing Acceptance Testing Maintenance

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

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

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

8 Agile Processes Agile development values Agile processes emphasize
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

9 Agile Process Models phases in an iteration Iterations

10 Some Well-Known Agile Methods
Dynamic Systems Development Method (DSDM) Feature Driven Development (FDD) Scrum Extreme Programming (XP) Crystal Clear Lean Development

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

12 Process and Methodology
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

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

14 (1) Structured Analysis and Design
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

15 Data Flow Diagrams

16 Problem Solving

17 DFD Example - Context Diagram

18 Level 1 DFD

19 Level 2 DFD

20 Structured Design – Structure Charts

21 From Analysis to Design

22 Structure Chart

23 A Travel Agency Booking System

24 (2) Jackson System Design
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

25 Jackson System Programming
D C B (a) H L M o (b) X Y * (c)

26 Example - A Gas Station System

27 Step 1: Draw a Structure Diagrams for I/O

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

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

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

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

32 Object-Oriented Concepts
Agents and communities Classes and objects Responsibilities Object interaction Computation as simulation Using the application domain as a metaphor

33 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

34 Methodology Overview – Planning Phase
Business goals & needs Current situation Acquiring Requirements & Domain Modeling Requirements Deriving Use Cases from Requirements Abstract & high level use cases, use case diagrams Allocating Use Cases & to Iterations Use case-iteration allocation matrix Producing an Architecture Design Software architecture

35 Methodology Overview – Iterative Phase
Software architecture Use case-iteration allocation matrix Accommodating Requirements Change Iteration use cases Domain Modeling Domain model Actor-System Interaction Modeling & UI Design Domain model Expanded use cases & UI design Behavioral Design Behavior diagrams Deriving Design Class Diagram Design class diagram TDD, Integration, & Deployment


Download ppt "Software Development Process"

Similar presentations


Ads by Google