Fundamentals of Software Engineering

website·Indexed 30 days ago

https://fundamentalsofsoftwareengineering.tech

Educational resources and documentation on becoming a programmer, covering information system architecture, the components of information technology, and the differences between single-tier and multi-tier applications. Includes guides on fullstack software development and technical tutorials for Java, Spring Boot, and Windows tools.

Tokens
6.2K
Snippets
13
Records
51
Agent score
50%

What's inside Fundamentals of Software Engineering

  1. Overview of Business Information Systems (BIS)

    Business Information Systems are applications that support business operations by recording daily routine transactions (e.g., sales). Common examples include Point of Sale (POS) applications, Banking, Insurance, e-commerce, HR systems, and ERP systems. These systems are a primary focus for those aiming to become Fullstack Software Developers in a business context.
  2. Understand the architecture of Business Information Systems

    Business Information Systems (Enterprise applications) typically consist of three architectural layers:

    1. User Interface Layer: The part of the application the user interacts with (e.g., websites, buttons, search fields).
    2. Business Logic Layer: The non-visible 'behind the scenes' part of the application where data processing, calculations, and business rules are executed (e.g., calculating order totals in a shopping cart).
    3. Persistence Layer (Database Layer): The section where transaction data is stored for future retrieval and manipulation. This serves as the 'source-of-truth' for the business.
  3. Understand the components of a Computer Information System

    A Computer Information System (CIS) is a purposefully designed software application that collects, manipulates, and stores transactional data generated by the day-to-day operations of an organization. To build an effective system, four core components must be addressed:

    1. Technology: The underlying infrastructure, consisting of Data, Hardware, Software, Networking, and People.
    2. Processes: The specific business actions and procedures (e.g., procurement, underwriting, claims handling) that allow an organization to function and maintain a competitive edge.
    3. Users: The entities interacting with the system. This includes human users (employees, clients, suppliers) and machine users (other applications accessing the system via API or automated communication).
    4. Roles: The control mechanism that manages data integrity and access through authentication and authorization.
  4. Understand Analytical Information Systems (OLAP)

    Analytical Information Systems, also known as Online Analytical Processing (OLAP), are used to extract data from databases for reporting and decision-making. These systems are categorized by the management level they serve:

    • Management Information Systems (MIS): For middle management.
    • Decision Support Systems (DSS): For senior management.
    • Executive Information Systems (EIS): For company executives.
  5. Understand the Request-Response Model

    The Request-Response Model is a fundamental communication pattern in programming. In this model, a client (such as a web browser) sends a request containing specific criteria to a server. The server validates the request, processes the data (e.g., searching a database), and returns the result to the client as a response. This cycle involves several data operations: creation, transmission, validation, searching, retrieval, and display.
  6. Implement a 5-Layer Architecture for Scalability

    To handle increased size and complexity, two additional 'Access Layers' are introduced to decouple the primary layers:

    1. Business Access Layer: Acts as a well-defined interface between the User Interface Layer and the Business Logic Layer. It defines how the client-side application communicates with the server.
    2. Data Access Layer: A dedicated layer of code that simplifies and abstracts how the Business Logic Layer communicates with the Database Layer.

    While simple systems may merge these into the business logic, separating them is recommended as the system grows to maintain control and organization.

  7. Understand the role of the Data Access Layer in 5-Layer Architecture

    The Data Access Layer serves as an intermediary that simplifies communication between application code and the database. It specifically addresses the 'Object-Relational Impedance Mismatch'—the difference in how programming languages and databases model objects. This mismatch can be managed manually or by using an Object-Relational Mapping (ORM) tool.
  8. Categorize software types in an organization

    Software is divided into several categories based on its purpose and delivery:

    • Operating Systems (OS): The fundamental software that controls hardware and executes all other applications. Examples: Windows, Linux, Unix, macOS, Android, iOS.
    • Office & Creative Applications: General-purpose, off-the-shelf software used for daily tasks. Examples: Microsoft Word (documents), Excel (spreadsheets), Adobe Photoshop (images), and web browsers (Edge, Safari).
    • Custom Applications (Business Information Systems): Purpose-built software tailored to specific business needs (e.g., banking or insurance systems) that cannot be bought off-the-shelf.
  9. Understand the 5-layer architecture for information systems

    When building a typical information system (such as a web application), the development process is broken down into five distinct layers, each requiring a different skill set. The recommended learning and implementation order is:

    1. Database Layer: Designing and building the data storage (the most critical foundation).
    2. Business Logic Layer: Building the core rules and functionality of the application.
    3. Data Access Layer: Enabling the business layer to communicate with the database.
    4. User Interface Layer: Building the front-end presentation.
    5. Business Access Layer: Enabling the user interface to communicate with the business logic layer.