• No results found

Large Scale Systems Design G52LSS

N/A
N/A
Protected

Academic year: 2021

Share "Large Scale Systems Design G52LSS"

Copied!
28
0
0

Loading.... (view fulltext now)

Full text

(1)

Large Scale Systems Design 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.

(2)

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 Implementation

to Design System Build the System

(3)

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

(4)

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

Prototyping

(5)

Users play a key role in prototyping

Prototyping has two main purposes

Features

Requirements Experimentation

Give open reactions Suggest modifications (ways for users to contribute)

(6)

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

(7)

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

(8)

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.

(9)

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?

(10)

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

(11)

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

CASE Tools

(12)

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

(13)

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

(14)

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

(15)

Types of CASE tools

Engineering direction

Forward engineering

Backward engineering

Re-engineering

analysis design specifications program code analysis design specifications program code

design specifications program code design specifications program code

analysis and changes design specifications

program code design specifications analysis and changes program code

(16)

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

(17)

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)

(18)

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

Rational unified process (RUP), and others…

Agile Development

(19)

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

(20)

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

Extreme Programming

(21)

Communication

Simplicity

Feedback

Courage

Provide rapid feedback

Assume simplicity

Change incrementally

Embrace change

Encourage quality work

Coding

Testing

Listening

Designing

Time

Quality

Cost

Scope

Short releases

40-hour work week

Onsite customer

Pair programming

Values Principles Resources

Activities Core Practices

Extreme Programming

(22)

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

(23)

(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

(24)

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!

(25)

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!

(26)

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

(27)

Exercise 3.2 Investigate how other methodologies like

SPIRAL, RUP and SCRUM work for SDLC.

(28)

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

References

Related documents

recognise types of questions; identify good practices when using information gathering methods.... Types

A few months before the start of my thesis year, I conceived of my idea to use personified camera characters to explain the complex issue of attachments and happiness, and how

Which of the following describes what happens to white sugar when mixed with iodized salt. White sugar can be distinguished from the

In a perceptual decision making task in which the required response was a reach toward one of two targets, specified by the stimulus, movements sometimes started towards one

An implicit group and a group of subjects using explicit strategies adapted to 20°, 40° and 60° cursor rotations, and we measured awareness and unawareness indices after

The purpose of this study was to quantify spatial and temporal gait asymmetries (assessed via an instrumented walkway) as well as transcallosal microstructural integrity of

While building upon an earlier report [ 12 ], where a robust machine learning model was developed for the classification of NPSLE patients and HCs using prespecified

Please list current therapies that you child is participating in: Occupational Therapy Services Provider:. Physical Therapy Services Provider: Speech Therapy Services Provider: