Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
IS2210: Systems Analysis and Systems Design and Change
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
CS3773 Software Engineering Lecture 01 Introduction.
Alternate Software Development Methodologies
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Iterative development and The Unified process
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Effective Methods for Software and Systems Integration
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CompSci 230 Software Design and Construction
The Agile Primer July 2008 © ThoughtWorks 2008.
Current Trends in Systems Develpment
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Dr. Rob Hasker. What if every project used Scrum?  Why might Scrum not be perfect for every project? Hard to get the big picture Early choices may have.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
PV213 EIS in Practice: 06 – Development process 1 PV213 Enterprise Information Systems in Practice 06 – Development process.
SOFTWARE PROCESS MODELING Benjamin Dixon U
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Dr. Rob Hasker. Should every project use Scrum?  When might Scrum not be an appropriate model?  What are some of its limitations? Hard to get the big.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Software Development.
Flight Software Conference 2016
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Engineering Process
Agile Software Development
Agile Software Development Brian Moseley.
V-Shaped SDLC Model Lecture-6.
Introduction to Software Engineering
How to Successfully Implement an Agile Project
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Agile Process: Overview
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Adapting Agile in Pharmaceutical Industries
System Development Methods
CSCI 360: Software Architecture & Design
Presentation transcript:

Copyright 2015, Robert W. Hasker

Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation Source Unit tests Verification System tests Acceptance tests Dates to 1970.

Classic Model Gathering Requirements DesignImplementationVerification Late delivery Expensive waits Response to change: Wait until next release Revisit previous phase Basic issue: leave model

Why still in use? Gathering Requirements DesignImplementationVerification Simple Covers key deliverables Well-defined benchmarks

Simple fix: Iteration ReqsDesignImpl.VerificationReqsDesignImpl.VerificationReqsDesignImpl.Verification

Simple fix: Iteration ReqsDesignImpl. Verifica tion ReqsDesignImpl. Verifica tion ReqsDesignImpl. Verifica tion Advantages Customer feedback before final delivery Helps convince customer progress is being made Handles scheduling problems (lack of people, hardware Disadvantage Customer may judge software in terms of what's missing

Unified Process  Observation: no phase ever really complete  Varying levels of effort by time Dutchguilder, Wikipedia

Unified Process Phases  Business Modeling, Requirements  identify preliminary use cases, develop preliminary architecture, outline development  Primary goal: establish goals for project and each iteration (with input from all stakeholders)  Key issue: address business and requirements risks  Analysis & Design:  establish baseline architecture  Rest of project: filling "gaps" within the architecture  Implementation, Test  Make use cases operational for end users  Deployment  End result: available for customers/end users

Evaluation  Very flexible  Rational: detailed definitions for each phase  Robust enough for very large projects

Agile  2001: Manifesto for Agile Software Development  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan

Alternatives to Scrum  Extreme Programming (XP):  Stories done in strict order defined by customer  Strongly encourages Test-Driven Development, pair programming, minimal design  Feature-Driven Development (FDD):  Up front planning, design  Implementation: check off tasks

Other methods  Component-based development  System = sum of off –the-shelf components  Issues: design compromises, testing dependency  Aspect-oriented development  Aspects: operations to be executed before/after method calls  Clean integration of policy and data  Formal methods  Prove code works!

What should we use?  Formal tool for comparing: Capability Maturity Model

What should we use?  Formal tool for comparing: Capability Maturity Model  Every model:  Talk to customer, plan, structure solution, implement, verify, deploy  VCS, risk analysis, review, project tracking & control  Key observation:  Real savings in the small choices made by the team  How to process issues, verify, validate

Where have we been?  Scrum: why?  CI: why not?  UI Design: reviewing interfaces  Process alternatives

Course Goals  Plan and track team software development activities  Generate software process artifacts that are necessary in software quality assurance  Apply software tools needed in the lifecycle of a team software project  Identify the key objectives and deliverables of the phases defined by an agile development process  Design, implement, and work within a continuous integration environment

Final  Bring computer, one page of notes, front and back  Scrum:  A few q’s on agile principles (why)  Review, retrospective, roles, stories, sprints: MC  Testing: acceptance, system, unit, integration  Coverage: statement, decision, condition, MCDC, path, mutation  User interface: user types, postures, principles: MC  Guidelines for effective reviews  Cognitive walkthrough, heuristic evaluation  Continuous inspection, deployment, feedback  Process: waterfall, iterative, Unified Process, CMMI