technologies for developing systems. outline 1111 1111 2222 2222 project management technologies for...

44
Technologies for Developing Systems

Upload: lynne-gray

Post on 26-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Technologies for Developing Systems

Page 2: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Outline

1111

2222 Project Management

Technologies for Developing Systems

Page 3: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

System Development

IT can only be used in the form of some systems Application systems bridge the gap between business

needs and IT infrastructure The part of IT that matters most strategically

System dev. is an area in which Murphy’s Law reigns supreme If anything can go wrong, it will

An important yet challenging part of IS management

Page 4: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

The Evolution of System Development

2000

1980

1950

1970

1990

1960

High-levellanguages

Data structures,algorithm, objects

Modules, systemorganization

Architecturalelements

Software architecture

NATO SE conference

Programming-in-the-large

Software development environments

Subroutines

Separate compilation

Integrated product linesComponent-based systems

Information hiding

InheritanceAbstract data typesobject

s

PackagesPipes and filters

Sequence of instructions

Web services & SOA…

Page 5: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Some Milestones (1)

1970s Structured system development System development life cycle

1980s 4GL (4th Generation Language) Automation of parts of development such as code

generation 1990s

Reliance increased on packages Increased developer productivity Decreased maintenance cost

Page 6: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Some Milestones (2)

1990s Business process reengineering led to growth on

integrated enterprise systems ERP

Late 1990s Sudden emergence of e-business and Internet

based systems 2000s

Faster systems development cycles Integrated enterprise systems

Page 7: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Some Milestones (3)

Business applications today Virtually every application is a network application

The network is becoming the system Web-based applications were the first generation

of Internet-centric computing Web Services 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. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

The Waterfall Model

RequirementsAnalysis

Implementation

Design

Testing

Delivery and Installation

Page 9: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Iterative Waterfall Model

Page 10: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

The Spiral Model

Page 11: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Structured System Development Some elements of the structured system

development Hand coding in third generation language "Structured programming" development methodology DBMS Development of mostly mainframe applications Various automated, but not well integrated software

tools User participation mainly in require definition and

installation phases

Page 12: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Structure Development Benefits More discipline

Standards for process and documentation Established practices of analysis, design and

construction to handle complexity Higher reliability and fewer errors

To catch errors as early as possible through inspection

More efficient use of resources Project management approaches

Page 13: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

4th Generation Language (4GL) A programming language closer to human

languages than 3GL 4GL specifies the purpose without details on

procedures E.g. SQL

SELECT NAME, SCORE FROM STUDENT

Page 14: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Software Prototyping

A quickly created system aiming to test out assumptions User requirements Application design Program logic...

Prototyping corresponds to the iterative process of app. development Starting with a simple prototype New requirements added in and new refinements

incorporated Each version sees some incremental additions

Page 15: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Computer-Aided Software Engineering (CASE) CASE is the use of software tools to assist in the

development and maintenance of software

Some typical CASE tools are: Code generation tools Data modeling tools UML…

Components in an CASE environment Information repository Front-end tools Back-end tools Development workstation

Page 16: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Object-Oriented Development (1) OOD is a revolutionary change

While CASE is an evolutionary one

An object contains encapsulated data and procedures grouped together to represent an entity. Programming becomes the interaction of these

objects

Page 17: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Object-Oriented Development (2) Key OOD features

Information hiding (encapsulation) Interface Inheritance Polymorphism

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

Enables code-packaging technique

Page 18: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

C/S Computing and Web Based Development (1) Two major developments in 1990s

Client-server systems Work split between a client and a server Far more flexibility than mainframe-based systems Desktop: graphics, animation, video Servers: production updating

Web-based or network centric development

Page 19: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

C/S Computing and Web Based Development (2) 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 20: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Component-Based Development Component Object Model (COM)

COM is used to enable inter-process communication and dynamic object creation in any programming language that supports the technology.

Common Object Request Broker Architecture (CORBA) CORBA is a standard defined by the Object

Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together.

Page 21: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Software Architecture

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.

Page 22: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Architectural Patterns (1)

The event-based structure at runtime Using event registration to bind procedures in

objects or processes

Eases system evolution and integration, problem decomposition

No control over order of invocation, correctness difficult to ensure

Page 23: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Architectural Patterns (2)

The layered structure at design time Each layer only uses services supplied by the layer below

and provides services to the layer above

Support design based upon increasing levels of abstraction; portability; modifiability; reuse

Performance penalty, wrong model

The deployment structure at the deployment time How run-time elements (objects, processes) are allocated

to execution platforms

