The software management and engineering in the AI-oriented projects tutorial

108
SETN 2010 - TUTORIAL The software management and engineering in the AI-oriented projects www. .co.uk The software management and engineering in the AI-oriented projects Dr W Pietruszkiewicz SDART Ltd

Transcript of The software management and engineering in the AI-oriented projects tutorial

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

The software management and engineering in the AI-oriented projects

Dr W Pietruszkiewicz

SDART Ltd

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Plan of presentation

Introduction

Software project management

Software design

AI implementation

Examples of AI software

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Introduction

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Artificial Intelligence

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Project success

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Research oriented software

Time and budget aren’t usually fixed – it is

possible to extend the research

Resources are flexible

People mainly have the personal interests (fame,

dissertations, publications …)

Quality (functionality) is the main concern

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Product oriented software

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

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

AI & software in projects

Proper management

Struggle

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

This tutorialReasons to propose this tutorial:

•There exist the software projects without AI but I’m not

sure if there exist AI projects without the software

(embedded count too!) …

•The knowledge about the software management is

unpopular among AI researchers

•At SDART we deal with the AI-oriented software projects

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

This tutorial

•Will:• present a selection of the popular techniques and methods for software

development

• evaluate them from AI perspective

• propose what could be used

Will not:• say what have to be used

• be a guide ready to be applied step-by-step

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software project management

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

AI & soft – PM nightmare

In the project management two types of projects

are the symbols of unpredictability:

Research projects

…. software projects

What could we do dealing with an AI-oriented

software projects? Professionally manage them!

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software development schema

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

DM management

Data mining management seems to be more

organised than AI

There are different models of DM organisation:

CRISP-DM

SEMMA

DMAIC/DMADV

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

CRISP-DM

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

SEMMA

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

DMAIC&DMADV

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Management model

Can’t we use any DM model to properly manage

the AI&software projects? Yes we could …. only if

the software does not constitute any significant

part of the project. Meanwhile …

AI projects require software to research

These projects require software to use AI

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Common risk sources

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Risk strategies

Avoidance

Retention

Sharing

Reduction

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software qualityThere are many software quality factors, among

them:

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software quality

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software qualityIf an application is a product users perceive only

its „front” parts:

•GUI

•Errors

•Documentation

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software metrics

Tom DeMarco said „You can’t control what you

can’t measure”

Software metrics measure some properties of a

software or its specification e.g. complexity,

quality, efficiency or size

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software estimation

Estimation problem

I think I’ve

forgotten

something, but

what was it???

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Methodology & Life cycle

Software methodology defines the structure,

plan and management of developed software

Methodology contains development philosophy

and tools, methods and models supporting the

process

Life cycle model defines the phases and activities

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC– staged delivery

Requirements

Design

Implementation

Verification

Maintenance

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC - spiral

Spiral model – Boehm 1988

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC – staged deliveryConception

Analysis

Desing

Stage 1

Stage 2

Stage n

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC – design to scheduleConception

Analysis

Desing

Stage 1

Stage 2

Stage n

Software release

Time? Costs?

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC - AgileThe Agile development is based on the iterative model

Initial planning

Planning

Requirements Analysis and design

Implementation

Deployment

TestingEvaluation

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC - XP

Extreme programming is an Agile implementation:

Programming in pairs

Extensive code review

Avoids the programming required in the future

Automated tasks

Nothing is fixed i.e. everything could be redone

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC - SCRUM

Project is being developed by Pigs & Chickens

Pig is committed to the project i.e. ScrumMaster,

Team, ProductOwner

Chicken is involved i.e.: Stakeholder, Manager

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC - SCRUM

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC – Unified Process

Is an iterative software development framework

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC – UP versions

Rational Unifed Process

Agile Unified Process

Open Unified Process

Enterprise Unified Process

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC– selectionThe factors that influences life cycle selection are:

Size of project

Understood requirements

Desired reliability

Allowed overheads

Progress visibility

Sophisticated management

Allowed corrections

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

M&LC - summary

Waterfall is still the most frequently used model by

the biggest software 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

software mentioned above

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Collaboration

Homogeneous research team Heterogeneous software team

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Project controlling

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Software design

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Architecture

Architecture is a high level planning for the

software that does not involve any functional

decisions

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

ViewsThe views are perspectives that are used to represent different aspect of

