Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

49
Wipro confidential © Copyright 2007 Wipro Ltd Productivity enhancements through Software Engineering Tools Speaker: Kumar Madhavan Designation: Project Manager Date: 29 th October 2008 E-Mail: [email protected]

description

Productivity Enhancements Through Software Engineering

Transcript of Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Page 1: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd

Productivity enhancements through Software Engineering

Tools

Speaker: Kumar MadhavanDesignation: Project ManagerDate: 29th October 2008E-Mail: [email protected]

Page 2: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 2

Agenda

1 Background

2 Tools Used in SDLC

3 Conclusion

Page 3: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 3

Background

Page 4: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 4

History1994: 16% of projects succeeded[1]

Average cost over run 180%

2004: 35% IT project being on time and within budget[2]

Average cost over run 43%

2007: 65% of IT Projects succeeded[3]

Effort < 200 person weeks

Nearly 70 percent of really big IT projects fail[4]

[1] – Standish Report 1994[2] – Standish Report 2004[3] - A rival report to CHAOS by Sauer, Gemino, and Horner Reich[4] - Royal Academy of Engineering

Page 5: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 5

Agenda

Cost

Quality

ScheduleScope

Understand suitability of tools across SDLC

Identify appropriate tools for

Development,

Maintenance and

Service projects

Case Studies on Usage of Tools

Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 6: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 6

Tools

Requirements Management Tools Design Tools Unit Testing Tools System Testing Tools Performance Testing

ToolsRequisite ProCaliber RMDoors

Rational RoseER-WinPoseidonRose Real time

PurifyQuantifyPureCoverageBoundsCheckerJtestTrue TimeTrue coverageRational Test Real time

Rational RobotWinrunnerQuick Test ProfessionalSilk Test

Rational Load TestLoad runnerSilk Performer

SCM Tools

ClearCaseLT; Visual Source Safe; Starteam; CVS; Subversion

Test Management Tools

Rational Test Manager; Test Director; Star Team

Page 7: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 7

Requirements Management

Page 8: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 8

Why Requirements Management?Requirements errors cost US businesses more than $30 billion peryear [4]

[4] - an article by Donald Firesmith for the Software Engineering Institute

Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 9: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 9

Requirement Tools Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Name of the Tool Supported Platform

URL

DOORS/DOORSrequireIT

Windows & Unix www.telelogic.com

Rational Requisite Pro

Windows www.rational.com

Vital Link Windows www.complianceautomation.com

Caliber RM Windows www.borland.com/caliber

RTM Windows & Unix www.chipware.com

Cradle REQ Unix www.threesl.com

RDT Windows www.igatech.com/rdt

Page 10: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 10

Requirement Tools Criteria Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Features IntegrationClassification of RequirementsHierarchical Req. Relationship TraceabilityChange History Attributes Customizing the ToolRequirements MetricsTraceabilitySecurity

Project Management ToolsSCM ToolDesign ToolTesting Tools

TrainingLearning CurveAvailability of Templates

Page 11: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 11

Requirements Management – Requisite Pro Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Creating RequirementsClassification of RequirementsLinking Requirements

Page 12: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 12

Requirements Management – Attributes Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Default AttributesTracking of RequirementsAdding new Attributes

Page 13: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 13

Requirements Management – Change Management Requirem

ents AnalysisD

esignCoding

Unit TestingFunctional Testing

SCM

View the changeswho, what,why, and when

“The team can keep up withthe requirements as they change and mature."

Page 14: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 14

Requirements Management – Traceability Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

“It’s very easy to skip over requirements or make assumptions. RequisitePro drives us

to make sure we've covered everything.”

“With RequisitePro's suspect links, all team members can

immediately see changesthat are made…”

Page 15: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 15

Requisite Pro Case Study – Usage in a Leading Telecom Customer in US Requirem

ents AnalysisD

esignCoding

Unit TestingFunctional Testing

SCM

Easy traceability from the Requirements phase to Acceptance phase.

Good in knowing whether client’s expectations are met.

For big project teams, this is very good.

RequisitePro guarantees success of a Project by giving teams the ability to manage all project requirements, facilitating team collaboration and communication.

Not even a single requirement missed at any stage.

Page 16: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 16

Design Tools

Page 17: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 17

Why Design Tools? Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Tools help manage the visual design of the software system .Brings Consistency in understanding the design.Enforces the basic rules of design, based on the methodology chosen. (UML etc)Helps generate code templates from the design reducing the effort needed in coding.Tool helps reverse engineer code into design reducing re-documentation effort.HTML document generation for on-line document reviews.

