COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

Similar documents
CISC327 - So*ware Quality Assurance

18-642: Software Development Processes

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues

System Development Life Cycle Methods/Approaches/Models

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

Dilbert Scott Adams. CSc 233 Spring 2012

csc444h: so(ware engineering I matt medland

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2

L7: Tes(ng. Smoke tes(ng. The test- vee Black- box vs. white- box tes(ng Tes(ng methods. Four levels of tes(ng. Case study

Getting DCIM Right the First or Second Time Around. PRESENTED BY Chris James CEO, DCIMPro

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng

Rapid Application Development [RAD]

Objectives. Connecting with Computer Science 2

What were his cri+cisms? Classical Methodologies:

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

So#ware Tes+ng Made Easy

Introduction to Securing Critical Infrastructure

Why Rails and Design for an Applica5on

Systems Analysis and Design

Introduction to Software Engineering

Cybersecurity Curricular Guidelines

Agile is from Mars Usability is from Venus

System Modeling Environment

CS 315 Intro to Human Computer Interac4on (HCI)

User-Centered Development

Josh Bloch Charlie Garrod Darya Melicher

SOFTWARE LIFE-CYCLE MODELS 2.1

CISC327 - So*ware Quality Assurance

Evaluating and Improving Software Usability

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Second. Incremental development model

CLOUD SERVICES. Cloud Value Assessment.

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Build Your Own ASP.NET 4 Website Using C# & VB. Chapter 1: Introducing ASP.NET and the.net Pla;orm

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

So#ware Engineering I. Based on materials by Ken Birman, Cornell

Systems Analysis and Design in a Changing World, Fourth Edition

ISSN: [Kaur* et al., 6(10): October, 2017] Impact Factor: 4.116

CISC327 - So*ware Quality Assurance

SE420 - Software Quality Assurance

Systems Analysis & Design

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

Software Engineering Lifecycles. Controlling Complexity

CMPSC 24: Lecture 1 So4ware Development Process

Integrating Selenium with Confluence and JIRA

From Continuous Integration To Continuous Delivery With Jenkins

COSC 341 Human Computer Interaction. Dr. Bowen Hui University of British Columbia Okanagan

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Review of the DCMI Abstract Model

Design Principles & Prac4ces

Agile Development

CSc 120. Introduc/on to Computer Programming II. 02: Problem Decomposi1on and Program Development. Adapted from slides by Dr.

New PCI DSS Version 3.0: Can it Reduce Breaches? Dharshan Shanthamurthy, CEO, SISA Informa2on Security Inc. Core Competencies C11

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Decision Support Systems

NFS 3/25/14. Overview. Intui>on. Disconnec>on. Challenges

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0

Making Research Data Public: Why, What, and How. Fall 2016

The Design Space of Software Development Methodologies

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

CMSC 435: Software Engineering Section 0201

HIDDEN SLIDE Summary These slides are meant to be used as is to give an upper level view of perfsonar for an audience that is not familiar with the

Implementing ATDD: A Practical Approach

Test Driven Development

Chapter 1: Introduction to Systems Analysis

VO Software Engineering

Usability Tes2ng Usability and Correctness. About Face (1995) Alan Cooper. About Face (1995) Alan Cooper. Why Evaluate?

Cyber Security Capabilities

SM 3511 Interface Design. Institutionalizing interface design

Software Development Process Models

CS487 Midterm Exam Summer 2005

The Process of UX Design

OBJECT-ORIENTED MODELING AND DESIGN. Process Overview

So#ware Test and Analysis

Randomized Branch Sampling (RBS): Size software projects without wasting time analyzing each user story. Dimitar Bakardzhiev

TDDD04 Software Testing

Halkyn Consulting Ltd 15 Llys y Nant, Pentre Halkyn HOLYWELL, Flintshire, CH8 8LN

Informa(cs 231: What is Design? October 9, 2012

Using C Language Extensions for Developing Embedded So:ware - A Case Study

(Objective-CS605 Software Engeenring-II)

November 1 st 2010, Internet2 Fall Member Mee5ng Jason Zurawski Research Liaison

Security does not live on UI level T

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Chapter 8 Software Testing. Chapter 8 So-ware tes0ng

Enterprise Architecture CS 4720 Web & Mobile Systems

Test-driven development

Migra(on from TETRA to MC- LTE. Johann Janzen. Presales Engineer. Presenta(on on behalf of the TETRA + Cri(cal Communica(ons Associa(on

JUnit tes)ng. Elisa Turrini

Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server

EMA Digital Supply Chain Ini3a3ves. Sean Bersell/EMA

Next hop in rou-ng Summary of Future Internet WP1 work. Hannu Flinck

Strategies for Selecting the Right Open Source Framework for Cross-Browser Testing

SE310 Analysis and Design of Software Systems

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan

The Need for Agile Project Management

CAREER PATH FOR THE NEXT GENERATION RECORDS MANAGER

Lecture 7: Software Processes. Refresher: Software Always Evolves

Top 10 Web Application Vulnerabilities

Transcription:

COSC 310: So*ware Engineering Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1

Admin A2 is up Don t forget to keep doing peer evalua>ons Deadline can be extended but shortens A3 >meframe Labs This week: set up team repo Next week: prac>ce choosing SDLC 2

So*ware Process Is a set of ac>vi>es that produce so*ware product A structured way of carrying out ac>vi>es E.g., Course registra>on process Course credit transfer process Online payment process 3

Fundamental So*ware Ac>vi>es Planning resource alloca>on and management Requirements Specifica>on iden>fies necessary features Design architecture, modules, interfaces Development implementa>on Tes>ng valida>on of correctness Documenta>on describes product Maintenance ongoing error correc>on Evolu>on ongoing requirements changes 4

Goals of So*ware Ac>vi>es Clarify steps to be performed Produce tangible work products Enable others to review work products Specify next steps 5

Typical Stages of So*ware Development 6

So*ware Development Cost 7

Scenario 1 Assume: Cost of maintenance is 75% of total cost Cost of development is 25% of total cost If development cost is $250K, what is the maintenance cost? 8

Scenario 2 Client asks for accoun>ng informa>on system to be built in order to support 20 users Users all need new computers Client requires so*ware to be completed in 4 weeks Budget is $50K for hardware and so*ware Is this a good deal? 9

Scenario 3 Rela>ve cost of fixing errors at various stages are: Specifica>on (3) Design (5) Implementa>on (50) Maintenance a*er deploy (300) If cost to find and fix an error in design is $100, what are the costs for other stages? 10

Simple So*ware Process (School work) Read ques>on on assignment Think about it for a few minutes (design?) Start coding compile when done coding Compile get 100+ errors Ditch assignment Resume coding next day can t understand it so restart coding Compile get 50+ errors Ditch assignment again Night before due date: marathon coding Program mostly works submit + never see it again 11

Simple So*ware Process (School work) Read ques>on on assignment Think about it for a few minutes (design?) Start coding compile when done coding Compile get 100+ errors Ditch assignment Resume coding next day can t understand it so restart coding Compile get 50+ errors Ditch assignment again Night before due date: marathon coding Program mostly works submit + never see it again 12

Simple So*ware Process (School work) Read ques>on on assignment Think about it for a few minutes (design?) Start coding compile when done coding Compile get 100+ errors Ditch assignment Resume coding next day can t understand it so restart coding Compile get 50+ errors Ditch assignment again Night before due date: marathon coding Program mostly works submit + never see it again 13

Simple So*ware Process (School work) Read ques>on on assignment Think about it for a few minutes (design?) Start coding compile when done coding Compile get 100+ errors Ditch assignment Resume coding next day can t understand it so restart coding Compile get 50+ errors Ditch assignment again Night before due date: marathon coding Program mostly works submit + never see it again 14

Simple So*ware Process (School work) Read ques>on on assignment Think about it for a few minutes (design?) Start coding compile when done coding Compile get 100+ errors Ditch assignment Resume coding next day can t understand it so restart coding Compile get 50+ errors Ditch assignment again Night before due date: marathon coding Program mostly works submit + never see it again 15

How to Improve Process? 16

How to Improve Process? Ask clarifica>on ques>ons if specs aren t clear Design different solu>ons, consider the best one Repeat: code + test a bit at a >me Clean up code as you go 17

Managing Big Projects Complexity grows quickly for large projects Different teams working on different ac>vi>es Necessary to facilitate communica>on Need standardiza>ons and careful management in order to stay within budget and >me Helpful to use CASE tools to support large projects 18

Produc>vity Work Analysis (McConnell) Lille alen>on paid to process 19

Produc>vity Work Analysis (McConnell) Early alen>on paid to process 20

Why Should You Care? As a programmer: Know the lingo Understand the big picture Understand your role Feel less frustrated As a project leader: 21

Why Should You Care? As a programmer: As a project leader: Assess risks Choose appropriate process model Have successful project 22

Process Management So*ware lifecycle (SDLC) describes the process of so*ware development ac>vi>es Discipline of defining, implemen>ng, maintaining process in a project Adopted/created by PM Measures project progress Ensures correct execu>on of organiza>on s procedures and policies 23

Starter SDLC Models Do- un>l- Done Waterfall V- Shaped Rapid Prototyping Rapid applica>on development (RAD) Incremental Spiral Agile Development Scrum XP 24

Do- Un>l- Done 25

Waterfall (several variants) 26

Waterfall (several variants) Need: well understood and stable requirements upfront Easy to plan and staff Itera>ons are costly 27

V- Shaped Need: well understood and stable requirements upfront Easy to plan and staff Itera>ons are costly 28

V- Shaped Need: well understood and stable requirements upfront Strong emphasis on verifica>on and valida>on Good for systems requiring high reliability 29

Rapid Prototyping Models Single hardest part of building so*ware is deciding what to build Challenge for team Devise process that will discover, define, develop real requirements Central idea Create a prototype of so*ware that may require us to throw away at the next itera>on Prototype = easy to build, readily modifiable/extensible, par>ally specified working model of overall system Good approach if system is something new 30

Rapid Prototyping Model 31

Just a Proof- of- Concept Prototype has limited func>onality Limited func>onality Limited platorm interoperability Need to manage client expecta>ons Non- func>onal requirements not considered Reliability? Performance? Usability? 32

When to use Rapid Prototyping? When requirements are ill- understood Too complex Always evolving requirements Medium or high risk projects When only proof- of- concept is needed Suitable for UI intensive systems and research projects O*en used in combina>on with other SDLC 33

Three Types of Rapid Prototyping Rapid applica>on development (RAD) Incremental Spiral 34

RAD Created by IBM 1980s Quick turnaround >me: ~60 days Users involved in ALL phases Heavy dependence on: Code generators Screen generators Other produc>vity tools More work for users in planning and design 35

RAD Model 36

When to use RAD Requirements are well- understood Low risk projects where performance and reliability are not an issue Short development >mes High end- user involvement Automated tools available Ex: informa>on system 37

Incremental 38

Main features of Incremental Does not allow itera>ons Complete system defini>on required in order to create meaningful chunks Divide- and- conquer approach Priori>zes important func>onality 39

Spiral Focuses on risk analysis and management Cost Life High- profile missions Takes advantage of strengths from: Waterfall Prototyping Incremental 40

Main features of Spiral Reviews (requirements, design, product) Specific deliverables Coding is de- emphasized waterfall Allows users to see system early on Splits large effort into chunks Implement high risk func>ons first prototyping incremental 41

42

Simplified View of Spiral 43

When to use Spiral? Requirements are too complex or evolving Medium to high risk projects New technology or proof of concept only See system early on How many loops? Ex: aerospace (Mars rover), defense apps, engineering projects 44

Agile Development Lightweight approach Adapt quickly and painlessly to evolving requirements Use short, frequent itera>ons (~15 days) Highly collabora>ve Does not require PM Self- organizing teams Minimal management Some s>ll use a PM for communica>on purposes Well- known methods: Scrum Extreme programming (XP) 45

Major Disadvantages Examples? 46

Major Disadvantages Difficult to integrate inexperienced programmers May fall back to cowboy coding Hard to es>mate schedule comple>on Increases risk of scope creep How many itera>ons? Can be inefficient No authority to make decisions 47

Scrum 48

XP Prac>ces common sense principles to the extreme Follows SE prac>ces that support high quality so*ware Code for today, not for tomorrow Just- in- >me design Emphasize customer involvement Test- driven development Write test stubs first then fill in code Con>nuous integra>on tes>ng Pair programming environment Short itera>ons with fact delivery 49

How to choose an SDLC Requirements Defined and stable early on? Is early func>onality a requirement? Project team User involvement Project type/risk 50

How to choose an SDLC Requirements Project team Training available? Likely to have changing team members? User involvement Project type/risk 51

How to choose an SDLC Requirements Project team User involvement Do they want to be involved? How much? Does client want to track progress? Project type/risk 52

How to choose an SDLC Requirements Project team User involvement Project type/risk Funding stable through lifecycle? Reusable components available? 53

54

55

56

57