0% found this document useful (0 votes)
29 views83 pages

ITS570 Topic 7 - Current Trends in System Development (C14)

The document discusses trends in system development methodologies including agile development, the Unified Process methodology, and Extreme Programming methodology. It provides details on the phases, disciplines, practices, and values of these agile methodologies.

Uploaded by

Vrene
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views83 pages

ITS570 Topic 7 - Current Trends in System Development (C14)

The document discusses trends in system development methodologies including agile development, the Unified Process methodology, and Extreme Programming methodology. It provides details on the phases, disciplines, practices, and values of these agile methodologies.

Uploaded by

Vrene
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 83

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

Common questions

Powered by AI

A Scrum team is organized to ensure self-organization and effective project execution through distinct roles and structures. The team includes the product owner, responsible for the project backlog and prioritization of work, and the Scrum master, who facilitates the process, helping resolve issues that hinder progress. The development team, typically composed of 5 to 9 people, organizes itself, sets its goals, and decides how to achieve them. The team works through a series of sprints, during which they focus on specific, prioritized tasks from the backlog. Daily Scrum meetings are held for team members to report on their progress, fostering transparency and immediate problem identification .

Extreme Programming (XP) aligns with Agile principles predominantly through its emphasis on iterative and incremental development, continuous user involvement, and responsiveness to change. XP practices such as refactoring, continuous integration, simple design, and pair programming are designed to allow the software to evolve with minimal complexity, aligning with the Agile principle of valuing adaptable solutions over rigid plans. The practice of short releases and constant feedback from the on-site customer supports Agile's emphasis on customer collaboration and flexible response to changing requirements. Additionally, XP's core value of collective code ownership facilitates team collaboration and interaction, another key Agile tenet .

Scrum's approach to project management differs significantly from traditional methodologies by emphasizing full team autonomy, empirical process control, and iterative progress through sprints. Unlike traditional approaches that rely on detailed upfront planning and control by a project manager, Scrum allows the Scrum team to set its own goals, organize itself, and make decisions collectively. The Scrum master facilitates the process by removing obstacles, but the team operates with much more flexibility and responsiveness to change compared to conventional command-and-control models. Furthermore, Scrum's empirical control involves constant inspection and adaptation, focusing on what can be completed in short-term sprints, while traditional methods often adhere to rigid phased processes .

Software as a Service (SAAS) differs from traditional on-premise software solutions in several key ways regarding deployment and maintenance. With SAAS, applications are hosted on a server farm and accessed over the Internet, eliminating the need for local software installation and reducing IT infrastructure costs. This model mandates central management of security, backups, and software updates by the service provider, rather than the end-user, ensuring more consistent and timely maintenance. Additionally, SAAS solutions offer scalability and flexibility to accommodate various user needs without the necessity for substantial upfront investment in hardware or software licenses .

The Unified Process (UP) methodology consists of four primary components: business modeling, requirements, design, implementation, and testing, often termed as 'disciplines.' These components contribute to iterative development by structuring each iteration to include activities from all disciplines, ensuring comprehensive coverage of the project lifecycle. Each iteration acts like a mini-project focusing on a specific set of requirements, which allows for adaptive refinement of the system based on feedback and testing. This iterative approach ensures that issues are identified and addressed early, allowing the development to align closely with changing customer needs and project objectives, thus enhancing flexibility and risk management .

The potential benefits of using open-source software (OSS) include cost savings, as there are typically no licensing fees, and the availability of source code, which allows for customization and flexibility to meet specific user needs. OSS often encourages collaboration and innovation since it involves contributions from a diverse global community. However, drawbacks can include a lack of dedicated customer support and documentation, which may pose a challenge for users requiring immediate assistance or those lacking technical expertise. Moreover, OSS projects may lack the focus and resources typically associated with commercial software, possibly affecting reliability and development pace .

The concept of 'system metaphor' in Extreme Programming (XP) serves as a simplistic, cohesive vision for a project, helping the development team visualize and understand the overall system architecture and goals. It provides a shared language among team members, making complex requirements more accessible and ensuring that all team members have a common understanding of the system's functionality. This metaphor can guide design decisions, ensuring consistency and coherence across the project, which ultimately facilitates better communication and coordination within the team and enhances the alignment of development efforts with business objectives .

Mashup applications utilize APIs by combining functionalities from multiple web services into a single cohesive application. This integration typically involves the use of data provider APIs, which aggregate and present data from various sources, and service provider APIs, which perform operations like data conversion. By leveraging these APIs, mashup applications can offer rich, composite services that extend beyond the capabilities of individual components alone, exemplifying the power of Web 2.0. However, challenges with this integration might include managing API versioning, handling data consistency and latency issues, ensuring security across different sources, and maintaining the reliability of third-party API services .

Rich Internet Applications (RIA) enhance user interaction on the web by providing a more dynamic and immersive user experience akin to that of desktop applications. They achieve this by incorporating rich multimedia elements and allowing user interaction without full page reloads, leading to faster and more responsive applications. Technologies commonly used in RIA development include JavaScript and Ajax Libraries, which provide standard frameworks for rich interactive features. Other technologies comprise ICEFaces and JavaFX for Java-based applications, Adobe Flash Platform for multimedia content, Microsoft Silverlight for .NET-based services, and HTML5, which standardizes RIA features for browser-based delivery .

The Unified Process (UP) consists of four primary phases: inception, elaboration, construction, and transition. Inception serves to define the project scope and develop initial business case proposals. Elaboration refines project vision and requirements, with detailed system architecture planned. During the construction phase, the detailed system is developed iteratively. Finally, the transition phase focuses on deploying the system to users and ensuring its acceptance through user training and system fine-tuning. Each phase provides specific goals and deliverables, contributing to a structured yet flexible approach to iterative development that incorporates ongoing feedback and adaptation .

You might also like