23
GOPAL SINGH JAMNAL PhD researcher Centre for Software Engineering Birmingham City University, UK MSc(software engineering) Leeds Metropolitan University, UK 2013-2014 BCom Delhi University, India 2007-2011 Microsoft Certified DBA Since 2008 [email protected] https ://www.researchgate.net/profile/Gopal_Jamnal http:// bcu-cse.wikia.com/wiki/Gopal_Jamnal INTRODUCTION

Developing reusable .NET software components

Embed Size (px)

DESCRIPTION

Software Development with reuse and for reuse is the foundation of CBSE (Component based software engineering) which allow faster development at lower cost and better usability. A reusable software component works as a plug and play device, which abstract the software complexity and increase performance. This presentation address reuse guidelines based framework (known as .NET Guider) for guidelines based component development for reuse in .NET family and a RV(reuse value) metric. We have demonstrated our approach by designing a binary component as part of development for reuse based on our own .NET Reuse Guider framework. This presentation provides a number reuse analysis and metrics and a prototype (.Net Guider) tool which sits on top of the .NET architecture with built-in software development & reuse knowledge.

Citation preview

Page 1: Developing reusable .NET software components

1

GOPAL SINGH JAMNAL

PhD researcherCentre for Software EngineeringBirmingham City University, UK

MSc(software engineering)Leeds Metropolitan University, UK2013-2014

BComDelhi University, India2007-2011

Microsoft Certified DBASince [email protected]://www.researchgate.net/profile/Gopal_Jamnalhttp://bcu-cse.wikia.com/wiki/Gopal_Jamnal

INTRODUCTION

Page 2: Developing reusable .NET software components

2

Method and tool for model-driven software development

Component based software engineering

Service oriented architecture

Research Interest

Hobbies

Photography, Music

Page 3: Developing reusable .NET software components

Developing Reusable .NET Software Component

Science and Information Conference 2014 August 27-29, 2014 | London, UK

3

Dr.M.Ramachandran, G.Jamnal(2014)

Page 4: Developing reusable .NET software components

Why software components?

4

Software Industry emerged as Global Market.

Rapid demands for new Softwares in least time and cost.

Plug and Play concept. Maximize reusability to maintain business

profitability.

Page 5: Developing reusable .NET software components

Software Components

5

Independent and autonomous elements.

Abstract internal complexities(plug & play).

Loose coupled and highly cohesive.

Easy user interfaces(provider & required).

A building block for new product development.

Today’s modern ERP systems are example of Software

Component reuse on big scale.

(Council and George, 2001;Ramachandran ,2008; Zirpins et al. 2014)

Page 6: Developing reusable .NET software components

Software Component Categories

6

“for reuse” knownas producer reuse.

“with reuse” knownas consumer reuse.

The importance of CBSE was first discovered in NATOconference in 1968.

Page 7: Developing reusable .NET software components

7

Identifying the common functions.

Dependency on other components.

Optimize design.

Easy use and implementation.

Component decomposition for reuse.

A good Return on Investment (ROI)

Domain analysis for Components

Page 8: Developing reusable .NET software components

Domain-Software Engineering

8

The success of software component is utterly based on domain knowledge.

Page 9: Developing reusable .NET software components

1. Exception Handlers: fault tolerance

2. Interface Based Programming : separate

implementation from definitions

3. Delegates: flexibility and strong type function pointers

4. Use Generics “<T>” : avoid boxing/unboxing and

increase performance

9

Proposed guidelines for Component Programming

Page 10: Developing reusable .NET software components

Proposed guidelines for Component Programming

5. Abstract Classes: alter definitions

6. Façade Class: connect resources- dbconnect i.e

7. Remoting-Object Marshaling : remote objects(rpc)

8. Multi-threading : concurrency management

9. Packaging and deployment: .dlls and .exe

10

Page 11: Developing reusable .NET software components

Guidelines framework

11

Page 12: Developing reusable .NET software components

Architecture of proposed .NET Guider tool

12

Effectiveness of a software component is determined by , number of lines of code required to obtain its functionality in a new software development.

Page 13: Developing reusable .NET software components

13

Proposing a new Component RV (Reuse value) Metric:

Where:“tngp” = total number of guidelines purposed.“nga”= number of guidelines applied.“cd” = number of Component’s Description.“ngmu” = number of generic method used

Page 14: Developing reusable .NET software components

GUI: Reusability(%)

14

Page 15: Developing reusable .NET software components

Architecture of .NET Guider(Proto Type) Tool

15

Page 16: Developing reusable .NET software components

16

GUI of .Net Guider (Proto Type) Tool

UI: 1Create or View component

Page 17: Developing reusable .NET software components

17

UI: 2Hand picked guidelines

GUI of .Net Guider (Proto Type) Tool

Page 18: Developing reusable .NET software components

18

UI: 3Input parameters

GUI of .Net Guider (Proto Type) Tool

Page 19: Developing reusable .NET software components

19

UI: 4Repository for catalogue service

GUI of .Net Guider (Proto Type) Tool

Page 20: Developing reusable .NET software components

20

Output:

Generated Code File

Bug Free Code compilation in VS 2010

Page 21: Developing reusable .NET software components

ConclusionBest programming practice of

OOPS, AOP

.Net Remoting,

Thread concurrency

Design patterns.

Effective RV Metrics.

Easy and understandable Color’s logics

Repository system for catalogue services

21

Page 22: Developing reusable .NET software components

Identifying advance guidelines for :

SOA service components (HTTPS, TCP/IP or REST/SOAP)

Functional Programming(F#)

WCF (Window Communication Foundation)

Update RV metric

22

Future Work

Page 23: Developing reusable .NET software components

23

Thank You.Gopal Singh JamnalBCom, MSc(soft eng)PhD ResearcherCentre for Software EngineeringBirmingham City [email protected]://www.researchgate.net/profile/Gopal_Jamnalhttp://bcu-cse.wikia.com/wiki/Gopal_Jamnal