Page 18: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 18

Design Tools Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Tool Platform URL

Rational Rose Enterprise Unix/Win www.rational.com

MS Visio Windows www.microsoft.com

TogetherJ Unix/Win www.togethersoft.com

Describe Unix/Win www.embarcadero.com

Rhapsody Unix/Solaris www.ilogix.com

Posiedon Windows www.gentleware.com

UML Design Tools:

Database Design Tools:Erwin Windows www.ca.com

ER Studio Windows www.embarcadero.com

Page 19: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 19

Design Tool Criteria Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Features FeaturesDiagram Support

Use Case DiagramsClass DiagramsSequence DiagramActivity DiagramCollaboration DiagramState DiagramComponent DiagramDeployment Diagrams

Round trip engineeringCode GenerationReverse EngineeringBasic Report Generation

Integration

Other FeaturesModel comparisonMulti UserPackagesPlatformXMI format.HTML documentation

Customisation

Project Management ToolsSCM ToolRequirements Management ToolsTesting Tools

Page 20: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 20

Design Tool Criteria Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 21: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 21

Design Case Study – Usage in a Leading Financial Customer in UK Requirem

ents AnalysisD

esignCoding

Unit TestingFunctional Testing

SCM

Learning Effort – 3 Person Weeks

Usage Effort – 10 Person Weeks

Benefits

Code Generation: 35 Kloc of code was generated by tool out of total 110kloc i.e. 31.81% of automatic code generation.

Design Synchronisation: - Design and Code Intact

In general 4-8% of Code Generation is possible using Design Tools

Page 22: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 22

Code Generation Tools

Page 23: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 23

Code Generation Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Automated building of high-level code

Tools range in size and complexity

Simple code parsers to fully featured class and tier builders

For Java and EJBs:interfaces, classes and beans from a description of the tables

Web Pages

For .NETASP.NET (web pages)

ADO.NET (DB connection classes) applications

Page 24: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 24

Code Generation Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

1) The Design Patterns 2) The Domain Meta-Data3) The Domain Rules

Page 25: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 25

MDA – Model Driven Architecture

Technology Pattern ExampleCreated a new technology pattern that creates a simple EJB modelContaining EJBSessionComponents with some predefined methods and tags.

Implementation Pattern ExampleCreates a simple utility class for Web components so that code is generated in addition to the other code generated for Web components.To get calendar control for data type in all the web pages

Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 26: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 26

Optimal J - Usage Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 27: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 27

Code Generation Case Study: A Leading Retail Giant in US Requirem

ents AnalysisD

esignCoding

Unit TestingFunctional Testing

SCM

Objective: To validate Usage of MDA

Technology: J2EE

Zero Touch Code for CRUD (Create, Read, Update and Delete) application

Presentation Tier – JSP

Middle Tier – EJB

Data Tier – SQL Scripts for Database

Page 28: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 28

Software Configuration Management

Page 29: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 29

Why Software Configuration Management? Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Managing Parallel ReleasesGreater Drive towards reduction in Time to Market

Multi-Vendor handling different modules

Different Vendors handling different releases

Maintaining all the changes and archiving information for easy accessibility by the team is difficult to enforce in manual systemGeographically Diverse Team accessing Code

Risk of changes made by one team member being overwritten by another

Page 30: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 30

Why Software Configuration Management? Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Name of the Tool Supported Platform

URL

MS – Visual Source Safe Windows www.microsoft.comPVCS Windows & Unix www.merant.comClearCase Windows & Unix www.ibm.comCVS Windows & Unix http://www.nongnu.or

g/cvsSubversion Windows & Unix http://subversion.tigris

.orgCVS for NT Windows http://www.cvsnt.org/

Page 31: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 31

SCM Tool Criteria Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Basic featuresRepositoryCheck-in/check-outFile viewingLocking mechanismSecurity featuresRecreation of versions

Desirable FeaturesDifference reportingBranch & MergingVersion LabelingBuilding an applicationPromotion groupsAbility to compress files

Features FeaturesAdvanced Features

Event TriggersKeyword expansionWeb Interface

IntegrationProject Management ToolsRequirements Management ToolDesign ToolRequirements Management ToolsTesting Tools

Page 32: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 32

SCM Case Study – A Leading Health Care Customer in USTeam Size: 50+

Duration: 20 Months

Code Base: Java & AS400

Correct Workspace reducing rework and errors

Owners identified for Shared Code

Dedicated group of functional consultants to define tree for clear replication of functionality.

