0% found this document useful (0 votes)
126 views45 pages

Software Project Management and UML: Ali Bigdelou

The document provides an overview of software project management and the Unified Modeling Language (UML). It discusses key aspects of software project management including requirements specification, project phases and deliverables. It then introduces UML as a standard modeling language used to specify, visualize, construct and document software systems. The document describes several important UML diagrams including use case diagrams, class diagrams, sequence diagrams and activity diagrams and provides examples of each.

Uploaded by

ictsadra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views45 pages

Software Project Management and UML: Ali Bigdelou

The document provides an overview of software project management and the Unified Modeling Language (UML). It discusses key aspects of software project management including requirements specification, project phases and deliverables. It then introduces UML as a standard modeling language used to specify, visualize, construct and document software systems. The document describes several important UML diagrams including use case diagrams, class diagrams, sequence diagrams and activity diagrams and provides examples of each.

Uploaded by

ictsadra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

Software Project Management and UML

Ali Bigdelou

Computer Aided Medical Procedures (CAMP),


Technische Universitt Mnchen, Germany

Outline

Intro to Software Project Management


Project Requirements Specification
Intro to UML
UML Use Case Diagram
UML Class Diagram
UML Sequence Diagram
UML Activity Diagram
UML Resources

What is software project management?


Software project management is the art and science of
planning and leading software projects.
It is a sub-discipline of project management in which software
projects are planned, monitored and controlled.

Laws of Project Management

Projects progress quickly until they are 90% complete. Then they
remain at 90% complete forever.

When things are going well, something will go wrong. When things just
cant get worse, they will. When things appear to be going better, you
have overlooked something.

If project content is allowed to change freely, the rate of change will


exceed the rate of progress.

Project teams detest progress reporting because it manifests their lack


of progress.

Project Management Skills

Leadership
Communications
Problem Solving
Negotiating
Influencing the Organization
Mentoring
Process and technical expertise

Four Project Dimensions

People
Process
Product
Technology

Project Phases

All projects are divided into phases


All phases together are known as the Project Life Cycle
Each phase is marked by completion of Deliverables
Identify the primary software project phases

Deliverables by Phase
Possible Deliverables by Phase
Concept Document
Statement of Work (SOW)
Project Charter
RFP & Proposal
Software
Concept

Requirements Document (Software Requirements Specification)


Work Breakdown Structure (WBS)
Functional Specification ( Top Level Design Specification)
Entity Relationship Diagram
Data Flow Diagram

Requirements

Detailed Design Specification


Object Diagrams
Detailed Data Model

Analysis

Project Development Plan


(Software Development Plan )
Baseline Project Plan
Quality Assurance Plan
Configuration Management Plan
Risk Management Plan

Design

Coding Standards
Working Code
Unit Tests
Coding and
Debugging

Integration Plan
Detailed SQA Test Plan
SQA Test Cases

User Documentation
Training Plan

Acceptance Test Procedures


Tested Application
Systems
Testing

Maintenance Specification
Deployed Application
Deployment &
Maintenance

Requirement Specifications
Capture key project objectives
In collaboration with Clinical Partner and Technical Advisor
The RS is a communications tool among the development team, the
customer, and the advisors
It should be a short document (around 5 pages).
A presentation should be followed after confirming the document with
customers (clinical partners) and technical advisors.

Content of the Requirements Specification

Problem/opportunity
Goal
Objectives
Users and Key features of the system
Documented as well using the Use-Case diagram

Key System Components


Hardware Requirements
Third Party Library Dependencies
Component diagrams (to show how the different component are combined in the
system)

Usage Scenarios
Documented as well in Activity Diagram

Basic Design of the System


Documented in Class diagram

UML

What is UML?
UML stands for Unified Modeling Language
UML is a notational system which is principally graphical and aims
at modeling system using object oriented concepts.
UML is termed as a Visual Modeling Language.
Generally UML is used for modeling software systems.
It is an industry-standard graphical language for specifying,
visualizing, constructing, and documenting the artifacts of an objectoriented system under development.
The UML uses mostly graphical notations to express the OO
analysis and design of software projects.

