StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

The Role of Software Architecture - Assignment Example

Cite this document
Summary
The paper "The Role of Software Architecture" explains that in software engineering, software architecture instinctively defines the abstract level organization of the software elements, their relationships, and characteristics to aid in understanding the behavior of the software system…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER98% of users find it useful
The Role of Software Architecture
Read Text Preview

Extract of sample "The Role of Software Architecture"

Introduction In software engineering, the software architecture instinctively defines the level organization of the software elements, their relationships and characteristics in order to aid in understanding the behavior of the software system. Moreover, the concept of the software architecture facilitates to produce software design. The software architecture behaves as a baseline proposal or design for the software development team in a way that the quality of the software application should be achieved. Whereas, on the other hand, the component based software development has become one of the emerging topics in software engineering. The software applications developed through developing and integrating software components have several benefits. Due to the benefits of the component based software development, various software component models and techniques have been researched and created. The software component models define and explain not only the software components but also the rules / guidelines for integration and composition mechanism. The concept is usually known as Component Based Software Engineering (CBSE) or Component Based Development (CBD) (Lau and Wang, 2007). The document presents an illustration of the software architecture along with the software components. The document further explains the underlying processes, models and techniques utilized in the component based software engineering. An analysis, insightful explanation and comparison of the features of the diverse underlying models are presented in this report. Based on the analysis and comparison, the report ends up with a thorough evaluation of the models using figures and tables. Software Architecture The software application architecture is a basic structure that should meet all the software application requirements including technical as well as operational. The objective of developing software architecture is that the under development software application should qualify all the quality parameters defined in the architecture. The generic quality attributes include but are not limited to the performance, modifiability, reliability, interoperability, maintainability, portability, efficiency, effectiveness and security. It is pertinent to mention here that the advantages of using the software application cannot be achieved if the software application does not accomplish the quality parameters specified in the software architecture. A definition of the software architecture provided by the Mary Shaw and David Garlan has been modified and refined by Grady Booch, Rich Reitman, Philippe Kruchten and Kurt Bittner. Moreover, the same has been provided by Microsoft at their website: “Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns.” (Microsoft, n.d) The architecture of the software application developed using the component based software engineering utilizes an application server on which several software components are implemented or installed. Usually, the combination of the software components and application server is known as distributed computing. In distributed computing, the software components installed in the computer systems manage and correspond by sending messages to each other over the computer network in order to make a complete distributed system achieving singular or a particular purpose. Usually, the financial applications such as Enterprise Resource Planning (ERP) or business applications are the real-world examples of component based software development in a distributed computing environment. Moreover, the software applications related to the telecommunication networks and real time systems include but are not limited to the industrial control systems and aircraft control systems. There are few principles or guidelines require remembering while developing architecture of the software application. The software architecture should be flexible in a way that the future / upcoming requirements or changes required by clients or users can be incorporated in the software application. The Unified Modeling Language (UML), design tools, and visualization (wherever appropriate) should be utilized for creating design in order to depict the user requirements. The process or tools can facilitate to take informed design decisions for achieving quality factors of the software application; moreover, it helps to reduce the risks associated with the development of the software application. It is pertinent that the software architecture should be utilized as a communication tool between all the stakeholders of the project (software application). As the result of communication, the software architecture should be updated as per changes mutually recommended by all the stakeholders. By following the above key principals, the software architecture can be employed as the base document for developing software application considering all the quality parameters. Software Components In the component based software engineering or component based software development, pre-built software units can be utilized to develop a software application. And even if software units which required to be built for the particular software can be re-utilized in the development of software application, where appropriate. By utilizing this approach, the components (units / parts) are developed individually or separately which are required to be integrated to form a complete system (software application). The component based software development has numerous benefits due to which the concept is getting popularity day by day. Some of the benefits of using the component based software engineering methods and techniques include: the increased reusability, reduced time of development, less effort, and therefore ultimately the production cost of the systems is reduced. In order to avail all the benefits of the component based software engineering, it is vital that the software components can easily be reused and they should be reusable in an efficient manner. Moreover, the mechanism for composition or integration of the software components should be completed smoothly and systematically. Therefore, the guidelines for the procedure of software component integration should be defined and known to all the team members. Usually, such guidelines are available in the underlying software component models. Component Based Software Engineering Models A model of the component based software engineering defines standards for the documentation, development, implementation and deployment of the software application to be developed. The software component models spell out that how the diverse components of the software application would be integrated. Moreover, the component models provide guidelines for defining interfaces between the software components along with the requisite elements required for integration. There are various software component models include but not limited to the COM, JavaBeans, EJB, Koala, Web services, CCM, KobrA, UML, Fractal, and PECOS. This report comprises of the four (4) basic component models include: Component Object Model (COM) model, Common Object Request Broker Architecture (COBRA) model, Enterprise JavaBeans (EJB) model and .Net model. The remaining software component models have been omitted in this report keeping in view that the selected component models represent vital categories of the current software component models. The next section of the report provides a description and analysis of component models along with a thorough comparison of the models by utilizing different tables and diagrams. Component Object Model (COM) The Component Object Model (COM) is one of the fundamental standard models for software component commenced by the Microsoft. The COM is developed for smooth communication between the software components and usually, the dynamic objects can be created by utilizing COM. The Microsoft does not make use of the COM as a basic model for software components but also it is the foundation of many other Microsoft frameworks and technologies include: the Object Linking and Embedding (OLE), Distributed Component Object Model (DCOM), ActiveX, DirectX and Windows shell / runtime. Basically, the COM is platform independent that creates binary software components interact with each other to achieve a single objective. The COM facilitates object oriented programming (OOP) languages (such as C++, ASP, etc.) to reuse software components and simplifies the deployment of the COM objects. The facility of the component object model can be availed by utilizing the basic concepts of the objects and interfaces. The COM object is moderately an intangible concept which can be implemented in any object oriented programming language. The actual data stored in the object cannot be directly accessed by the programmer; however, the COM objects can only be accessed by utilizing the set of interfaces exported by the object. The COM objects can be referenced by a pointer to the interfaces of the objects, as many interfaces are supported by a single object. There are different ways by which the COM objects can be created in diverse programming language, for instance, in C++ ‘new’ operator is used to create a simple object. The COM object is created by calling the COM library API is known as ‘CoCreateInstance ()’. And similarly, the COM object can be deleted by using ‘Release ()’ method (Dunn, 2000). The following diagram explains that many interfaces are pointing to a single object (Dr. Dobbs, 1996). Figure 1: - A COM Component supporting three (3) Interfaces (A, B, C) As far as an interface is concerned, it is not considered as a class even though instance can be instantiated (created) to develop or form a COM object. The interfaces do not have implementation body, therefore, an interface cannot be created or instantiated by itself. The interfaces are not COM components; however, they are functions’ related group. Common Object Request Broker Architecture (CORBA) Object Management Group (OMG) developed a standard known as Common Object Request Broker Architecture (CORBA) to integrate software components created in several computer programming languages forming a software application. The COBRA has ability to support software component running on a number of computers having diverse operating systems to work together (CORBA, 2012). There are quite a lot of methods through which the CORBA objects operate (get values) include: the object by reference, data by value and objects by value. Object references correspond to the interface of the real world object, the CORBA objects can be passed by reference as the object references are lightweight. On the other hand, the method ‘Data by Value’ is utilized while passing data instead of the CORBA objects. The data can have different data types include but are not limited to the integer, float, double, enums, struct, etc. It is pertinent to mention here that both the methods ‘data by value’ and ‘object by reference’ can be implemented at the same time while enforcing strong data typing. The CORBA objects can be passed by value and the method is known as ‘Object by Value’ (OBV). Figure 2: - CORBA Environment The CORBA model provides a technology independent environment. It means that the software components developed in C, C++, Java, Pascal, FORTRAN or any other computer programming language can be integrated together to form a single cohesive system design model. Furthermore, the software units developed in their respective languages can be tested independently or individually that joined together to develop a complete software system. Moreover, the CORBA model is operating system independent as well, meaning that the CORBA objects are available for every operating system including the Linux/Unix, Sun Solaris, Windows, etc. Enterprise JavaBeans (EJB) Enterprise software applications can be developed by a prearranged and server-side component architecture known as Enterprise JavaBeans (EJB). The EJB technology is developed for implementation over the Java platform particularly the Enterprise Edition (Java EE). The EJB technology is developed by IBM, and adopted and enhanced by the Java Community Process. Many top companies (such as Oracle, Sybase, Visigenic, and Symantec etc.) have developed products that can be utilized with EJB technology and adhere to the specifications of the EJB. Figure: - 3 Usage Scanario of the EJB in J2EE The objective of the Enterprise JavaBeans model is similar to the COM and CORBA i-e providing a standard approach to integrate and implement the back end software components forming an enterprise software application. The EJB technology (software component model) facilitates the computer programmer for not developing the common but vital software development concerns like the data integrity, security and persistency. In this way, the computer programmer can concentrate on the core problem and implementing its solution through programming language (Oracle, 2013). .Net Software Component Model The .Net component model (also known as .Net Framework) has been developed by the Microsoft that first and foremost created to run on Microsoft Windows. The .Net component model has a huge Bass Class Library (BCL), moreover, it provides a programming language interoperability (ability of running two diverse programming languages to interact natively). The .Net framework facilitates the programmers to utilize the source code written in one language in other programming languages. Common Language Runtime (CLR) is operated (in contrast to the hardware environment) by the .Net framework to run as application virtual machine for the provision of inbuilt services includes: the security, exception (unexpected events during program execution) handling and computer memory management. Basically, the .Net framework is a combination of the Common Language Runtime (CLR) and the Base Class Library (BCL) (Chaudron, 2009). Figure 4: - Architecture of the .Net Framework The facilities provided by the BCL include: the provision of easy to use user interface, establishing connection with the databases, accessing data from the databases, cryptography (ascertaining secure communication), network communication and development of web applications. In order to avail all the facilities of the .Net Framework, the software application programmers combine their own written source code with .Net Framework’s BCL. One of the remaining design features of the .Net Framework is portability that facilitates the users to run software applications without considering the underlying operating system (platform independence) (Gillani and Gillespie, 2005). Comparison of COM and CORBA The following table provides the comparison of the strengths (advantages) of using the Component Object Model (COM) and Common Object Request Broker Architecture (CORBA) (Pritchard, 1999). S # CORBA Strengths COM Strengths 1. OMG’s CORBA is provides well-built support for Unix and Mainframe operating systems. Therefore, it can be stated that the CORBA operates on cross platform and multi-vendor support is available. Microsoft’s COM is developed for running on Microsoft Windows platform. The COM operates on a single operating system. 2. CORBA is known as one of the industry standards. COM is not an industry standard. 3. Simple programming interface. A facility of the Graphical User Interfaces (GUI) that easily support backward compatibility of interfaces for an object. 4. Tool support is available for CORBA include: the Ada, C++, C, Ruby, Java, COBOL and Python. The programming languages are relatively old. Tool support is available for not only Microsoft Technologies (Visual Basic, Visual C++, J++, etc.) but also the non-Microsoft technologies include: the Python, Delphi, and AlexMartelli. Although, all the technologies are Microsoft Windows based. 5. CORBA provides facility for the objects to activate during the process; however, certain limitations are there. Superior support for well grained objects, ability to activate during the process, moreover, no obligation for the maintenance support. 6. Data driven interface of the CORBA furnishes capability of calling objects or interfaces dynamically during run time. 7. The interfaces of the CORBA have multiple ‘inheritance’ (Makhija, 2012). However, the COM provides single interface inheritance but even though does not promote its usage, whereas, the COM favors or encourages the use of the multiple interfaces. Analysis Both the software components COM and COBRA are utilized to resolve the object oriented communication problem while the interaction of computer systems. The above table shows that the strengths of both software component models complement each other. The software component models can be categorized into the component semantics as well as the component syntax. Keeping in view the given kinds, the COM and COBRA can be categorized into the component semantics (classes, objects and architectural units) and component syntax (Object Oriented Programming languages, Programming languages with IDL mappings and Architecture Description Languages). The COM software component model falls into the object component semantics, however, the COBRA software component model categorized as the architectural units. Similarly, while categorizing the COM software model by component syntax, it can be grouped into the programming languages with IDL mappings. And, the CORBA into the architectural description languages. The weaknesses of the COBRA include: the incompatibilities while implementation, deficiencies in design and processes. Comparison of .Net and Enterprise JavaBeans Software Component Models The following table furnishes a thorough comparison on the basis of the strengths and weaknesses of the .Net and Enterprise JavaBeans (EJB) software component models (Khan and Hussain, n.d) S # .Net Component Model Enterprise JavaBeans Component Model 1. The vital benefit of the .Net component model is the provision of enhanced security. One of the main advantages of the EJB component model is its high usability due to a simple user interface (Haefel and Burke, 2006). 2. The .Net component model provides multiple programming language support includes: Visual Basic .Net, Active Server Pages .Net, C sharp (C#), Visual C++ and JScript .Net. The EJB supports various technologies include: the servlets, Java Message Service (JMS), Java Server Pages (JSP), Java Connector Architecture (JCA), and Java Database Connectivity (JDBC). 3. The .Net framework supports object oriented programming languages. The EJB has layered architecture in which the presentation logic layer presents the Servlets and JSP that are separated from the business layer (EJB component) allowing various types of presentation logic. 4. The software can be developed rapidly due to the simple and easy to use graphical user interface (GUI). The EJB provides a stable and high quality coding environment and has multiple vendor support. Conclusion The component based software development is a better choice due to reusability, simplicity, effective development due to reduced effort and time. From the many software component models, four (4) models were discussed thoroughly in this report. Every software component model has its own environment, for instance, the .Net framework requires an intermediate language runtime environment. Similarly, the J2EE smoothes the progress of the EJB to work on any platform using Java Virtual Machine (JVM). This report presented an overview of the software architecture, software component, software component models and comparison of their strengths. It has been identified that the software component models have their own strengths and weaknesses. Based on the advantages and disadvantages, it is difficult to state which software component model has the best characteristics. Therefore, it is stated that based on the requirements of the clients or user, the programmers can utilize any of the software component model. The programmers just need to consider that the selected software component model should be able to fulfill the requirements of the clients or users. Reference List Chaudron, M. R. V., 2009. Component Based Software Engineering. Leiden Institute for Advanced Computer Science CORBA., 2012. CORBA/E Resource Page. Retrieved from: http://www.corba.org/corba-e/index.htm Dr. Dobbs., 1996. The Component Object Model: Technical Review. Retrieved from: http://www.cs.umd.edu/~pugh/com/ Dunn, M., 2000. Introduction to COM Object – What It Is and How to Use It. Retrieved from: http://www.codeproject.com/Articles/633/Introduction-to-COM-What-It-Is-and-How-to-Use-It Gillani, F. S., and Gillespie, M., 2005. The .Net Component Model. Apress, pp 343 – 395 Haefel, R. M., and Burke, B., 2006. Enterprise JavaBeans – Developing Enterprise Java Components. OReilly Media Khan, S. A., and Hussain, W., n.d. Component Based Software Development with EJB and .Net. Malardalen University, Department of Computer Science and Electronics, Sweden Lau, K and Wang, Z., 2007. Software Component Models. IEEE Transactions on Software Engineering, Vol. 33. No. 10 Makhija, N., 2012. CORBA concepts and Architecture. Retrieved from: http://www.slideshare.net/nupurmakhija1211/corba-concepts-corba-architecture Microsoft., n.d. What is Software Architecture? Retrieved from: http://msdn.microsoft.com/en-us/library/ee658098.aspx Oracle., 2013. Enterprise JavaBeans Technology. Retrieved from: http://www.oracle.com/technetwork/java/javaee/ejb/index.html Pritchard, J., 1999. COM and CORBA Side by Side: Architectures, Strategies, and Implementations. Addison-Wesley Professional, p. 203-244 Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(“The software architecture Assignment Example | Topics and Well Written Essays - 3000 words”, n.d.)
Retrieved from https://studentshare.org/logic-programming/1623762-the-software-architecture
(The Software Architecture Assignment Example | Topics and Well Written Essays - 3000 Words)
https://studentshare.org/logic-programming/1623762-the-software-architecture.
“The Software Architecture Assignment Example | Topics and Well Written Essays - 3000 Words”, n.d. https://studentshare.org/logic-programming/1623762-the-software-architecture.
  • Cited: 1 times

