Topic 7
Current Trends in
System Development
ITS570
Object-Oriented Design &
Implementation
Chapter 14 – Current Trends in System Development
Unified Process
Trends in system development Extreme Programming
methodologies Scrum
Trends in technology infrastructure
Content Trends in application software
availability
SAAS
OSS
The web as an application platform
Add-ons and Application Program
Interfaces (API)
Making Web 2.0 work Mashup Applications
Rich Internet Applications
TRENDS IN
SYSTEM
DEVELOPMENT
METHODOLOGIE
S
• A philosophy and a set of
guidelines for developing
systems in an unknown,
Agile rapidly changing
Development environment, and it can be
used with any system
development methodology
Development
Philosophy & Values
• Value responding to change over
following a plan
• Value individuals and interactions over
processes and tools
• Value working software over
comprehensive documentation
• Value customer collaboration over
contract negotiation
Agile Modeling Principles
Agile philosophy
only proposes principles
It is not a complete methodology
(no practice and action steps)
Unified
Process
(UP)
Agile Based
Methodology
Extreme
Programming Scrum
(XP)
Unified Process
• OO system development methodology originally offered by Rational Software (which is now part of
IBM)
• Uses UML for system models and an adaptive system development life cycle
• Developed by Grady Booch, James Rumbaugh and Ivar Jacobson (pioneers of UML)
Unified Process
Adaptive methodology are
based on iterative approach
Each iteration is like a mini project
consisting of requirements definition,
component design, implementation and
testing
Unified Process
Question:
•What should be the focus of each
iteration?
•Do iterations early in the project
have the same objectives and focus
as does done later?
Unified Process
Answer:
Divide the project into
4 major phases
Unified Process
Each phase describes the emphasis or objectives of the
UP Phases project team members and their activities at that point in
time
Unified Process
UP Phases & Objectives
Unified Process
UP discipline is a set of functionally
related activities that combine to enable
UP phases indicates the development process in a UP project
the emphasis of the
project team at any
point in time To make iterative development more
manageable, UP defines disciplines to use
within each iteration
Unified Process
UP Discipline
• Business modeling
• Requirements
• Design
System Development Activities
• Implementation
• Testing
• Deployment
• Configuration and change management
Project
• Project management Management
• Environment Activities
Each iteration usually involves activities from all disciplines
Unified Process
Unified Process
Extreme Programming
Extreme Programming (XP) is a an adaptive, XP is an attempt to the best practices of
agile development methodology software development and extend them “to the
extreme”
Extreme
Programming
XP Core Values & Practices
The four core values drive its practices and project activities
Extreme
Extreme Programming
Programming
Planning
• XP planning focuses on making a
Testing
Pair Programming rough plan quickly and then refining
Simple Designs it as things become clearer. This
Refactoring the Code reflects the Agile development
Owning the Code Collectively
Continuous Integration
philosophical dictum that change is
On-Site Customer more important than detailed plans
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • XP intensifies testing by requiring
Pair Programming
Simple Designs
that the tests for each use case (story)
Refactoring the Code be written first—before the solution is
Owning the Code Collectively programmed
Continuous Integration
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing
• XP practice in which two
Pair Programming programmers work together on
Simple Designs designing, coding, and testing
Refactoring the Code
Owning the Code Collectively
software
Continuous Integration
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • XP conforms to the principles of
Pair Programming Agile Modeling. It accomplishes the
Simple Designs desired result with as few classes and
Refactoring the Code methods as possible and that doesn’t
Owning the Code Collectively
duplicate code
Continuous Integration
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • Refactoring is the technique of
Pair Programming improving the code without changing
Simple Designs
what it does. XP programmers
Refactoring the Code
Owning the Code Collectively
continually refactor their code to
Continuous Integration achieve a simpler design
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • In XP, everyone is responsible for the
Pair Programming
code. Collective ownership allows
Simple Designs
Refactoring the Code
anyone to modify any piece of code
Owning the Code Collectively
Continuous Integration
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • This practice embodies XP’s idea of
Pair Programming “growing” the software. Small pieces
Simple Designs
of code—which have passed the unit
Refactoring the Code
Owning the Code Collectively
tests—are integrated into the system
Continuous Integration daily or even more often
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • As with all adaptive approaches, XP
Pair Programming projects require continual
Simple Designs
involvement of users who can make
Refactoring the Code
Owning the Code Collectively
business decisions about functionality
Continuous Integration and scope
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • A system metaphor should be easily
Pair Programming
understood and well known to the
Simple Designs
Refactoring the Code
members of the development team. It
Owning the Code Collectively can guide members toward a vision
Continuous Integration and help them understand the system
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • Consistent with the entire philosophy
Pair Programming
of growing the software, small and
Simple Designs
Refactoring the Code
frequent releases provide upgraded
Owning the Code Collectively solutions to the users and keep them
Continuous Integration involved in the project
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing • The exact number of hours a
Pair Programming
Simple Designs
developer works isn’t the issue. The
Refactoring the Code issue is that the project shouldn’t be a
Owning the Code Collectively death march that burns out every
Continuous Integration
member of the team
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Extreme Programming
Programming
Planning
Testing
Pair Programming
• Developers should follow standards
Simple Designs for coding and documentation
Refactoring the Code
Owning the Code Collectively
Continuous Integration
On-Site Customer
System Metaphor
Small Releases
Fourty-Hour Week
Coding Standards
Extreme
Programming
XP Project Activities
Scrum
• Another influential agile, iterative development methodology based on ideas from
Rugby
• A Scrum is used to get a ball back into play after a penalty--it begins quickly, is a very
intense effort, involves the entire team, and usually only lasts for a short duration
• Scrum philosophy is the complete control a team exerts over its own organization and its
work processes.
• Software is developed incrementally, and controls are imposed empirically—by focusing
on things that can be accomplished.
Scrum
Scrum Philosophy
• Based on Agile Development principles
• Responsive to changes
o Suitable for projects with high uncertainties
• Emphasizes individuals more than processes
• Describe how team can work together to build
software for short period of time
• Key Principle – team has full control over its
own organization
o Product backlog – a prioritized list of user
requirements used to choose work to be
done in a Scrum project
o Functions (use cases), features (security),
technology (platforms)
Scrum
Scrum
Organization
• Product owner – the client stakeholder
for whom the system is being built
o Responsible for project backlog and
priorities
• Scrum master – the person in charge of a
Scrum project—similar to a project
manager
• Scrum team is usually 5 to 9 people
• Scrum team sets own goals, organizes
self, makes decisions
Scrum
Scrum Practices
• Sprint – a time-controlled mini-project that
implements a specific portion of a system
o Firm 30 day time box with specific goal or
deliverable
o The scope of that sprint is then frozen, and
no one can change it—neither the product
owner nor any other users
• Sprint backlog defines the scope
• Sprint final half-day review meeting – scheduled
to review and identify changes needed for the
following sprints
Scrum
Daily Scrum
• A daily meeting of all members of the team to
report progress (15 minutes max)
• Questions asked:
o What have you done since the last daily
Scrum?
o What will you do by the next daily Scrum?
o What kept you or is keeping you from
completing your work?
• Purpose of meeting is to report issues, not solve
them.
• Scrum masters take note of any obstructions and
see that they are removed
Scrum
Scrum Development Process
TRENDS IN
TECHNOLOGY
INFRASTRUCTUR
E
Areas of Technology Infrastructure
Client Computing Devices Internet and Telephone Back-End Computing
Communications Infrastructure
• New Client Computing Devices and Applications –
Small, mobile, connected
o Device-top application – a computer application
that is built to execute on a local device without
Client requiring a client/server connection
o Free-standing Internet application –a
Computing client/server application that is self-contained
and doesn’t require the use of a Web browser
Devices o Browser-based application –a client/server
application that executes locally within the
control of a Web browser
• Internet, the telephone, and television are
merging
• Long-distance telephone communication and
long-distance Internet communication have very
Internet and similar requirements and capability
• Internet backbone – the primary data routes
Telephone between large, strategically interconnected
networks and routers on the Internet
Communications • Last mile – the final leg that delivers
connectivity from the Internet network to the
customer
• Back-End Computing –the server computers that
provide the content—dynamic and static—for all
applications that access servers through the Internet
o As more and more client computers try to access
Back-End a particular application, the workloads on the
servers becomes incredibly heavy
o Several factors are driving the need for large
Computing back-end computing services
• Trend toward continuous connectivity to the
Infrastructure Internet
• Massive amount of data stored—many
applications in the world of commerce keep
a history of all the transactions that occur
• The consolidation of processing in central
locations
TRENDS IN
APPLICATION
SOFTWARE
AVAILABILITY
Due to changes to technology
infrastructure, people and
organizations are finding new
ways to deploy and provide
applications
47
Traditionally, software
applications are developed, or
purchases and modifies to suit
in-house procedure
48
New methods are emerging for
obtaining software functionality:
Software as a Service (SAAS)
Open Source Software
Software as a
Service
• A software delivery model similar to a
utility, in which the application and its
associated data are accessed via the
Internet without locally installed
programs
• Also know as on-demand software
Software as a
Service (cont)
• Hosted on a server farm and functionality
distributed over Internet or a VPN
• Two categories:
o Client-data oriented services
o Tool services
• The above two categories can be divided
into:
o Business or organizational services
o End-user services
Software as a
Service (cont)
• Client-data oriented services
o Services that maintain information and data for
each client
• Business or organizational services
o Accounting, CRM, HRM, CM, SCM, ERP
o Cost is reduced as no overhead of owning
software
• End-user services
o Blog hosting, content management hosting,
photograph hosting
o Cost is mostly funded by advertising
Software as a
Service (cont)
• Tool services
o Provide computer tool capability
o Does not save user’s data
• Business or organizational services
o CAD tools, semiconductor design tools
o Cost is reduced as no overhead of owning
software
• End-user services
o Password generation, md5 encryption,
public/private key combinations
o Cost is mostly funded by advertising
Software as a
Service (cont)
• SAAS must be developed to handle
varieties that occur across different
companies
• Must be option driven to allow system
configuration
• Therefore, development is much more
complex
• Software is often adjusted over time to
accommodate new user functionality
• Security, backup and recovery issues
Owning Software Vs SAAS
Open-Source
Software
• A method of developing, delivering, and
licensing software that makes the
application source code freely available to
any interested developer or client
• Came into existence in 1998 with the
formation of Open Source Initiative (OSI)
• Source code is distributed freely, can be
modified, but usually credit must be given
to the creator of the original source
Source code
• Must be open for distribution
Freely redistributable
OSS • Recipients of source code may also distribute it
Derived works
Confirmation • Can be modified and distributed in its modified form
Criteria Distribution of license
• Open license apply to all derived or modified software
No discrimination
• License can’t restrict who can receive or use the software
No related restrictions
• License can’t restrict other software that may be distributed in conjunction with the
open software
Sell additional products
or services
• Installation services, code
modification services,
Method for
Request donation from training, technical support
individuals or businesses
Generating
Revenue
Multitier or proprietary
add-ons to the source
code
• Base system is free, need to Organization-based
pay for professional version internal open source
with additional capabilities
groups
Open-Source
Software (Cont)
• Large open-source projects (Apache,
PostgreSQL, WordPress) require large
group of developers
• May not have an office or central location
• Participants reside in locations throughout
the world
• Meetings and communications done
through online tools and documentation
THE WEB AS AN
APPLICATION
PLATFORM
The WWW has become the
primary environment for the
deployment of new software
applications and systems
The majority of new applications are being
written for the Internet, either as
browser-based applications
or as
free-standing Internet applications
Three Types of Web Applications
Interactive & dynamic
Communicate & collaborate
WEB 2.0
Web 2.0
a loosely defined, nonstandard term used
to refer to Web sites that permit user-
generated content and user interaction,
such as social networking sites
• Add-ons and Application
Program Interfaces (API)
Making Web • Mashup Applications
2.0 Work • Rich Internet Applications
ADD-ONS &
APPLICATIO
N PROGRAM
INTERFACES
(APIS)
Add-Ons &
Application Program Interfaces (APIs)
Plug-ins – a software component Widget – a type of plug-in that Theme – a type of add-on to an
that adds specific capabilities to a focuses on enhancing the user application that allows the look
larger software application interface with additional capability and feel, such as colors and layout,
(also called gadget) to be changed
Add-Ons &
Application Program Interfaces (APIs)
Toolbar Web mini-app
a type of add-on usually comprised a software application that provides
of iconic menu items that access the a complete set of functions but that
capabilities of the application or must be executed within the confines
plug-ins in a user-friendly fashion of another application
MASHUP
APPLICATIO
NS
Mashup Applications
A type of Web site that APIs are defines as a set of Web-based APIs calls are Two API types:
combines the functionality of method calls to a class or a expressed in URLs, which
several other Web sites component return to the originating
through the use of predefined source web site.
APIs
Data provider
• Indexes of documents, images, videos
or items for sale
• News aggregator for news feed or
podcasts
Service provider
• Data conversion
Mashup of several APIs to create a dashboard page
RICH
INTERNET
APPLICATIO
N
Rich Internet Applications
A type of Web site that provides active This is possible due to the addition of 5 major approaches to developing
user interaction as well as delivers rich computing on the local client computer, RIAs:
multimedia, similar to a desktop within the browser itself
application
5 Major Approaches to
Developing RIAs
JavaScript and Ajax ICEFaces and Adobe Flash Microsoft HTML5
Libraries JavaFX Platform Silverlight • New HTML
• De facto standard for • Open-source • Best known as a • Microsoft’s Windows specification that
adding desktop-like framework that multimedia platform Communication standardizes RIA
computing within provides Java language for animation and Foundation specifications for built-
browsers APIs to build and interactivity (WCF) .NET RIA in browser delivery
deploy server-based Services to support the
RIAs development and
deployment of RIAs
Summary
Trends
Software Web as a
Methodology Infrastructure Web 2.0
Availability Platform
UP SAAS Add-ons & API
XP OSS Mashup
Scrum RIA
End of Topic 7