ecom 6330 java parallel and distributed computing

68
ECOM 6330 JAVA PARALLEL AND DISTRIBUTED COMPUTING ______________________ Hatem M. Hamad Computer Engineering Department Islamic University of Gaza _____________________________________________________________

Upload: roana

Post on 25-Feb-2016

110 views

Category:

Documents


5 download

DESCRIPTION

______________________ Hatem M. Hamad Computer Engineering Department Islamic University of Gaza _____________________________________________________________. ECOM 6330 Java Parallel and Distributed computing . Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ECOM  6330   Java Parallel and Distributed computing

ECOM 6330 JAVA PARALLEL AND DISTRIBUTED COMPUTING

______________________Hatem M. Hamad

Computer Engineering DepartmentIslamic University of Gaza

_____________________________________________________________

Page 2: ECOM  6330   Java Parallel and Distributed computing

Lec 01 2

Introduction

This course is an advanced Web Based programming course with an emphasis on the Java language and Security and apply it to one form of distributed programming based on the Java Distributed Object Model.

Students are expected to be familiar with object-oriented programming principles.

9/13/2011

Page 3: ECOM  6330   Java Parallel and Distributed computing

Lec 01 3

Objectives for the Course

Be able to program securely in Java

Be able to use professional development tools.

Be able to share your code over a network.

9/13/2011

Page 4: ECOM  6330   Java Parallel and Distributed computing

Lec 01 4

Textbook

There is no official course text book, only recommended books. You might even consider doing without a textbook and relying instead on the tutorials available from Sun's website. They are excellent and comprehensive.

9/13/2011

Page 5: ECOM  6330   Java Parallel and Distributed computing

Lec 01 5

Web Documentation

A primary reference source for Java programming is the Sun web site at http://java.sun.com . Students will be expected to develop skill at using the materials on this site to support their programming.

9/13/2011

Page 6: ECOM  6330   Java Parallel and Distributed computing

Lec 01 6

Applets, your home page

Typically, for this course you would put your applet code in a sub-directory of your home page and post a link to it at a specific homework assignment in Moodle.

9/13/2011

Page 7: ECOM  6330   Java Parallel and Distributed computing

Lec 01 7

JNLP and Web Start

The Java Network Launch Protocol, in combination with Java Web Start, is a browser independent way of sharing a Java application (not applet) over a network and running it on a client machine.

9/13/2011

Page 8: ECOM  6330   Java Parallel and Distributed computing

Lec 01 8

Responses to complexity

Many errors in software systems are caused by complexity that is difficult for humans to manage. The object-oriented approach was developed to manage complexity by dividing a system into relatively small objects with well defined interfaces.

9/13/2011

Page 9: ECOM  6330   Java Parallel and Distributed computing

Lec 01 9

Iterative Development

Iterative development is another approach to manage complexity. A large system is built in several iterations, and each is tested rather than developing the whole system and attempting to test everything at once. The Rational Unified Process is one of the most widely used iterative processes.

9/13/2011

Page 10: ECOM  6330   Java Parallel and Distributed computing

Lec 01 10

Bibliography

Object Oriented Software Development Using Java, Jia Xiaoping, Addison Wesley, 2003

Core Java Vol. I Fundamentals, 8/E    Horstmann, Cornell. Prentice Hall, 2008. ISBN-10: 0132354764

Core Java Vol. II Advanced Features, 8/E    Horstmann, Cornell. Prentice Hall, 2008. ISBN-10: 0132354799[Includes the distributed computing parts of our course.]

9/13/2011

Page 11: ECOM  6330   Java Parallel and Distributed computing

Lec 01 11

Modeling

Modeling is a planning activity, and good planning is essential for quality software.

Prior Planning Prevents Poor Performance

9/13/2011

Page 12: ECOM  6330   Java Parallel and Distributed computing

Lec 01 12

Plans must change!

Army slogan: No (battle) plan survives the first encounter with the enemy!

AT&T slogan: Planning is everything—plans are nothing!

When the situation changes, change the plan!

9/13/2011

Page 13: ECOM  6330   Java Parallel and Distributed computing

Lec 01 13

UML

Prior to the development of the Unified Modeling Language, there were dozens of methodologies in common use for planning and modeling software systems.

UML is just a standard diagramming notation. It is just a tool.

Knowing UML helps you communicate with others in creating software.

http://www.agilemodeling.com/9/13/2011

Page 14: ECOM  6330   Java Parallel and Distributed computing