CHECK THESE SAMPLES OF The Role of Software Architecture

Role of Software Architects

Over and above the outlined roles, application design and application security constitute the role of software architects in software design and development (Javier & Mario, 2005).... In reviewing codes and carrying out mentoring programs on software designs, it is easy to determine and point out areas of software architecture that need to be improved or advanced.... Example of software architecture Role Software architecture employs massive data computation in every aspect of software design and development of software structures....
4 Pages (1000 words) Research Paper

Literature Review: The Use of Patterns in Architecture

software architecture Knowledge Management.... In an article by De Boer, R, C and Jansen A, Architectural knowledge: Getting the core: Quality of software Architectures.... An essay "Literature Review: The Use of Patterns in architecture" claims that architecture patterns seek to bring forth usable ideas through which people and communities can follow in the construction of their buildings.... The use of patterns in architecture represents the view of using archetypal and reusable descriptions as representations of architectural design ideas....
8 Pages (2000 words) Essay

Architecture as Industry / Architecture and the Author

This essay "architecture as Industry / architecture and the Author" shows that this is a wide range of activities that are involved in building and erecting structures.... he last stage in architecture is the construction of building and structure.... The authors of these historic sites are renowned architectures with vast experience and knowledge of architecture....
7 Pages (1750 words) Essay