the system:

Code/module view

Concurrency/process/thread view

Data view

Development/structural view

Functional/logic view

Physical/deployment view

User action/feedback view

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

FrameworksSoftware architecture is defined by various frameworks

defining its necessary elements:

4+1

RM-ODP

DODAF

SOMF

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Frameworks - 4+1

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Design concepts

Abstraction & refinement – generalisation

Modularity

Hierarchy

Information & functionality enclosure

Structural partitioning – vertical & horizontal

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

UML

Unified Modeling Language:

Object oriented

Unified Booch, OOSE, OMT modelling methods

Currently in 2.2 version – the most of software

supports 2.0

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

UML Diagrams

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

UML Advantages

UML became an industry standard due to:

Visualisation

Documenting

Specifying

Constructing

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

UML ToolsPapyrus – http://www.papyrusuml.org

Poseidon for UML - http://www.gentleware.com

Visual Paradigm for UML - http://www.visual-

paradigm.com

Umbrello UML Modeller – http://uml.sourceforge.net

StarUML – http://staruml.sourceforge.net

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Supporting tools

Let’s take a look at the supporting tools

If something could be done simpler and at least

with the same quality

Use them and forget the time-consuming

repetive tasks and focus on the difficult ones

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

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 …

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Version controllingVersion controlling allows the development team to manage

different versions of software. 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

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Version controlling – local systems

Revision Control System

Source Conde Control System

MKS Implementer

History Explorer

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Version controlling - distributed

DCVS (Distributed CVS)

Monotone

GNU arch

Plastic SCM

BitKeeper

TeamWare

PC Rep

PC Rep

PC Rep

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Version controlling – client/server

CVS

SVN

Codendi

ClearCase

Visual SourceSafe

Autodesk Valut

Client

Client

Client

Server Rep

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Supporting tools & technologies

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated builds - advantagesEfficiency increase

Development process simplification

Increased software quality

Reduced costs

False version removal

Reduction of the development team or task relocation

Project archiving

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated buildsThe automated build tools include:

make

Maven

Ant

MSBuild

Cmake

and many others

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated testing - make

An example of makefile taken from QT library.

PNGMAK=scripts/makefile.linux

all:cd zlib; ./configure; makecd libpng; make -f $(PNGMAK)

clean:-cd zlib; make clean-cd libpng; make -f $(PNGMAK) clean

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated testing - 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>

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated testing - Maven<project xmlns="http://maven.apache.org/POM/4.0.0" mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated testing - unit

Test ATest ABCD

vs

Test B Test C Test D

Data

Data Data Data Data

The most popular unit testing tool is xUnit available in many versions for all popular languages

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Automated testing - system

Automated GUI tests

perceive the application as

a black-box and test it from

the user’s perspective.

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Code documenting

Automatic API documentation tools:

JavaDoc

DoxyGen

RoboDoc

Manual documentation

Automatic documentation

Code Doc CodeDoc

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Bug trackingIssue/Bug Tracking Systems usage leads to:

Better quality control

Gaining users’ feedback

Better resource allocation

Increased users’ comfort

Better information flow

Feature request available

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Bug tracking – bug categories

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Bug tracking

Bugzilla

Flyspray

Mantis

Trac

Redmine

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Bug tracking

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

AI implementation

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Implementation

Transforms the design (plan) into the code

Problems:

Technology

Programming language

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Levels of programming languages

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

1st generation

The code lines are equal to the processor

instructions – one to one

Machine code

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

2nd generation

Symbolic representation

of processor’s

instructions

Assembler language

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

3rd generation

Instructions represent the basic operations

Oriented on programmer

Most popular generation

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

4th generation

Specialised languages oriented on advanced

operations

RAD tools are 4GL build over 3GL

Matlabdisp('Hello, world!')

SASdata _null_; put 'Hello, world!'; run;

Postscript(Hello, world!\n) print

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

5th generation

Represent not algorithms but desired outcome

Logical programming

Programming for non-programmers

Common Lisp(write-line "Hello, world!")

Prolog:- write('Hello, world!'),nl.

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Hybrid programming – embedding

Hybrid programming (embedding languages)

could be synergic but:

Increases the technological risk

Increases the demand on skilled developers

Blurs the project

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

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)

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Programming paradigms

The most popular paradigms are:

Agent-oriented

