Software Project Management and UML



Similar documents
Object Oriented Programming. Risk Management

CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: Class Diagrams A. O Riordan, 2009 Includes notes by J Herbert, K Brown.

What is Modeling language? What is UML? A brief history of UML Understanding the basics of UML UML diagrams for NES UML Profiles UML Modeling tools

Aspect Oriented Strategy to model the Examination Management Systems

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

Using UML Part Two Behavioral Modeling Diagrams

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Chap 1. Introduction to Software Architecture

Basic Unified Process: A Process for Small and Agile Projects

Menouer Boubekeur, Gregory Provan

Applying 4+1 View Architecture with UML 2. White Paper

Process Modeling Notations and Workflow Patterns

Analysis of the Specifics for a Business Rules Engine Based Projects

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Object-Oriented Design Guidelines

[1] [2]

Non-Functional Requirements

Using UML Part One Structural Modeling Diagrams

Introduction to UML: Structural Modeling and Use Cases

MTAT Business Process Management (BPM) (for Masters of IT) Lecture 2: Introduction to BPMN

How To Develop Software

10.1 Determining What the Client Needs. Determining What the Client Needs (contd) Determining What the Client Needs (contd)

The UML Class Diagram

Software Development in the Large!

What is a life cycle model?

Object-oriented design methodologies

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

i. Node Y Represented by a block or part. SysML::Block,

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Quick Guide Business Process Modeling Notation (BPMN)

University of Pisa. MSc in Computer Engineering. Business Processes Management. Lectures

Introduction to BPMN

Object Oriented Design

Business-Driven Software Engineering Lecture 3 Foundations of Processes

UML for the C programming language.

Model Simulation in Rational Software Architect: Business Process Simulation

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Process Modelling Notations

CHAPTER 11 REQUIREMENTS

The Business Process Model

Two Roles of Processes in SOA

Meta-Model specification V2 D

The Expressive Power of UML-based Web Engineering 1

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Types of UML Diagram. UML Diagrams OOAD. Computer Engineering Sem -IV

II. Conceptual Modeling

TDDC88 Lab 2 Unified Modeling Language (UML)

Modeling the User Interface of Web Applications with UML

Project Management Planning

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

A UML Introduction Tutorial

Chapter 4 Software Lifecycle and Performance Analysis

UML Diagram Types. Use Cases do the Following. Use Case Diagram

BPMN 2.0 Tutorial. Daniel Brookshier Distinguished Fellow No Magic Inc.

Umbrello UML Modeller Handbook

How to make a good Software Requirement Specification(SRS)

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Chapter 19. Activity Diagrams

Section C. Requirements Elicitation

Software Engineering. Session 8 Main Theme Business Model Engineering. Dr. Jean-Claude Franchitti

INNOVATOR. The integrated tool suite for business process and software engineering

High-level Design. What is software architecture?

Data Modeling Basics

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

UML SUPPORTED SOFTWARE DESIGN

Karunya University Dept. of Information Technology

BPMN Fundamentals. BPMI Meeting #12. London, United Kingdom May 13-14, Stephen A. White, IBM Notation Working Group Chair

IndustryPrint: Business Process Analysis for Everyone!

TOGAF usage in outsourcing of software development

Rational Software White Paper

Source Code Translation

A Methodology for the Development of New Telecommunications Services

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Increasing Development Knowledge with EPFC

3D Animation of Java Program Execution for Teaching Object Oriented Concepts

Business Process Modelling Languages

Towards an Integration of Business Process Modeling and Object-Oriented Software Development

Compliance and Requirement Traceability for SysML v.1.0a

Business Modeling with UML

Zen of VISIO Leona Rubin WebTechNY User Group Date: September, 2008

What are the used UML diagrams? A Preliminary Survey

UML Modelling of Automated Business Processes with a Mapping to BPEL4WS

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

Process Modeling using BPMN 2.0

This is the software system proposal document for the <name of the project> project sponsored by <name of sponsor>.

Modeling Web Applications Using Java And XML Related Technologies

Introduction to OpenUP (Open Unified Process)

Programming and Software Development CTAG Alignments

Use Cases and Scenarios

Aspect Weaving for OSGi. Martin Lippert (akquinet it-agile GmbH)

Manage Software Development in LabVIEW with Professional Tools

Algorithms, Flowcharts & Program Design. ComPro

(BA122) Software Engineer s Workshop (SEW)

The Role of the Software Architect

How To Develop A Multi Agent System (Mma)

Sistemi ICT per il Business Networking

Goals of the Unit. spm adolfo villafiorita - introduction to software project management

SQL Server 2012 Business Intelligence Boot Camp

Domain modeling: Leveraging the heart of RUP for straight through processing

Dr. Jana Koehler IBM Zurich Research Laboratory

Transcription:

Software Project Management and UML Ali Bigdelou Computer Aided Medical Procedures (CAMP), Technische Universität München, 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. 3

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 can t 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 5

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 6

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) Requirements Functional Specification ( Top Level Design Specification) Entity Relationship Diagram Data Flow Diagram Project Development Plan (Software Development Plan ) Baseline Project Plan Quality Assurance Plan Configuration Management Plan Risk Management Plan Analysis Integration Plan Detailed SQA Test Plan SQA Test Cases Design Coding and Debugging Detailed Design Specification Object Diagrams Detailed Data Model Systems Testing Coding Standards Working Code Unit Tests Acceptance Test Procedures Tested Application Maintenance Specification Deployed Application User Documentation Training Plan Deployment & Maintenance 7

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

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 9

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 SYSTEM BOUNDARY Student Mark Assignments Upload Results Instructor View Results Package: University Management System

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 1 Window 1 1 scrollbar 2 title 1 body 1 Slider Header Panel 22

Composition Window scrollbar:slider 2 title:header 1 body:panel 1 23

Generalization Shape Separate Target Style Polygon Ellipse Spline... Shape Shared Target Style Polygon Ellipse Spline... 24

Dependencies ClassA «friend» ClassB ClassD «instantiate» «friend» operationz() «call» ClassC «refine» ClassC combines two logical classes ClassD ClassE 25

Derived Attributes and Associations Person {age = currentdate - birthdate} birthdate /age Company 1 employer 1 employer /WorksForCompany Department 1 department WorksForDepartment Person { Person.employer=Person.department.employer } 26

Class Diagram Example CreditCard {abstract} PMCreditCard <<interface>> EntityBean order * OrderBean {abstract} +getorderstatus +setorderstatus +getlineitems +setlineitems +getcreditapproved +setcreditapproved... PMOrder 1 order buyer 1 * item Customer LineItem {abstract} * item PMLineItem * 1 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 Action (State) Action Subactivity (State) Subactivity 32

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 POEmployee Deliver Mail sortmail() Check Out Truck Put Mail In Boxes 35

Activity Graph as Method POEmployee.sortMail POEmployee.deliverMail POEmployee sortmail() delivermail() «realize» PO Employee Deliver Mail Method 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 Initial state Final state Fork and join 39

Coordinating Steps Decision point and merge. For modeling conventional flow chart decisions. Calculate Cost [cost < $50] [cost >= $50] Charge Account Get Authorization 40

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 Install Electricity In Frame Install Electricity Outside 41

Convenience Features Partitions are a grouping mechanism. They do not provide domain-specific semantics. Management [ priority = 1] Evaluate Impact Revise Plan Support Register Bug Release Fix Engineering Fix Bug Test Fix 42

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 Item [available] 43

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.