technologies for developing systems lecture 21. technologies for developing systems technologies for...

58
Technologies for Developing Systems Lecture 21

Upload: christian-maxwell

Post on 12-Jan-2016

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Technologies for Developing Systems

Lecture 21

Page 2: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Technologies for Developing Systems

Technologies for developing systems reviews the evolution of system development to provide an understanding of the underlying principles of building applications

It discusses: Underlying technologies Development methodologies, and Internet-based systems

Case examples include Du Pont Cable Management Services, MGM, Colgate-Palmolive, a telecommunications firm, Hong Kong Exchanges and Clearing and Bekins, with a discussion case on ExxonMobil

Page 3: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Today’s Lecture Introduction

Foundations of Systems Development Structured Development Fourth-Generation Languages Software Prototyping Computer-Aided Software Engineering (CASE) Object-Oriented Development Client-Server Computing

Page 4: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Today’s Lecture..

System Integration ERP Systems Middleware

Page 5: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Introduction

Developing new systems = difficult job -“if anything can go wrong, it will!”

though there is progress in improving the process of buildings systems –

1970s: system development life cycle

1980s: friendly languages and automation of parts of

development such as code generation

1990s: reliance increased on packages

Developer productivity & maintenance

Page 6: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Introduction cont.

Business process reengineering movement = growth on integrated enterprise systems & adoption of enterprise resource planning systems (ERP)

Late 1990s; sudden emergence of e-business and Internet based systems

2000s - Internet brought need for faster systems development and integrated enterprise systems, Hence new tools for rapid development became

available – Relying on reusable components & open systems

architecture

Page 7: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Introduction cont.

These days, virtually every application is a network application, since the network is becoming the system

Web-based applications were the first generation of Internet-centric computing

The new field, “Web Services” (or whatever people are calling it), is touted as the second

In addition, the increasing interconnectedness of supply chains is leading companies to build inter-organizational systems Far more complex undertaking than any single-

company systems

Page 8: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development

In the early years, systems development was considered a ‘craft’

Then = Discipline through structured development Figure 9-1 is the classic system development life cycle

(waterfall approach) Much ‘touted’ but rarely (purely) used Developers really always followed the spiral approach

as in Figure 9-2

Page 9: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system
Page 10: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system
Page 11: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Developmentcont.

The Traditional Application Development Approach (characteristics):

1. Hand coding in third generation language, e.g. COBOL

2. “Structured Programming” development methodology

3. Automated Project management system4. A database management system

Page 12: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Developmentcont.

5. A mix of online and batch applications in the same system

6. Development of mostly mainframe applications7. Programming by professional programmers only8. Various automated, but not well integrated s/w tools9. A well-defined sign-off process for system delivery10. User participation mainly in require definition and

installation phases

Page 13: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

System Development A Quest!

Page 14: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Structured Development

Structured development methodologies accompanied this system development life cycle in an attempt to manage the complexities of systems design and development More discipline: established standards for process and

documentation to increase productivity and developers’ ability to deal with complexity

Higher reliability and fewer errors: to catch errors as early as possible through inspection

Page 15: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Structured Development

More efficient use of resources: thorough project management approaches resulted in:

Cost savings Increased productivity Better allocation of human resources Reduced the tendency for system development

project overruns– ALL = STILL A PROBLEM!!!!

Page 16: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Fourth-Generation Languages

Early 1980s – 4GLs and Prototyping

4GLs are more than just a computer language, they are programming environments. As seen in Figure 9-3

1980s development – fourth generation languages (4GLs). These allowed:– End users to develop some programs– Programmers to use different development method =

Prototyping

Page 17: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system
Page 18: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Software Prototyping

A live, working system Performs actual work May become actual production system

Or replaced by a (newly) coded one Purpose: to test assumptions about:

Users’ requirements Application design, or Program logic

Page 19: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Software Prototyping

Software system created quickly: language creates code Iterative process

Each version performs function in an increasingly efficient manner

Both 4GLs and prototyping have proven to be important underpinnings for today’s application development world

Page 20: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Computer-Aided Software Engineering

(CASE)

The advent of Computer Aided Software Engineering (CASE) occurred to automate structured techniques and reduce tediousness of the 1970s structured programming and analysis techniques. Components:

Information repository: stores and organizes all information needed to create, modify, and develop software system

Page 21: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Computer-Aided Software Engineering

(CASE) Front-end tools: used in all phases that lead up to

coding, (“uppercase”)

Back-end tools: used to automatically generate source code (“lowercase”)

Development workstation: the more powerful the better

Page 22: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Computer-Aided Software Engineering (CASE)

cont.

A late ’80s use of CASE (not ‘standard’!) is Timeboxing

Timeboxing: Technique that uses CASE to guarantee delivery of a system within 120 days

Today, IS departments that aim for speed over complexity are turning to a development technique like: Rapid Application Development (RAD)