Page 24: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Architecture and Quality Attributes It is the mapping of a system's functionality onto

software structures that determines the architecture's support for qualities. Quality attributes dictates a software system's architecture.

No quality attribute is entirely dependent on design or other phases. Satisfactory inclusion of quality attributes means you must

get the big picture (architecture) and the details (implementation) right!

Page 25: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

System Integration (1)

Integration is by far the biggest software problems CIOs face Integrating legacy systems from various eras and

technologies Integration was also a major problem for IT

vendors E.g. IBM with its various product lines

Page 26: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

System Integration (2)

Three traditional integration approaches DBMSs

A data-centered approach, allowing applications to share data stored in a single or distributed database

Enterprise Resource Planning (ERP) An application-centered approach, all applications come

from a single vendor and are specifically designed to communicate with each other

Middleware A third-party approach, applications communicate with

each other through a third-party translation software

Page 27: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Enterprise Resource Planning Systems (ERPs) ERPs integrate all data and processes of an

organization into a unified system With 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

Page 28: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Middleware

Middleware is software that works between and connects applications, allowing them to share data Acts as a translator between the applications

Middleware used in system integration Message Oriented Middleware (MOM) Object Request Broker (ORB) Enterprise Application Integration (EAI) middleware

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

Page 29: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Inter-organizational System Development Business ecosystems became one of the main

business trends SCM integrates supply chains Development of such inter-organizational systems

requires teams from the different organizations to work together

Another type of inter-organizational system is a platform, which provides the infrastructure for the operation of a business ecosystem, a region, or an industry Sabre from AA

Page 30: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Internet-based Systems

Internet-based systems must be: Scalable Reliable Integrated with systems of customers or business

partners

Three cornerstones for Internet-based systems Application servers Java Web service

Page 31: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Application Servers

Page 32: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Java

Java programming language

Java platform

Page 33: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Web Services

The vision of Web Services is that modules of code can be assembled into services, which, in turn, can be linked to create a business process at the moment it is needed and run across enterprises, computing platforms, and data models

Page 34: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Outline

1111

2222 Project Management

Technologies for Developing Systems

Page 35: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Context of Project Management Companies are in three businesses:

Infrastructure management Customer relationship Product innovation

Traditionally companies have bundled the three businesses, which leads to compromises because they have conflicting agendas

IS department can be viewed as being in the same three businesses.

Page 36: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

What is Project Management (1) Management of a project

A project is a collection of related tasks and activities undertaken to achieve a specific goal. All Projects should: Have a clearly stated goal Be finite, clearly defined beginning & end

A project is a temporary and one-time endeavor undertaken to create a unique product or service, which brings about beneficial change or added value. Project VS. process

Page 37: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

What is Project Management (2) Project management is the discipline of

organizing and managing resources (e.g. people) in such a way that the project is completed within defined scope, quality, time and cost constraints

Page 38: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

The Traditional Project Management Triangle The three competing

constraints Increased scope typically

means increased time and increased cost

A tight time constraint could mean increased costs and reduced scope

A tight budget could mean increased time and reduced scope

QUALITY

SCOPE

TIME

COST

Page 39: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Project Details

Project details must be known and determined well before the design process is begun How long will it take? Who will do the work? What risks and complications may arise? How much will it cost?

Page 40: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Important Management Issues Planning

Scope, timing, cost Organizing

People and teams involved Tasks in the project and timetable for them

Leading Motivating Work allocation

Controlling Tracking progress, meeting goals

Page 41: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Challenges of Project Management Deliver the project within defined constraints

Optimize allocation and integration of inputs needed to meet pre-defined objectives A project is a carefully defined set of activities that

use resources to meet the pre-defined objectives money, people, materials, energy, space, provisions,

communication, etc.

Page 42: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

IT Project Management

IT Project Management: 10% technical, 90% common sense or good

business practice Many IT managers do not have a background in

IT at all Communication, organization and motivation

Key: keeping in mind, and under control the numerous interdependencies of the numerous tasks

Page 43: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Change Management (1)

IS often assume a technically elegant system is a successful system Many technically sound systems have turned into

implementation failures

System is only a success if it meets the users' requirements and they are happy with it and with using it Focusing only on the technical aspects is only half the

job The other job is change management

Page 44: Technologies for Developing Systems. Outline 1111 1111 2222 2222 Project Management Technologies for Developing Systems

Change Management (2)

Information technology is all about managing change New systems require changing how work is done

Changing management is the process of assisting people to make change in their working environment Esp. Change caused by the introduction of a new

computer system