technologies for developing systems. outline 1111 1111 2222 2222 project management technologies for...
TRANSCRIPT
Technologies for Developing Systems
Outline
1111
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
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…
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
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
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
The Waterfall Model
RequirementsAnalysis
Implementation
Design
Testing
Delivery and Installation
Iterative Waterfall Model
The Spiral Model
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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!
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
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
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
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
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
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
Application Servers
Java
Java programming language
Java platform
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
Outline
1111
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.
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
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
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
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?
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
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.
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
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
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