Page 23: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

MIDAS/EEA CASE Tool

Page 24: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

DUPONT CABLE MANAGEMENT SERVICESCase Example: Rapid Application Development

(RAD)

To manage its telephones and wiring in its many offices, DuPont needed a cable management system

No packages on the market could handle its needs, so it called on a DuPont subsidiary to use CASE and timeboxing to build a custom system

Day One was the go-ahead

Page 25: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

DUPONT CABLE MANAGEMENT SERVICES

Case Example: Rapid Application Development (RAD)

Days 2-30 defined the components of the system Days 31-90 designed the specs, prototyped the

system, and refined the prototype (which became the production system)

Days 91-120 installed the system, and a second timebox followed

The resulting system, which took nine months, took others two to three years to develop in-house

Page 26: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Object-Oriented Development

Object-oriented (OO) development was a revolutionary change in the late 1980s – develop objects that can be reused

It allowed point-and-click programming of graphical user interfaces

It is not so much a coding technique as a code-packaging technique Object:

Receives request (message) Chooses and executes operation, then Returns the results to the requester

It is very modular, so a change in one part of a system need not affect the other parts

Page 27: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Client-Server Computing and Web Based

Development In the 1990s, two developments became the major

news:1. Client-server systems2. Web-based or network centric development

Underlying these two (continuing) trends is the increasing use of packages and system integration

As much as possible, companies prefer to buy a package rather than build an application in-house

To develop large applications, they integrate (various) hardware and software components

Page 28: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Client-Server Computing

These systems split work between a client and a server Far more flexibility than mainframe-based systems

Desktop: graphics, animation, video Servers: production updating

Didn’t always live up to their promise! Clever way to meld the pizzazz of the PC world with the

necessary back-end production strengths of the ‘mainframe’ world

Page 29: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Client Server Computing

Page 30: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

MGMCase Example: Client Server Computing

(and Intranet)

MGM has a huge library of TV shows and movies

Previously had over 26 disparate systems on PCs

Its first client-server application collected and consolidated all data on the film library so that MGM would know what films they have rights to license to whom

Page 31: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

MGMCase Example: Client Server Computing

(and Intranet)

MGM’s film rights salespeople could visit the head of a cable TV network: Play 20–30 second clips of their films using the built-

in CD-ROM Browse the laptop’s inventory database to verify

availability of films Print the licensing deal memo on the spot

The system had a three-tier architecture and was built via prototyping using a RGL development tool

Page 32: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

MGMCase Example: Client Server Computing (and

Intranet) cont.

Partnering is mandatory with client-server computing

Role of IS at MGM changed from systems development and delivery to one of cooperating and partnering

Required a huge cultural shift in the roles and attitudes of the IS staff

Page 33: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

MGMCase Example: Client Server Computing

(and Intranet) cont. Hardware was cheaper, development was faster and

software was cheaper (significant!)

Operating costs were more expensive than MGM expected Version control of client-server software and service and systems management were more costly

Page 34: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Summary

These technologies:

Structured development 4GLs Prototyping CASE OO development

Page 35: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Foundations of Systems Development Summary

Client Server systemshave all proven to be foundations of today's system development environment

We now turn to that (today’s) environment, beginning first by discussing the main method of building systems: system integration

Page 36: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems Integration

Integration is by far the biggest software problems CIOs face = Why offerings that integrate systems generate so

much interest CIOs (and all CXOs!) have long strived to integrate the

information systems in their organizations

Integration = Complex Expensive Risky

Page 37: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems Integration

The project report explains systems integration as an issue which has arisen from the development of computer information systems for administration (Student Records, Finance, Human Resources, etc) and teaching (VLEs, etc)

The report says that over the last 10 to 15 years institutions have moved from using systems built in house to using systems bought from vendors, and need to make these systems interoperable

Page 38: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Why to institutions want to integrate systems?

The survey lists these as the main drivers for integration:

To improve institutional information management

To support the student experience more seamlessly

To avoid duplicating and re-entering data

Page 39: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems Integration

Three approaches stand out: Database Management Systems: allow applications

to share data stored in a single or distributed database

Enterprise Resource Planning (ERP) Systems: all applications come from a single vendor and are specifically designed to communicate with each other

Middleware: applications communicate with each other through a third-party translation software - see Figure 9-4

Typically = use a combination of all three

Page 40: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems IntegrationERP

An ERP system aims to integrate corporate systems by providing a single set of applications from a single vendor operating with a single database The goal – provide the means to integrate business

departments and functions across an organization History of ERP contains both successes and failures,

many of which have been especially notable: Average cost overrun – 179% Average schedule overrun 230%

Page 41: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems IntegrationERP

Functionally 59% below expectations 10% projects completed on time & in budget 35% projects cancelled

