developing reusable .net software components
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.TRANSCRIPT
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
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 [email protected]://www.researchgate.net/profile/Gopal_Jamnalhttp://bcu-cse.wikia.com/wiki/Gopal_Jamnal