Declarative

Event-driven

Imperative

Metaprogramming

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Desktop applications

C/C++

Java

C#

Python

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Web services – server sideJava EE

PHP

Python

Ruby

Perl

.NET

CGI (every language that could be run by server)

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Web services - RIAsFlash

AJAX

Java SE

JavaFX

FLEX

OpenLaszlo

Silverlight

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Mobile applications

Java ME

C++

Objective-C

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Languages popularity

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Characteristics - domain

Specialised – good at something but below

average on other things

General purpose – no specific domain and a

compromise on all tasks

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Characteristics - speed

Compiled faster

Interpreted slower

But:

Compiled start-up slower

Interpreted start-up faster (write-run-test cycle)

JIT compilers for interpreted languages

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Characteristics - portability

Software could be portable on two levels:

Source code

Binary code

Portability does not relate only to the programming

language but also to used libraries

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Characteristics - prototyping

Ability to verify the assumption:

Dynamic language

Simple syntax

Efficiency isn’t a main concern

Checks if the idea works

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Characteristics – target platform

Target platform:

PC

Mobile

Web

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Computer languages

Scientific perspective Programming perspective

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Why use a specialised languages

Popular in the research community

Specialized languages

Many libraries/toolkits and examples are

available

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Why not use them

Specialised not universal

High price

Simple or no GUI

No networking

Research not production languges

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Important programming features

Dynamic languages:

Do not care about types of data

Focus on the algorithms

But reject a full data control

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Important programming features

Prototyping:

Checks algorithms

Easily visualise data or make GUI

Speed is measured as the time of coding not

running

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Important programming features

Scientific libraries:

How often do we construct new algorithms

(Charlie Eppes Syndrome – NUMB3RS)?

The application is more like a large panel building

than brick building – applies to the AI problems as

well as to the „ordinary” soft

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Important programming features

Visual design (graphical programming):

GUI could be constructed using components

Link the components visually

Evaluate application faster

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

More important part of AI software

KnowledgeModelsRules

Graphs

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Hybrid software development

Research Development

Ide

a

Pro

duc

t

Replanning& redesign

Technology X

Technology X Technology Y??

???

??

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Programming libraries – C/C++MLC++ http://www.sgi.com/tech/mlc/

FANN http://leenissen.dk/fann/

Waffles http://waffles.sourceforge.net/

OpenCV ML

http://opencv.willowgarage.com/documentation/cpp/ml._mach

ine_learning.html

dlib C++ http://dlib.net/

VFML http://www.cs.washington.edu/dm/vfml/

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Programming libraries – Java

Java-ML http://java-ml.sourceforge.net/

Weka Engine

http://www.cs.waikato.ac.nz/ml/weka/

MLJ http://sourceforge.net/projects/mldev/

MALLET http://mallet.cs.umass.edu/

LIBSVM http://www.csie.ntu.edu.tw/~cjlin/libsvm/

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Programming libraries – C#Infer.NET http://research.microsoft.com/en-us/um/cambridge/

projects/infernet/

AForge.NET http://code.google.com/p/aforge/

C# Neural Network Library

http://franck.fleurey.free.fr/NeuralNetwork/

NeuronDotNet http://neurondotnet.freehostia.com/

NeuroBox Neural Network Library

http://www.cdrnet.net/projects/neuro/

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Programming libraries – Python

Orange engine http://www.ailab.si/orange/

PyML http://pyml.sourceforge.net/

MDP http://mdp-toolkit.sourceforge.net/

PyBrain http://www.pybrain.org/

LIBSVM http://www.csie.ntu.edu.tw/~cjlin/libsvm/

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Programming libraries – PHP

FANN PHP Extension

http://fann.sourceforge.net/fann.html

Tremani Neural Network http://www.tremani.nl/

open-source/neural-network/

ANN http://ann.thwien.de/index.php/Main_Page

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Example I – Java

A simple data mining task

Uses Java-ML library

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Example II – Python

Adaptive filtering algorithm

Use as a web service (server part)

Use mod_python on Apache

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Example III – Flex

Particle Swarm Optimisation example

RIA application

Uses a standard Flex without any additional

libraries

SETN 2010 - TUTORIAL

The software management and engineering in the AI-oriented projects

www. .co.uk

Thank you. Any questions?Get in touch: www.sdart.co.uk