Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CS5651 CS556 Advanced Software Development Lectures 1 and 2 Lecturer: Adrian O’Riordan Office: Computer Science Prefab, Kane Building"— Presentation transcript:

1 CS5651 CS556 Advanced Software Development Lectures 1 and 2 Lecturer: Adrian O’Riordan Office: Computer Science Prefab, Kane Building Email: a.oriordan@cs.ucc.iea.oriordan@cs.ucc.ie Course Webpage: http://www.cs.ucc.ie/~adrian/cs565.html http://www.cs.ucc.ie/~adrian/cs565.html

2 CS5652 CS565 Overview 5 Credit course 2 lectures a week – Monday 12-1 And Thursday 10-11 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.

3 CS5653 CS565 On-line Webpage at http://www.cs.ucc.ie/~adrian/cs565.htmlhttp://www.cs.ucc.ie/~adrian/cs565.html Will contain: Course Overview - Syllabus, etc. Notices Lectures slides (as course progresses) Reading list and web links Assignments and Exercises

4 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

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

6 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

7 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

8 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

9 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

10 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

11 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, 2004. Software Engineering, 8th edition, Ian Sommerville, Addison- Wesley, 2006. Code Complete: A Practical Handbook of Software Construction, Steve McConnell, Microsoft Press, 1993. Object-Oriented and Classical Software Engineering, Stephen R. Schach, McGraw-Hill, 2004.

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

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

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

15 CS56515 Compilation/Interpretation

16 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

17 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

18 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

19 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)

20 CS56520 Dr Java

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

22 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

23 CS56523 Eclipse IDE

24 CS56524 Java APIs http://java.sun.com/j2se/1.5.0/docs/api/

25 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

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

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

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

29 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 2.1.1. UML is not a method by itself although it is compatible with the leading object-oriented software development methods.

30 CS56530 Example: UML Class Diagram

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

32 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)

33 CS56533 Example: Together

34 CS56534 Example: ArgoUML


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

Similar presentations


Ads by Google