ITERATIVE, EVOLUTIONARY, AND AGILE

Introduction to the Rational Unified Process

Page 15: ECOM  6330   Java Parallel and Distributed computing

Grady Booch speaks

“People are more important than any process.

Good people with a good process will outperform good people with no process any time.”

Page 16: ECOM  6330   Java Parallel and Distributed computing

The Unified Process

The Unified Process has emerged as a popular and effective software development process.

In particular, the Rational Unified Process, as modified at Rational Software, is widely practiced and adopted by industry.

Page 17: ECOM  6330   Java Parallel and Distributed computing

The Most Important Concept The critical idea in the Rational

Unified Process is Iterative Development.

Iterative Development is successively enlarging and refining a system through multiple iterations, using feedback and adaptation.

Each iteration will include requirements, analysis, design, and implementation.

Iterations are timeboxed.

Page 18: ECOM  6330   Java Parallel and Distributed computing

What is Rational Unified Process (RUP)?

RUP is a complete software-development process framework , developed by Rational Corporation.

It’s an iterative development methodology based upon six industry-proven best practices.

Processes derived from RUP vary from lightweight—addressing the needs of small projects —to more comprehensive processes addressing the needs of large, possibly distributed project teams.

Page 19: ECOM  6330   Java Parallel and Distributed computing

Phases in RUP

RUP is divided into four phases, named: Inception Elaboration        Construction Transition

Page 20: ECOM  6330   Java Parallel and Distributed computing

EEach phase has iterations, each having the purpose of producing a demonstrable piece of software. The duration of iteration may vary from two weeks or less up to six months.

Inception Elaboration Construction Transition

Iterations Iterations IterationsIterations

The iterations and the phases fig 1

Iterations

Page 21: ECOM  6330   Java Parallel and Distributed computing

The iterations and the phases fig 2

Resource Histogram

Page 22: ECOM  6330   Java Parallel and Distributed computing

The Agile Manifesto

Individuals and interactions Over processes and tools

Working software Over comprehensive documentation

Customer collaboration Over contract negotiation

Responding to change Over following a plan

Page 23: ECOM  6330   Java Parallel and Distributed computing

Unified Process best practices

Get high risk and high value first Constant user feedback and engagement Early cohesive core architecture Test early, often, and realistically Apply use cases where needed Do some visual modeling with UML Manage requirements and scope creep Manage change requests and configuration

Page 24: ECOM  6330   Java Parallel and Distributed computing

Inception

The life-cycle objectives of the project are stated, so that the needs of every stakeholder are considered. Scope and boundary conditions, acceptance criteria and some requirements are established.

Page 25: ECOM  6330   Java Parallel and Distributed computing

Inception - Entry criteria The expression of a need, which can take any

of the following forms: an original vision a legacy system an RFP (request for proposal) the previous generation and a list of

enhancements some assets (software, know-how, financial

assets) a conceptual prototype, or a mock-up

Page 26: ECOM  6330   Java Parallel and Distributed computing

Inception - Activities Formulate the scope of the project. Needs of every stakeholder, scope,

boundary conditions and acceptance criteria established.

Plan and prepare the business case. Define risk mitigation strategy, develop an

initial project plan and identify known cost, schedule, and profitability trade-offs.

Synthesize candidate architecture. Candidate architecture is picked from various

potential architectures Prepare the project environment.

Page 27: ECOM  6330   Java Parallel and Distributed computing

Inception - Exit criteria

An initial business case containing at least a clear formulation of the product vision - the core requirements - in terms of functionality, scope, performance, capacity, technology base.

Success criteria (example: revenue projection).

An initial risk assessment. An estimate of the resources required to

complete the elaboration phase.

Page 28: ECOM  6330   Java Parallel and Distributed computing

Elaboration An analysis is done to determine

the risks, stability of vision of what the product is to become, stability of architecture and expenditure of resources.

Page 29: ECOM  6330   Java Parallel and Distributed computing

Elaboration - Entry criteria

The products and artifacts described in the exit criteria of the previous phase.

The plan approved by the project management, and funding authority, and the resources required for the elaboration phase have been allocated.

Page 30: ECOM  6330   Java Parallel and Distributed computing

Elaboration - Activities Define the architecture. Project plan is defined. The process,

infrastructure and development environment are described.

Validate the architecture. Baseline the architecture. To provide a stable basis for the bulk of

the design and implementation effort in the construction phase.

Page 31: ECOM  6330   Java Parallel and Distributed computing

