SDART presented a tutorial about Software Management Engineering in AI-based projects. The tutorial's aim is to familiarise participants with the problems concerning AI-based software project management.
1. SETN
2010
-‐
TUTORIAL
The
so'ware
management
and
engineering
in
the
AI-‐oriented
projects
www.SDART.co.uk
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
2. SETN
2010
-‐
TUTORIAL
Plan
of
presenta:on
§ IntroducEon
§ So4ware
project
management
§ So4ware
design
§ AI
implementaEon
§ Examples
of
AI
so4ware
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
3. SETN
2010
-‐
TUTORIAL
Introduc:on
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
4. SETN
2010
-‐
TUTORIAL
Ar:ficial
Intelligence
From
the
so4ware
perspecEve:
§ Ar:ficial
intelligence
=
research =
high
risk
Therefore
dealing
with
AI
in
so4ware
project
we
must
be
very
careful
and
select
the
proper
methods,
technologies
and
tools.
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
5. SETN
2010
-‐
TUTORIAL
Project
success
Budget
Success
Quality
Time
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
6. SETN
2010
-‐
TUTORIAL
Research
oriented
so'ware
§ Time
and
budget
aren’t
usually
fixed
–
it
is
possible
to
extend
the
research
§ Resources
are
flexible
§ People
mainly
have
the
personal
interests
(fame,
dissertaEons,
publicaEons
…)
§ Quality
(funcEonality)
is
the
main
concern
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
7. SETN
2010
-‐
TUTORIAL
Product
oriented
so'ware
§ Time
and
budget
are
usually
fixed
§ Quality
is
adjusted
to
the
available
budget
and
schedule
§ People
mainly
have
the
business
interests
§ Resources
aren’t
flexible
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
8. SETN
2010
-‐
TUTORIAL
AI
&
so'ware
in
projects
Struggle
AI
So4ware
AI
So4ware
Proper
management
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
9. SETN
2010
-‐
TUTORIAL
This
tutorial
Reasons
to
propose
this
tutorial:
• There
exist
the
so4ware
projects
without
AI
but
I’m
not
sure
if
there
exist
AI
projects
without
the
so4ware
(embedded
count
too!)
…
• The
knowledge
about
the
so4ware
management
is
unpopular
among
AI
researchers
• At
SDART
we
deal
with
the
AI-‐oriented
so4ware
projects
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
10. SETN
2010
-‐
TUTORIAL
This
tutorial
• Will:
• present
a
selecEon
of
the
popular
techniques
and
methods
for
so4ware
development
• evaluate
them
from
AI
perspecEve
• propose
what
could
be
used
§ Will
not:
• say
what
have
to
be
used
• be
a
guide
ready
to
be
applied
step-‐by-‐step
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
11. SETN
2010
-‐
TUTORIAL
So'ware
project
management
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
12. SETN
2010
-‐
TUTORIAL
AI
&
so'
–
PM
nightmare
§ In
the
project
management
two
types
of
projects
are
the
symbols
of
unpredictability:
§ Research
projects
§ ….
so4ware
projects
§ What
could
we
do
dealing
with
an
AI-‐oriented
so4ware
projects?
Professionally
manage
them!
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
13. SETN
2010
-‐
TUTORIAL
So'ware
development
schema
Planning
Deployment
&
Analysis
manitenance
Implementa:on
Design
&
coding
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
14. SETN
2010
-‐
TUTORIAL
DM
management
§ Data
mining
management
seems
to
be
more
organised
than
AI
§ There
are
different
models
of
DM
organisaEon:
§ CRISP-‐DM
§ SEMMA
§ DMAIC/DMADV
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
15. SETN
2010
-‐
TUTORIAL
CRISP-‐DM
Business
understanding
Data
understanding
Data
preparaEon
Modeling
EvaluaEon
Deployment
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
16. SETN
2010
-‐
TUTORIAL
SEMMA
Search
Explore
Modify
Model
Assess
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
17. SETN
2010
-‐
TUTORIAL
DMAIC&DMADV
Define
Define
Measure
Measure
Analyse
Analyse
Improve
Design
Control
Verify
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
18. SETN
2010
-‐
TUTORIAL
Management
model
§ Can’t
we
use
any
DM
model
to
properly
manage
the
AI&so4ware
projects?
Yes
we
could
….
only
if
the
so4ware
does
not
consEtute
any
significant
part
of
the
project.
Meanwhile
…
§ AI
projects
require
so4ware
to
research
§ These
projects
require
so4ware
to
use
AI
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
19. SETN
2010
-‐
TUTORIAL
Common
risk
sources
• Unskilled
• Bugs
• Leave
team
• Increased
demands
People
Technology
Scope
&
Budget
Schedule
• Unavailable
• Too
• Too
low
opEmisEc
• Forgot
tasks
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
20. SETN
2010
-‐
TUTORIAL
Risk
strategies
§ Avoidance
§ RetenEon
§ Sharing
§ ReducEon
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
21. SETN
2010
-‐
TUTORIAL
So'ware
quality
There
are
many
so4ware
quality
factors,
among
Efficiency
them:
Usability
Security
Maintability
Quality
Consistency
Reliability
Testability
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
22. SETN
2010
-‐
TUTORIAL
So'ware
quality
These
factors
could
be
divided
into
2
groups
relaEng
to:
• users
• developers
So'ware =
binaries +
code +
documenta:on
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
23. SETN
2010
-‐
TUTORIAL
So'ware
quality
If
an
applicaEon
is
a
product
users
perceive
only
its
„front”
parts:
• GUI
• Errors
• DocumentaEon
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
24. SETN
2010
-‐
TUTORIAL
So'ware
metrics
§ Tom
DeMarco
said
„You
can’t
control
what
you
can’t
measure”
§ So4ware
metrics
measure
some
properEes
of
a
so4ware
or
its
specificaEon
e.g.
complexity,
quality,
efficiency
or
size
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
25. SETN
2010
-‐
TUTORIAL
So'ware
es:ma:on
EsEmaEon
Analogy
WBS
Size-‐based
Group
Parametric
CombinaEon
§ EsEmaEon
problem
Known
that
I
think
I’ve
unknown
• Easy
• Very
hard
forgonen
• Hard
Unknown
Known
that
unknow
something,
but
what
was
it???
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
26. SETN
2010
-‐
TUTORIAL
Methodology
&
Life
cycle
§ So4ware
methodology
defines
the
structure,
plan
and
management
of
developed
so4ware
§ Methodology
contains
development
philosophy
and
tools,
methods
and
models
supporEng
the
process
§ Life
cycle
model
defines
the
phases
and
acEviEes
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
27. SETN
2010
-‐
TUTORIAL
M&LC–
staged
delivery
Requirements
Design
Implementation
Verification
Maintenance
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
28. SETN
2010
-‐
TUTORIAL
M&LC
-‐
spiral
Spiral
model
–
Boehm
1988
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
29. SETN
2010
-‐
TUTORIAL
M&LC
–
staged
delivery
Conception
Analysis
Desing
Stage 1
Stage 2
Stage n
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
30. SETN
2010
-‐
TUTORIAL
M&LC
–
design
to
schedule
Conception
Analysis
Desing
Stage 1
Software
Stage 2
release
Time? Costs?
Stage n
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
31. SETN
2010
-‐
TUTORIAL
M&LC
-‐
Agile
The
Agile
development
is
based
on
the
iteraEve
model
Ini:al
planning
Requirements
Analysis
and
design
Planning
Implementa:on
Tes:ng
Evalua:on
Deployment
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
32. SETN
2010
-‐
TUTORIAL
M&LC
-‐
XP
Extreme
programming
is
an
Agile
implementaEon:
§ Programming
in
pairs
§ Extensive
code
review
§ Avoids
the
programming
required
in
the
future
§ Automated
tasks
§ Nothing
is
fixed
i.e.
everything
could
be
redone
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
33. SETN
2010
-‐
TUTORIAL
M&LC
-‐
SCRUM
§ Project
is
being
developed
by
Pigs
&
Chickens
§ Pig
is
commined
to
the
project
i.e.
ScrumMaster,
Team,
ProductOwner
§ Chicken
is
involved
i.e.:
Stakeholder,
Manager
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
34. SETN
2010
-‐
TUTORIAL
M&LC
-‐
SCRUM
The
essenEal
part
of
Scrum
are
the
meeEngs:
§ Daily
Scrum
–
short
Eme
(approx.
15
minutes),
daily
report,
all
people
take
part
§ Scrum
of
scrums
–
daily
meeEng,
a4er
daily
scrum,
limited
audience
§ Sprint
Planning
Mee:ng
–
begins
each
sprint
cycle
&
Retrospec:ve –
end
each
sprint
cycle
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
35. SETN
2010
-‐
TUTORIAL
M&LC
–
Unified
Process
§ Is
an
iteraEve
so4ware
development
framework
IncepEon
ElaboraEon
ConstrucEon
TransiEon
Architecture
IteraEve
centric
Use
Case
Risk
focused
Driven
UP
ObjecEves
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
36. SETN
2010
-‐
TUTORIAL
M&LC
–
UP
versions
Use
components
§ RaEonal
Unifed
Process
Model
visually
§ Agile
Unified
Process
Manage
requirements
§ Open
Unified
Process
RUP
Six
best
pracEces
Verify
quality
§ Enterprise
Unified
Process
Develop
iteraEvely
Control
changes
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
37. SETN
2010
-‐
TUTORIAL
M&LC–
selec:on
The
factors
that
influences
life
cycle
selecEon
are:
§ Size
of
project
§ Understood
requirements
§ Desired
reliability
§ Allowed
overheads
§ Progress
visibility
§ SophisEcated
management
§ Allowed
correcEons
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
38. SETN
2010
-‐
TUTORIAL
M&LC
-‐
summary
§ Waterfall
is
sEll
the
most
frequently
used
model
by
the
biggest
so4ware
companies
§ But
they
do
it
preparing
„yet
another
version
of
X”
§ AI
projects
are
usually
new
for
you
as
well
as
for
everyone
else,
so
do
not
expect
it
to
be
as
easy
as
so4ware
menEoned
above
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
39. SETN
2010
-‐
TUTORIAL
Collabora:on
Member
Member
Member
Leader
Member
Member
Leader
Member
Member
Member
Homogeneous
research
team
Heterogeneous
so4ware
team
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
40. SETN
2010
-‐
TUTORIAL
Project
controlling
Project
controlling
requires
clear
definiEon
of
the
responsibiliEes:
§ Who,
what,
whom and
when
§ Needs
reports,
working
documents,
communicates,
standards,
plans
or
charts
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
41. SETN
2010
-‐
TUTORIAL
So'ware
design
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
42. SETN
2010
-‐
TUTORIAL
Architecture
§ Architecture
is
a
high
level
planning
for
the
so4ware
that
does
not
involve
any
funcEonal
decisions
Requriements
Architecture
Design
Code
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
43. SETN
2010
-‐
TUTORIAL
Views
The
views
are
perspecEves
that
are
used
to
represent
different
aspect
of
the
system:
§ Code/module
view
§ Concurrency/process/thread
view
§ Data
view
§ Development/structural
view
§ FuncEonal/logic
view
§ Physical/deployment
view
§ User
acEon/feedback
view
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
44. SETN
2010
-‐
TUTORIAL
Frameworks
So4ware
architecture
is
defined
by
various
frameworks
defining
its
necessary
elements:
§ 4+1
§ RM-‐ODP
§ DODAF
§ SOMF
§ …
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
45. SETN
2010
-‐
TUTORIAL
Frameworks
-‐
4+1
Process
view
Development
Logical
view
view
4+1
Scenarios
Physical
view
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
46. SETN
2010
-‐
TUTORIAL
Design
concepts
§ AbstracEon
&
refinement
–
generalisaEon
§ Modularity
§ Hierarchy
§ InformaEon
&
funcEonality
enclosure
§ Structural
parEEoning
–
verEcal
&
horizontal
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
47. SETN
2010
-‐
TUTORIAL
UML
Unified
Modeling
Language:
§ Object
oriented
§ Unified
Booch,
OOSE,
OMT
modelling
methods
§ Currently
in
2.2
version
–
the
most
of
so4ware
supports
2.0
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
48. SETN
2010
-‐
TUTORIAL
UML
Diagrams
UML
Structure
Behaviour
Composite
State
Class
Component
Structure
Package
Object
Deployment
InteracEon
Use
Case
AcEvity
Machine
Communica InteracEon
Sequence
Eon
overview
Timing
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
49. SETN
2010
-‐
TUTORIAL
UML
Advantages
UML
became
an
industry
standard
due
to:
§ VisualisaEon
§ DocumenEng
§ Specifying
§ ConstrucEng
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
50. SETN
2010
-‐
TUTORIAL
UML
Tools
§ Papyrus
–
hnp://www.papyrusuml.org
§ Poseidon
for
UML
-‐
hnp://www.gentleware.com
§ Visual
Paradigm
for
UML
-‐
hnp://www.visual-‐
paradigm.com
§ Umbrello
UML
Modeller
–
hnp://uml.sourceforge.net
§ StarUML
–
hnp://staruml.sourceforge.net
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
51. SETN
2010
-‐
TUTORIAL
Suppor:ng
tools
§ Let’s
take
a
look
at
the
supporEng
tools
§ If
something
could
be
done
simpler
and
at
least
with
the
same
quality
§ Use
them
and
forget
the
Eme-‐consuming
repeEve
tasks
and
focus
on
the
difficult
ones
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
52. SETN
2010
-‐
TUTORIAL
Version
controlling
§ How
to
avoid
the
mess
dealing
with
the
different
versions
of
files
in
projects?
§ The
source
code
is
constantly
changing
…
§ The
AI
files
too
…
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
53. SETN
2010
-‐
TUTORIAL
Version
controlling
Version
controlling
allows
the
development
team
to
manage
different
versions
of
so4ware.
They
keep
track
of
work
and
allow
the
team
to
look
at
the
project’s
past.
There
are
3
kinds
of
version
controlling
systems:
§ Local
§ Distributed
§ Client-‐server
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
54. SETN
2010
-‐
TUTORIAL
Version
controlling
–
local
systems
§ Revision
Control
System
§ Source
Conde
Control
System
§ MKS
Implementer
§ History
Explorer
PC Rep
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
55. SETN
2010
-‐
TUTORIAL
Version
controlling
-‐
distributed
§ DCVS
(Distributed
CVS)
§ Monotone
PC Rep
§ GNU
arch
§ PlasEc
SCM
PC Rep
§ BitKeeper
§ TeamWare
PC Rep
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
56. SETN
2010
-‐
TUTORIAL
Version
controlling
–
client/server
§ CVS
Client
§ SVN
§ Codendi
Server Rep Client
§ ClearCase
Client
§ Visual
SourceSafe
§ Autodesk
Valut
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
57. SETN
2010
-‐
TUTORIAL
Suppor:ng
tools
&
technologies
1 • Compilation
2 • Binaries packaging
3 • Testing
4 • Deployment
5 • Documenting
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
58. SETN
2010
-‐
TUTORIAL
Automated
builds
-‐
advantages
§ Efficiency
increase
§ Development
process
simplificaEon
§ Increased
so4ware
quality
§ Reduced
costs
§ False
version
removal
§ ReducEon
of
the
development
team
or
task
relocaEon
§ Project
archiving
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
59. SETN
2010
-‐
TUTORIAL
Automated
builds
The
automated
build
tools
include:
§ make
Scheduled
§ Maven
§ Ant
On-‐demand
Triggered
§ MSBuild
§ Cmake
Build
§ and
many
others
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
60. SETN
2010
-‐
TUTORIAL
Automated
tes:ng
-‐
make
An
example
of
makefile
taken
from
QT
library.
PNGMAK=scripts/makefile.linux
all:
cd zlib; ./configure; make
cd libpng; make -f $(PNGMAK)
clean:
-cd zlib; make clean
-cd libpng; make -f $(PNGMAK) clean
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
61. SETN
2010
-‐
TUTORIAL
Automated
tes:ng
-‐
Ant
<project name="MyProject" default="dist" basedir=".">
<description>simple example build file</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init” description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile” description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
</target>
<target name="clean” description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
63. SETN
2010
-‐
TUTORIAL
Automated
tes:ng
-‐
unit
Data The
most
popular
unit
tesEng
tool
is
xUnit
available
in
many
versions
for
all
popular
languages
Data Data Data Data
vs
Test ABCD Test A Test B Test C Test D
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
64. SETN
2010
-‐
TUTORIAL
Automated
tes:ng
-‐
system
A u t o m a t e d
G U I
t e s t s
Machnie
Scope of
does not
tests
perceive
the
applicaEon
as
get borred
a
black-‐box
and
test
it
from
Speed of Reliability
testing of tests
the
user’s
perspecEve.
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
65. SETN
2010
-‐
TUTORIAL
Code
documen:ng
§ AutomaEc
API
documentaEon
tools:
Doc
Code
Doc
Code
§ JavaDoc
§ DoxyGen
Manual
AutomaEc
documentaEon
documentaEon
§ RoboDoc
§ …
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
66. SETN
2010
-‐
TUTORIAL
Bug
tracking
Issue/Bug
Tracking
Systems
usage
leads
to:
§ Bener
quality
control
§ Gaining
users’
feedback
§ Bener
resource
allocaEon
§ Increased
users’
comfort
§ Bener
informaEon
flow
§ Feature
request
available
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
67. SETN
2010
-‐
TUTORIAL
Bug
tracking
–
bug
categories
CriEcal
High
Medium
Low
CosmeEc
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
68. SETN
2010
-‐
TUTORIAL
Bug
tracking
§ Bugzilla
§ Flyspray
§ ManEs
§ Trac
§ Redmine
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
69. SETN
2010
-‐
TUTORIAL
Bug
tracking
Design and implementation
Ideas
Testing
Bugs
Deployment
Bugs and requests
Usage
Buga and requests
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
70. SETN
2010
-‐
TUTORIAL
AI
implementa:on
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
71. SETN
2010
-‐
TUTORIAL
Implementa:on
§ Transforms
the
design
(plan)
into
the
code
§ Problems:
§ Technology
§ Programming
language
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
72. SETN
2010
-‐
TUTORIAL
Levels
of
programming
languages
Logical
programming
Levels
of
programming
languages
Specialised
programming
General
(high
level)
programming
Assembler
programming
Machine
programming
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
73. SETN
2010
-‐
TUTORIAL
1st
genera:on
§ The
code
lines
are
equal
to
the
processor
instrucEons
–
one
to
one
§ Machine
code
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
74. SETN
2010
-‐
TUTORIAL
2nd
genera:on
§ Symbolic
representaEon
of
processor’s
instrucEons
§ Assembler
language
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
75. SETN
2010
-‐
TUTORIAL
3rd
genera:on
§ InstrucEons
represent
the
basic
operaEons
§ Oriented
on
programmer
§ Most
popular
generaEon
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
76. SETN
2010
-‐
TUTORIAL
4th
genera:on
§ Specialised
languages
oriented
on
advanced
operaEons
§ RAD
tools
are
4GL
build
over
3GL
disp('Hello, world!') (Hello, world!n) print
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
77. SETN
2010
-‐
TUTORIAL
5th
genera:on
§ Represent
not
algorithms
but
desired
outcome
§ Logical
programming
§ Programming
for
non-‐programmers
Prolog
(write-line "Hello, world!") :- write('Hello, world!'),nl.
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
78. SETN
2010
-‐
TUTORIAL
Hybrid
programming
–
embedding
Hybrid
programming
(embedding
languages)
could
be
synergic
but:
§ Increases
the
technological
risk
§ Increases
the
demand
on
skilled
developers
§ Blurs
the
project
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
79. SETN
2010
-‐
TUTORIAL
Programming
paradigms
§ Paradigm
is
a
fundamental
style
of
computer
programming
and
defines
the
concept
of
programming
language
§ The
most
of
programming
languages
support
various
paradigms
(different
approaches
to
problem)
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
80. SETN
2010
-‐
TUTORIAL
Programming
paradigms
The
most
popular
paradigms
are:
§ Agent-‐oriented
§ DeclaraEve
§ Event-‐driven
§ ImperaEve
§ Metaprogramming
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
81. SETN
2010
-‐
TUTORIAL
Desktop
applica:ons
§ C/C++
§ Java
§ C#
§ Python
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
82. SETN
2010
-‐
TUTORIAL
Web
services
–
server
side
§ Java
EE
§ PHP
§ Python
§ Ruby
§ Perl
§ .NET
§ CGI
(every
language
that
could
be
run
by
server)
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
83. SETN
2010
-‐
TUTORIAL
Web
services
-‐
RIAs
§ Flash
§ AJAX
§ Java
SE
§ JavaFX
§ FLEX
§ OpenLaszlo
§ Silverlight
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
84. SETN
2010
-‐
TUTORIAL
Mobile
applica:ons
§ Java
ME
§ C++
§ ObjecEve-‐C
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
85. SETN
2010
-‐
TUTORIAL
Languages
popularity
Posi:on
Posi:on
Programming
Ra:ngs
Delta
Status
Apr
2010
Apr
2009
Language
Apr
2010
Apr
2009
1
2
C
18.058%
+2.59%
A
2
1
Java
18.051%
-‐1.29%
A
3
3
C++
9.707%
-‐1.03%
A
4
4
PHP
9.662%
-‐0.23%
A
5
5
(Visual)
Basic
6.392%
-‐2.70%
A
6
7
C#
4.435%
+0.38%
A
7
6
Python
4.205%
-‐1.88%
A
8
9
Perl
3.553%
+0.09%
A
9
11
Delphi
2.715%
+0.44%
A
10
8
JavaScript
2.469%
-‐1.21%
A
11
42
ObjecEve-‐C
2.288%
+2.15%
A
12
10
Ruby
2.221%
-‐0.35%
A
13
14
SAS
0.717%
-‐0.07%
A
14
12
PL/SQL
0.710%
-‐0.38%
A
15
-‐
Go
0.710%
+0.71%
A
16
15
Pascal
0.648%
-‐0.07%
B
17
17
ABAP
0.625%
-‐0.03%
B
18
20
MATLAB
0.616%
+0.13%
B
19
22
AcEonScript
0.545%
+0.09%
B
20
19
Lua
0.521%
+0.03%
B
hnp://www.Eobe.com/index.php/content/paperinfo/tpci/index.html
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
86. SETN
2010
-‐
TUTORIAL
Characteris:cs
-‐
domain
§ Specialised
–
good
at
something
but
below
average
on
other
things
§ General
purpose
–
no
specific
domain
and
a
compromise
on
all
tasks
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
87. SETN
2010
-‐
TUTORIAL
Characteris:cs
-‐
speed
§ Compiled
faster
§ Interpreted
slower
But:
§ Compiled
start-‐up
slower
§ Interpreted
start-‐up
faster
(write-‐run-‐test
cycle)
JIT
compilers
for
interpreted
languages
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
88. SETN
2010
-‐
TUTORIAL
Characteris:cs
-‐
portability
So4ware
could
be
portable
on
two
levels:
§ Source
code
§ Binary
code
Portability
does
not
relate
only
to
the
programming
language
but
also
to
used
libraries
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
89. SETN
2010
-‐
TUTORIAL
Characteris:cs
-‐
prototyping
Ability
to
verify
the
assumpEon:
§ Dynamic
language
§ Simple
syntax
§ Efficiency
isn’t
a
main
concern
§ Checks
if
the
idea
works
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
90. SETN
2010
-‐
TUTORIAL
Characteris:cs
–
target
pla`orm
Target
plazorm:
§ PC
§ Mobile
§ Web
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
91. SETN
2010
-‐
TUTORIAL
Computer
languages
…
C/C++
(C)Lisp
Matlab
Clips
Scilab
Prolog
RIA
Java
Ruby
Python
Others
PHP
Scientific perspective Programming perspective
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
92. SETN
2010
-‐
TUTORIAL
Why
use
a
specialised
languages
§ Popular
in
the
research
community
§ Specialized
languages
§ Many
libraries/toolkits
and
examples
are
available
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
93. SETN
2010
-‐
TUTORIAL
Why
not
use
them
§ Specialised
not
universal
§ High
price
§ Simple
or
no
GUI
§ No
networking
§ Research
not
producEon
languges
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
94. SETN
2010
-‐
TUTORIAL
Important
programming
features
Dynamic
languages:
§ Do
not
care
about
types
of
data
§ Focus
on
the
algorithms
§ But
reject
a
full
data
control
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
95. SETN
2010
-‐
TUTORIAL
Important
programming
features
Prototyping:
§ Checks
algorithms
§ Easily
visualise
data
or
make
GUI
§ Speed
is
measured
as
the
Eme
of
coding
not
running
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
96. SETN
2010
-‐
TUTORIAL
Important
programming
features
ScienEfic
libraries:
§ How
o4en
do
we
construct
new
algorithms
(Charlie
Eppes
Syndrome
–
NUMB3RS)?
§ The
applicaEon
is
more
like
a
large
panel
building
than
brick
building
–
applies
to
the
AI
problems
as
well
as
to
the
„ordinary”
so4
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
97. SETN
2010
-‐
TUTORIAL
Important
programming
features
Visual
design
(graphical
programming):
§ GUI
could
be
constructed
using
components
§ Link
the
components
visually
§ Evaluate
applicaEon
faster
Core
Core
GUI
GUI
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
98. SETN
2010
-‐
TUTORIAL
More
important
part
of
AI
so'ware
An
Knowledge
Intelligent
Models
Rules
Mechanism
Graphs
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
99. SETN
2010
-‐
TUTORIAL
Hybrid
so'ware
development
Research Development
???
Product
Technology X
Idea
Replanning
Technology X ?? & redesign
Technology Y ??
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
100. SETN
2010
-‐
TUTORIAL
Programming
libraries
–
C/C++
§ MLC++
hnp://www.sgi.com/tech/mlc/
§ FANN
hnp://leenissen.dk/fann/
§ Waffles
hnp://waffles.sourceforge.net/
§ OpenCV
ML
hnp://opencv.willowgarage.com/documentaEon/cpp/
ml._machine_learning.html
§ dlib
C++
hnp://dlib.net/
§ VFML
hnp://www.cs.washington.edu/dm/vfml/
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
101. SETN
2010
-‐
TUTORIAL
Programming
libraries
–
Java
§ Java-‐ML
hnp://java-‐ml.sourceforge.net/
§ Weka
Engine
hnp://www.cs.waikato.ac.nz/ml/
weka/
§ MLJ
hnp://sourceforge.net/projects/mldev/
§ MALLET
hnp://mallet.cs.umass.edu/
§ LIBSVM
hnp://www.csie.ntu.edu.tw/~cjlin/libsvm/
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
103. SETN
2010
-‐
TUTORIAL
Programming
libraries
–
Python
§ Orange
engine
hnp://www.ailab.si/orange/
§ PyML
hnp://pyml.sourceforge.net/
§ MDP
hnp://mdp-‐toolkit.sourceforge.net/
§ PyBrain
hnp://www.pybrain.org/
§ LIBSVM
hnp://www.csie.ntu.edu.tw/~cjlin/libsvm/
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
104. SETN
2010
-‐
TUTORIAL
Programming
libraries
–
PHP
§ FANN
PHP
Extension
hnp://
fann.sourceforge.net/fann.html
§ Tremani
Neural
Network
hnp://www.tremani.nl/
open-‐source/neural-‐network/
§ ANN
hnp://ann.thwien.de/index.php/Main_Page
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
105. SETN
2010
-‐
TUTORIAL
Example
I
–
Java
§ A
simple
data
mining
task
§ Uses
Java-‐ML
library
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
106. SETN
2010
-‐
TUTORIAL
Example
II
–
Python
§ AdapEve
filtering
algorithm
§ Use
as
a
web
service
(server
part)
§ Use
mod_python
on
Apache
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
107. SETN
2010
-‐
TUTORIAL
Example
III
–
Flex
§ ParEcle
Swarm
OpEmisaEon
example
§ RIA
applicaEon
§ Uses
a
standard
Flex
without
any
addiEonal
libraries
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects
108. SETN
2010
-‐
TUTORIAL
Thank
you.
Any
ques:ons?
www. .co.uk The
so4ware
management
and
engineering
in
the
AI-‐oriented
projects