A Software Engineering Perspective for Development of Enterprise Applications

A Software Engineering Perspective for Development of Enterprise Applications

Anushree Sah (University of Petroleum and Energy Studies, India), Shuchi Juyal Bhadula (Graphic Era University, India), Ankur Dumka (University of Petroleum and Energy Studies, India) and Saurabh Rawat (Graphic Era University, India)
DOI: 10.4018/978-1-5225-5384-7.ch001

Abstract

Enterprise applications are the DNA of any organization, and they hold the business logic, handle large amount of data, support multiprogramming, are easily maintainable, scalable, have high performance and are able to choreograph or orchestrate modules, and are fortified from attacks and vulnerabilities. These enterprise applications are the backbone of any organization and enhance the productivity and efficiency of the organization to a greater extent, thus ensuring the continuity in the business. So, after seeing the need and development of enterprise application, in this chapter, the authors present the idea of developing and discussing enterprise applications.
Chapter Preview
Top

Introduction

The term enterprise refers to a large, for profit organization, which is a group of individuals or entities, apparently working in coordination towards accomplishing some common goals. Intel, General Motors, Wal-Mart, Bank of America, or eBay are some of the examples of large enterprise. Information sharing and dispensation, management of resources and customer relations, handling clients, utilization of knowledge base of business etc. are some of the fundamental requirements which are common to every enterprise. Methods and techniques are required to manage and track the working processes in an enterprise. Collection of software or applications which are developed to assist an organization to solve enterprise problems is referred as Web-based enterprise applications. Organizational systems and procedures are implemented and handled through Management Information System (MIS). Advancement of technologies like IoT (Internet of Things), Cloud and Big Data result into a shift towards new technologies like Web information systems and distributed information systems. At the core, an enterprise still requires an information systems that facilitates management at all levels, hence the term Management Information Systems is still rewarding. To link MIS up with the recent advancements, new components have to be integrated to an existing MIS. In addition, IoT developments should not be considered only as technology driven terms but introduced as a socio-technical viewpoint (Shin, 2014).

A combination of two words, “enterprise” and “application” results into very large and complex software that enables a business enterprise to hold and track their work and information flow. Presently, Web-based enterprise applications are driven by integration of technologies like IoT, distributed systems, big data and cloud computing. These technologies offer a major impact on architecture of an enterprise application. This integration if merged with the existing architecture will significantly change the existing architecture into an interactive architecture. The architecture should be ideal, self-understanding and ubiquitous to observe the current and future needs of the system. The IoT, is a new technology paradigm which globally connects components (machines and devices) through network and facilitate communication and interaction among them. IoT is gaining lots of attention from a wide range of industries as it attempts to provide communication and integration among diverse components of an enterprise. Gartner (2014) predicts that the IoT will reach 26 billion units by 2020, up from 0.9 billion in 2009, and will blow the information available to supply chain partners and the way they operate. IoT when integrated with Web-based enterprise applications will transform business processes into self-updating processes by providing more accurate and real-time visibility. Development of Web-based enterprise applications in integration with the current technologies is a need of hour. These systems are required to be updated and maintained with the emergence of new technologies. Maintenance in Web-based applications should always be a lightweight iterative process. This process may be repeated several times based on user's/customer’s requirements but will not fundamentally modify the Web-based application (Choudhari & Ugrasen, 2015).

Web-based enterprise applications are flexible enough to integrate with other Web-based enterprise applications through interfaces and deployed across a variety of networks. These applications are to be designed in such a way that they are secure and customizable.

Some common and generalized Web-based enterprise applications are listed as follows:

  • Automated billing systems

  • Payment processing

  • Email marketing systems

  • Customer Relationship Management (CRM)

  • Enterprise Resource Planning (ERP)

  • Business Intelligence (BI)

  • Business Continuity Planning (BCP)

  • Enterprise Application Integration (EAI)

  • Enterprise Content Management

  • Enterprise search systems

  • Enterprise Messaging Systems (EMS)

  • Call center and customer support

  • Human Resource Management (HRM) systems.

Key Terms in this Chapter

Architecture Description Languages (ADLs): ADL provides features for representation of eminent system architecture separate from system implementation. ADL must support the architecture components, their interaction, and interfacing.

Functional Requirement: In functional requirement we capture what the system is about to do. These requirements are gathered using use cases and prototypes.

Prototyping: A prototype is an early working module of software with basic functionalities. Prototyping is the process of creating prototypes of software applications. It gives an idea to the manufacturer about the final look of the software.

Use Cases: A use case is a list of actions or event steps typically defining the interactions between internal and external agent/actors and a system.

Non-Functional Requirement: It is concerned with the way a system is expected to behave within the constraints and expected quality of service. Non-functional requirements are used to judge the operation of a system, rather than specific behaviors.

UML: UML stands for unified modeling language. It is a pictorial language that serves as a standard for software requirement analysis and design documents.

Complete Chapter List

Search this Book:
Reset