Elaboration - Exit criteria A detailed software development plan, with

an updated risk assessment, a management plan, a staffing plan, a phase plan showing the number and contents of the iteration , an iteration plan, and a test plan

The development environment and other tools A baseline vision, in the form of a set of

evaluation criteria for the final product A domain analysis model, sufficient to be able

to call the corresponding architecture ‘complete’.

An executable architecture baseline.

Page 32: ECOM  6330   Java Parallel and Distributed computing

Construction

The Construction phase is a manufacturing process. It emphasizes managing resources and controlling operations to optimize costs, schedules and quality. This phase is broken into several iterations.

Page 33: ECOM  6330   Java Parallel and Distributed computing

Construction - Entry criteria The product and artifacts of the

previous iteration. The iteration plan must state the iteration specific goals

Risks being mitigated during this iteration.

Defects being fixed during the iteration.

Page 34: ECOM  6330   Java Parallel and Distributed computing

Construction - Activities Develop and test components. Components required satisfying the use

cases, scenarios, and other functionality for the iteration are built. Unit and integration tests are done on Components.

Manage resources and control process. Assess the iteration Satisfaction of the goal of iteration is

determined.

Page 35: ECOM  6330   Java Parallel and Distributed computing

Construction - Exit Criteria The same products and artifacts, updated,

plus: A release description document, which

captures the results of an iteration Test cases and results of the tests

conducted on the products, An iteration plan, detailing the next

iteration Objective measurable evaluation criteria

for assessing the results of the next iteration(s).

Page 36: ECOM  6330   Java Parallel and Distributed computing

Transition The transition phase is the phase

where the product is put in the hands of its end users. It involves issues of marketing, packaging, installing, configuring, supporting the user-community, making corrections, etc.

Page 37: ECOM  6330   Java Parallel and Distributed computing

Transition - Entry criteria

The product and artifacts of the previous iteration, and in particular a software product sufficiently mature to be put into the hands of its users.

Page 38: ECOM  6330   Java Parallel and Distributed computing

Transition - Activities Test the product deliverable in a

customer environment. Fine tune the product based

upon customer feedback Deliver the final product to the

end user Finalize end-user support

material

Page 39: ECOM  6330   Java Parallel and Distributed computing

Transition - Exit criteria

An update of some of the previous documents, as necessary, the plan being replaced by a “post-mortem” analysis of the performance of the project relative to its original and revised success criteria;

A brief inventory of the organization’s new assets as a result this cycle.

Page 40: ECOM  6330   Java Parallel and Distributed computing

Modeling Disciplines of RUP

1. Business Modeling The purpose of this discipline is to model

the business context and the scope of your system. This workflow is done usually in Inception and Elaboration phase.

Page 41: ECOM  6330   Java Parallel and Distributed computing

-A context model showing how the system fits into its overall environment - A high-level business requirements model eg.

use case model

-A domain model eg. class diagram or data diagram depicting major business classes or entities

-A business process model

Activities include the development of:

Page 42: ECOM  6330   Java Parallel and Distributed computing

The purpose of this discipline is to engineer the requirements for the project, including their identification, modeling, and documentation.

The main deliverable of this discipline is the Software Requirements Specification (SRS), also referred to as the Requirements Model, which encompasses the captured requirements.

2. Requirements

Page 43: ECOM  6330   Java Parallel and Distributed computing

The purpose of this discipline is to evolve a robust architecture for the system based on the requirements, to transform the requirements into a design, and to ensure that implementation environment issues are reflected in the design.

3. Analysis & Design

Page 44: ECOM  6330   Java Parallel and Distributed computing

The purpose of this discipline is to support development work. Practically all the work in this workflow are done in Inception phase. The activities include

- implementing and configuring RUP , selecting and acquiring required tools, developing in-house tools

- providing software and hardware maintenance and training.

4. Environment

Page 45: ECOM  6330   Java Parallel and Distributed computing

5. Implementation6. Test7. Configuration and Change Management8. Project Management

PS: See appendix for flowcharts

Page 46: ECOM  6330   Java Parallel and Distributed computing

Practices Develop software iteratively Software must be developed in small

increments and short iterations Manage requirements Requirements that change over time and

those requirements that have greater impact on project goals must be identified

Use component-based architecture Components that are most likely to change and components that can be re-used must be identified and built

Page 47: ECOM  6330   Java Parallel and Distributed computing

Visually model softwareModels must be built using visualization methods like UML, to understand the complexity of the system

