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
![Page 1: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/8.jpg)
Domain-Software Engineering
8
The success of software component is utterly based on domain knowledge.
![Page 9: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/11.jpg)
Guidelines framework
11
![Page 12: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/14.jpg)
GUI: Reusability(%)
14
![Page 15: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/15.jpg)
Architecture of .NET Guider(Proto Type) Tool
15
![Page 16: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/16.jpg)
16
GUI of .Net Guider (Proto Type) Tool
UI: 1Create or View component
![Page 17: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/17.jpg)
17
UI: 2Hand picked guidelines
GUI of .Net Guider (Proto Type) Tool
![Page 18: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/18.jpg)
18
UI: 3Input parameters
GUI of .Net Guider (Proto Type) Tool
![Page 19: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/19.jpg)
19
UI: 4Repository for catalogue service
GUI of .Net Guider (Proto Type) Tool
![Page 20: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/20.jpg)
20
Output:
Generated Code File
Bug Free Code compilation in VS 2010
![Page 21: Developing reusable .NET software components](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042614/559b49501a28abb42e8b47f7/html5/thumbnails/23.jpg)
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