Exclusive checkouts only! Making SCM well defined & disciplined

All release checklists made dynamic & kept under version controlfor correct relevance. No release compliant!

Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 33: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 33

Unit Testing Tools

Page 34: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 34

Activities in CUT Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Coding Testing

Coding Standards

Review

Logic

Stubs & Drivers

Profiling

Bottle Necks

Memory Leaks

Code Coverage

Page 35: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 35

Unit Testing Tool Criteria Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Features IntegrationCoding Standards

Best PracticesCreation and Customisation

Unit TestingTest Case CreationStub CreationCoverage AnalysisRegression Testing

Memory ProfilingPerformance AnalysisReports

Violation ReportsUnit Test ReportCoverage Analysis

Design ToolIntegrated Development EnvironmentSoftware Configuration Management

Page 36: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 36

Static Analysis & Unit Testing - JTest Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 37: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 37

JTest Case Study: A Leading Retail Giant in US Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Code Base: 10 KLoc

Benefits:Time Saving

Reduced time for Test Case PreparationReduced time for Code Review for Coding Standards (90% reduction)Reduced time for Test Case Execution (80% reduction)

Better Coding Standard adheranceAccurate Reports

On Coding Standard ViolationTest Execution ReportCode Coverage andClass Metrics

Page 38: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 38

Memory Profiling Tools Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Identification of leaksMemory FragmentationMemory Overuse Memory BottlenecksSees how much memory the application uses in response to particular user eventsAnalyse memory usage by function, call stack, and block size

Tool Platform supported URLJProbe Suite Windows/Solaris www.quest.comOptimizeIT Suite Windows/Solaris / Linux www.borland.com

Page 39: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 39

JProbe Profile Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Pinpoints performance bottlenecks Analyzes performance

Zeros in on critical code

Specifies desired level of detail collection

Page 40: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 40

JProbe CaseStudy – A Project in Enterprise Domain Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Platform: Java / J2EELearning Effort: 22 PHTool Usage Effort: 200 PH.

200+ memory leaks were found for the code base of 800KLOC Many Bottlenecks were found.Initial Coverage was 65% and 10% more errors were found due to increased coverage.Achieved Coverage of 94%Saved 90% of the effort to identify bugs

Page 41: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 41

Functional Testing Tools

Page 42: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 42

Functionality Testing Tool Criteria Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Ease of UseTool CustomizationPlatform & Browser Support Test Language FeatureTest Control FeaturesSupport for Reusable libraryData Driven Test and Data GenerationGood Support for Verification/Check PointSupport for Running Batch Script

Features

IntegrationTest Management ToolsRequirements Management ToolChange Management ToolSCM Tool

Page 43: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 43

Template Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Tool NameSupported Platforms URL

WinRunner Win95/98/NT/2000 www.merc-int.comSilkTest Win95/98/NT/2000 www.segue.comFunctional TesterPerformance Tester Win95/98/NT/2000 www.rational.comQA Run Win95/98/NT/2000 www.compuware.com

Page 44: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 44

Rational Robot - Perspective Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Page 45: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 45

Rational Robot Case Study – A Leading Gas Supplier in UK Requirem

ents AnalysisD

esignCoding

Unit TestingFunctional Testing

SCM

Test Cases: 70

Benefits

Cost Savings: Reduction in the testing team size from 8 to 5.

Reduction in Testing Cycle time

Higher error capture during testing

Ease in Transition

High resource retention

Higher Client Satisfaction

Page 46: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Wipro confidential © Copyright 2007 Wipro Ltd 46

Conclusion

Page 47: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 47

Tools and Usage Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Tool Usage LeaversRequirements Management

RequirementsChange ControlImpact Analysis

QualityReduced Rework

Design Tool OOAD Code Generation andCode Synchronisation

Productivity ImprovementReduced Rework

Code Generation Tool

Code GenerationUnit Test Case Generation

Productivity ImprovementQuality Adherence to Standards

SCM Base Line Creation Configuration Management

Reduced errors

Unit Testing Code ReviewUnit TestingCoverage and Profiling

QualityProductivity

Functional Testing Integration TestingRegression Testing

Productivity ImprovementQuality

Page 48: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 48

Benefits of Automation Requirements Analysis

Design

CodingUnit Testing

Functional TestingSCM

Controlled Project ExecutionReduces Manual WorkRepeatability in MinutesImproved Code QualityReports in Hand

Page 49: Productivity Enhancements Through Software Engineering Toolsv1 0_oct08

Confidential © Copyright 2007 Wipro Ltd 49

Thank You