By Nirosh | 30 May 2010 | Unedited contribution
This article helps to understand the OOP concepts focusing on .Net/ C#. This is written in the form of asking questions and writing answers to them, making it easy to understand.
Principio del formulario
• 1. Introduction
• 2. Background
• 3. Prerequisites
•4. The Main Content
o 4.1. What is Software Architecture?
o 4.2. Why Architecture is important?
o 4.3. What is OOP?
o 4.4. What is an Object?
o 4.5. What is a Class?
o 4.6. How to identify and design a Class?
o 4.7. What is Encapsulation (or information hiding)?
o 4.8. What is Association?
o 4.9. What is thedifference between Association, Aggregation and Composition?
o 4.10. What is Abstraction and Generalization?
o 4.11. What is an Abstract class?
o 4.12. What is an Interface?
o 4.13. What is the difference between a Class and an Interface?
o 4.14. What is the difference between an Interface and an Abstract class?
o 4.15. What is Implicitand Explicit Interface Implementations?
o 4.16. What is Inheritance?
o 4.17. What is Polymorphism?
o 4.18. What is Method Overloading?
o 4.19. What is Operator overloading?
o 4.20. What is Method Overriding?
o 4.21. What is a Use case?
o 4.22. What is a Class Diagram?
o 4.23. What is a Package Diagram?
o4.24. What is a Sequence Diagram?
o 4.25. What is two-tier architecture?
o 4.26. What is three-tier architecture?
o 4.27. What is MVC architecture?
o 4.28. What is SOA?
o 4.29. What is the Data Access Layer?
o 4.30. What is the Business Logic Layer?
o 4.31. What is Gang of Four (GoF) Design Patterns?
o 4.32. What is thedifference between Abstract Factory and Builder design patterns?
• 5. What is the Conclusion?
• 6. What I Referred?
• 7. History
I have noticed an increase in the number of articles published in the Architect category in code-project during the last few months. The number of readers for most of these articles is also high, though the ratings for the articles are not.This indicates that readers are interested in reading articles on Architecture, but the quality does not match their expectations. This article is a constructive attempt to group/ define/ explain all introductory concepts of software architecture for well seasoned developers who are looking to take their next step as system architects.
One day I read an article that said that the richest 2 percentown half the world's wealth. It also said that the richest 1 percent of adults owned 40 percent of global assets in the year 2000. And further, that the richest 10 percent of adults accounted for 85 percent of the world's total wealth. So there is an unbalanced distribution of wealth in the physical world. Have you ever thought of an unbalanced distribution of knowledge in the software world?According to my view point, the massive expansion of the software industry is forcing developers to use already implemented libraries, services and frameworks to develop software within ever shorter periods of time. The new developers are trained to use (I would say more often) already developed software components, to complete the development quicker. They just plug in an existing library and somehow manage to achieve the requirements. But the sad part of the story is, that they never get a training to define, design the architecture for, and implement such components. As the number of years pass by, these developers become leads and also software architects. Their titles change, but the old legacy of not understanding, of not having any architectural experience continues, creating a...