Verify software qualityTesting must be done to remove defects at early stages, thus reducing the costs at later stages

Control software changesAny changes to requirements must be managed and their effect on software should betraceable.

Page 48: ECOM  6330   Java Parallel and Distributed computing

Life-Cycle Artifacts

Rational suggests the following typical set of documents.

Management artifacts: Artifacts used to drive or monitor the

progress of the project, estimate the risks, adjust the resources, give visibility to the customer or the investors.

Technical artifacts: Artifacts that are either the delivered goods, executable

software and manuals, or the blueprints that were used to manufacture the delivered goods.

Page 49: ECOM  6330   Java Parallel and Distributed computing

Management artifacts: An organizational policy document

A Vision document

A Business Case document

A Development Plan document

An Evaluation Criteria document

Release Description documents for each release

Deployment document

Status Assessment documents

Page 50: ECOM  6330   Java Parallel and Distributed computing

Technical artifacts:

User’s Manual

Software documentation, preferably in the form of self-documenting source code, and models (use cases, class diagrams, process diagrams, etc.) captured and maintained with appropriate CASE tools.

A Software Architecture document, describing the overall structure of the software: class categories, classes, processes, subsystems, the definition of critical interfaces, and rationale for the key design decisions.

Page 51: ECOM  6330   Java Parallel and Distributed computing

Roles and Responsibilities

RUP defines thirty roles called workers. Roles are assigned for each activity. Besides the conventional roles (Architect, Designer, Design Reviewer, Configuration Manager etc), specific roles are assigned in Business Modeling and Environment workflows:

Business-Process Analyst Business designer Business Model Reviewer Course developer

Page 52: ECOM  6330   Java Parallel and Distributed computing

Examples of RUP

RUP for Large Contractual Software development:Rational proposes the procurement of

large software in 3 stages, associated with 3 different kinds of contract.

An R&D stage, comprising the inception and elaboration phase, typically bid in a risk sharing manner, e.g., as a cost plus award fee contract (CPAF).

Page 53: ECOM  6330   Java Parallel and Distributed computing

A production stage, comprising the construction and transition phases, typically bid as a firm, fixed price contract (FFP).

A maintenance stage if any, corresponding to the evolution phase, typically bid as a level of effort contract (LOE).

Page 54: ECOM  6330   Java Parallel and Distributed computing

Illustration

Page 55: ECOM  6330   Java Parallel and Distributed computing

RUP for a small commercial software product

A small commercial development would see a more fluid process, with only limited amount of formalism at the major milestones and a more limited set of documents:

a product vision a development plan

Page 56: ECOM  6330   Java Parallel and Distributed computing

Release description documents, specifying the goal of an iteration at the beginning of the iteration, and updated to serve as release notes at the end.

User documentation, as necessary

Software architecture, software design, development process and procedures

Page 57: ECOM  6330   Java Parallel and Distributed computing

Advantages of RUP

The RUP puts an emphasis on addressing very early high risks areas.

It does not assume a fixed set of firm requirements at the inception of the project, but allows to refine the requirements as the project evolves.

It does not put either a strong focus on documents or ‘ceremonies’

The main focus remains the software product itself, and its quality.

Page 58: ECOM  6330   Java Parallel and Distributed computing

Drawbacks of RUP RUP is not considered particularly

“agile” However, recent studies have shown that by adopting the right essential artifacts RUP is agile.

It fails to provide any clear implementation guidelines.

RUP leaves the tailoring to the user entirely.

Page 59: ECOM  6330   Java Parallel and Distributed computing

References

Agile software development methods – review and analysis by Pekka Abrahamsson, Outi Salo & Jussi Ronkainen

http://www.rational.com Using the Rational unified Process for small

projects – Gary Pollice, Rational software

Page 60: ECOM  6330   Java Parallel and Distributed computing

Appendix

Flow-charts for the workflows of RUP

Page 61: ECOM  6330   Java Parallel and Distributed computing

Business Modeling

Page 62: ECOM  6330   Java Parallel and Distributed computing

Requirements

Page 63: ECOM  6330   Java Parallel and Distributed computing

Analysis and Design

Page 64: ECOM  6330   Java Parallel and Distributed computing

Environment

Page 65: ECOM  6330   Java Parallel and Distributed computing

Implementation

Page 66: ECOM  6330   Java Parallel and Distributed computing

Test

Page 67: ECOM  6330   Java Parallel and Distributed computing

Configuration and change management

Page 68: ECOM  6330   Java Parallel and Distributed computing

Project Management