CS5651 CS556 Advanced Software Development Lectures 1 and 2 Lecturer: Adrian O’Riordan Office: Computer Science Prefab, Kane Building

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Object Oriented Programming in Java George Mason University Fall 2011
CS2200 Software Development Lecture 2: Java Program Development Lecturer: Adrian O’Riordan Course Webpage:
Introduction to Java Programming, 4E
CS2200 Software Development Lecture: Java Platform Lecturer: Adrian O’Riordan Course Webpage:
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
For more Lectures and Notes Visit
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CS565 Advanced Software Development Lecture 23, 2006 CASE.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
PHY281Introduction to JavaSlide 1 Introduction to Java In this section we will learn how how to use Java and write our first Java Applet:  The Java Development.
COP 2800 Lake Sumter State College Mark Wilson, Instructor.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Marlene Galea.  The JDK (Java Development Kit)  An IDE (Integrated Development Environment) ◦ Different IDEs include:  JCreator  NetBeans  BlueJ.
CMSC 202 Computer Science II for Majors Fall 2009 Introduction.
Editing Java programs with the BlueJ IDE. Working environments to develop (= write) programs There are 2 ways to develop (write) computer programs: 1.Using.
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Introduction to Java Programming with JBuilder 4
Programming Languages: Telling the Computers What to Do Chapter 16.
CS110/CS119 Introduction to Computing (Java)
From BlueJ to NetBeans SWC 2.semester.
CS413: Java Programming language Applications Applets
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Lecturer PEN PHIROM Tel : Web site: Lecturer PEN PHIROM Tel :
CMSC 202 Computer Science II for Majors Object-Oriented Programming.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
1 Chapter 2 First Java Programs Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
The Basics of Javadoc Presented By: Wes Toland. Outline  Overview  Background  Environment  Features Javadoc Comment Format Javadoc Program HTML API.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 1 Introduction to.
Jaeki Song ISQS6337 JAVA Lecture 03 Introduction to Java -The First Java Application-
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
POS 406 Java Technology And Beginning Java Code
Introduction to Java Programming with Forte Y. Daniel Liang.
The Joy of Programming (also known as) Introduction to Object-Oriented Programming.
Introduction to Java Programming. Introduction Course Objectives Organization of the Book.
Object Oriented Programming Lecture 3. Introduction  In discussing Java, some items need to be clarified  The Java programming language  The Java virtual.
Session 1 Introduction to Java. Objectives Java Simplified / Session 1 / 2 of 32 Explain the history of Java Explain Java in brief List the types of Java.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
4-Nov-15 Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Design Topic 1: The Java Environment Maj Joel.
EIE375 BlueJ: Getting Started Dr Lawrence Cheung.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Application Architecture Using Java Hong Li. Introduction Developed by a team led by James Gosling at Sun Microsystem. Originally called Oak, designed.
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Lecture1 Instructor: Amal Hussain ALshardy. Introduce students to the basics of writing software programs including variables, types, arrays, control.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Execution ways of program References: www. en.wikipedia.org/wiki/Integrated_development_environment  You can execute or run a simple java program with.
Introduction to Java Programming, 4E Y. Daniel Liang.
CS 201 Lecture 1 (b) Using an IDE Tarik Booker CS 201: Introduction to Programming California State University, Los Angeles.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
CS-140 Dick Steflik Lecture 3. Java C++ Interpreted optimized for the internet Runs on virtual ized machine Derived from C++ Good object model Widely.
Lecture 1b- Introduction
Chapter 1 Introduction to Computers, Programs, and Java
Introduction to Advanced Java Programming
(Computer fundamental Lab)
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

CS5651 CS556 Advanced Software Development Lectures 1 and 2 Lecturer: Adrian O’Riordan Office: Computer Science Prefab, Kane Building Course Webpage:

CS5652 CS565 Overview 5 Credit course 2 lectures a week – Monday 12-1 And Thursday Practicals – to be announced Tutorials – as required Assessment will consist of an end-of-year written examination (80%) and continuous assessment during the year (20%). You have to pass combined total. There is a re-sit in the autumn – your continuous assessment mark is carried forward.

CS5653 CS565 On-line Webpage at Will contain: Course Overview - Syllabus, etc. Notices Lectures slides (as course progresses) Reading list and web links Assignments and Exercises

CS5654 CS565 Learning Outcomes Be able to write Java applications in a good object oriented style Be able to design medium sized software in a structured manner Be able to use object oriented abstractions and methods in an appropriate way Be able to employ the Java SWING library to write professional looking GUI applications Become familiar with software engineering development process Be able to use software tools to design UML diagrams

