CS556 Advanced Software Development Lectures 1 and 2

1 / 34
About This Presentation
Title:

CS556 Advanced Software Development Lectures 1 and 2

Description:

2 lectures a week Monday 12-1 And Thursday 10-11. Practicals ... Java How to Program (6th Edition) by Harvey & Paul Deitel & Associates; Prentice Hall, 2004 ... – PowerPoint PPT presentation

Number of Views:92
Avg rating:3.0/5.0
Slides: 35
Provided by: Adri204

less

Transcript and Presenter's Notes

Title: CS556 Advanced Software Development Lectures 1 and 2


1
CS556 Advanced Software DevelopmentLectures 1
and 2
  • Lecturer Adrian ORiordan
  • Office Computer Science Prefab, Kane Building
  • Email a.oriordan_at_cs.ucc.ie
  • Course Webpage http//www.cs.ucc.ie/adrian/cs565
    .html

2
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
CS565 On-line
  • Webpage at http//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
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
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
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
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
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
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
CS565 Useful Websites on Java
  • Official sites
  • java.sun.com Sun Microsystems 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/ - Suns Java
    tutorials
  • java.sun.com/javase/6/docs/ - SE6 documentation
  • IDEs
  • eclipse.org
  • netbeans.org
  • bluej.org

11
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
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
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
Java Programming Environment
  • These are compiled into a .class files which is
    bytecode. This is run on a JVM (Java Virtual
    Machine) such as Suns 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
Compilation/Interpretation
16
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
JDK
  • Programmers can create Java applications using
    simple tools such as editors, and command line
    tools such as provided by Suns 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
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
  • promptgtjavac customer.java
  • And run like so
  • promptgtjava customer

19
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
Dr Java
21
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
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
Eclipse IDE
24
Java APIs
  • http//java.sun.com/j2se/1.5.0/docs/api/

25
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
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
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
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
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
Example UML Class Diagram
31
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
UML-supported CASE tools
  • Commercial
  • Rational/IBM XDE Java Edition and .NET Edition
  • Borlands Together
  • Telelogics System Architect 10
  • Microsofts Enterprise Architect
  • Ilogixs Rhapsody
  • Gentlewares Poseidon for UML
  • Free
  • Tigris ArgoUML (Open Source)
  • EclipseUML (Open Source)
  • StarUML (Open Source)

33
Example Together
34
Example ArgoUML
Write a Comment
User Comments (0)