Software Development Process

Slides:



Advertisements
Similar presentations
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Advertisements

SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
SDLC – Beyond the Waterfall
Software Development Life-Cycle Models
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Systems Analysis and Design in a Changing World, 6th Edition
CS487 Software Engineering Omar Aldawud
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Chapter 2 Approaches to System Development
Systems Analysis and Design in a Changing World, 6th Edition
CHAPTER TWO Object Oriented System Analysis and Design 1.
Ch 3 System Development Environment
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model.
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Object-oriented Analysis and Design
Systems Analysis and Design in a Changing World, Fifth Edition
COMP 350: Object Oriented Analysis and Design Lecture 2
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Software engineering Process models Pavel Agejkin.
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Lesson 1 Week01.
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Chapter 1: Introduction to Systems Analysis and Design
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 2: Process and Methodology
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Key Takeaway Points A use case is a business process; it begins with an actor, ends with the actor, and accomplishes a business task for the actor. Use.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Content The system development life cycle
1 Introduction to Software Engineering Lecture 1.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Chapter 12: User Interface Design
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Systems Analysis and Design in a Changing World, 6th Edition
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
2 Systems Analysis – ITEC 3155 Systems Analysis Tasks.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Methodologies and Algorithms
Chapter 1: Introduction to Systems Analysis and Design
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Lecture 2 Revision of Models of a Software Process
Agile Process: Overview
Chapt 2 Iterative Evolutionary Agile.
Software engineering -1
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
System Development Methods
Presentation transcript:

Software Development Process Yonglei Tao

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.

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

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

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

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

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

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

Agile Process Models phases in an iteration Iterations

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

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

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

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

(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

Data Flow Diagrams

Problem Solving

DFD Example - Context Diagram

Level 1 DFD

Level 2 DFD

Structured Design – Structure Charts

From Analysis to Design

Structure Chart

A Travel Agency Booking System

(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

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

Example - A Gas Station System

Step 1: Draw a Structure Diagrams for I/O

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

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

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

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

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

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

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

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