COMP220: SOFTWARE DEVELOPMENT TOOLS COMP285: COMPUTER AIDED SOFTWARE DEVELOPMENT

Similar documents
Verification and Validation

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

Tutorials. Tutorial every Friday at 11:30 AM in Toldo 204 * discuss the next lab assignment

CISC 124: Introduction To Computing Science II

Designed in collaboration with Infosys Limited

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

CS240: Programming in C

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

3D Graphics Programming Mira Costa High School - Class Syllabus,

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

CT 229. CT229 Lecture Notes. Labs. Tutorials. Lecture Notes. Programming II CT229. Objectives for CT229. IT Department NUI Galway

Compiling Techniques

Object Oriented Programming

COMP1917: Computing 1 1. Introduction

COMP1917: Computing 1 1. Introduction

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1

Unit 6 - Software Design and Development LESSON 1 INTRODUCTION

1. Introduction. Course Web Site. COMP1917: Computing 1. Textbook. Occupational Health and Safety (OHS)

Software Project. Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation

Computer Principles and Components 1

Chapter Twelve. Systems Design and Development

02161: Software Engineering I

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015

G52PGP. Lecture oo3 Java (A real object oriented language)

Compiler Construction

Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Computer Networks IT321

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

Name: 1) 2) 3) 4) 5) Learning Objectives (Milestones): 1. Create and use JUnit tests to debug a sample Java program.

Agile Test Automation ICAgile

Lab 1 Implementing a Simon Says Game

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Boot Camp. Dave Eckhardt Bruce Maggs

Software Architecture and Engineering Introduction Peter Müller

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Outline EXPERIENCE WITH TWO OOP LANGUAGES IN ONE COURSE. HISTORY Methodology and learning design of the course Experience from classes

CMSC 341. Shawn Lupoli (substituting for Nilanjan Banerjee) UMBC CMSC 341 Intro 1

CS 288: Statistical NLP Assignment 1: Language Modeling

Course Wrap-up. CSC207 Fall 2015

Introduction to Computation and Problem Solving

N/A. Yes. Students are expected to review and understand all areas of the course outline.

CS/SE 153 Concepts of Compiler Design

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

Module tutor Credit value 10 Module type New course Notional learning hours

Procedural Programming

Welcome to MCS 275. Course Content Prerequisites & Expectations. Scripting in Python from OOP to LAMP example: Factorization in Primes

Systems Programming Advanced Software Development

Week 1 Exercises. All cs121 exercise and homework programs must in the default package and use the class names as given.

COMP229. Joanne Filotti

Announcements. 1. Forms to return today after class:

Data Network Protocol Analysis & Simulation

Curriculum Map Grade(s): Subject: AP Computer Science

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

CMPE 152 Compiler Design

Lab 1 Implementing a Simon Says Game

Agenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java

Course Name: Computer Graphics - 2 Course Code: IT332

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering

CS/SE 153 Concepts of Compiler Design

CSE 333 Lecture 1 - Systems programming

Analysis of the Test Driven Development by Example

CMPE 152 Compiler Design

COMP 3002: Compiler Construction. Pat Morin School of Computer Science

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

Technology Background Development environment, Skeleton and Libraries

Programming. Syntax and Semantics

Addition about Prototypes

Introduction to Programming System Design CSCI 455x (4 Units)

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad INFORMATION TECHNOLOGY COURSE DESCRIPTION FORM

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

Industrial control languages: Forth vs. IEC N.J. Nelson

Lecture 15 Software Testing

LIS 2680: Database Design and Applications

CS121/IS223. Object Reference Variables. Dr Olly Gotel

Qualification Specification for the Knowledge Modules that form part of the BCS Level 4 Software Developer Apprenticeship

