09 2 software tools introduction to part ii · software tools introduction to part ii compsci e...

22
009 YEAR 20 732 Software Tools Introduction to Part II COMPSCI Introduction to Part II ealand Part II - Lecture 1 kland | New Ze versity of Auck The Univ 1

Upload: others

Post on 10-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

009

YEAR

20 7

32

Software ToolsIntroduction to Part II

CO

MP

SC

I Introduction to Part II

eala

nd Part II - Lecture 1

klan

d | N

ew Z

eve

rsity

of A

uck

The

Uni

v

1

Page 2: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Christof Lutteroth009 • Originally from Berlin, Germany

YEAR

20 7

32

g y y• My research interests: HCI, Software Engineering• Contact details:

l tt th@ kl d

CO

MP

SC

I [email protected] 373-7599 84478Office 303 - 494 (4th level CompSci building)

eala

nd

Office 303 494 (4 level CompSci building)

• If you have questions, come to my office

klan

d | N

ew Z

e y q , y• A good time to see me is directly after the lectures

vers

ity o

f Auc

kTh

e U

niv

2

Page 3: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Part II Timetable009 When What Where

YEAR

20 7

32

Monday 13-14 Lecture 279Tuesday 13-14 Lecture/Tutorial 279

CO

MP

SC

I Thursday 13-14 Lab GCL

At least twice Your project team You decide

eala

nd

At least twice every week

Your project team meeting

You decide

klan

d | N

ew Z

e

1st June 7pm Assignment 2 (25%)

ADB

vers

ity o

f Auc

k

TBA Exam (50%) TBA

The

Uni

v

33

Page 4: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

009

YEAR

20 7

32C

OM

PS

CI

Introduction to Part II

eala

nd

Introduction to Part II

klan

d | N

ew Z

eve

rsity

of A

uck

The

Uni

v

4

Page 5: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Software Tools009 • Humans are necessary for creative,

YEAR

20 7

32

yintelligent tasks

• Tools can support such tasksI d ti it ith f l

CO

MP

SC

I – Increase productivity with useful functionality

– Guide the developer (e g context help)

eala

nd

Guide the developer (e.g. context help)– Avoid defects

H f h hl

klan

d | N

ew Z

e • Humans are not necessary for highly repetitive, routine work

• Tools can automate such tasks

vers

ity o

f Auc

k • Tools can automate such tasks– Increase productivity; more time for

creative work

The

Uni

v

5– Avoid defects introduced by the human factor

Page 6: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Development Processes (Ex mpl : RUP)

009

(Example: RUP)

YEAR

20 7

32C

OM

PS

CI

eala

ndkl

and

| New

Ze

vers

ity o

f Auc

kTh

e U

niv

62006 Giles Lewis

Page 7: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Version Control Systems009

y

• Technology to manage changes that several YEAR

20 7

32

gy g gdevelopers do on a common repository

• Changes create new version of the changed files

CO

MP

SC

I

• Old versions are always accessibleDevelopers

eala

nd WorkingCopy Repository

Developers

klan

d | N

ew Z

e y p y

Version 5Working

vers

ity o

f Auc

k

Version 2Version 3

Version 4Copy

W ki

The

Uni

v

7Version 1Working

Copy

Page 8: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Compilers009

pclassclass X {

Source Code Token Stream

YEAR

20 7

32

Lexeryint

X {Parser

class X {// commentint y;

}

CO

MP

SC

I

; }

class X

}

eala

nd

0110010010 CheckerCode

Generator var

i t

y

klan

d | N

ew Z

e

Errors

intAbstractSyntaxTree

Target Code

vers

ity o

f Auc

k

• Lexer chops the source code into tokens

The

Uni

v

• Parser constructs the syntactic relations between the tokens (abstract syntax tree, AST) 8

Page 9: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Type Systems009

yp y

Type Checking: detect potential runtime errors in YEAR

20 7

32

yp g psource code

int m(String s) {int y = s + 1;

CO

MP

SC

I

m(y,3);return s;

}

eala

nd Type System: Formalize type checking by using rules

}

klan

d | N

ew Z

e yp y yp g y gthat describe correct programs

vers

ity o

f Auc

kTh

e U

niv

9

Page 10: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Learning Outcomes009

g

After the course you should be able to…YEAR

20 7

32

y• Apply some of the eXtreme Programming practices• Describe main concepts of version control systems

CO

MP

SC

I

m p f y m• Use Subversion to efficiently work in a team• Use ANTLR to create your own lexers and parsers

eala

nd

Use ANTLR to create your own lexers and parsers• Do simple type derivations using formal type systems• Write simple academic research papers

klan

d | N

ew Z

e Write simple academic research papers

vers

ity o

f Auc

kTh

e U

niv

10

Page 11: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

009

YEAR

20 7

32C

OM

PS

CI

Assignment 2

eala

nd

Assignment 2

klan

d | N

ew Z

eve

rsity

of A

uck

The

Uni

v

11

Page 12: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Assignment 2009

g

25% in total for one team research projectYEAR

20 7

32

p j• Teams of four• Choose a given topic or come up with your own

CO

MP

SC

I

g p m p y• Every project has a mentor

– Mentor is there to guide the project

eala

nd

Mentor is there to guide the project– Mentor has regular meetings with team– Team’s responsibility to ask mentor

klan

d | N

ew Z

e Team s responsibility to ask mentor• Submit individual report

– 5 pages IEEE style

vers

ity o

f Auc

k 5 pages IEEE style– Text, figures, bibliography– Will be graded by marker

The

Uni

v Will be graded by marker– 1st June Assignment Dropbox 12

Page 13: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Project Expectations009

