Large Scale Systems Design G52LSS



Similar documents
Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Agile Software Development Methodologies and Its Quality Assurance

Advanced Software Engineering. Software Development Processes

Extreme Programming, an agile software development process

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Software Development Methodologies

LECTURE 1. SYSTEMS DEVELOPMENT

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

5/19/ Professor Lili Saghafi

Extreme Programming, an agile software development process

Agile processes. Extreme Programming, an agile software development process

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Software Development Life Cycle (SDLC)

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Agile Development Overview

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

SOFTWARE PROCESS MODELS

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Software Development Process

Rapid Software Development

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

A Capability Maturity Model (CMM)

Quality Assurance Software Development Processes

CSE 435 Software Engineering. Sept 16, 2015

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

CS4507 Advanced Software Engineering

Assuming the Role of Systems Analyst & Analysis Alternatives

Unit I. Introduction

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Web Application Development Process

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Software Life Cycles and Configuration Management

Extreme Programming: Strengths and Weaknesses

To introduce software process models To describe three generic process models and when they may be used

Software Engineering

The most suitable system methodology for the proposed system is drawn out.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

Agile Processes and Methodologies: A Conceptual Study

The Blending of Traditional and Agile Project Management

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Chapter 1 System Development Environment

Test Cases Design for Software Database Provisioning Development

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Agile Methodologies and Its Processes

Agile Projects 7. Agile Project Management 21

Basic Trends of Modern Software Development

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Computer Science Department CS 470 Fall I

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

A Comprehensive Study of Commonly Practiced Heavy & Light Weight Software Methodologies

Agile Software Development

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

An Introduction to Extreme Programming

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Introduction to Software Engineering: Overview and Methodologies

Agile So)ware Development

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Hamid Faridani March 2011

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

Alternative Development Methodologies

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Agile methods. Objectives

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

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Vragen. Software development model. Software development model. Software development model

Build your Project using Extreme Programming #2 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

When User Experience Met Agile: A Case Study

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Systems Analysis and Design

Agile Planet. A Travel Guide to the Agile Universe Fabian Schiller. This book is for sale at

A Survey of Software Development Process Models in Software Engineering

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Chapter 2 Software Processes

The Role of Agile Methodology in Project Management

Software Development with Agile Methods

Comparing Agile Software Processes Based on the Software Development Project Requirements

Phase 2 Systems Analysis. Dr. Feng-Jen Yang

Unit 1 Learning Objectives

Agile Software Project Management Methodologies

CMMI - The AGILE Way By Hitesh Sanghavi

Enhancement of XP for Cloud Application Development Sara Tariq, Muhammad Mohsin Nazir, Farhat Saleemi

Agile Software Development

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

e-commerce: A Guide for Small and Medium Enterprises HOW MID-SIZED COMPANIES CAN MAXIMISE THEIR ONLINE OPPORTUNITIES

Software Development Processes. Software Life-Cycle Models

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Transcription:

G52LSS Lecture 3 Rapid and Agile Development Rapid Application Development Prototyping CASE Tools Agile Development Extreme Programming Learning outcomes: describe main features of methods for RAD and Agile development; understand pros and cons of prototyping approaches; understand purpose of CASE tools in SDLC; appreciate the features, pros and cons of XP. 1

Rapid Application Development RAD is an object oriented approach to systems development. Involves a development methodology and software tools (e.g. visual programming languages). Typically implemented in three phases: Requirements Planning Work with Users to Design System Build the System Implementation 2

It is recommended that certain conditions should be present for using RAD Experienced development team Pressing business Novel business-oriented application Sophisticated and engaged end-users There is also a key drawback of using RAD Try to hurry too much in project development There are several RAD methodologies Phased development Prototyping Throwaway prototyping RAD methodologies involve three key practices Iterative development Construction of prototypes Use of CASE tools 3

Prototyping Prototyping can be defined as an interactive process for systems development in which users and analysts are in close collaboration for converting requirements to a working system that is continuously revised. Prototyping can be used as: Alternative to traditional SDLC Information gathering technique Prototyping does not mean quick and unplanned development! Prototyping is a complex technique Prototyping helps to set priorities and adapt the planning 4

Users play a key role in prototyping Prototyping has two main purposes Experimentation Give open reactions Suggest modifications (ways for users to contribute) Features Requirements 5