Simplifies the complex process of software design

Quick Tour
The UML is a graphical language for

specifying
visualizing
constructing
documenting

the artifacts of software systems


Added to the list of OMG adopted technologies in November 1997 as
UML 1.1
Most recent minor revision is UML 1.3, adopted in November 1999
Next minor revision will be UML 1.4, planned to be adopted in Q2 2001
Next major revision will be UML 2.0, planned to be completed in 2002

12

Why UML for Modeling?

A model is a simplified representation of a complex reality.

Complex systems and software cannot be understood without properly


modeling them.

Provide structure for problem solving

Today, software are getting complex and consequently we need to


understand them through modeling.

A graphical notation to communicate more clearly than natural


language (imprecise) and code(too detailed).

Help acquire an overall view of a system.

UML is not dependent on any one language or technology.

UML moves us from fragmentation to standardization.

In simple words, we need simpler representations for complex models


and modeling is a mean for dealing with complexity.

Key UML Components

UML consists of
Views: shows different faces of the system and links with the process
Diagrams: are basically the graphs that explain the contents of view.
Model Elements: are contained within the diagrams.

Main UML Diagrams

Use case diagram


Class diagram
State diagram
Object diagram
Sequence diagram
Collaboration diagram
Component diagram
Deployment diagram
Activity diagram

Usecase Diagram

Use Case Diagram

Used for describing a set of user scenarios

Mainly used for capturing user requirements

Work like a contract between end user and software developers

Model Elements in Use-Case Diagrams


ACTOR

USE-CASE

INTERACTION:
denotes set of messages exchanged among objects

NOTES/COMMENTS

Use-Case Diagram (University Management System)


Submit
Assignments

Mark
Assignments

Student

Upload
Results

View Results

Instructor
Package:

University Management System

SYSTEM
BOUNDARY

Class Diagram

Class diagram

Used for describing structure and behavior in the use cases

Provide a conceptual model of the system in terms of entities and their


relationships

Used for requirement capture, end-user interaction

Detailed class diagrams are used for developers

Elements of class diagram


Classes
Composition
Generalization
Dependency
Association

Classes
Window

Window
size: Area
visibility: Boolean
display ()
hide ()

Window
{abstract,
author=Joe,
status=tested}
+size: Area = (100,100)
#visibility: Boolean = true
+default-size: Rectangle
#maximum-size: Rectangle
-xptr: XWindow*
+display ()
+hide ()
+create ()
-attachXWindow(xwin:Xwindow*)

21

Composition
Window
scrollbar [2]: Slider
title: Header
body: Panel

Window
1
scrollbar
Slider

1
1
title

1
Header

body

1
Panel

22

Composition
Window

scrollbar:Slider

1
title:Header
1
body:Panel

23

Generalization
Shape
Separate Target Style

Polygon

Ellipse

Spline

. ..

Shape

Polygon

Ellipse

Shared Target Style

Spline

...

24

Dependencies
ClassA

ClassD

ClassB

friend

friend

operationZ()

instantiate

call

ClassC
refine

ClassD

ClassC combines
two logical classes

ClassE

25

Derived Attributes and Associations


Person
birthdate
/age

{age = currentDate - birthdate}

1
Company
1

Department

employer

employer

department
WorksForDepartment

Person

/WorksForCompany
{ Person.employer=Person.department.employer }

26

Class Diagram Example

CreditCard
{abstract}

OrderBean
{abstract}

<<interface>>
EntityBean

+getOrderStatus
+setOrderStatus
+getLineItems
+setLineItems
+getCreditApproved
+setCreditApproved

order
*

buyer
Customer

PMCreditCard

PMOrder

...
1

order

item

LineItem
{abstract}

PMLineItem
*

item