CS5655 Teaching Methods It is important that you attend both the lectures and any labs! Notes will on slides and handouts. Assignments and exercises will be placed on the course webpage during the year. No textbook covers all the material exactly. See the list of relevant books later on. Readings will be assigned during the year.

CS5656 Course Contents I Part 1: Object Oriented Programming in Java (12 lectures approx.) Java Programming – review of fundamentals Object Oriented Concepts in Java– objects, classes, encapsulation, inheritance, polymorphism, generics Event driven programming and Java Swing library for GUI programming – windows, buttons, lists, menus, etc, Optional: Basic graphics programming in Java – lines, shapes, colours, etc. Overview of Java J2SE Platform

CS5657 Course Contents II Part 2: Development in Java/UML (12 lectures approx.) Tools: development tools, IDEs, building applications, documentation, debugging Software Development Lifecycle Overview Software Design Overview The Unified Modeling Language (UML) notation: class diagrams - classes, associations, attributes and operations; package notation - subsystems

CS5658 CS565 Practical Component Java development with the command-line JDK and with an IDE –object oriented programs –event-driven GUI applications Software design in UML using a simple CASE tool Introduction to developing larger systems, e.g. builds, plug-ins, debugging, deployment

CS5659 CS565 Useful Books on Java Many listed on course Webpage. Here are a few comprehensive Java books: Big Java by Cay S. Horstmann; Wiley, 2007 Java How to Program (6th Edition) by Harvey & Paul Deitel & Associates; Prentice Hall, 2004 Introduction to Java Programming - Comprehensive Version (6th Edition) by Y Daniel Liang; Prentice Hall, 2006

CS56510 CS565 Useful Websites on Java Official sites java.sun.com Sun Microsystem’s developer network – contains APIs, downloads, support, etc. jcp.org Java Community Process – community development of Java technology containing repository of specifications java.sun.com/docs/books/tutorial/ - Sun’s Java tutorials java.sun.com/javase/6/docs/ - SE6 documentation IDEs eclipse.org netbeans.org bluej.org

CS56511 CS565 Useful Books on Soft Dev Many listed on course Webpage. Here are a few Software Engineering books: Software Engineering: A Practitioner's Approach 6th ed., Roger Pressman, McGraw-Hill, Software Engineering, 8th edition, Ian Sommerville, Addison- Wesley, Code Complete: A Practical Handbook of Software Construction, Steve McConnell, Microsoft Press, Object-Oriented and Classical Software Engineering, Stephen R. Schach, McGraw-Hill, 2004.

CS56512 Java Programming Language Java is an object oriented programming language based on C and C-based object oriented languages such as C++ and Objective C. Mesa, Oberon, and Smalltalk were also influences. Specifications of the Java language, the Java Virtual Machine (JVM) and the Java API are community-maintained through the Sun- managed Java Community Process. The Java Runtime Environment (JRE) is the software required to run any application deployed on the Java platform. End-users commonly use a JRE in software packages and plugins. Sun distributes a superset of the JRE called the Java SDK which includes development tools such as the Java compiler, Javadoc, and debugger.

CS56513 Program Development Basics The basics of Java programming consist of specifying an algorithm and implementing this by writing Java program code. The program or source code is a set of instructions. E.g. HelloWorldApp.java A program can consist of one or more.java files. /** * simply prints "Hello World!" to standard output. */ class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. }

CS56514 Java Programming Environment These are compiled into a.class files which is bytecode. This is run on a JVM (Java Virtual Machine) such as Sun’s Hotspot. The bytecode is a standardized portable binary format. Multiple.class files can be packaged together into a.jar (Java archive). The JVM runtime executes.class or.jar files by emulating the JVM by interpreting it, or using a just-in-time compiler (JIT).

CS56515 Compilation/Interpretation

CS56516 Java Technology Development Tools – compiling (e.g. javac), running (e.g. java), documenting (javadoc), debugging APIs (Application Programming Interface) – library specs Deployment Technology – applications, JAR files, Web Start, plugins User Interface and Graphics Toolkits – Swing, Java 2D Integration Libraries – JDBC – database connect, Java RMI Components – Java Beans, J2EE

CS56517 JDK Programmers can create Java applications using simple tools such as editors, and command line tools such as provided by Sun’s JDK (Java SE Development Kit). Basic tools include: –javac compiler for the Java programming language –java launcher for Java applications –javadoc documentation generator –appletviewer run and debug applets –jar create and manage Java Archive (JAR) files –jdb Java Debugger Many other tools for e.g. security, rmi, monitoring

