Developing reusable .NET software components

Preview:

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

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 2008Gopal.jamnal@mail.bcu.ac.ukhttps://www.researchgate.net/profile/Gopal_Jamnalhttp://bcu-cse.wikia.com/wiki/Gopal_Jamnal

INTRODUCTION

2

Method and tool for model-driven software development

Component based software engineering

Service oriented architecture

Research Interest

Hobbies

Photography, Music

Developing Reusable .NET Software Component

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

3

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

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.

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)

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.

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

Domain-Software Engineering

8

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

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

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

Guidelines framework

11

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.

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

GUI: Reusability(%)

14

Architecture of .NET Guider(Proto Type) Tool

15

16

GUI of .Net Guider (Proto Type) Tool

UI: 1Create or View component

17

UI: 2Hand picked guidelines

GUI of .Net Guider (Proto Type) Tool

18

UI: 3Input parameters

GUI of .Net Guider (Proto Type) Tool

19

UI: 4Repository for catalogue service

GUI of .Net Guider (Proto Type) Tool

20

Output:

Generated Code File

Bug Free Code compilation in VS 2010

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

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

23

Thank You.Gopal Singh JamnalBCom, MSc(soft eng)PhD ResearcherCentre for Software EngineeringBirmingham City UniversityGopal.jamnal@mail.bcu.ac.ukhttps://www.researchgate.net/profile/Gopal_Jamnalhttp://bcu-cse.wikia.com/wiki/Gopal_Jamnal

Recommended