DISTRIBUTED SYSTEMS. Instructor: Prasun Dewan (FB 150,

Agile Tester Foundation E-learning Course Outline

CMPE 152 Compiler Design

OHJ-306x: Software Testing Introduction to the Course Project Part 1: General Information and Project phases 1 & 2: Unit testing

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

COURSE BROCHURE. ITIL - Intermediate Service Transition. Training & Certification

Cleveland State University

Data Structures and Algorithms

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Real-Time Systems: An Introduction

Course introduction. Advanced Compiler Construction Michel Schinz

N/A. Yes. Students are expected to review and understand all areas of the course outline.

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost

Grande Prairie Regional College

User-Centered Development

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

ETS110: Internet Protocol Routing Lab Assignment

Creating and Running Your First C# Program

Software Development Tools. COMP220/COMP285 Sebastian Coope Eclipse and JUnit: Creating and running a JUnit test case

EEE-425 Programming Languages (2013) 1

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

Transcription:

COMP220: SOFTWARE DEVELOPMENT TOOLS COMP285: COMPUTER AIDED SOFTWARE DEVELOPMENT Sebastian Coope coopes@liverpool.ac.uk www.csc.liv.ac.uk/~coopes/comp220/ www.csc.liv.ac.uk/~coopes/comp285/ COMP 285/220 University of Liverpool slide 1

Delivery Lectures - 3 Hours/week Tutorials - 1 Hour week slide 2

Assessments COMP220-80% written examination - 20% continuous assessment: - Class Test (1 hour during a lecture) - Lab Test (2 hours: one lab session + 1 additional hour), COMP285-50% Lab Test (same as for COMP220) - 50% Practical Assignment (only for COMP285) slide 3

Module aims To explore software development tools and new methodologies of Software Development To examine the techniques for implementing some Extreme Programming practices such as Automated Testing, Continuous Integration and Test Driven Programming To provide an insight into Eclipse (Integrated Development Environment) slide 4

Contents Methodology of Extreme Programming - (brief, methodological part) Software testing theory and practice Introduction to software tools Source code control Java Development with Eclipse Ant (the main tool considered in this course) Junit (this is the main, technical part of the course) slide 5

Recommended texts Java Development with Ant E. Hatcher & S.Loughran. Manning Publications, 2003 (ISBN:1-930110-58-8) THE MAIN BOOK Ant in Action, Second Edition of Java Development with Ant Steve Loughran and Erik Hatcher July, 2007 (ISBN: 1-932394-80-X) Eclipse in Action, A Guide for Java Developers, D.Gallardo, E.Burnette, & R.McGovern. Manning Publications, 2003 (ISBN:1-930110-96-0) JUnit in Action, Second edition(!! For New version of JUnit (4); Old version of JUnit 3 will not be considered. ), P. Tahchiev, F. Leme, V. Massol, G. Gregory, Manning Publications, 2011. (ISBN: 9781935182023) slide 6

Extra reading Java Tools for Extreme Programming R.Hightower & N.Lesiecki. Wiley, 2002 (ISBN:0-471-20708-X) Professional Java Tools for Extreme Programming R.Hightower et al. Wiley, 2004 (ISBN:0-7645-5617-7) Test Driven Development K.Beck. Addison-Wesley, 2003 (ISBN:0-321- 14653-0) slide 7

Lab sessions Labs will be devoted to simple exercises helping to really understand how the software development tools (discussed on lectures) work in practice Inseparable from the lectures The best and easiest way to prepare to the Exam and Class Test (for COMP220) during the semester Without doing labs well you will be unable to do and pass Lab Test (for both COMP220 and COMP285). COMP285 will have additional Practical Assignment and no exam. Thus, labs are invaluable for you slide 8

Websites www.csc.liv.ac.uk/~coopes/comp220/ www.csc.liv.ac.uk/~coopes/comp285/ Contain: General course information and useful links Course slides Lab sessions description Practical assignment for COMP285 slide 9

Schedule Week 1 - Introduction to Software Tools and Agile and test driven development Week 2 - Introduction to Eclipse and Week 3 - Testing theory and practise Week 4 - Eclipse and JUnit slide 10

Schedule Week 5, 6, 7 and 8 - Ant and Junit Week 9 - Issues tracking Week 10 - Revision slide 11

Lecture 1 Introduction to CASE tools Why bother? What types? How they work in practise? slide 12

Computer Aided Software Engineering Well what would be Software Engineering without computers? slide 13

Early days Software Engineering Stone Age style - All programs verified by hand slide 14

CASE definition The use of tools (usually built from software) which make it easier to build high quality software S Coope CASE tools can be - General purpose, example build/test tools (language neutral) - Specialist e.g. Load testing/dos tool like Low Orbit Ion Cannon - Built yourself (test harness) slide 15

Are these tools High Level Language Compilers/Interpreters Object Relational Management software - Example Hibernate Profilers Debuggers Code analysers slide 16

Why tools? Would you hire a building company who used? - No power tools (productivity cost) - No measuring instruments (accuracy) - No spirit levels or electrical testing tools (quality) - Proper scaffolding/access control (safety) With software, these issues also matter - Productivity, accuracy, quality, safety slide 17

Why use CASE? Used properly - You will become a better software engineer - You will work better with others - Your code will be tested more - You will do things, you wouldn t normally bother to do (e.g. re-factoring code) - Your life as a software engineering will be slightly less stressful slide 18

Think of CASE as a series of developments Machine language (no real CASE) Seb 1983 Apple II slide 19

Assembly language Simple case tool called an assembler translates to machine code, 1 to 1 relation to machine code No type check, complex data types, all abstraction in programmers head slide 20

High Level Language Compilers Translate from abstract (non machine language) to machine language of intermediary code Abstractions are constructed as part of the language, e.g. int, long, String, Person, BankManager Code is capable of - Being structured - Being tested as part of compilation slide 21

Interpreters Programs which run programs, like JVM for Java (Forth, Basic) Interpreters can be - Source code based (execute the code directly) e.g. Java script interpreters - Fast turnaround time, no-precompile check, only checks running code - Intermediary code based - e.g. Java byte code, slower turnaround, supports pre-compile check slide 22

Interpreter factors Program can be debugged by facilities in JVM JVM can run time check code for - Errors (array out of bounds) - Type conversion issues Garbage collection (contentious, see ios debate) JVM can be ported to different hardware, making object code portable slide 23

Intermediary code systems Allows for multiple languages to easily integrate, parts of code can be written in language of choice Good or bad thing? slide 24

CASE in perspective slide 25

Processes with/without case No CASE - Tester sends bug report to programmer via email, programmer looks at code, fixes code, sends new source back to tester Problems - No proper record of bug and fix - Visibility of process limited (team leader manager) - Easy for bugs to get lost - Hard to but priority on bug slide 26

Bug fix with CASE Tested finds bug and records on bug management tool (example Bugzilla) and assigns bug to programmer Bug management tool sends email to programmer Programmer logs into bug management tool and accepts/rejects bug and adds comment Programmer updates latest source code from source code control system Programmer fixes/tests bug using debugger Programmer re-commits code back to source code control with comment, which links back to bug id Programmer adds comment from source code control log and comment about how to test bug to bug control system Team leader downloads all source code and makes new build slide 27

Bug fixing with CASE support Looks a lot more work, but most of the CASE processes take v.little time Allows bugs to be properly assigned to staff Gives a clear view of the process to the management of the project One can look back and find out which bugs were fixed on which versions of files Makes sure that bug reports are filled in correctly slide 28

Summary Using CASE can make you - Quicker - Better team working - More controlled Many tools to choose from Using IDE will encourage best practise We will be looking in more detail at some of these tools in the next lecture slide 29