commodity

Product

27

Sequence Diagram

Sequence diagram

Sequence diagrams demonstrate the behavior of objects in a use case by


describing the objects and the messages they pass.

The horizontal dimension shows the objects participating in the interaction.

The vertical arrangement of messages indicates their order.

Sequence diagram

Activity Diagram

Activity Diagram

Intended for applications that need control flow or


object/data flow models
For example: business process modeling and
workflow.
Kinds of Steps in Activity Diagrams

32

Action (State)

Subactivity (State)

Action

Subactivity

Action (State)
Action

An action is used for anything that does not


directly start another activity graph, like
invoking an operation on an object, or running
a user-specified action.
However, an action can invoke an operation
that has another activity graph as a method
(possible polymorphism).
33

Subactivity (State)
Subactivity

A subactivity (state) starts another activity


graph without using an operation.
Used for functional decomposition, nonpolymorphic applications, like many workflow
systems.
The invoked activity graph can be used by
many subactivity states.
34

Example
POEmployee.sortMail

Deliver Mail

Deliver Mail
POEmployee
sortMail()

35

Check Out
Truck

Put Mail
In Boxes

Activity Graph as Method


POEmployee.sortMail

POEmployee.deliverMail

POEmployee

PO Employee Deliver Mail Method


sortMail()
deliverMail()

realize

Check Out
Truck

Put Mail
In Boxes

Application is completely OO when all action states


invoke operations
All activity graphs are methods for operations.
36

Object Flow (State)


Class
[State]

A special sort of step (state) that represents


the availability of a particular kind of object,
perhaps in a particular state.
No action or subactivity is invoked and control
passes immediately to the next step (state).
Places constraints on input and output
parameters of steps before and after it.
37

Object Flow (State)


Take Order

Order
[Taken]

Fill Order

Take Order must have an output parameter


giving an order, or one of its subtypes.

Fill Order must have an input parameter


taking an order, or one of its supertypes.
Dashed lines used with object flow have the
same semantics as any other state transition.
38

Coordinating Steps

39

Initial state

Final state

Fork and join

Coordinating Steps

Decision point and merge.


For modeling conventional flow chart decisions.

Calculate
Cost

[cost < $50]


[cost >= $50]

Get
Authorization
40

Charge
Account

Convenience Features (Synch State)

Forks and joins do not require composite states.


Synch states may be omitted for the common
case (unlimited bound and one incoming and
outgoing transition).
Activity diagram
notation

Build
Frame

Put
On
Roof

Install
Walls

Install
Foundation

Inspect

Install
Electricity
in Foundation
41

Install
Electricity
In Frame

Install
Electricity
Outside

Convenience Features

Partitions are a grouping mechanism.


They do not provide domain-specific semantics.

Management
Evaluate
Impact

Revise
Plan

[ priority = 1]

Support
Register
Bug

Release
Fix

Engineering
Fix
Bug

42

Test
Fix

Activity Diagram Modeling Tips


From UML
User Guide:

Customer

Telesales

Accounting

Warehouse

Request
Return
Get Return
Number
Ship Item
Receive
Item
Item
[returned]

Restock
Item

Credit
Account

43

Item
[available]

UML Modeling Tools

Rational Rose (www.rational.com) by IBM

TogetherSoft Control Center, Borland (http://www.borland.com/together/index.html)

ArgoUML (free software) (http://argouml.tigris.org/ )

OpenSource; written in java


Others (http://www.objectsbydesign.com/tools/umltools_byCompany.html )

Reference
1. UML Distilled: A Brief Guide to the Standard Object Modeling Language
Martin Fowler, Kendall Scott
2. IBM Rational http://www-306.ibm.com/software/rational/uml/
3. Practical UML --- A Hands-On Introduction for Developers
http://www.togethersoft.com/services/practical_guides/umlonlinecourse/
4. Software Engineering Principles and Practice. Second Edition; Hans van Vliet.

You might also like