Title: Kein Folientitel
1Last update 24 October 2006
IT Systems Implementation Introduction and
overview
Prof. Dr. Bettina Berendt
Humboldt-Universität zu Berlin, Institut für
Wirtschaftsinformatik http//www.wiwi.hu-berlin.de
/berendt/lehre/2006w/isi/
2Agenda
Organisation of the course
The context Information Systems
Why object orientation?
Why Java?
Why Unix?
What you should already know about Java
3Organisation of the course
- http//www.wiwi.hu-berlin.de/berendt/lehre/2006w/
isi/
4Agenda
Organisation of the course
The context Information Systems
Why object orientation?
Why Java?
Why Unix?
What you should already know about Java
5Information Systems Science (Wirtschaftsinformatik
)
- IS as an academic discipline deals with
information and communication systems in
institutions (information systems) - Information systems are systems of interdependent
agents humans and machines/programs that - are united by a common set of purposes and tasks,
- decide and act under the constraints of scarce
resources. - Information systems primary aim is to satisfy
these agents information and communication needs - Information technology (IT) systems are part of
information systems. - The tasks and needs depend on the kind of
institution, e.g., - a company
- a governmental agency
- a church, a school, a university
- a workgroup within a publishing house
- a group of open source software developers
6Multiple perspectives
Researchers and practitioners need to
know about
Goal hierarchies, strategies, organisational
structures,
Basic concepts, methods, and tools of
informatics / computer science
Atttitudes, behaviour, etc. of people who use IT
systems
7Why is it interesting? The job-description
argument
- You will encounter have to work with IT people.
- To work with them, you need to understand their
way of thinking their language!
IS people
8Why is it interesting? The Do-it-yourself
argument
I need to extract the fifth and seventh column
from this data table, and sort the data by
customer name, and get rid of duplicates ...
HELP!
You can be much more independent! (and save
money in the process)
9Our courses and modules
- For all Masters degree courses see
- http//www.wiwi.hu-berlin.de/berendt/lehre/2006w
/isi/PlanModuleWI.pdf - (Master WI see also the offers by Institut für
Informatik consult the Studien- and
Prüfungsordnung for mandatory courses more info
on the Master WI Web pages hyperlinked at
http//iwi.wiwi.hu-berlin.de - For Diplom degree courses
- These three basic courses are mandatory
- IT Systems Implementation (4 points)
- Database Management (2 points)
- System Analysis and Design (2 points)
- choose from the other courses towards a total
of - gt 12 points (BWL Diplom Wahlpflichtfach VWL
Diplom small WPF) OR - gt 14 points (BWL Diplom BBWL VWL Diplom large
WPF)
10Basic and advanced / specialized courses and
modules
- Note The basic courses are also basic for
Masters students if you wish to go further
(e.g., for a Masters thesis), specialize by
taking advanced courses/modules
11Courses / modules and their dependencies
please consult the course directors Web pages
for details
- Information Systems and E-Business Contact S.
Spiekermann, G. Tamm - System Analysis and Design (2 V 1 Ü, 5 CP)
- E-Business Case Studies (2 S, 4 CP)
- Data Management Contact O. Günther
- Database Management (2 V 1 Ü, 5 CP)
- Data Warehouse and Mining (2 V, 3 CP) ! Requires
Database Management ! - IT Systems Implementation Contact B. Berendt !
Requires basic knowledge of Java! - IT Systems Implementation (2 V 2 Ü, 6 CP)
- IT in the Enterprise Contact O. Günther, S.
Spiekermann, C. Gernert - Data Warehouses and Mining (2 V, 3 CP) ! Requires
Database Management ! - Seminar Current Issues in IT-Management (2 S, 3
CP) - Geschäftsprozessmodelle (2 S, 3 CP)
- Knowledge and the Web Contact B. Berendt !
Requires IT Systems Impl. ! - Knowledge and the Web (2 V 2 S, 9 CP) NOT
OFFERED IN 2007 ! - Advanced Software Engineering Contact B.
Viehweger - Introduction to Software Engineering (2 V 2 Ü,
6 CP) - Seminar Software Engineering (2 S, 3 CP)
- ? Summer term, Winter term, variousxxx
12Courses (module parts) offered in this semester
please consult the course directors Web pages
for details
- Information Systems and E-Business Contact S.
Spiekermann, G. Tamm - System Analysis and Design (2 V 1 Ü, 5 CP)
- E-Business Case Studies (2 S, 4 CP)
- Data Management Contact O. Günther
- Database Management (2 V 1 Ü, 5 CP)
- Data Warehouse and Mining (2 V, 3 CP)! Requires
Database Management ! - IT Systems Implementation Contact B. Berendt !
Requires basic knowledge of Java! - IT Systems Implementation (2 V 2 Ü, 6 CP)
- IT in the Enterprise
- Data Warehouses and Mining (2 V, 3 CP) Contact
O. Günther ! Requires DB Mgt. ! - Seminar Current Issues in IT-Management Contact
Gürses, Fabian, Klafft (2 S, 3 CP) - Geschäftsprozessmodelle Contact C. Gernert (2
S, 3 CP) - Knowledge and the Web Contact B. Berendt !
Requires IT Systems Impl. ! - Knowledge and the Web (2 V 2 S, 9 CP) NOT
OFFERED IN 2007 ! - Advanced Software Engineering Contact B.
Viehweger - Introduction to Software Engineering (2 V 2 Ü,
6 CP) - Seminar Software Engineering (2 S, 3 CP)
- SE Ubiquitäre Information Contact O. Günther
13Contents of courses
- For up-to-date information, please visit the
courses homepages via - http//iwi.wiwi.hu-berlin.de/
- The following slides give an overview of the core
courses contents.
14IT Systems Implementation
- Operating systems / Unix - The environment that
supports high-level programming (and everything
else you do with a computer) - Object orientation - Principles of modelling and
program organisation - Algorithms and data structures - What objects do
(apart from passing messages to one another) - Communication with other software - How to make
your programs more powerful - For Master WI students, this course is not
mandatory it is assumed that many of you
already know programming.
15What is object orientation? A UML class diagram
of a Student Registration System
16A Java function for the Student Registration
System
17UML and Java
18Database Management
http//www.wiwi.hu-berlin.de/guenther/DB/
- Data models hierarchical, network, relational.
SQL - Relational integrity rules and normal forms,
database design - Indices, recovery and concurrency
- Web applications, three-tier architectures
- Data mining and data warehouses
-
- Master WI students will instead take the
Databases module at the Institute of Computer
Science (see your coursebook for details)!
19System Analysis and Design
http//www.wiwi.hu-berlin.de/sspiek/itsd.htm
- How is IT related to business process and how are
processes being modelled for IT projects? - What models are being used to derive IT strategy
from Business Maxims? - What role does the Enterprise IT Architecture
play? How can it be investigated and modelled? - What does IT Governance look like today and where
are the challenges? - How are investment decisions for IT being made
and should companies go for home-bread or
standard solutions? - Where does open-source software make sense in the
business IT environment? - What are Web Services and why are they important?
- What are Enterprise Resource Planning Systems
(ERP) and what are the issues and challenges
companies face when implementing them? How does
EAI relate? - What does it mean to implement an ERP system,
e.g. Oracle E-Business Suite? - For Master WI students, this course is part of
the Information Systems and E-Business mandatory
module.
20Agenda
Organisation of the course
The context Information Systems
Why object orientation?
Why Java?
Why Unix?
What you should already know about Java
21The importance of structure in software
- Large enterprise applications - the ones that
execute core business applications, and keep a
company going must be more than just a bunch of
code modules. They must be structured in a way
that enables scalability, security, and robust
execution under stressful conditions, and their
structure - frequently referred to as their
architecture - must be defined clearly enough
that maintenance programmers can (quickly!) find
and fix a bug that shows up long after the
original authors have moved on to other projects. - Another benefit of structure is that it enables
code reuse Design time is the easiest time to
structure an application as a collection of
self-contained modules or components. - (from http//www.omg.org/gettingstarted/what_is_um
l.htm )
22The role of modelling in software development
- Modeling is the designing of software
applications before coding. Modeling is an
essential Part of large software projects, and
helpful to medium and even small projects as
well. - A model plays the analogous role in software
development that blueprints and other plans (site
maps, elevations, physical models) play in the
building of a skyscraper. Using a model, those
responsible for a software development project's
success can assure themselves that business
functionality is complete and correct, end-user
needs are met, and program design supports
requirements for scalability, robustness,
security, extendibility, and other
characteristics, before implementation in code
renders changes difficult and expensive to make. - (from http//www.omg.org/gettingstarted/what_is_um
l.htm )
23Modelling a system (in analysis and/or design)
Some general remarks
- Every system, computer program, etc. has two
fundamental ingredients - Static features (data, documents, users, )
- Dynamic features (processes, activities,
events, behaviours, ) - Models need to represent these two types of
features - Models (at least in computer science /
information systems) are semi-formal and
therefore have a syntax a set of language
elements and rules for combining them - A model is, by definition, an abstraction ?
- Models often focus on specific aspects of a whole
system - Models start from a specific perspective on the
world
24Different models, different perspectives
Preliminaries
- Running example an electronic Student
Registration System (SRS). In this system, - students can register for a course,
- students can drop a course,
- lecturers can post final semester grades for a
given course, - everybody can view the schedule of classes,
- First, we need to make an important distinction
25Perspective / start point 1 the process
A course
registers for
A student (the real user)
- ARIS (architecture of integrated information
systems) focuses on (usually real-world,
business-related) processes. - It models them as eEPKs (extended event-driven
process chains) - ARIS is treated in detail in System Analysis and
Design.
26The ARIS model in detail
key
27Perspective / start point 2 the data
- ERM (entity-relationship models) focus on the
data and their relations. - They are a key modelling language for database
design - ERM are treated in detail in Database
Management.
course
student
28Perspective / start point 3 agents / objects
that exist and communicate via messages ? an
integrated view
- Object-oriented modelling treats data and
processes in an integrated fashion - UML (Unified Modeling Language) offers different
diagram types for describing - the real-world users,
- The data representing them
- The other data
- The processes / behaviours associated with these
data - So you can think of these objects as agents
with content behaviour - BUT need to start by modelling the objects ? I
chose a data-centric diagram as representative
(for simplicity, only student is modelled in
detail)
29Object-oriented modelling and UML
- Surveys show that large software projects have a
huge probability of failure ... modeling is the
only way to visualize your design and check it
against requirements before your crew starts to
code. - The OMG's Unified Modeling Language (UML) helps
you specify, visualize, and document models of
software systems, including their structure and
design, in a way that meets all of these
requirements. (You can use UML for business
modeling and modeling of other non-software
systems too.) - Using any one of the large number of UML-based
tools on the market, you can analyze your future
application's requirements and design a solution
that meets them, representing the results using
UML's twelve standard diagram types. - (from http//www.omg.org/gettingstarted/what_is_um
l.htm )
30Diagram types in UML
Implementation view
Structural view
class diagrams
component diagrams
object diagrams
sequence diagrams
collaboration diagrams
deployment diagrams
statechart diagrams
activity diagrams
Behavioural view
Environment view
(Overview diagram from Alhir, p. 117)
31Example A UML class diagram
32What is object orientation, and what is it good
for? with a focus on object-oriented programming
- The goal of a programming language is for a
programmer to describe the solution to a problem
to the computer, solutions which are helpful for
a number of users who will use the program or
refine it further. Its the computers job to
execute this solution. Object orientation (OO)
is a means of organizing the computer program
that is going to solve a given problem. We solve
a problem by creating a model of objects that
exist in the real world. - (Lervik Havdal, Java the UML Way, p. 5)
- Object orientation provides better concepts
and tools to model and represent the real world
as closely as possible. - (Parsaye, K., Chignell, M., Khoshafian, S.,
Wong, H. (1989). Intelligent Databases. NY
Wiley p. 102) - The result is that the normal radical
transformation from system requirements (defined
in users terms) to system specification (defined
in computer terms) is greatly reduced. - (Ledbetter Cox, 1985, cited after Parsaye et
al., ibid.)
33Agenda
Organisation of the course
The context Information Systems
Why object orientation?
Why Java?
Why Unix?
What you should already know about Java
34Why Java?
- Java is architecture neutral
- Java provides rich functionality for the Web
(applets, Web Service programming) - Java provides one-stop shopping GUIs, database
interfaces, ... - Java is heavily object-oriented
- Java has advantages over other object-oriented
languages - Java is an open standard
- Java is freely available!
35Agenda
Organisation of the course
The context Information Systems
Why object orientation?
Why Java?
Why Unix?
What you should already know about Java
36The operating system UNIX
- UNIX development started in the late 1960s at
Bell Labs - Development continued in a highly dynamic
fashion, especially in the university context - A main reason for this was that this OS was free
and open - Until 1973, the source code was ported nearly
completely into the programming language C, which
made it possible to port ( translate) UNIX to
practically all computer architectures - The first commercial version was released in
1975 purely commercial distribution since 1984
(System V) - The operating system family has experienced a
large boost by the development of Linux (since
1991) and the GNU tools (since 1985) - GNU/Linux is under the GPL licence ? It is and
will remain free and open software - The UNIX command line interface offers you a
simple language (and programming opportunities)
for a myriad of tasks youll be surprised how
often you can do without a special-purpose
commercial program!
37UNIX and Unices
- Today, UNIX (or Unix) denotes a family of
operating systems, including for example - Solaris / SunOS (Sun Microsystems)
- (originally two OSs, now two names for one OS)
- Linux (free software directly from the Internet
or in a distribution, such as SuSE, Red Hat,
Debian) (for PCs and a wide range of other
platforms on a PC, it can run in parallel with
Windows) - For more information on Linux, see e.g.
- http//www.fsf.org/, the Free Software
Foundations Web site (GNU) - http//www.linux.org, the not-for-profit business
Linux Online - http//www.sourceforge.net, the world's largest
Open Source software development website - http//www.suse.com/ SuSE Linux (a commercial
Linux distrubution) - http//www.knoppix.de a ready-to-run Linux system
from one CD
38An example screenshot illustrating the
different interface options
In this shell, I am working on the local computer.
- These three windows are
- application program GUIs
This is a task bar as in Windows.
In this shell, I am working on a remote computer.
39Agenda
Organisation of the course
The context Information Systems
Why object orientation?
Why Java?
Why Unix?
What you should already know about Java
40Outline
- General structure of Java programs how to run a
program - Language basics
- Classes
41Example 1
File RunTest.java
- public class RunTest
- public static void main(String args)
- System.out.println(Hello world)
-
42General structure of Java programs
- Optional declaration of a package name
- Optional (needed if you want to use classes that
dont belong to java.lang) import statements - Definition of as many classes as you need
- Definition of a class with a main method as the
programs starting point - Note In general, each class should be in a
separate file!
43Example
- package test // class belongs to the package
test - import java.util. // use the classes from
java.util - public class Test // class name
- // variables
- // constructors
- // methods incl. public static void
doSomething() -
- package test
- public class RunTest
- public static void main(String args)
- System.out.println(Hello world)
- Test.doSomething()
-
File Test.java
File RunTest.java
44Compiling and running a Java application From
the command line
- From the command line (MS DOS window or Unix
shell) compile the program - javac MyProgram.java
- This generates the file MyProgram.class. Then run
it - java MyProgram optional command line
arguments
45Language basics Statements
- Instructions, expressions, declarations, method
calls, etc. are finished by a semicolon. Ex. - int i
- int j 1
- String s This is a string."
- java.lang.System.out.println(s)
- // or just System.out.println(s)
46Language basics Data types
- There are two kinds of data types
- Simple / primitive data types
- User-defined types
- Classes defined in the JDK (see
http//java.sun.com/j2se/1.5.0/docs/api/) - Your own classes
- Instances of a data type are
- Simple data types values (e.g., 3, 4.5, a)
- Classes objects
47Simple data types
- Integers of various lengths / value ranges byte,
short, int, long - Floating point numbers of various lengths / value
ranges float, double - Truth values boolean
- Single characters (Unicode) char
- Strings of characters are instances of the String
class (a kind of hybrid between a built-in type
and a class, see later in the lecture) - For each primitive type, there is a wrapper class
(e.g., Integer, Float) that encapsulates values
of these variables, and that allows the
programmer to perform class operations on them - see http//java.sun.com/j2se/1.5.0/docs/api/
48Arrays
- Arrays are lists, matrices, etc. of elements of a
given type - This type can be simple e.g., int
myIntegerList - The type can also be a class e.g., Test
myTestMatrix - Arrays are one-dimensional or multi-dimensional.
The number of square bracket pairs specifies the
dimension. - Java treats arrays as objects.
- ? They have to be created with new, ex.
- String myStringMatrix new String23
- creates a 2-dimensional String array of size 2
3 - Note The first element has the index number 0!
- ? In the example, you can address
- myStringMatrix00,
- but you will get an ArrayIndexOutOfBoundsException
if you try to address myStringMatrix20
(etc.)
49Accessing arrays setting and getting values
- Setting values
- Ex. 1 an array defined as
- int MyIntegerList new int5 initialise by
- for (int i 0 i lt MyIntegerList.length i)
- MyIntegerListi i
-
- Ex. 2 and 3 Declaration and definition/initialisa
tion in one statement - String info1 "abc", "def", "ghi"
- String info2 info1
- Getting values
- String firstWord info22
50Control structures sequence
- A sequence is created by ordering statements,
separated by semicolons. Example - int i
- int j 1
- String s This is a string."
- System.out.println(s)
51Control structures decision (1)
- if ( condition )
- // do this if the condition is true
- instruction(s)
-
- else // note the else part is optional
- instruction(s)
-
- Note In these slides,italics in code notation
are used to denote replace this by a specific
condition, instruction, etc.
52Control structures decision (2)
- A shorthand notation that is useful if the
conditions are that a variable of type byte,
char, short, int or long has certain values - switch (variable)
- case val1
- instruction(s)
- break // optional. If you omit break, all
the // following instructions are executed too - case val2
- instruction(s)
- break // optional
- case valn
- instruction(s)
- break // optional
- default
- instruction(s)
53Control structures loops
- while ( condition )
- instruction(s)
-
- do
- instruction(s)
- while ( condition )
- for (initial test increment)
- instruction(s)
54Reserved words
- abstract, boolean, break, byte, byvalue, case,
cast, catch,char, cast, const, continue, default,
do, double, else, extends, false, final, finally,
float, for, future, generic, goto, if,
implements, import, inner, instanceof, int,
interface, long, native, new, null, operator,
outer, package, private, protected, public, rest,
return, short, static, super, switch,
synchronized, this, throw, throws, transient,
true, try, var, void, volatile, while
55Classes
- Declaration of a class
- keyword class, followed by the class name
- A block that contains the variables (attributes),
constructors, and methods belonging to the class - ex.
- class Person // remember in file Person.java
- // variables
- private String lastName
- private String firstName
- private int age
56Class example (contd. 1)
- // constructor
- public Person(String n, String v, int a)
- lastName n
- firstName v
- age a
-
- // methods for setting attribute values
- public void setName(String n, String v)
- lastName n
- firstName v
-
- public void setAge(int a)
- age a
57Class example (contd. 2)
- // methods for querying the attributes values
- public String getLastName()
- return lastName
-
- public String getFirstName()
- return firstName
-
- public int getAge()
- return age
-
- // other methods (just a dummy example!)
- public void doSomethingInteresting (int x, String
s) - instructions
-
- // end class Person
58Visibility of object features (attributes and
methods) in Java
- Visibility which other objects / which other
code can access and (for attributes) modify
values? - private only visible to the class itself
- public visible to everyone
- protected visible to the class and all
subclasses - Unspecified or omitted visible to all classes in
the same package
59Instantiating a class / creating an object using
a class / sending messages to an object
- You can instantiate a class by invoking the new
operator with one of the constructors of the
class - Person p new Person("Meier", "Peter", 25)
- You can use the functionality of that class by
sending messages to its instances / to objects
you have created. Messages are invocations of the
methods of the class - String s p.getName()
60Inheritance
- class SubClass extends SuperClass //...
- All classes in Java are part of one hierarchy.
The top class is Object.
61... just to finish off this lecture in a really
geeky way ...
- Welcome
- to an exciting journey!