Guidelines for working with prototypes Work in manageable modules Modify in successive iterations Estimate the costs of building the prototype Build the prototype rapidly Stress the user interface Types of prototypes Patched-up prototype Non-operational prototype First-of-a-series prototype Selected features prototype 6

Advantages of prototypes Potential for changes to the system early in the development Opportunity to stop developing a non-working system Possibility of developing a system that truly addresses user s requirements and expectations Disadvantages of prototypes Prototyping is difficult to manage Risk that users and analysts adopt an incomplete system as complete 7

Exercise 3.1 Consulting opportunity 6.2 from (Kendall&Kendall,2005). World s Trend is building a web site in which to sell clearance merchandise usually sold through the web and through its catalogue operation. As a newly hired web consultant, Lincoln Cerf finds himself in a very cold, wintry city, fighting its way through several inches of snow to meet with one of the systems team members, Mary Maye, at World s Trend headquarters. Mary welcomes Lincoln, saying at least the weather doesn t seem to affect our web sales! They re brisk no matter what. Lincoln groans appreciatively at her weak attempt of humour, smiles, and says, I gather from your email last week that you are trying to determine the type of information that needs to be displayed on our clearance web site. Mary replies, Yes, I am trying to get it organised in the best possible way. Our customers are all so busy. I know photos of all our merchandise can take a long time to appear on the page if a customer is accessing the web via a slower modem from home. Mary continues by saying, Linc I m not even that concerned about how to design our clearance site at this time. 8

I am worried though, about how much information we need to include on a page. For example, when items are on clearance, not all colours and sizes are available. Which do you think is better, to include some basic information and let the customer click a button to ask for more information, or to be as complete as possible on one page? If I use the linking method, then I could fit more items in the screen but it might be too orderly. Customers like the look and feel of a sale in which merchandise is kind of jumbled together. Linc continues his line of thought, saying Yeah I wonder how customers want the information organised. Have you actually watched them using the web? I mean, do they look for shoes when they buy a suit? If so, should shoes appear on the suit page or be linked in some way? Mary comments, Those are my questions, too. Then I wonder if we should just try this approach for men s clothes first, before we implement it for women s clothing. What if men s and women s approaches to shopping in the web are different? 9

As a third member of the World s Trend web site development group, respond in a brief written report to Lincoln and Mary about whether you should use a prototype to elicit recommendations from potential customers about the proposed web site. What type of prototype is appropriate? Consider each form of prototype and explain why each type would apply (or would not apply) to this problem. Patched-up prototype useful for trying and experiment with the web site and then improve it to make it more efficient Non-operational prototype useful for feedback and simple to create without need to build the data storage First-of-a-series prototype not applicable in this case Selected features prototype not be best choice in this case because full set of web pages needs to be prototyped 10

CASE Tools Computer Assisted Software Engineering (CASE) tools: Help to automate activities in the SDLC Aim to enforce an engineering-type approach to the development of software systems Range from simple diagramming tools to very sophisticated programs to document and automate most steps in the SDLC Benefits of using CASE tools: Improve quality Help increase productivity Improve communication Encourage integrated approach Improve management Help for better systems maintenance 11

Other benefits of prototyping: Faster creation/modification of documentation Documents can easily be distributed and reviewed Maintain a record of the SDLC in an effective way Reduction in the amount of paperwork Members of the development team can interact more easily throughout the project Communication with the user is improved because changes can be reported, implemented and revised more quickly Persuades the use of a SDLC methodology Interrelation and continuity between stages in the SDLC are easier to identify and verify Quality assurance for consistency and completeness Integration with other productivity tools The impact of changes can be assessed for the whole system An integral assessment helps to develop better maintenance plans Crucial for RAD, XP and similar methodologies 12

Potential drawbacks of CASE tools: No standards No substitute for human expertise Risk of driving development Long-term investment Long-term benefits Types of CASE tools Scope CASE tools CASE toolkits CASE workbench Focus Upper CASE Lower CASE Intermediate CASE 13

Upper CASE tools Help to create and modify the system design Information about the analysis and design is stored in the CASE repository Analysis reports show incomplete parts and errors in the system design. For example, balance between process and data models Support modelling of how the systems fits in the organisation Lower CASE tools Generate source code (25-99%) and reduce need for systems programming Once mastered, promote the re-use of existing documentation and components Time for maintenance is reduced because test and debug are eliminated Easy for migrating systems across different platforms Help to modify third-party software at a low cost 14

