Sdart AI software developement tutorial
Upcoming SlideShare
Loading in...5
×
 

Sdart AI software developement tutorial

on

  • 875 views

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 ...

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.

Statistics

Views

Total Views
875
Views on SlideShare
861
Embed Views
14

Actions

Likes
0
Downloads
2
Comments
0

3 Embeds 14

http://www.techgig.com 9
http://www.sdart.co.uk 4
http://sdart.co.uk 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sdart AI software developement tutorial Sdart AI software developement tutorial Presentation Transcript

  • SETN  2010  -­‐  TUTORIAL   The  soware  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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Introduc:on  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Project  success   Budget   Success   Quality   Time  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   Research  oriented  soware  § 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  
  • SETN  2010  -­‐  TUTORIAL   Product  oriented  soware  § 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  
  • SETN  2010  -­‐  TUTORIAL   AI  &  soware  in  projects   Struggle   AI    So4ware   AI    So4ware   Proper  management  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Soware  project  management  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Soware  development  schema   Planning   Deployment  &   Analysis   manitenance   Implementa:on   Design   &  coding  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   SEMMA   Search   Explore   Modify   Model   Assess  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Risk  strategies  § Avoidance  § RetenEon  § Sharing  § ReducEon    www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   Soware  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  
  • SETN  2010  -­‐  TUTORIAL   Soware  quality  These  factors  could  be  divided  into  2  groups  relaEng  to:  • users  • developers   Soware =  binaries +  code +  documenta:on  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   Soware  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  
  • SETN  2010  -­‐  TUTORIAL   Soware  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  
  • SETN  2010  -­‐  TUTORIAL   Soware  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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   M&LC–  staged  delivery   Requirements Design Implementation Verification Maintenancewww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   M&LC  -­‐  spiral     Spiral  model  –  Boehm  1988  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   M&LC  –  staged  delivery   Conception Analysis Desing Stage 1 Stage 2 Stage nwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   M&LC  –  design  to  schedule   Conception Analysis Desing Stage 1 Software Stage 2 release Time? Costs? Stage nwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Soware  design  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Version  controlling  –  local  systems  § Revision  Control  System  § Source  Conde  Control  System  § MKS  Implementer  § History  Explorer   PC Repwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   Version  controlling  -­‐  distributed  § DCVS  (Distributed  CVS)  § Monotone   PC Rep§ GNU  arch  § PlasEc  SCM   PC Rep§ BitKeeper  § TeamWare   PC Repwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Suppor:ng  tools  &  technologies   1 •  Compilation 2 •  Binaries packaging 3 •  Testing 4 •  Deployment 5 •  Documentingwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Automated  tes:ng  -­‐  make  An  example  of  makefile  taken  from  QT  library.  PNGMAK=scripts/makefile.linuxall: cd zlib; ./configure; make cd libpng; make -f $(PNGMAK)clean: -cd zlib; make clean -cd libpng; make -f $(PNGMAK) cleanwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Automated  tes:ng  -­‐  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>www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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 vsTest ABCD Test A Test B Test C Test Dwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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 testsperceive   the   applicaEon   as   get borreda   black-­‐box   and   test   it   from   Speed of Reliability testing of teststhe  user’s  perspecEve.   www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Bug  tracking  § Bugzilla  § Flyspray  § ManEs  § Trac  § Redmine  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   Bug  tracking   Design and implementation Ideas Testing Bugs Deployment Bugs and requests Usage Buga and requestswww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   AI  implementa:on  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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) printwww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Desktop  applica:ons  § C/C++  § Java  § C#  § Python  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Mobile  applica:ons  § Java  ME  § C++  § ObjecEve-­‐C  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Computer  languages   …   C/C++   (C)Lisp   Matlab   Clips   Scilab   Prolog   RIA   Java   Ruby   Python   Others   PHP   Scientific perspective Programming perspectivewww. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   More  important  part  of  AI   soware   An   Knowledge   Intelligent   Models   Rules   Mechanism   Graphs  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • SETN  2010  -­‐  TUTORIAL   Hybrid  soware  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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Programming  libraries  –  C#  § Infer.NET  hnp://research.microso4.com/en-­‐us/um/cambridge/projects/infernet/  § AForge.NET  hnp://code.google.com/p/aforge/  § C#  Neural  Network  Library  hnp://franck.fleurey.free.fr/NeuralNetwork/  § NeuronDotNet  hnp://neurondotnet.freehosEa.com/  § NeuroBox  Neural  Network  Library  hnp://www.cdrnet.net/projects/neuro/  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects  
  • 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  
  • 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  
  • 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  
  • 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  
  • 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  
  • SETN  2010  -­‐  TUTORIAL   Thank  you.  Any  ques:ons?  www. .co.uk The  so4ware  management  and  engineering  in     the  AI-­‐oriented  projects