Project estimation with Use Case Points using Enterprise Architect (EA)



Similar documents
Project Management with Enterprise Architect

Estimating Work with Use Cases. Estimating Work with Use Cases. We need to forecast. Use Case Point Estimator. We need to quantify

Using Story Points to Estimate Software Development Projects in the Commercial Phase

Basic Unified Process: A Process for Small and Agile Projects

8 illegitimate reasons for discrepancies between AdWords and Google Analytics conversions

Software Composition Technologies Helping People Gain Control of Software Development

Chap 1. Introduction to Software Architecture

Software Project Management using an Iterative Lifecycle Model

Analysis of the Specifics for a Business Rules Engine Based Projects

Web Application Development Process

Iterative Project Management 1

I219 Software Design Methodology

VAIL-Plant Asset Integrity Management System. Software Development Process

Do you know? "7 Practices" for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd.

Keywords Online food system, Short Massage Service, E-business, notification

The Rap on RUP : An Introduction to the Rational Unified Process

Rational Quality Manager. Quick Start Tutorial

Chapter 3 Technology adapted

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

QUICK DRIVING INSTRUCTIONS GUIDE

Add a Bank Account. Set Up Recurring Payments

Managing Small Software Projects - An Integrated Guide Based on PMBOK, RUP, and CMMI

Development Methodologies

Plan-Driven Methodologies

Analysis and Design with UML

Developing SOA solutions using IBM SOA Foundation

SysML Modelling Language explained

Unit 1 Learning Objectives

Université du Québec à Montréal. Financial Services Logical Data Model for Social Economy based on Universal Data Models. Project

User experience storyboards: Building better UIs with RUP, UML, and use cases

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

This means that any user from the testing domain can now logon to Cognos 8 (and therefore Controller 8 etc.).

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

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

CS4507 Advanced Software Engineering

Planning a Project with the Rational Unified Process Author: David West

The IconProcess: A Web Development Process Based on RUP

COMOS Platform. Worldwide data exchange for effective plant management.

(by clicking this icon Archive Event), or add a new Lead Source / Event.

Entering a Requisition to Create a Blanket Purchase Order (One Line)

White Paper IT Methodology Overview & Context

As in the example given, a Newsletter created on the computer typically has: A title that explains what sort of information is in the newsletter

Chapter7 Setting the Receiving PC for Direct Upload. Setting the Receiving PC for Direct Upload For Windows For Macintosh...

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Enabling Apple AirPrint with Your Xerox Device Built on ConnectKey Technology. A White Paper

JOB DESCRIPTION APPLICATION LEAD

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

11 Tips to make the requirements definition process more effective and results more usable

QaTraq Pro Scripts Manual - Professional Test Scripts Module for QaTraq. QaTraq Pro Scripts. Professional Test Scripts Module for QaTraq

CHAPTER 1: INTRODUCTION TO SYSTEMS ANALYSIS AND DESIGN

To introduce software process models To describe three generic process models and when they may be used

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

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

A Comparison of SOA Methodologies Analysis & Design Phases


Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Spreadsheet Simulation

The Role of Requirements Traceability in System Development

TDDC88 Lab 2 Unified Modeling Language (UML)

3C05: Unified Software Development Process

Chapter 5: Discussion & Conclusion

Security perimeter white paper. Configuring a security perimeter around JEP(S) with IIS SMTP

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

Manoo Ordeedolchest Chairman ICT Policy Committee Sripatum University Microsoft Software Development Life Cycle Management of Enterprise June 5, 2007

MT4-MT4 Bridge User Guide

A Comparative Study of Database Design Tools

Agile Unified Process

Software Development Life Cycle (SDLC)

A Review of an MVC Framework based Software Development

CHAPTER 11 REQUIREMENTS

Setting Up Internet Connection Sharing (ICS) on a Server

HOW TO CONFIGURE SQL SERVER REPORTING SERVICES IN ORDER TO DEPLOY REPORTING SERVICES REPORTS FOR DYNAMICS GP

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Sistemi ICT per il Business Networking

Onboarding for Administrators

Writing Use Case Scenarios for Model Driven Development

Copyright Bizagi. Change Management Construction Document Bizagi Process Modeler

Applying Agile Methods in Rapidly Changing Environments

Requirements Management with Enterprise Architect

ELECTRO-MECHANICAL PROJECT MANAGEMENT

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Voice Call Addon for Ozeki NG SMS Gateway

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Analytics Canvas Tutorial: Cleaning Website Referral Traffic Data. N m o d a l S o l u t i o n s I n c. A l l R i g h t s R e s e r v e d

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