Common to hold systems large size and complexity responsible as well as: Too much attention to ‘technical’ aspects Not enough to organizational aspects

Page 42: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

ERP Example

Page 43: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Well linked systems

100% of institutions had links between Finance and Student Management (Student Records)

100% had links between Library and Student Management

95% had linked Finance and Human Resources 91% had linked Student Management and Timetable 90% had linked Student Management and VLE 83% had linked Finance and Estates 75% had linked Human Resources and Research

Support

Page 44: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Approaches to integration

In house: DIY approach to systems and integration Buying external systems from a small number of

vendors, thereby either reducing integration issues or passing them on to vendors

Ad hoc integration using data dumps and data adaptors Using a central hub between systems sharing data SOA – “This approach, in which resources on a network

are made available as independent services that can be accessed without knowledge of the underlying platform implementation, was generally noted as an aspiration or destination rather than a currently existing strategy.”

Page 45: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Barriers to further integration

Lack of resources (costs of staff etc) Lack of in house skills Resistance from academic and service departments

wanting to do their own thing and protect “their” data Lack of representation of the system integration issue at

senior level Lack of understanding in parts of the organization about

the multiple uses of data and too much focus on data being used for local purposes only

Page 46: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Risks of integration

More errors Good integration can make integration invisible, so

unappreciated by end users Talk of integration can lead to overambitious user

expectations Integration doesn’t always result in more user

engagement Vendors can lose enthusiasm leaving organizations with

large bills and unfinished work Integration projects can spiral out of scope

Page 47: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

COLGATE PALMOLIVECase Example: Successful ERP

1990s = competitive crisis Used a decentralized structure

Expensive to coordinate Slow to respond to market changes Constraint on company growth

Vision:“Become a truly global company, with an integrated business environment and standardized business processes.”

Page 48: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

COLGATE PALMOLIVECase Example: Successful ERP cont.

After setting up a prototype environment in the US, SAP R/3 module convincingly proved itself as being functional and flexible worldwide for Sales & distribution Materials management Finance Human resources

Savings have been made in IT operations – complex decentralized IT infrastructure was streamlined

Page 49: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

COLGATE PALMOLIVECase Example: Successful ERP cont.

Implementation took five years and cost $430 million, but it was a success. The product delivery cycle dropped and purchasing and other costs were cut

Data centers around the world were closed, from 75 down to 2

The complexity of its global data networks was also simplified

Success of ERP stems from senior management convincing employees that the company was in crisis and only dramatic change could remedy it

Page 50: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems IntegrationMiddleware

Most organizations have a wide range of applications

New and old

From a variety of vendors

Running on numerous platforms

Replacing or rewriting these systems not an option

Page 51: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems IntegrationMiddleware

One option = employ a class of products known as middleware Software that works between and connects

applications allowing them to share data Needed as wide range of applications used and run

on numerous platforms Simplifies development by acting as the “glue” that

binds the components together There is a wide variety available as illustrated in

Figure 9-4

Page 52: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system
Page 53: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems IntegrationMiddleware cont.

One type of ‘middleware’ that has gained popularity: Enterprise Application Integration (EAI):

Typically use a message broker to transfer data between applications

Add a new level of functionality that distinguishes them

Page 54: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Systems IntegrationMiddleware cont.

Allow users to define business processes and make data integration subject to rules that govern those processes

e.g. a rule might state that data can only move from purchasing to accounts receivable when ‘X’ has signed off on the purchase

Page 55: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

A TELECOMMUNICATIONS FIRM Case Example: Enterprise Application

Integration

Processing customer requests for new and updated services = major cost and source of customer dissatisfaction

It has been estimated that 65 percent of new and change orders in the telephone industry have errors that must be corrected after the fact ($$$)

Rather than build a new system, the company looked to EAI to automate the process using three existing systems:

Page 56: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

A TELECOMMUNICATIONS FIRM Case Example: Enterprise Application Integration

1. The customer relationship management system (which contains the customer information)

2. The ERP system (which retrieves information for the application to validate the request and ensures that the new service is compatible with the customer’s existing services), and

3. The accounting system (which contains the pricing information)

Page 57: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

A TELECOMMUNICATIONS FIRMCase Example: Enterprise Application Integration

cont.

Therefore resolution = Customer request service at the call center via the

CRM Customer’s name and address passed onto ERP

system, which retrieve necessary info Mission accomplished

Decreased processing costs Errors eliminated Reduced customer churn No new applications needed Existing applications not altered

Page 58: Technologies for Developing Systems Lecture 21. Technologies for Developing Systems Technologies for developing systems reviews the evolution of system

Summary

Foundations of Systems Development Structured Development Fourth-Generation Languages Software Prototyping Computer-Aided Software Engineering (CASE) Object-Oriented Development Client-Server Computing

System Integration ERP Systems Middleware