Skip to main content
Top

2017 | Book

Infrastructure Software Modules for Enterprises

Flexible Software Systems, Module Use-Cases, and Wireframes

insite
SEARCH

About this book

Reduce the time spent analyzing infrastructure modules while lowering your cost and resources in the process. Most software project teams that develop custom software build the systems from scratch. With limited budgets and time, they often concentrate on the business functionality and try to minimize or ignore the infrastructure functionality. This book shows you how to develop flexible and and reusable modules that can be enhanced over time.
Software infrastructure modules are the base modules in any software system. This book examines the key functionality supported by each of them and discusses the essential services for other modules.You'll explore the infrastructure modules required in large enterprise projects and each one will be explained with high-level use-cases, wireframes, and entities.
Add Infrastructure Software Modules for Enterprises to your company's library today.
What You'll Learn
Review infrastructure modules and how they interact together or with other business modules
Understand the main functionalities provided by infrastructure modules
Explore the design of infrastructure modules via use-cases, wireframes, and entities
Who This Book Is For
Project team members that implement custom portals or software systems provided by public or private sector organizations.

Table of Contents

Frontmatter
Chapter 1. Introduction to Infrastructure Modules
Abstract
There are common functionalities among software systems that make them flexible for administration and tracking. These functionalities can be considered as an infrastructure for any software system and can be organized into modules, which we will call infrastructure modules. This chapter introduces these infrastructure modules that provide common functionalities to users and to other modules that handle business operations in an enterprise.
Mohamed Farouk
Chapter 2. Localization Module
Abstract
People (persons) who use a software system need to deal with screens in a language understandable to them. They may need to extract reports from the system in a specific language. This means every software system should be flexible in supporting multiple languages and should make it easy for the system’s administrators to add new languages or modify system’s resources for a specific language. In this chapter, I discuss the Localization module. The Localization module’s main functionality is to enable software systems to support multiple languages.
Mohamed Farouk
Chapter 3. Lookups Module
Abstract
Users of a software system (persons) need to fill in forms and search for results easily. This means every software system should support the ability to select values for some field from predefined values or previously entered values. These fields are called lookups. What differentiates lookup fields from other fields in the system is that the value of a lookup has a small set of attributes (ID, Name, and Description). The Lookups module’s main functionality is to enable software systems to manage lookups and their values.
Mohamed Farouk
Chapter 4. Documents Module
Abstract
People (persons) who use a software system often need to attach documents that are required in some forms that they fill in the system. This means every software system should support the ability to define the types of documents and whether they are required or optional. In this chapter, I discuss the Documents module. The Documents module’s main functionality is to enable software systems to manage the definition of document types and manage the attached documents and their versions.
Mohamed Farouk
Chapter 5. Persons Module
Abstract
Software systems deal with people (persons). Persons can be users, customers, employees, vendor contacts, or any other role a person can perform. This means every software system should support the ability to manage persons’ data. In this chapter, I discuss the Persons module. The Persons module’s main functionality is to enable software systems to manage persons’ data and prevent the duplication of persons in the systems.
Mohamed Farouk
Chapter 6. Organization Structure Module
Abstract
This means every software system should support the ability to define organizations and positions. The Organization Structure module’s main functionality is to enable software systems to manage the definition of the organization hierarchy and the positions reporting hierarchy.
Mohamed Farouk
Chapter 7. Authentication Module
Abstract
People (persons) who use a software system need to be authenticated in order to be known to the system and to allow the system to track their operations. This means every software system should support the ability to identify who is the person currently using it. There are many methods for authentication and identification. The Authentication module’s main functionality is to enable software systems to authenticate the persons who use the system to identify them. It does this by associating persons with user accounts and managing how they will be identified.
Mohamed Farouk
Chapter 8. Authorization Module
Abstract
Persons who use a software system must not perform actions unless they are given permission to perform those actions. In addition, they must not retrieve data unless they have permission to view that data. This means every software system should be flexible in managing the permissions for its users. It should be easy for the system administrator to deny or allow users to perform actions or retrieve data from the system. The Authorization module’s main functionality is to enable software systems to manage users’ permissions on functionality and data.
Mohamed Farouk
Chapter 9. Communication Rules Module
Abstract
Persons who use a software system need to communicate, which means every software system should be flexible in defining and managing the communication among its users. The system administrator should be able to define the rules for communication. The Communication Rules module’s main functionality is to enable software systems to manage the definition of rules that control how users communicate together and evaluate these rules to ensure that every person can communicate with persons without violating the communication rules.
Mohamed Farouk
Chapter 10. Tasks Module
Abstract
To complete an operation or a process in a software system, tasks need to be assigned and performed. Some tasks are assigned to users or the system, and some tasks can be performed automatically by the system. Persons who have tasks assigned to them need to be able to manage these tasks. This means every software system should provide a mechanism to handle tasks. The Tasks module’s main functionality is to enable software systems to manage tasks assigned to persons, allowing the persons to perform, delegate, and track the tasks.
Mohamed Farouk
Chapter 11. Workflow Module
Abstract
Every organization has a set of defined business activities, or processes. Examples might include requests to be reviewed and either approved or rejected. Other examples would include complex processes to be completed by going through steps where, in every step, one or more tasks need to be performed either by a person or by the system. We call such a process and its steps a workflow. The software system should be flexible in defining workflows, their steps, and who performs them. The Workflow module’s main functionality is to enable software systems to manage workflow definitions and instances.
Mohamed Farouk
Chapter 12. Notifications Module
Abstract
Persons who use a software system need to be notified about occasional actions they should perform in the system—for example, renewing a subscription when it expires. They may need also to be notified about results of actions they performed, or about updates in a part in the system they’re interested in. This means every software system should be flexible in allowing users to choose what they want to be notified about and which notification methods they prefer. The Notifications module’s main functionality is to manage subscription to notification topics and notify interested persons.
Mohamed Farouk
Chapter 13. Follow-Up Module
Abstract
Persons using a software system may need to be reminded to do something about a record saved in the system. Based on this reminder, they will perform actions that may be inside the system or outside it. An example of an action to be performed outside the system would be making a call to inquire about an item that will be delivered from an external organization. This means the software system should be flexible in allowing users to select any record and ask the system to remind them about it within a certain time. The Follow-Up module’s main functionality is to manage these follow-ups by allowing users to create reminder requests on data records and receive notifications for these data records.
Mohamed Farouk
Chapter 14. Payments Module
Abstract
Most organizations, especially for-profit companies, provide paid services for persons who deal with them. Every person needs to pay invoices that the organization issued for them. This means the software system should be flexible in defining methods to collect payments and allowing persons to pay their invoices. The Payments module’s main functionality is to enable software systems to manage payments for invoices.
Mohamed Farouk
Chapter 15. Signatures Module
Abstract
In any organization, documents need to be signed and/or stamped by departments, employees, or people who deal with the organization. Nowadays documents usually mean electronic documents, which means every software system should support a mechanism to allow electronic and digital stamping and signing. The Signatures module’s main functionality is to enable software systems to manage signatures by defining, preforming, and validating them.
Mohamed Farouk
Chapter 16. Conclusion
Abstract
This book covered the software infrastructure modules, which are the base modules in any software systems. I discussed most of the functionalities supported by these modules, provided high-level wireframes for the UI, and discussed the entities to store the required data and relationships between them. Every module in the infrastructure modules provides essential services for other modules, whether they are system modules or business modules.
Mohamed Farouk
Backmatter
Metadata
Title
Infrastructure Software Modules for Enterprises
Author
Mohamed Farouk
Copyright Year
2017
Publisher
Apress
Electronic ISBN
978-1-4842-3021-3
Print ISBN
978-1-4842-3020-6
DOI
https://doi.org/10.1007/978-1-4842-3021-3

Premium Partner