nERP with Custom Extensions
A typical example given in GAMP guidance and training materials is an ERP (Enterprise Resource Planning) system:
ERP System Core: The base ERP solution, such as SAP or Oracle, is typically a Category 4 (Configured Software) because it is a
commercially available application that can be configured extensively to fit an organization’s processes.
Custom Extensions or Interfaces: Organizations often develop custom modules or bespoke integrations for specialized
processes or third-party system integrations. These custom-developed pieces are considered Category 5 (Custom Software).
So, if your ERP solution includes:
Core ERP platform (Category 4)
Custom-built modules/interfaces for unique workflows (Category 5)
The underlying operating system (Category 1)
Clinical Data Management Platform Integrating Commercial and Custom Modules
Category 1: Operating system, database, and infrastructure tools.
Category 4: Commercial clinical trial data management application (e.g., Medidata Rave, Oracle Clinical) with configurable data
collection forms and reporting.
Category 5: Bespoke interfaces to external data sources (e.g., laboratories, EDC, regulatory data exchange), custom analytics
scripts, or automated validation routines.
Laboratory Information Management System (LIMS) with Custom Macros and Device Interfaces
Category 4 (Configured Software): The core LIMS platform (e.g., LabWare, STARLIMS) is highly configurable, adapting
workflows, user roles, and reporting to client needs.
Category 5 (Custom Software): Bespoke macros, interfaces to laboratory instruments, and custom scripts are often developed
in-house or by vendors for unique sample management, data analytics, or integration with external databases.
Category 1 (Infrastructure): The underlying operating system (Windows Server, Linux) and database software (e.g., SQL Server).
Layered software refers to an architectural pattern in software design where a system is divided into separate layers, each with defined
responsibilities and a focus on specific functionality. These layers are stacked on top of one another, with each layer only interacting
directly with the layers immediately above or below it. This style is common in enterprise, web, and embedded systems due to its clarity
and maintainability.
Key Characteristics
Separation of Concerns: Each layer performs a distinct role. For example, the presentation layer handles user interfaces, the
business logic layer manages the application’s rules and workflows, and the data access layer interacts with databases or
storage.
Layer Isolation: Changes in one layer typically do not require changes in others, making the system more maintainable and
adaptable to future needs.
Hierarchical Structure: Only adjacent layers communicate, enforcing a clean and ordered structure within the software123.
Typical Layers in a Layered Architecture
Presentation Layer: The user interface or front end of the system.
Application/Business Logic Layer: Encapsulates business rules and logic.
Domain Layer: Sometimes separate from business logic, contains core domain concepts and business rules.
Data/Infrastructure Layer: Handles data storage, external systems, and general utilities like logging or authentication234.
An operating system is the main software on a computer that helps you and other programs use the computer’s hardware (like the screen,
keyboard, memory, and hard drive). It acts like a manager or helper that makes sure everything works smoothly together.
Core Functions of an Operating System
Process Management: Controls the execution of processes, scheduling tasks, synchronizing operations, and handling
multitasking456.
Memory Management: Allocates and monitors memory for running processes, manages virtual memory, and ensures efficient
memory utilization14.
File Management: Organizes, stores, retrieves, and protects data within a hierarchical file system346.
Device Management: Manages peripheral devices (printers, disks, keyboards) via device drivers and schedules their
operations46.
Security: Protects data and resources from unauthorized access via authentication and permissions156
User Interface: Provides user interfaces (graphical or command-line) to interact with the system.
Resource Allocation: Distributes system resources (CPU, memory, devices) fairly and efficiently among users and programs
A database manager is a special program that helps you store and organize lots of information on a computer.
A database manager, commonly called a Database Management System (DBMS), is software designed to create, manage, and interact
with databases in an organized and efficient way. It acts as an interface between the database, users, and applications, ensuring data is
stored securely, retrieved quickly, and remains consistent.
Key functions of a database manager (DBMS) include:
Creating, modifying, and querying databases.
Controlling concurrent access so multiple users can safely use the database simultaneously.
Managing data integrity and security.
Handling backup, recovery, and data consistency.
Providing mechanisms to store data in structured forms such as tables (in relational DBMS).
Allowing data manipulation through languages like SQL.
Examples of DBMS software include MySQL, Oracle Database, Microsoft SQL Server, and MongoDB (NoSQL).
A programming language is a formal language comprising a set of instructions that a computer can understand and execute to perform
specific tasks. Programming languages are used to write software, scripts, or programs that tell computers what to do.
A programming language is like a special set of instructions or a language that people use to tell computers what to do. Just like you use
English or another language to talk to people, programmers use programming languages to write directions that computers can
understand and follow.
Middleware is software that sits between an operating system and the applications running on it, enabling communication, data
management, and integration between different software applications or components. Think of it as the “software glue” that helps
different programs talk to each other, share data, and work together—even if they were built using different technologies or for different
purposes1234.
Simple Definition
Middleware helps connect software parts that don’t naturally “speak the same language,” letting them work smoothly together as one
larger system. This can include anything from web servers, database connections, APIs, to messaging tools and authentication services.
A ladder logic program is a set of instructions written using ladder logic—a graphical programming language developed for creating control
logic for industrial automation, primarily on Programmable Logic Controllers (PLCs).
A statistical programming tool is a type of software or programming language designed to help you work with data—collect it, analyze it,
find patterns, make predictions, and create charts or reports. These tools make it easier to understand large amounts of data and use facts
to make decisions.
Spreadsheet packages are software applications designed to organize, analyze, and manage data—especially numbers—using a grid of
rows and columns. They allow users to perform calculations, create graphs and charts, sort and filter information, and apply formulas for
various data-related tasks.
Popular Examples of Spreadsheet Packages
Microsoft Excel: The most widely used spreadsheet program. It’s part of Microsoft Office, favored for its advanced features,
flexibility, and compatibility across devices.
Google Sheets: A free, cloud-based spreadsheet program allowing real-time collaboration and access from any device with
internet connectivity.
Infrastructure software tools refer to the foundational programs and platforms that manage, support, and enable the operation of an
organization's IT infrastructure. These tools handle essential functions like managing hardware resources, networks, data storage, security,
and application integration, serving as the backbone that allows all other software and systems to function efficiently.
Network monitoring software is a specialized tool that helps organizations keep track of the health, performance, and security of their
computer networks. Think of it as a security camera and traffic officer for your digital infrastructure—it constantly watches over all your
network devices, alerting you to problems, slowdowns, or unusual activity, and helping you fix issues before they cause bigger trouble.
What Does Network Monitoring Software Do?
Watches Network Devices: It continuously checks routers, switches, servers, firewalls, and other connected devices to make
sure they are working as expected.
Checks Traffic and Usage: It monitors how much data is moving through your network, which devices or applications are using
the most bandwidth, and if there’s any unexpected traffic.
Sends Alerts: If a device goes down or something strange happens (like a sudden spike in traffic), it sends you alerts so you can
act quickly.
Batch job scheduling tools are computer programs that help automatically run a series of tasks (called batch jobs) without needing a
person to start them manually. These tools plan when and how these jobs should happen, making sure everything runs smoothly and on
time.
In simple terms:
Imagine you have lots of routine tasks like backing up data, sending reports, or processing files that need to be done regularly
(like every night or after some event).
Instead of doing these jobs by hand each time, batch scheduling software sets up a schedule or triggers that tell the computer
to run these tasks automatically.
The term "factory provided ranges or values also called parameterization" typically relates to predefined or configurable limits and settings
supplied by the manufacturer or system provider that guide the operation of a system, including batch job scheduling.
For example, the system might say: “Run batch jobs only between 6 PM and 8 AM” or “Only allow 10 jobs to run together at once.” These
are factory default settings you can use or change.
a system cannot have a higher impact than the business process it supports. Explain this line.
This line means that the importance or impact of a specific system is always tied to the business process it supports. If the business process
is low-impact, then the system supporting it can’t have a higher impact. For example, if a business process is not critical to operations, no
matter how sophisticated or important the system seems, it can’t be more critical than the process itself. Basically, the business process
sets the ceiling on how important the system can be.
Let’s say a pharmaceutical company has a process for researching a new drug. That’s a high-impact business process because it’s crucial to
the company’s success and patient safety. The systems supporting that process, like data analysis tools or lab systems, are also high-impact.
Now, if the company has a system for ordering office supplies, that’s a low-impact process. Even if the system is fancy, it can’t have a bigger
impact than the simple office supply process. So, the system’s importance always matches the importance of the business process it
supports.
Governance for achieving compliance refers to the framework of policies, processes, and controls that an organization puts in place to
ensure they meet regulatory and legal requirements. It includes defining roles and responsibilities, monitoring activities, and making sure
that business operations align with laws and standards. Essentially, it's how an organization manages itself to avoid violations and maintain
compliance.
For a computerized system, assessment of system components means evaluating each part of the system—such as hardware, software,
networks, and databases—to ensure they perform as intended. This involves checking security, functionality, reliability, and compliance
with standards or regulations. Essentially, you’re making sure every component works correctly and efficiently as part of the overall system.