Software Engineering in the Agile World. Table of contents

Similar documents
MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

CMPT 275 Software Engineering

Tuesday, October 25. Announcements

The Software Life Cycle

[Name] [ ID] [Contact Number]

Agile Project Management

Software Life Cycle. Main Topics. Introduction

The software process

Chapter 1 Systems Development in an Organization Context

Object-Oriented & Classical Soft Engineering

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Processes and Life- Cycles. Kristian Sandahl

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Agile Scrum Process Checklist

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Software Engineering

Information for Employers Digital and Technology Solutions Degree Apprenticeship - Year 2

Chapter. Redesigning The Organization With Information Systems

Software Process Improvement plan

The Software Life Cycle

Chapter 8. Systems Development. Ralph M. Stair George W. Reynolds

SWE 211 Software Processes

Web 2.0 / UI Engineer and Consultant

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

Note 10: Software Process

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

Requirements Engineering and SCRUM. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 13, 2007

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Mike Vincent. mvasoftware.net

(c) Addison Wesley Chapter 1. ! Software production is an art. ! Two groups. ! Main causes of software failures

Babu Madhav Institute of Information Technology, UTU 2017

Equifax InterConnect. A Product Review. By James Taylor CONTENTS

Introduction to Agile (Scrum)

SE310 Analysis and Design of Software

Requirements Engineering and Agile Methodology

1. Organizational information (company and business unit): 2. How large is the organization (number of employees)? !25 8.7%

IBM WIoT CP Summit Open Labs (NO COST - not a substitute for full training courses)

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

ARE YOU LOOKING FOR A NEW EXCITING CHALLENGE?? Look no further as Capitec Bank has opportunities within our Back-End Development team.

Chapter 1 Software Process

Waterfall to Agile: Flipping the Switch Bhushan Gupta Nike Inc. October 9, 2012

ENGAGING A PRODUCT OWNER ON A GOVERNMENT CONTRACT

Week Assignment Software Processes - Agile/Scrum

Agile Essentials Track: Business Services

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Dawson Library Systems Development Manager

Agile Methodology. Tech Focus. Agile Methodology: Characteristics. Techspace Home Tech Focus Case Study Trend Watch Thought Post

Corporate Release 2017 R1. Demographics. Development & Enhancement Repository. Published by the International Software Benchmarking Standards Group

Requirements Engineering Best Practices

Agile Manifesto Principles

18-642: Software Development Processes

PRINCE Update. Changes to the manual. AXELOS.com. April 2017 PUBLIC

ignoring agile, size and frequency, sales, , 280

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

Software Engineering Fall 2014

Metodologías Agiles en E///

Jochen(Joe)Krebs

CONTENTS PART ONE FOUNDATIONS FOR SYSTEMS DEVELOPMENT. Preface 21

Virtually Agile. Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007

Manchester Digital Level 4 Software Developer Apprenticeship

Scrum, Creating Great Products & Critical Systems

MICROSOFT EXAM QUESTIONS & ANSWERS

Agile Engineering. for Managers. Introducing agile engineering principles for non-coders

Tutorial Software is the differentiating characteristics in many computer based products and systems. Provide examples of two or three products

03. Perspective Process Models

ALFABET 9.12 WHAT S NEW IN. With Alfabet 9.12 you can: Risk mitigation planning & management ALFABET

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Software Development Methodologies

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Chapter 3 Software Process Model

Development Process Bennett, McRobb and Farmer 1

Software Engineering II - Exercise

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

Redesigning the Organization with Information Systems

approach to successful project

Software Development Methodologies

Ingegneria del Software Corso di Laurea in Informatica per il Management. Scrum. Davide Rossi Dipartimento di Informatica Università di Bologna

Quality Management of Software and Systems: Processes and QM

Quality Management of Software and Systems

Comparing Scrum And CMMI

Building Information Systems

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

PROFESSIONAL SCRUM WITH TEAM FOUNDATION SERVER 2010

Course Organization. Lecture 1/Part 1

Agile Guru Q & A. Michael James Software Process Mentor and Scrum Trainer. March 29, 2013 ENTERPRISE CLOUD DEVELOPMENT 1

Rational Unified Process

V&V = the Verification and Validation of Deliverables

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

--*Performs other duties as assigned or as determined on own initiative.*

IBM Rational Software Quality Solutions

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

Transcription:

Table of contents Chapter 1 14 Software Engineering 14 1.1 Introduction 14 1.2 No standard software engineering methodology 14 1.3 Waterfall methodology 15 1.3.1 Software development under Waterfall model 16 1.3.2 Strengths of Waterfall model 17 1.3.3 Weaknesses of Waterfall model18 1.4 Rational unified process (RUP) 19 1.4.1 Strengths of RUP 19 1.4.2 Weaknesses of RUP 19 1.5 Agile methodologies 20 1.5.1 Software development under Agile methodologies 20 1.5.2 Strengths of Agile methodologies 22 1.5.3 Weaknesses of Agile methodologies 22 1.6 Extreme programming 23 1.6.1 Strengths of extreme programming 23 1.6.2 Weaknesses of extreme programming 23 1.7 Scrum 23 1.7.1 Features of Scrum 24 1.7.2 Software development under Scrum 26 1.7.3 Scrum planning 28 1.7.4 Strengths of Scrum 30 1.7.5 Weaknesses of Scrum 30 1.8 Case study 30 1.8.1 Software engineering methodology selection 31 1.8.2 User stories 31 1.8.3 Project planning 31 1.8.4 High level software design 31 1.9 Chapter summary 32 1.10 Questions 32 1.11 Further reading 33 Chapter 2 34 Software requirement engineering (User stories) 34 2.1 Introduction 34 2.2 Software requirement gathering 34 2.2.1 Software requirement gathering for Waterfall projects 34 2.2.2 Software requirement gathering for Agile projects 35 2.3 Software requirement types 36 2.4 Software requirement cycle 37 2.4.1 Software requirement cycle in Waterfall model 37 2.4.2 Software requirement cycle in Scrum 38 2.5 Software requirement specifications 39

2.6 Use cases 40 2.7 User stories 41 2.7.1 User story levels 41 2.7.2 How to write user stories? 42 2.7.3 User story priority 43 2.7.4 Epic 43 2.8 Case study 44 2.8.1 Epic 44 2.8.2 Complete product backlog 45 2.9 Chapter summary 52 2.10 Questions 52 2.11 Further reading 53 Chapter 3 54 Software Project Planning 54 3.1 Introduction 54 3.2 Project planning for Waterfall projects 54 3.2.1 Project effort estimate 54 3.2.2 Work breakdown structure (WBS) 56 3.2.3 Project schedule 56 3.2.4 Resource planning 60 3.2.5 Budget planning 61 3.2.6 Baselining the project 62 3.3 Project planning for Agile projects 62 3.3.1 High level planning 63 3.3.2 Release planning 63 3.3.3 Effort estimation 65 3.3.4 Sprint planning 66 3.3.5 Daily planning 67 3.3.6 Resource planning 68 3.3.7 Budget planning 68 3.4 Case study 69 3.4.1 High level planning 69 3.4.2 Release planning 70 3.4.3 Sprint planning 74 3.4.4 Daily planning 80 3.5 Chapter summary 81 3.6 Questions 81 3.7 Further reading 82 Chapter 4 83 Software feasibility Study 83 4.1 Introduction 83 4.2 Financial feasibility studies 83 4.2.1 Buy versus make decision 84 4.2.2 Project financial viability 84 4.3 Technical feasibility study 85 4.4 Throw away prototyping 85 Software Engineering in the Agile World

4.4.1 Throwaway prototyping in Waterfall model 87 4.4.2 Example of throwaway prototyping 88 4.5 Evolutionary prototyping 88 4.5.1 Evolutionary prototyping in Agile projects 89 4.5.2 How evolutionary prototyping should be used 90 4.6 Case study 91 4.7 Chapter summary 92 4.8 Questions 93 4.9 Further reading 93 Chapter 5 94 Software high Level Design 94 5.1 Introduction 94 5.2 Software engineering methodology considerations 94 5.3 Software architecture patterns 95 5.3.1 Monolithic architecture pattern 95 5.3.2 2-tier architecture pattern 96 5.3.3 3-tier architecture pattern 97 5.3.4 N-tier architecture pattern 97 5.3.4 Model view controller architecture pattern 98 5.4 Software designing technique considerations 99 5.4.1 Object oriented design 100 5.4.2 Functional design 101 5.5 Software design patterns & readymade components 101 5.6 User interface design patterns & readymade components 102 5.7 Business logic design patterns 102 5.7.1 Creational design patterns 103 5.7.2 Structural design patterns 105 5.7.3 Behavioral design pattern 107 5.8 Database design patterns & readymade components 109 5.9 Programming language considerations 109 5.9.1 Software products for mobile phones 110 5.9.2 Software products for the internet 111 5.10 Programming platform & tools 112 5.11 Software high level design 113 5.12 Case study 113 5.12.1 Software engineering methodology 113 5.12.2 Software architecture 114 5.12.3 User interface Software design 114 5.12.4 Business logic design 114 5.12.5 Database design 115 5.12.6 Programming language 115 5.12.7 Programming platform 115 5.13 Chapter summary 115 5.14 Questions 116 5.15 Further reading 116 Chapter 6 118