LOAD CHASER (1_0) Production Analysis for Logging Businesses

Appointment Scheduler

Integrated Information System for reserving rooms in Hotels

Process Portal Hands-on Exercise

Home Appliance Control System

setup information for most domains hosted with InfoRailway.

This document details the following four steps in setting up a Web Server (aka Internet Information Services -IIS) on Windows XP:

SOS SO S O n O lin n e lin e Bac Ba kup cku ck p u USER MANUAL

Transcription:

Project estimation with Use Case Points using Enterprise Architect (EA) Step by Step Guide: How to use Enterprise Architect (EA) as a CASE tool to facilitate calculating Use Case Points for software projects Abdollah Zawari skilleddeveloper@gmail.com http://csharptips.wordpress.com Introduction Project estimation is one of the most challenging duties of project managers. Among various estimation methods, Use Case Points is the most reliable method. If you are not familiar with UCP please read this article. As you may know, Use Case Points method involves different factors and needs calculation. For most software project managers it seems difficult and time consuming to use it manually. In this article I will show you how to estimate a software project using Sparx Enterprise Architect (EA) which is a famous CASE tool. (I used EA 7.5 in this article) Based on Rational Unified Process (RUP), In order to estimate software projects duration, you need to recognize the project features and requirements first. This leads you to Use Cases that are cores of a software project analysis model and you cannot estimate any software project without recognizing its Use Cases. Requirements, Features and Use Cases recognition are usually done in the first phase of RUP, Inception. Background The main reference of this guide is the article written by RoyClem, which describes Use Case Points method in detail. I suggest you to read that article first: Project Estimation with Use Case Points Getting Started First of all you need to have EA installed and know how to model Use Cases.We assume that you have recognized the project Use Cases and actors and have Use Case model ready in EA.

Now follow the steps: Step 1 - Weigh all actors: Each actor can be determined as easy, medium or difficult. Double click on the actor to set its complexity: The following table shows how to determine an actor's complexity:

Actor Type Easy Medium Difficult Description The actor represents another system with a defined Application Programming Interface (API) The actor represents another system interacting through a protocol-driver Interface (TCP/IP) The actor is a person interacting via a Graphical User Interface (GUI) Step 2 - Weigh all Use Cases: Each Use Case's complexity must be determined by double clicking on it: The following table helps you determine the Use Case complexity:

Use Case Type Description Touches only a single database entity Simple Its success scenario has 3 steps or less Involves less than 5 classes. Touches 2 or more database entities Average Between 4-7 steps Involves 5-10 classes. Touches 3 or more database entities Complex Over seven steps Involves more than 10 classes. Step 3 - Adjust Technical Factors: To adjust technical factors, click Estimation Factors from Settings menu then click on Technical Complexity Factors tab. Considering your own project, you can change the Weight and Value columns but for most purposes, the only table column requiring adjustment is Value, which indicates the degree of influence a particular factor has on the project. As a suggested gauge, a value of 0 indicates no influence, 3 indicates average influence and 5 indicates strong influence. You can also add/remove factors regarding your project conditions:

The following table helps you find out the values of technical factors: Technical Factor Description Weight Explanation T1 Distributed System 2 T2 Performance 1 T3 End User Efficiency 1 T4 Complex Internal Processing 1 T5 Reusability 1 Informs whether distributed data processing is required in the system. Determines the system's efficiency with regard to response time to events, flow, etc. Defines efficiency for the final user in the context of his or her perception. Determines whether complicated operations related to data processing, use of advanced algorithms are required. Informs whether elements or the code of the generated system will be used again.

T6 Installability 0.5 T7 Usability 0.5 T8 Portability 2 T9 Modifiability 1 T10 Concurrency 1 Specifies the method of installation, ease of installation and whether it is user-friendly, indicates whether the participation of specialists will be required for the installation and initial setup on the part of the software supplier. Determines the adjustment of user's interface to his or her needs, convenience in use and whether it is easy to learn how to use the system. Informs whether application should operate in certain environments. Determines whether the system is to be built in such a way that it will be easy to further develop it in the future. Informs whether the concurrent processing will take place in the system. T11 Includes special security requirements 1 Defines whether the system will require the use of mechanisms related to securing access to the system or data. T12 Provides direct access by third parties 1 Determines to what degree other external systems or actors will use the system. T13 Special User training facilities are required 1 Determines the need to organize trainings for users. Technical factors can increase the project duration. The bigger the value of each factor, the longer the estimation. Step 4 - Adjust Environmental Factors: To adjust environmental factors, in Estimation Factors form, click on Environmental Complexity Factors tab and change the values. Like technical factors, the value can be 0 to 5. You can also add/remove factors regarding your project conditions:

The following table helps you find out the values of environmental factors: Environment Factor Description Weight Explanation E1 Familiarity with Life-Cycle model used 1.5 Informs if the team is familiar with problem domain and technical aspects of the solution to a customer's problem. Attention should be also paid to knowledge of methodology in which the project is implemented e.g. RUP (Rational Unified Process), as well as knowledge of system modeling languages e.g. UML E2 Application domain experience 0.5 Generally understood experience of the team in developing the software.

E3 Experience with development methodologies used 1 Experience in designing object-oriented applications related to the ability to design object-oriented applications and the ability to use support tools for designing IT systems. E4 Analyst capability 0.5 E5 Team motivation 1 E6 Stability of requirements 2 Determines the ability of the analyst to properly acquire requirements from the client and the possession of knowledge related to the problem which is being solved. Assesses the ability of the team to engage in the assigned task. Defines if the requirements are not exposed to frequent changes. E7 Use of part-time team members -1 determines whether there is a big number of part-time staff in the team (e.g. interns, students) E8 Use of difficult programming language -1 Specifies how difficult it is to learn the programming language in which the future IT system will be implemented. All environmental factors except E7, E8, will decrease the project duration. It means, the bigger the value of E1 to E6, the shorter the estimation but it is vice versa for E7 and E8. If you don't know how to determine the value of E8, take a look at this table: 0 1 2 3 4 Easy. Within one week the language can be picked up. At least two week is needed to pick up the language. At least one month is needed to pick up the language. Special training needed for the language. Special training needed for the language and need help during the project. 5 Difficult. Needs only experienced people.

Step 5 Set Productivity Factor (PF): After adjusting technical and environmental factors, you should set productivity factor which is in Default Hour Rate tab of Estimation Factors form: Duration (productivity factor), can varies from 10 to 30. Setting an hourly rate is the most difficult factor in an accurate estimation. Typical ranges can vary from 10 to 30 hours per Use Case point. Studying the Use Case Points Method, from which this variable is defined, can help you to understand its role in the estimation and facilitate selection of a suitable initial value. The best way to estimate this value is through analysis of previous completed projects. By calculating the project estimation on a completed project for which the Use Cases and environment are configured within EA, you can adjust the hour rate to render an appropriate value for your unique work environment. Step 6 Calculate UCP:

The final step is to calculate Use Case Points and project man-hours. To calculate UCP for the entire EA project, Click Project Metrics from Project menu. You can also calculate UCP for a specific package. To do so, right click on the package and from Documentation select Package Metrics In this form you can see the partial result calculation such as TCF and ECF as well as total hours and cost of project. You are able to manipulate the values and re-calculate but don't forget to check Include Actors anyway. In our case the estimated duration will be 420 man-hour and if the cost of an hour is $10, it would cost $4200. As you can see, it also says that estimated time for developing a medium Use Case is 115 hours. At first it may look too much but if you divide it to other smaller tasks, it would be more reasonable. The following table shows estimated tasks for developing a Use Case in Elaboration and Construction phases of RUP:

Category Task % Environment: Planning, Integration, Change management, etc. 6 6.9 Analysis: Learning, Research and Realizing 9 10.35 Documentation, Modeling 10 11.5 Review 5 5.75 Re-work after Development: review 7 8.05 Prototyping 6 6.9 Test Case 4 4.6 Design 5 5.75 Coding 23 26.45 Unit testing 7 8.05 Re-work after test 10 11.5 Test: Intra-team testing 8 9.2 Total 100 115 Medium Use Case (hours) As you have noticed, Use Case Points estimates 115 hours for a medium Use Case. However, its coding time would be about 27 hours. Summary To estimate a software project with Use Case Points method using Sparx Enterprise Architect: a) Recognize system actors b) Recognize system Use Cases c) Determine Use Cases complexity d) Determine actors' complexity e) Adjust technical factors f) Adjust environmental factors g) Set Estimation factors (PF) h) Calculate UCP

After calculating, UCP gives you a rough estimation of entire project and needed time for each Use Case that can be easy, medium or difficult. You can then divide estimated Use Case hours to smaller tasks and prepare to plan them. Resources Gautam Banerjee, Use Case Points - An estimation approach (Paper) Nguyen Mai, Himanshu Saxena and Lucas Grossi, Use Case Point Estimation (Presentation) RoyClem, Project Estimation with Use Case Points (http://www.codeproject.com/kb/architecture/usecasep.aspx) Enterprise Architect User Guide