j p

• The project is flexible and scalable YEAR

20 7

32

p jExpectations:– Work as a team

CO

MP

SC

I (you can work with other teams as well!)• Have a project group meeting every week

eala

nd

• If you are stuck, ask! (your teammates, mentor, other teams, lecturer)

klan

d | N

ew Z

e

• Come to the lectures/labs (you will learn what you need to do a good project)

20 h f d l t ( it t th )

vers

ity o

f Auc

k – 20 hours for development (commit to the repo)– 10 hours for report (IEEE style)

O l h j h b i

The

Uni

v – Only the project report has to be written individually (everything else can be teamwork) 13

Page 14: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Report Grading Schedule009

p g

Approx. 5 pages (including figures) IEEE styleYEAR

20 7

32

pp p g ( g g ) y1. Introduction:

Have you introduced the project and its aims?

CO

MP

SC

I

2. Related Work: Project background? Have you cited and described academic related work (≥4 citations)?

eala

nd

3. Requirements: What needed to be done? Why?4. Design: How did you design your solution? Why?

klan

d | N

ew Z

e

5. Implementation: How did you implement it? What did you contribute? How did the team work? Challenges?

vers

ity o

f Auc

k

6. Conclusion: Achievements? Conclusions? Lessons? Future/unfinished work?

The

Uni

v

14

Page 15: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

009

YEAR

20 7

32C

OM

PS

CI

Suggested Projects

eala

nd

Suggested Projects

klan

d | N

ew Z

eve

rsity

of A

uck

The

Uni

v

15

Page 16: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

PDStore Projects009

j• A database system developed here at Uni

C l f tYEAR

20 7

32

• Cool features:– Versioning

d/ d d

CO

MP

SC

I – Structured/unstructured data– Compression

eala

nd

– Merging• Comes with tools:

klan

d | N

ew Z

e

– Visual data editor PDEdit– Data access layer generator PDGen

vers

ity o

f Auc

k

• Group of Masters & PhD students working on it

The

Uni

v

16

Page 17: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

PDStore Projects009

j1. Configurable shapes for PDEdit (Ted)2 A t ti l t f PDEDit (T d)

YEAR

20 7

32

2. Automatic layout for PDEDit (Ted)3. Performance engineering (bottleneck analysis,

optimizations caching Btrees ) (Daniel)

CO

MP

SC

I optimizations, caching, Btrees…) (Daniel)4. Extraction of Wikipedia into PDStore (Lian)5 P t PDSt t P th (D )

eala

nd

5. Port PDStore to Python (Danver)6. Flexible object persistence in Python (Danver)7 SPARQL f PDSt (M k)

klan

d | N

ew Z

e 7. SPARQL for PDStore (Mark)

D i l ( d 011) D (db 072)

vers

ity o

f Auc

k Daniel (zden011), Danver (dbra072),Lian (llee058), Mark (gsun014), Ted (tyeu008)

The

Uni

v

17

Page 18: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Auckland Interface Model (AIM)

009

(AIM)• Cross-platform customization system for GUIs

YEAR

20 7

32

• Allows you to change a GUI while it is running• E.g. to make it easier, better, more personal

CO

MP

SC

I

Projects:1 Widget customization in AIM for Java

eala

nd

1. Widget customization in AIM for Java(using latest PDStore) (Clemens)

2 Layout editing in AIM for Flash (Ted)

klan

d | N

ew Z

e 2. Layout editing in AIM for Flash (Ted)3. AIM for C# (Clemens)4 AIM table widget (Ted)

vers

ity o

f Auc

k 4. AIM table widget (Ted)

Clemens (clemens zeidler@googlemail com)

The

Uni

v Clemens ([email protected]),Ted (tyeu008) 18

Page 19: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Haiku009 • Novel open-source operating system

YEAR

20 7

32

p p g y• Modular, coherent design• Friendly and active community

CO

MP

SC

I

y mm y• C++

eala

nd

Projects:1 PDStore for Haiku

klan

d | N

ew Z

e 1. PDStore for Haiku2. PDEdit for Haiku3 AIM for Haiku

vers

ity o

f Auc

k 3. AIM for Haiku4. Text view with C++ code completion (using CLANG)

The

Uni

v

Mentor: Clemens ([email protected]) 19

Page 20: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

009

YEAR

20 7

32C

OM

PS

CI

Summary

eala

nd

Summary

klan

d | N

ew Z

eve

rsity

of A

uck

The

Uni

v

20

Page 21: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Today’s summary009

y y

Part 2 will cover various types of tools and techniques:YEAR

20 7

32

yp q1. Development processes (eXtreme Programming)2. Version Control Systems (Subversion, git)

CO

MP

SC

I

y m ( , g )3. Compilers4. Type systems

eala

nd

4. Type systems5. Academic Writing (Assignment 2 report)

klan

d | N

ew Z

e

1. Form a team (max 4)2 Ch p j t t th

vers

ity o

f Auc

k 2. Choose a project together3. Attend the lab to discuss your project

with Christof (Thursday 1pm in GCL)!!!

The

Uni

v

21

( y p )

Page 22: 09 2 Software Tools Introduction to Part II · Software Tools Introduction to Part II COMPSCI e aland Part II - Lecture 1 k land | New Z v ersity of Auc The Uni 1. Christof Lutteroth

Quiz009

Q1. How can software tools help with repetitive routine

tasks?YEAR

20 7

32

tasks?2. How can software tools help with creative tasks?3. Name four of the five main topics covered in part 2.

CO

MP

SC

I

p p

eala

ndkl

and

| New

Ze

vers

ity o

f Auc

kTh

e U

niv

22