Types of CASE tools Engineering direction Forward engineering analysis design specifications program code Backward engineering program code design specifications Re-engineering program code design specifications analysis and changes 15

Examples of CASE tools Diagramming for representing processes, data and control structures graphically CASE repository holds information required to create, modify and evolve the system Form and report generators automate generation of forms and reports to aid prototyping Code generators automate generation of source code from diagrams and forms 16

Examples of CASE tools (cont.) Project management aid in the planning, tracking, controlling and reporting of project management Document generator create standard reports based upon the contents of the CASE repository CASE analysis tools help to identify problems of inconsistency, redundancy, and omissions (more likely in analysis and design) 17

Real-world software development is likely to be conducted in volatile environments, as organisations adapt to changes in technology, markets and social conditions. A number of Agile Development techniques have been proposed for the development of complex and dynamic software systems in today s world: Extreme Programming (XP) Crystal Scrum Agile Development Rational unified process (RUP), and others 18

Augustine et al. (2005) propose a number of practices to be followed in Agile Project Development: Organic teams of seven to nine members Guiding vision Simple rules Free and open access to information Light touch management style Adaptive leadership 19

Extreme Programming XP by Kent Beck and Ward Cunningham in late 1990 s Software development approach that pushes good software development practices to the extreme Define an overall system plan quickly Develop and release software quickly Promotes to continuously revise the software to incorporate additional features Extreme programming: Do it quickly! Do it Well! XP is based on defined values, principles, resources, activities and core practices 20

Communication Simplicity Feedback Courage Provide rapid feedback Assume simplicity Change incrementally Embrace change Encourage quality work Time Quality Cost Scope Values Principles Resources Extreme Programming Activities Core Practices Coding Testing Listening Designing Short releases 40-hour work week Onsite customer Pair programming 21

The Phases of XP Taken from (Kendall&Kendall, 2005) 22

(Good) Lessons learned from XP Short releases allow systems to evolve Pair programming enhances overall quality Onsite customers are mutually beneficial to the business and the XP team The 40-hour week improves effectiveness Balanced resources and activities support project goals Extreme programming values are crucial to success 23

Criticism of XP XP is not regarded as the panacea by everyone, some criticisms: XP is an undisciplined approach Pair programming does not always work Testing everything is non-practical Simple design hinders scalability and robustness XP works only if all guidelines and practices are followed It can deteriorate to low disciplined practices (e.g. minimal documentation) without ensuring high disciplined practices (e.g. unit testing, pair programming, collective ownership, constant refactoring) XP is aimed at customers who do not know what they want. But systems analysts are meant to help customers to identify requirements! 24

Criticism of XP (cont.) With XP it is very difficult to look ahead and plan future developments The cost of continuous change (particularly programming time) is not taken seriously into account XP appeals to young, inexperienced programmers that want to avoid documentation XP hopes that simplicity will be what the customer wants Feedback from customer to programmers is not practical and it is likely to unnecessarily extend the development process Real courage is needed to just throwaway code that is out of control or does not work by the end of the day. XP is a throwaway approach! XP rules are self-referential! 25

Criticism of XP (cont.) Why XP rules are self-referential: No detailed written requirements XP is aimed at "high risk projects with dynamic requirements", vague and sporadic (dynamic) requirements No big up-front design little or no time is spent designing the system before coding begins Constant re-factoring constant tweaking and improving of your code creates an unnecessary overhead and it could potentially introduce lots of bugs Unit tests useful in everyday coding (not just in XP), leave a critical area uncovered: design correctness, unit tests catch certain types of code-level bug, but they do not catch "wrongness" of a design Pair programming somewhat overrated, programmers would not know what to code without a specification On-site customer representative risky because customer is bound to be pretty junior, the customer representative "becomes" the formalised requirements spec 26

Exercise 3.2 Investigate how other methodologies like SPIRAL, RUP and SCRUM work for SDLC. 27

Additional Reading Augustine et al., Agile Project Management: Steering from the Edges, Communications of the ACM, Vol. 48, No. 12, pp. 85-89, 2005 Chapter 6 of (Kendall and Kendall, 2005) Appendix 2 of (Hoffer et al., 2005) See the following web sites for more on XP: http://www.extremeprogramming.org/ http://www.xprogramming.com/ http://www.jera.com/techinfo/xpfaq.html http://en.wikipedia.org/wiki/extreme_programming See the following web site for a criticism of XP: http://www.softwarereality.com/extremeprogramming.jsp 28