How UML and Agile Development Fit Together

Software validation: A software architect plays the role of validating software for a company especially when such software has been outsourced or is new.... software architecture is the designing and implementation of a high-level structure of software.... While other forms of software design are largely about algorithms and data structures, software architecture is mainly about the elements, forms, and rationale of the design at a larger scale (Clements et al....
4 Pages (1000 words) Essay

Software Architecture

One important aspect of software architecture is the identification and characterization of the components at a generally higher level of abstraction i.... The paper "software architecture" presents an overview of the most commonly used architecture styles and patterns.... software architecture represents the high-level structural model of a software system.... software architecture is important with regard to the several purposes it fulfills....
6 Pages (1500 words) Term Paper

Companys Organizational Architecture - Bayer Company

From the paper "Companys Organizational architecture - Bayer Company" it is clear that the Bayer Company's organizational architecture or space is appropriate but requires upgrading.... The architecture of an organization laterally refers to the metaphorical architecture that fleshes out an organization.... Organization architecture otherwise known as organizational design or organizational space is a description of the methods of creating roles, formal reporting relationships, and processes in an organization (Williams, 2012:47)....
4 Pages (1000 words) Essay

Development of Architecture

This essay "Development of architecture" focuses on the main factors, namely, reconfiguration, revolution and recuperation.... They have so far forced the architectures to respond to conditions and challenges in a certain manner, which later led a major role in evolving architecture.... It is evident that architecture has been growing parallel to the growing technology as well as a cultural phenomenon at large.... When today's architecture is compared with that of a century ago, some of the things that cannot be ignored to be the main indicators of change are installations and designs of the architect works....
6 Pages (1500 words) Essay

The Painter of Modern Life

n this view, the role of artists is to re-imagine the eternal aspect that captures the disposition of the moment.... This annotated bibliography "The Painter of Modern Life" discusses dandyism, beauty, and the role and purpose of the artist, and defines a painter....
8 Pages (2000 words) Annotated Bibliography
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us