CS56518 Using JDK Write your Java code in files – usually one class per file. Compile the code with javac. Fix the compile errors and recompile. When there are no more compile errors run the program wit the java command. Example: –Create a class Customer. Save in a file called customer.java –Compile like so: prompt>javac customer.java –And run like so: prompt>java customer

CS56519 Java IDEs IDEs (Integrated Development Environments) can widely available to speed up the process and provide increased support such as source code control, class browser, build-automation tools, and a debugger. Popular Professional Java IDEs include: NetBeans (Sun) Eclipse (Eclipse Foundation) JBuilder (CodeGear) JDeveloper (Oracle) Teaching and Learning (Interactive) IDEs BlueJ (bluej.org) Dr Java (drjava.org)

CS56520 Dr Java

CS56521 Dr Java IDE DrJava (drjava.org) is a lightweight programming environment for Java designed specifically for beginners. DrJava supports the use of different Java compilers, such as the traditional javac compiler supplied with the JDK (versions 6, 5 or earlier). Dr Java has an interactions pane, where you can input Java expressions and statements and immediately see their results; Dr Java has a definitions pane, where you can enter and edit class definitions with support for brace matching, syntax highlighting, and automatic indenting.

CS56522 Dr Java Features Features include: –Text editing with syntax highlighting, brace matching, line numbers,find and replace –Buttons for compiling and running –Interactive interpreter - an extension of free DynamicJava –Integrated javadoc –Integrated debugger –Integrated JUnit –Project facility –Language level facility

CS56523 Eclipse IDE

CS56524 Java APIs

CS56525 Software-Engineering-in-the-Large A concise working definition of software engineering: the methodology, techniques and tools related to the development and management of software from conception through requirements, design, implementation, deployment to the final retirement. Large scale software development Project involves a team of people – need to manage process, people and artefacts System takes a long-time to build – need to plan Systems Complex – need powerful tools, methods and technologies Need to reuse code/designs/process

CS56526 Software Engineering Discipline Software Engineering is relatively new field of engineering –The term software engineering was coined in 1967 at a NATO study group. The first conference was held in Germany in it is commonly perceived that the quality of software is not acceptable: –buggy –behind schedule –not enough reuse Large-scale disasters attributed to software defects offer sober warnings: –The explosion of the Ariane 5 rocket –Patriot missile failure during the Gulf War Ariane 5

CS56527 The Software Development Lifecycle I A large software application can be seen as having the following development steps: Requirements Analysis –Customers and suppliers work together to identify actual problems for which a solution is sought. The feasibility of endeavour is determined. System Specification –A broad systems specification of "What is to be done". Design –Produce a design specification for the new system. Alternative ways of satisfying the specification are explored. This is the "How".

CS56528 The Software Development Lifecycle II Implementation –The chosen design is translated into executable programs. Here is where issues such as the choice of programming language are decided. System Integration –The completed system is assembled and checked to see if it meets initial requirements. Maintenance –Manage the day-to-day support of system operation as well as provision of any future upgrades. Management of new releases Operations/Maintenance (patches, etc.) Retirement –Product removed from service.

CS56529 UML The Unified Modeling Language (UML) is general- purpose specification language for object modeling. UML includes a graphical notation used to create an abstract model of a system. UML is controlled by the Object Management Group (OMG) and is the industry standard for graphically describing software. The current version of UML (2007) is Version UML is not a method by itself although it is compatible with the leading object-oriented software development methods.

CS56530 Example: UML Class Diagram

CS56531 Computer Aided Software Engineering Computer tool to assist developers Modelling and documentation Sometimes can generate system implementation In the 1980s separate tools became prominent for analysis and design which entailed manual conversion of the output of one tool to provide the input of another. This lead to CASE tool integration. Many CASE tools simply act as repositories of models and documents. They do not assist in the creative part of modelling. Some CASE tools attempt to provide more assistance, ranging from simple prompts through to syntax/model checking.

CS56532 UML-supported CASE tools Commercial –Rational/IBM XDE Java Edition and.NET Edition –Borland’s Together –Telelogic’s System Architect 10 –Microsoft’s Enterprise Architect –Ilogix’s Rhapsody –Gentleware’s Poseidon for UML Free –Tigris ArgoUML (Open Source) –EclipseUML (Open Source) –StarUML (Open Source)

CS56533 Example: Together

CS56534 Example: ArgoUML