User interface design & implementation 118 6.1 Introduction 118 6.2 Software engineering methodology considerations 118 6.2.1 Waterfall model considerations 118 6.2.2 Agile model considerations 119 6.3 Web browser 120 6.4 User interface elements 121 6.4.1 Input user elements 122 6.4.2 Navigation user elements 123 6.4.3 Containers 123 6.4.4 Other types of user elements 123 6.5 Hyper Text Markup Language (HTML) 123 6.5.1 HTML elements examples 124 6.5.2 HTML code generation 125 6.6 Cascading Style Sheets (CSS) 125 6.7 Asynchronous Java XML (AJAX) 126 6.8 Client side programming 127 6.8.1 User input validation 127 6.8.2 Formatting user input 127 6.8.3 Providing focus at a field 128 6.8.4 Finding out information about a user s web browser 128 6.8.5 Setting user preferences 128 6.9 User interface design & modeling 128 6.10 Case study 132 6.10.1 Client side scripts 132 6.10.2 Mock up screens 133 6.11 Chapter summary 168 6.12 Questions 169 6.13 Further reading 169 Chapter 7 170 The business logic layer design & implementation 170 7.1 Introduction 170 7.2 Software engineering methodology considerations 170 7.2.1 Waterfall Software engineering methodology consideration 170 7.2.2 Agile software engineering methodology considerations 171 7.3 Programming concepts 172 7.4 Variables 172 7.4.1 Variable declaration 174 7.4.2 Variable types 175 7.4.3 Group variables 176 7.5 Operators 176 7.6 Decision trees 177 7.7 Continuous condition checking 179 7.8 Methods 181 7.9 Class 183 7.9.1 Encapsulation 184

7.9.2 Inheritance 186 7.9.3 Polymorphism 188 7.9.4 Class diagram 189 7.10 Objects 192 7.10.1 Objects as data structures 192 7.10.2 Object diagram 193 7.10.3 Sequence diagram 194 7.10.4 Statechart diagram 195 7.11 Functional design and programming 196 7.12 Database programming 197 7.12.1 Why we need databases 197 7.12.2 Database programming example 198 7.13 Programming for the web 198 7.14 Refactoring 199 7.15 Debugging 200 7.16 Case study 201 7.16.1 Class diagrams 201 7.16.2 Object diagram 207 7.1.6.3 Sequence diagram 209 7.16.4 Statechart diagram 212 7.17 Chapter Summary 214 7.18 Questions 215 7.19 Further reading 215 Chapter 8 217 Database design & implementation 217 8.1 Introduction 217 8.2 Software engineering methodology considerations 217 8.2.1 Software engineering methodology consideration for Waterfall models 217 8.2.2 Software engineering methodology consideration for Agile models 217 8.3 Database Technology 219 8.3.1 Relational databases 219 8.3.2 No SQL databases 219 8.4 Structured Query Language (SQL) 220 8.4.1 Data definition language (DDL) 220 8.4.2 Data manipulation language 224 8.5 Database design: Entity Relationship Diagram 226 8.6 Table joins and relationships 229 8.6.1 One-to-one table joins 230 8.6.2 Many-to-many table joins 231 8.7 Master and Transaction table 231 8.8 Data Normalization 232 8.8.1 First normal form 232 8.8.2 Second normal form 234 8.8.3 Third normal form 234 8.9 Case study 235 8.9.1 Incremental Database design 235

8.9.2 Database design in first Release 236 8.9.3 Database design for second Release 237 8.9.3 Database design for third Release 247 8.10 Chapter summary 247 8.11 Questions 248 8.12 Further reading 248 Chapter 9 250 Software testing (Verification & Validation) 250 9.1 Introduction 250 9.2 Software engineering methodology considerations 251 9.3 Software Testing, verification & validation 251 9.4 Unit testing 253 9.4.1 Equivalence partitioning 254 9.4.2 Boundary value analysis 255 9.4.3 Decision table testing 256 9.4.4 Database testing 257 9.5 Integration testing 258 9.5.1 Continuous integration 259 9.5.2 Integration testing example 260 9.5.3 How to test for integration 261 9.6 System testing 262 9.6.1 Functional testing 263 9.6.2 Non functional testing 265 9.6.3 Regression testing 266 9.7 User acceptance testing 267 9.8 Production environment testing 267 9.9 Software maintenance testing 268 9.10 Test lifecycle 268 9.11 Case study 269 9.12 Chapter summary 270 9.13 Questions 271 9.14 Further reading 271 Chapter 10 273 Software maintenance and production environment 273 10.1 Introduction 273 10.2 Software maintenance types 273 10.2.1 Preventative software maintenance 273 10.2.2 Perfective software maintenance 274 10.2.3 Corrective software maintenance 275 10.2.4 Adaptive software maintenance 275 10.3 Software maintenance cycle in Waterfall & Agile maintenance projects 275 10.4 Software maintenance for Waterfall projects 275 10.5 Software maintenance for Agile projects 276 10.6 Production instance support 277 10.6.1 Sanity tests 277 10.6.2 Walk arounds 278

10.7 Chapter summary 278 10.8 Questions 279 10.9 Further reading 279 Chapter 11 280 Software project execution and conflict management 280 11.1 Introduction 280 11.2 Project execution and conflict management in Waterfall model 280 11.2.1 Using slack in project plans 281 11.2.2 Using milestones 281 11.2.3 Project team conflicts 282 11.3 Project execution and conflict management in Agile model 283 11.3.1 Burn-down chart 283 11.3.2 Unknown project metrics 284 11.3.3 Project team conflict 284 11.4 Case study 285 11.4.1 Sprint execution 286 11.4.2 Burn-down chart 287 11.5 Chapter summary 287 11.6 Questions 288 11.7 Further reading 288 Appendix 1 290 Answers to questions 290