Understanding Systems Development Life Cycle
Understanding Systems Development Life Cycle
Analogy: Think of a systems analyst as the architect and general contractor for a new house.
• Analysis: The architect first determines what the owner needs. How many bedrooms?
How big is the kitchen? What is the problem? (e.g., "The family is growing"). This is
systems analysis—understanding and specifying in detail what the information system
should accomplish.
• Design: The architect then creates detailed blueprints. This is systems design—
specifying in detail how the many components of the system (hardware, software,
people) should be physically implemented to solve the problem.
This entire process is guided by Methodologies (the overall "recipe" or approach), Techniques
(the specific processes, like how to conduct an interview), and Tools (computer programs, like
a CASE tool, that help apply the techniques).
The field has changed dramatically since the 1950s. The "modern" approach is best understood
by seeing how it evolved:
• 1950s-60s: This was the "art" phase. Computers were massive and expensive, so the
goal was processing efficiency. All applications were custom-built in low-level
machine language.
• 1970s: The field became more disciplined, like engineering. The focus shifted from
"process-first" to "data-first" with the help of early database management systems.
• 1980s: Microcomputers (PCs) changed everything. The software industry expanded,
and "off-the-shelf" software became common. The analyst's role began shifting from a
"builder" to an "integrator".
• 1990s-Today: The focus is on system integration, the Internet, and agile development.
Today, we rarely build from scratch. We assemble systems from components, often
using cloud services. This requires analysts to be experts at integration.
A stakeholder is any person who has an interest in an existing or proposed information system.
Identifying them is critical because they are the source of the system's requirements.
Your slides and the book identify several key stakeholder groups:
• System Owners: The people who pay for and own the system.
• System Users: The people who will actually use the system day-to-day. This includes
a wide range of people, from clerical staff (internal users) to customers and suppliers
(external users).
• System Designers & Builders: The technical team of analysts, programmers, and other
specialists who create the system.
• Role: The analyst's primary role is to study the organization's problems and needs and
determine how people, methods, and information technology can best be combined to
bring about improvements.
• Core Identity: They are problem-solvers . They are agents of change and innovation
who act as a bridge between the business users and the technical team.
• Skills: As your slides note, an analyst needs a diverse set of skills: technical knowledge,
business knowledge, general problem-solving skills, and (perhaps most importantly)
strong interpersonal communication and relationship-building skills.
5. Sources of Application Software
An analyst's job changed from "builder" to "integrator" because we no longer have to build
every system from scratch. The "Sources of Application Software" slides show the modern
options, which are detailed in Chapter 2 of your book.
1. IT Services Firms: You hire an outside company (e.g., Accenture, IBM) to build a
custom system for you.
2. Packaged Software Producers: You buy "off-the-shelf" software (e.g., Microsoft
Office, Intuit QuickBooks). This is a very common solution.
3. Enterprise-wide Solutions (ERP): You purchase a massive, integrated suite of
modules that manages all of the company's data and processes (e.g., SAP, Oracle). This
is a "build-your-own-system" kit on a massive scale.
4. Cloud Computing: You "rent" the software. The application is hosted on the internet
by a provider (e.g., [Link], Google Docs). This is becoming the dominant
model.
5. Open-Source Software: The software is freely available, and so is the source code.
You can use it as-is or modify it yourself (e.g., Linux, Firefox, mySQL).
6. In-House Developers: The "traditional" way. Your organization's own programmers
and analysts build the system from the ground up.
A key part of the analyst's job is to recommend which of these sources (or combination of
sources) is the best fit for the business problem.
To manage the complex task of building a system, organizations use a standard process. The
most famous of these is the Systems Development Life Cycle (SDLC).
The SDLC is the traditional, standard methodology used to develop, maintain, and replace
information systems.
• It's a circular process. Maintenance on one system eventually leads to the planning for
its replacement.
• It is iterative. Phases are not always sequential; you often have to return to an earlier
phase as you learn new information.
7. Phases of the SDLC
Your slides and the book break this "recipe" into five distinct phases:
1. Planning: This is the "why" and "what" phase. The team identifies the need for a new
system, assesses its feasibility (can we build it? should we build it?), defines the
project's scope, and creates a Baseline Project Plan.
a. Deliverables: System justification, work plan, feasibility analysis.
2. Analysis: This is the "what" phase. The team thoroughly studies the organization's
current procedures and determines exactly what the new system must do. This has two
subphases:
a. Requirements Determination: Fact-finding (interviews, observation, etc.).
b. Requirements Structuring: Modeling the requirements (what you'll do in
Chapters 7 & 8).
c. Deliverables: Description of the current system, explanation of alternative
solutions.
3. Design: This is the "how" phase. The team converts the "what" (the requirements) into
a logical and then physical "how" (the system specifications).
a. Logical Design: Describes the functional features, independent of any specific
technology (e.g., "we need a customer database").
b. Physical Design: The technology-specific details (e.g., "we will use an Oracle
database on a Windows server").
c. Deliverables: Functional and technical specifications for all system elements
(data, inputs, outputs, programs).
4. Implementation: This is the "build and deliver" phase. The specifications are turned
into a working system that is coded, tested, and installed. This phase also includes
creating documentation, training users, and providing initial support.
a. Deliverables: Code, documentation, training procedures, and support
capabilities.
5. Maintenance: This is the "keep it running" phase. The system is systematically
repaired and improved to fix problems or adapt to changing business needs.
a. Deliverables: New versions or releases of the software.
The classic, rigid version of the SDLC is often called the Traditional Waterfall SDLC. It gets
its name because the project "flows" downhill from one phase to the next, like a waterfall.
• It's too rigid: The "waterfall" makes it hard to go back to a previous phase. It "locks
in" requirements too early, but business needs are constantly changing.
• Limited User Involvement: Users are heavily involved in Analysis but may not see
the system again until Implementation, by which time it might not be what they wanted.
• Focus on Deadlines: The rigid phase structure focuses on meeting deadlines for
deliverables (e.g., "Is the logical design document finished?") rather than on building
high-quality, useful software.
Iterative Development The key alternative is Iterative Development. Instead of building the
entire system at once, the system is developed in successive iterations (or versions). Each
iteration goes through its own mini-SDLC (analysis, design, construction).
The Heart of Systems Development This iterative process is called the "Heart of Systems
Development". It's an Analysis-Design-Code-Test Loop. You analyze a small piece, design
it, code it, and test it. Then you take the next piece and repeat the loop, integrating it with the
first.
The Capability Maturity Model (CMM) is a framework that organizations use to measure,
assess, and improve the quality of their software development process.
Your slides show five distinct levels an organization can achieve. Each level builds on the
previous one:
1. Level 1: Initial
a. Description: The process is unpredictable, poorly controlled, and reactive.
b. Explanation: This is the "chaos" level. There are no stable, documented
processes. Success depends entirely on the heroic efforts of individuals. It's the
classic "firefighting" environment.
2. Level 2: Repeatable
a. Description: The process is characterized for projects and is often reactive.
b. Explanation: At this level, the organization has learned from past successes.
Basic project management practices (like cost tracking and scheduling) are in
place. They can repeat a successful project, but the process isn't standardized
across the entire organization.
3. Level 3: Defined
a. Description: The process is characterized for the organization and is proactive.
b. Explanation: This is a major leap. The organization now has a single, standard,
documented development process (like an SDLC) for all projects. This process
is understood, followed, and actively managed.
4. Level 4: Managed
a. Description: The process is quantitatively measured and controlled.
b. Explanation: You can't control what you don't measure. At this level, the
organization collects detailed data (metrics) on the quality of the process and its
products. This data is used to set quality goals and manage the process.
5. Level 5: Optimizing
a. Description: The focus is on continuous process improvement.
b. Explanation: At the highest level, the organization uses the data from Level 4
to not just manage the process, but to actively and continuously improve it. They
identify bottlenecks, test new ideas, and systematically make their development
process better, more efficient, and more effective.
Chapter 4
First, where do the ideas for new systems come from? They can originate from two general
directions:
• Top-Down Sources: These are projects identified by top management or a steering
committee. They tend to be strategic in nature, focusing on the broader needs of the
entire organization.
o Example: The CEO decides the company needs a new enterprise-wide system
to better compete with a rival. This would be a large, strategic project.
• Bottom-Up Sources: These are projects that bubble up from managers, business units,
or the IT department itself. They are often designed to solve a specific business problem
or take advantage of a new opportunity within a particular department.
o Example: The marketing department manager requests a new system to track
customer leads more effectively. This is a more tactical, focused project.
As a systems analyst, you will often be involved in helping user managers from these bottom-
up sources to formalize their requests and build the case for their proposed system.
Once we have a list of potential projects, we need a way to evaluate and prioritize them. We
can't just pick the one with the loudest advocate! We use a set of criteria to assess the merit of
each project. Some common criteria include:
• Strategic Alignment: How well does the project help the organization achieve its
strategic goals?
• Potential Benefits: How much will this project improve profits, customer service, or
efficiency?
• Resource Availability: Do we have the people, money, and tools to do this project?
• Project Size/Duration: How big is it and how long will it take?
• Technical Difficulty/Risks: How hard will it be to build?
A very powerful method for evaluating projects is Value Chain Analysis. This technique
involves looking at an organization's activities as a chain—from purchasing raw materials to
transforming them into products, to marketing, selling, and distributing them to customers. By
analyzing this chain, you can pinpoint where value is added and where costs are incurred, and
then prioritize IT projects that will provide the greatest benefit to that chain.
This is the final decision-making step. It's not just a simple matter of picking the project with
the highest score. As Figure 4-3 shows, the decision is a blend of many factors: the needs of
the organization, existing systems, available resources, and the perspectives of the decision-
makers.
A useful tool for this step is Weighted Multicriteria Analysis. Let's look at the example from
your book (Figure 4-4):
1. List Criteria: We list all the important requirements and constraints.
2. Assign Weights: Not all criteria are equally important. We assign a weight to each one
based on its relative importance. The weights must total 100%.
3. Rate Alternatives: Each potential project (or design alternative) is rated on a scale (e.g.,
1 to 5) for how well it meets each criterion.
4. Calculate Score: For each criterion, you multiply its weight by the rating to get a
score.
5. Sum the Scores: The alternative with the highest total score is often the best choice.
In the book's example, Alternative C has the highest overall score (430). However, notice that
Alternative A is the best when you only consider constraints (like cost). This shows that the
"best" choice isn't always clear-cut and often involves trade-offs.
The main output of this entire process is a schedule of specific IS development projects that
have been approved to move forward.
A key outcome is the concept of incremental commitment. This means that even though a
project is selected, it is not a guarantee that a full system will be built. The project is reviewed
after each phase of the SDLC, and the decision to continue is rejustified at each step. This
prevents organizations from throwing good money after a bad project.
This is an ongoing process that defines the mission, objectives, and strategies of an
organization. It's a three-step process:
• Mission Statement: A simple statement that makes it clear what business the company
is in. (e.g., PVF's mission is to design and sell high-quality wood furniture ).
• Objective Statements: The broad, timeless goals for the organization (e.g., PVF will
strive to increase market share and be a leader in customer service ).
• Competitive Strategy: The organization's "game plan" for achieving its mission and
objectives. Your book introduces three generic strategies from Michael Porter:
o Low-Cost Producer: Compete on price (e.g., Hyundai).
o Product Differentiation: Compete on a key product feature like quality or style
(e.g., Ford focusing on "Quality is Job One").
o Product Focus or Niche: Target a narrow market segment (e.g., convertible
sports cars).
ISP is the process of figuring out how information systems will help the organization achieve
its corporate objectives. It mirrors the corporate planning process:
This top-down planning approach ensures that IT projects are directly linked to the business's
overall strategy, leading to much better project selection decisions.
• The Internet is a global network of networks, and Electronic Commerce (EC) is the
use of the internet to support business activities. This includes not just B2C (Business-
to-Consumer) but also B2B (Business-to-Business) and the emerging Internet-of-
Things (IoT), where physical objects communicate over the internet.
• The Pine Valley Furniture WebStore Example: Your book uses PVF to illustrate
this. The company's board identified an opportunity for online sales. They decided to
start with the corporate furniture market because it had the greatest potential return on
investment and would be a good building block for future expansion into other markets.
This is a perfect example of a strategic, top-down project selection.
Chapter 5
This chapter is the "doing your homework" phase. Its entire purpose is to transform a vague,
one-page System Service Request (SSR) into a concrete, tangible project plan. This plan,
called the Baseline Project Plan, builds the business case that justifies spending the
organization's time, money, and resources.
This is a critical phase. A study by the U.S. Government Accountability Office (GAO) found
that up to 20% of IT project failures are due to a poor understanding of requirements, which
starts right here. Spending proper time in this phase—your book suggests 10-20% of the entire
project effort—is the single best way to prevent failure later.
1. Project Initiation: This involves the "startup" tasks needed to get the project off the
ground. These are activities like assigning the project team, establishing a relationship
with the customer (the business unit), and developing the Project Charter (a high-level
document that formally announces the project).
2. Project Planning: This is the main focus of the chapter. It's the process of defining the
clear, discrete activities and the work needed to complete the project. This is where we
create our two key deliverables.
1. The Baseline Project Plan (BPP): This is the master foundation document for the
rest of the project. It contains the best estimates of the project's scope, benefits, costs,
risks, and resource requirements. This isn't a static document; it's a "baseline" that will
be updated as the project progresses and we learn more.
2. The Project Scope Statement (PSS): This is a short (often one-page) document
created for the customer. It's a high-level summary of the BPP that clearly describes
what the project will deliver. Think of it as a communication tool to ensure both the
project team and the customer are on the exact same page about the project's goals.
The rest of the chapter is dedicated to the most important part of building these documents: the
Business Case.
Assessing Project Feasibility: Building the Business Case
To justify a project, we must prove it's a good idea. We do this by conducting a feasibility
study that looks at the project from six different angles.
This is the "dollars and cents" question: Is this project worth the money? We must identify
and quantify all the financial benefits and costs.
• Benefits:
o Tangible Benefits: These can be measured in dollars and with certainty.
Examples include reduced personnel expenses, lower transaction costs, or
higher profit margins.
o Intangible Benefits: These are benefits you can't easily measure in dollars.
Examples include improved employee morale, increased customer satisfaction,
or better decision-making.
• Costs:
o Tangible Costs: These are costs you can easily measure, such as hardware,
software licenses, and developer salaries.
o Intangible Costs: These are hard to quantify, like a temporary loss of customer
goodwill or a dip in morale during the transition.
o One-Time Costs: Expenses for project start-up, like development and new
hardware purchases.
o Recurring Costs: Ongoing expenses for using the system, like software
maintenance fees or new data storage.
The Time Value of Money (TVM): You can't just add up all the benefits for five years and
subtract the costs. The core concept of TVM is that a dollar today is worth more than a
dollar tomorrow (because today's dollar can be invested).
We must use a discount rate (the cost of capital) to calculate the present value (PV) of all
future costs and benefits. This allows us to compare the project's total worth in today's dollars.
Once we have the present values, we use three common techniques to judge the project:
1. Net Present Value (NPV): The total PV of all benefits minus the total PV of all costs.
If the NPV is positive, the project is a good investment.
2. Return on Investment (ROI): The ratio of net cash receipts divided by the cash
outlays. This shows the project's profitability as a percentage.
3. Break-Even Analysis (BEA): This technique finds the point in time (e.g., "in 2.4
years") when the cumulative benefits of the project finally equal its costs.
2. Technical Feasibility
This is the "can we build it?" question. We assess the development organization's ability to
construct the system. The risk is high if:
3. Operational Feasibility
This is the "if we build it, will they use it?" question. It assesses how well the proposed system
solves the business problems and fits with the existing organizational structure. A system that
requires people to change their jobs radically is operationally riskier than one that doesn't.
4. Schedule Feasibility
This is the "can we build it in time?" question. We assess the likelihood that the project's time
frame and completion dates can be met.
This is the "will we get sued?" question. We assess potential legal ramifications, such as
copyright infringements, labor law violations, or violating nondisclosure agreements.
6. Political Feasibility
This is the "who will try to block this?" question. It's an assessment of how key stakeholders
in the organization view the proposed system. A system can be a perfect "10" in all other areas,
but if a powerful executive feels threatened by it, they may try to block its success.
After completing the feasibility analysis, you assemble everything into the BPP. This document
is the "bible" for the project. Your book provides a standard outline (Figure 5-9):
You don't just write the BPP and start coding. The final step of this phase is to have it reviewed.
The most common method for this is a Structured Walk-Through.
• What it is: A peer-group review of any deliverable (in this case, the BPP).
• The Goal: To ensure the quality of the plan and get buy-in from all stakeholders.
• The Roles: It's a formal meeting where team members play specific roles:
o Coordinator: Plans and facilitates the meeting.
o Presenter: Describes the work product to the group (usually you, the analyst).
o User: Makes sure the work product meets the customer's needs.
o Secretary: Takes notes and records decisions.
o Standards Bearer: Ensures the plan adheres to organizational technical
standards.
o Maintenance Oracle: Reviews the plan in terms of future maintenance needs.
This process follows the principle of incremental commitment. The walk-through is a formal
checkpoint. At the end, the project is either approved to move on to the next (and more
expensive) Analysis phase, sent back for revisions, or, in some cases, canceled. This rigorous
planning is what separates successful projects from failures.
Chapter 6: Determining System Requirements is all about the first part: fact-finding. It's the
process of gathering all the information on what the current system does (if one exists) and
what the new system must do.
Let's explore the methods you'll use to do this.
To be a good analyst during this phase, you must adopt the mindset of a detective. You're
looking for clues that reveal the true nature of the business problem. Your book highlights
several key characteristics you'll need:
• Impertinence: You must question everything. Don't accept "we've always done it that
way" as an answer.
• Impartiality: Your job is to find the best solution, not to (for example) justify buying
a specific piece of hardware or software. You must remain unbiased.
• Relax Constraints: At first, assume anything is possible. Don't let traditions or
assumptions limit your investigation.
• Attention to Details: Every fact must fit together. A small oversight now can lead to a
major system failure later.
• Reframing: You must look at the organization in new and different ways. Be creative
and don't just copy an old system.
The primary deliverables (or outputs) of this work are the notes, transcripts, documents, and
prototypes you collect. You must be careful to avoid "analysis paralysis"—the common trap
of spending so much time on fact-finding that you never actually move on to designing the
solution.
This is one of the primary ways analysts gather information. It's a conversation with
stakeholders (users, managers, etc.) to get their facts, opinions, and perspectives.
• The Process:
o Plan: Set up an appointment and prepare an interview guide—a checklist of
your questions.
o Execute: Be neutral, listen carefully, and take thorough notes.
o Review: Type up your notes within 48 hours. After that, your memory will
fade.
• Question Types:
o Open-Ended Questions: These have no prespecified answers (e.g., "What
would you say is the best thing about the system you currently use?"). They are
great for discovering information you didn't know to ask about, but they can
take a lot of time.
o Closed-Ended Questions: These ask the user to choose from a set of answers
(e.g., "Which of the following is the best... A, B, or C?"). They are more efficient
and easier to summarize, but you might miss key details.
Interviewing Groups
• Advantages: This is a more effective use of your time, and it allows group members to
build off each other's ideas (synergy).
• Disadvantages: Group interviews are notoriously difficult to schedule.
• Nominal Group Technique (NGT): This is a more structured way to conduct a group
interview. The process involves group members first working alone to write down their
ideas. Then, a facilitator collects and discusses all ideas with the group. This ensures
that quieter members' voices are heard.
• Why? People often don't have a completely accurate appreciation of what they do or
how they do it.
• Analogy (The "Lost Soft Drink Sales" Story): Your book gives a great example of
an analyst who couldn't figure out why a new, more efficient routing system was
decreasing sales. By riding along with a driver (observing), he discovered the new
system was too efficient—it didn't leave drivers any time for the "schmoozing" with
store managers that was necessary to get good shelf placement. The analyst would have
never found this in an interview.
• Drawbacks: Being observed can make people nervous and change their normal
behavior. It's also time-consuming and gives you only a "snapshot" of the work.
This involves studying the paper trail of the organization. By analyzing documents, you can
discover business rules, see what data is critical, and identify problems.
Because the traditional methods can be slow, several "contemporary" methods were developed
to speed up analysis.
JAD is a structured, intensive session where key users, managers, and analysts are brought
together (often in an off-site location) for several days to define system requirements.
It's like a highly facilitated,-powered group interview. The key participants are:
• JAD Session Leader: The trained facilitator who runs the meeting.
• Users: The people who will use the system.
• Managers: Those who have an organizational stake in the system.
• Sponsor: The high-level executive who pays for the project.
• Systems Analysts: Your team, there to listen and learn.
• Scribe: The person who takes detailed notes, often on a laptop.
The JAD process helps resolve conflicts and builds user commitment, but it can be very
expensive to have so many key people in one room for so long.
Prototyping
A prototype is an iterative process where you build a rudimentary, working version of the
system and show it to users.
Sometimes, the goal isn't just to improve a process, but to completely obliterate it and start
over.
This is Business Process Reengineering (BPR). BPR is the search for, and implementation
of, radical change in business processes to achieve breakthrough improvements.
• "Clean Sheet of Paper": BPR asks, "If we were a brand new company, how would
we accomplish this task?".
• Key Business Processes: BPR focuses on redesigning core, cross-functional processes
(e.g., "filling an order," which crosses sales, inventory, and shipping).
• Disruptive Technologies: BPR often uses new technologies to break old business rules.
For example:
o Old Rule: Information can only be in one place at a time.
o Disruptive Technology: Distributed databases.
o New Process: Multiple people in multiple locations can work on the same data
at the same time.
5. Agile Methodologies
These are modern, flexible methods that try to keep the analysis process fast and responsive to
change.
Your book shows how Pine Valley Furniture (PVF) used a JAD session to gather the
requirements for its new WebStore. In just three days, they collected detailed requirements on:
• System Layout and Navigation: What the site should look like (e.g., "logo is always
in the same place").
• System Capabilities: What the site should do (e.g., "have a shopping cart" and
"product search").
• Customer and Inventory Information: What data needs to be stored.
• System Prototype Evolution: A plan to roll out the system in three stages .
This shows how a "contemporary" method like JAD can be used to quickly gather detailed
requirements for a modern e-commerce application.
Now, in Chapter 7, we take that massive collection of notes, transcripts, and forms and translate
it into a formal, structured "blueprint" of the system's processes. This is the first step in moving
from a list of requirements to an actual model of the new system.
1. Data Flow Diagrams (DFDs): The classic, traditional tool for modeling system
processes.
2. Decision Tables: A tool for modeling complex logic and business rules inside a process.
3. Object-Oriented Diagrams (Use Cases & Activity Diagrams): The modern, object-
oriented alternative to DFDs.
4. Business Process Modeling Notation (BPMN): A powerful standard for modeling
detailed business workflows.
What is Process Modeling? Process modeling is a technique for graphically representing the
functions, or processes, that capture, manipulate, store, and distribute data between a system
and its environment.
The most common tool we use for this is the Data Flow Diagram (DFD). A DFD is not a
flowchart. It does not show the order of steps; it only shows the movement of data through the
system. Think of it as a map of the data's journey.
DFD Mechanics: The Four Key Symbols
DFDs are simple and powerful, using only four symbols . Your book uses the Gane & Sarson
notation:
1. Process:
a. A rectangle with rounded corners.
b. This is an action or work performed on data. It must have a verb-phrase name,
like "Calculate Grade" or "Update Inventory".
2. Data Store:
a. A rectangle open on the right side.
b. This is data at rest—a "file cabinet" or a "database table" where data is stored.
It has a noun-phrase name, like "Student File" or "Inventory".
3. Source/Sink (External Entity):
a. A square.
b. This is the origin or destination of data. It is outside the system we are building.
Examples include "Customer," "Manager," or "Bank System".
4. Data Flow:
a. An arrow.
b. This is data in motion. It shows the data moving from one place to another and
has a noun-phrase name, like "Customer Order" or "Payment Receipt" .
DFDs are hierarchical. We use a process called functional decomposition to break the system
down into smaller and smaller pieces. The easiest way to think about this is like using Google
Maps:
Balancing is the single most important rule of DFDs. It means that all the data flows going
into and out of a process on a high-level diagram must exactly match the data flows going into
and out of the entire "zoomed-in" diagram for that process on the next level .
Think of it this way: If the "Satellite View" (Context Diagram) shows one river flowing into a
country, the "Country View" (Level-0 Diagram) must also show that same river flowing in.
You can't add or delete rivers.
• We can "zoom in" again on any process from the Level-0 diagram.
• Decomposing Process 1.0 (e.g., "Receive Order") would create a Level-1 Diagram
with subprocesses like "1.1 Enter Customer Data," "1.2 Check Credit," etc..
• We continue decomposing until we reach the primitive DFD—the lowest level, where
a process cannot be broken down any further (it's a single decision, calculation, or
database operation).
• Gap Analysis: We can draw DFDs for the current system and the proposed system,
then compare them to see what processes need to be added, deleted, or changed.
• Finding Inefficiencies: We can spot redundancies (e.g., the same data being entered
twice) or data that is captured but never used.
• Business Process Reengineering (BPR): DFDs are perfect for BPR. The IBM Credit
Corporation example in your book is classic:
o The "as-is" DFD showed a complex, 5-step process that took six days.
o The "to-be" DFD (after reengineering) showed a single process handled by one
person, cutting the time to 90 minutes. The DFD visualizes this improvement
perfectly.
A DFD process box, like "Determine Reorder Quantity," tells you what it does, but not how it
decides. For complex logic, we use a Decision Table.
A decision table is a matrix that shows all possible conditions and the resulting actions. It's a
structured way to model "if-then-else" logic.
It has three parts:
1. Condition Stubs: The "if..." part. Lists the conditions that matter (e.g., "Type of item?,"
"Time of week?").
2. Action Stubs: The "then..." part. Lists the actions that can result (e.g., "Standing daily
order," "Minimum order quantity").
3. Rules: The columns that link specific conditions to specific actions.
A key technique for simplifying the table is to look for Indifferent Conditions. If the action
is the same regardless of a condition's value, we can put a dash ("-") in that cell to show it
doesn't matter, which lets us combine multiple rules into one.
DFDs are part of the "traditional" structured approach. The modern, and very common,
alternative is the object-oriented (OO) approach, which uses different diagrams.
Think of it this way: If DFDs are the "plumbing" of a house (showing where water flows),
Data Modelling is the "framing" and "storage closets" (showing where things fit and stay).
Why do we do it?
• Data is permanent; Processes change: The way you sell a product might change next
year, but the fact that a "Customer" places an "Order" is a fundamental business fact
that rarely changes.
• Similarity: Data structures are often similar across different organizations in the same
industry.
Where does it fit? It happens during the Analysis Phase of the Systems Development Life
Cycle (SDLC).
• Top-Down: You interview management and ask, "What is your business about?" You
derive the data from the big picture.
• Bottom-Up: You look at specific forms, reports, and screens (like the Invoice in Slide
46) and figure out what data is on them. You build the model from the details up.
To build an E-R Diagram, you need three main components: Entities, Attributes, and
Identifiers.
• Definition: A person, place, object, event, or concept about which the organization
wants to maintain data.
• Entity Type vs. Entity Instance:
• Entity Type: The category (e.g., STUDENT). In the diagram, this is the box.
• Entity Instance: A specific single occurrence (e.g., John Smith, ID# 9988).
This is the data inside the database.
• Strong vs. Weak Entity (Slides 47-54):
• Strong Entity: Can exist on its own. Example: EMPLOYEE. It has a unique
ID (Employee_ID).
• Weak Entity: Cannot exist without a "Strong" owner. Example:
DEPENDENT (like a child of an employee). You can't list a dependent in the
HR system unless they are attached to an employee.
• Identifying Relationship: The link between the strong and weak entity.
Attributes describe the entity. If STUDENT is the entity, Name, GPA, and Address are the
attributes.
• Candidate Key: An attribute that could uniquely identify an entity (e.g., Both
Student_ID and Social_Security_Number are unique).
• Identifier (Primary Key): The candidate key we choose to use.
• Composite Identifier: When one attribute isn't enough, we use two. Example: In a
FLIGHT entity, Flight_ID might not be unique (Flight 101 flies every day). The
identifier is Flight_ID + Date.
Part 3: The Glue (Relationships)
Relationships are the lines connecting the boxes. They are usually Verbs.
This answers the question: "How many instances of Entity B are related to Entity A?"
• 1:1 (One-to-One): An Employee has one Parking Spot; a Parking Spot has one
Employee.
• 1:N (One-to-Many): A Customer places many Orders; An Order belongs to one
Customer.
• M:N (Many-to-Many): A Student takes many Courses; A Course has many Students.
3. Participation Constraints
Sometimes entities are very similar but have small differences. This is called Generalization.
Let's walk through the COMPANY Database example found in the slides. This is a classic
test of your ability to translate text requirements into a diagram.
• Diagram Result: You draw a DEPARTMENT box and a PROJECT box. You draw a
line connecting them called CONTROLS. It is 1: N (One department controls Many
projects).
Requirement 2: "Each employee works for one department but may work on several
projects."
• Diagram Result:
• Line between EMPLOYEE and DEPARTMENT (WORKS_FOR).
Cardinality is N:1 (Many employees work for One department).
• Line between EMPLOYEE and PROJECT (WORKS_ON). Cardinality is
M:N (Many employees work on Many projects).
Requirement 3 (The Tricky One): "We need to keep track of the number of hours per week
that an employee works on each project."
• Explanation: You cannot put "Hours" in the Employee box (which project?). You
cannot put "Hours" in the Project box (which employee?).
• Solution: "Hours" is an attribute of the Relationship itself (WORKS_ON). In the
diagram (Slide 64), notice that "Hours" is attached to the diamond WORKS_ON.
You will see different symbols in the slides (Chen) vs. the Book (Crow's Foot). As an analyst,
you must read both.
Database design isn't just one step; it is a journey from abstract ideas to computer code.
• Input: You take the E-R Diagram (from Ch 8) and the Forms/Reports (from Ch 7).
• Process: You clean up the data (Normalization) and combine different views (View
Integration).
• Output: A set of Normalized Relations (Clean tables).
Most modern systems (SQL, Oracle, DB2) use the Relational Model.
In the academic world (Logical design), we use specific words. In the physical world (Physical
design), we use different words. You must know the translation:
Constraints are the "rules of the road" that keep data accurate. Without them, your database
becomes a garbage dump.
1. Domain Constraints
• Example: A GPA must be between 0.0 and 4.0. You cannot enter "Apple" into a GPA
column.
• Primary Key: An attribute that uniquely identifies a row. (e.g., Student ID).
• The Rule: A Primary Key cannot be NULL (empty). If you don't have an ID, you
don't exist in the database.
• Slide 17-19 Note: A Candidate Key is any attribute that could be a Primary Key (e.g.,
SSN or Email). You choose one to become the Primary Key.
• Foreign Key: A field in one table that points to the Primary Key of another table.
• The Rule: If Table B points to Table A, the record in Table A must exist.
• Example (Slide 25): You cannot create an Order for a Customer who does not exist.
The Customer_ID in the Order table must match a Customer_ID in the Customer table.
This is the technical core of the chapter. How do we turn the boxes and lines from Chapter 8
into Tables?
• Action: Create a table for the entity. The Identifier becomes the Primary Key.
• Example: CUSTOMER entity becomes CUSTOMER table.
• Problem: One attribute has many parts (e.g., Address = Street, City, Zip).
• Action: Break it down. Make separate columns for Street, City, and Zip. Do not keep
the main "Address" field.
• Problem: An employee has multiple skills (Java, Python, C++). You cannot put three
skills in one cell.
• Action: Create a separate table.
• Diagram Explanation: The new table (EMPLOYEE_SKILL) contains the Employee
ID (Foreign Key) and the Skill. The Primary Key is the combination of both.
• One-to-Many (1:N):
• The Rule: Take the Primary Key from the "One" side and put it into the "Many"
side as a Foreign Key.
• Example (Slide 38): One Customer places Many Orders. Put Customer_ID
inside the ORDER table.
• Many-to-Many (M:N):
• The Rule: Create a new third table (Associative Relation). It holds the Primary
Keys of both connected entities.
• Example (Slide 39): Students and Courses. Create a REGISTRATION table
containing Student_ID and Course_ID.
• One-to-One (1:1):
• The Rule: Take the Primary Key from the mandatory side and put it in the
optional side.
Part 5: Normalization
• Synonyms: Different names for the same thing (Student_ID vs. Matriculation_No).
• Homonyms: Same name for different things (Account could mean Bank Account or
User Account).
Once the Logical tables are ready, we optimize them for the computer hardware.
1. Data Types
You must choose the correct storage format to save space and ensure integrity.
• VARCHAR: Variable length text (e.g., Names). Good for saving space.
• CHAR: Fixed length text (e.g., State Abbreviations "TX", "NY"). Faster processing.
• INT/NUMBER: For calculations.
• BLOB: Binary Large Object (for images or sound).
• Sequential: Records are stored one after another (like songs on a cassette tape).
• Pros: Good for reading the whole file.
• Cons: Slow for finding one specific record.
• Indexed: A separate file (Index) keeps track of where records are (like the index at the
back of a textbook).
• Pros: Fast retrieval.
• Cons: Takes up extra space.
• Hashed: A mathematical formula calculates the address of the record.
• Pros: Fastest possible retrieval for specific records.
• Cons: Terrible for retrieving ranges of data.
• Slide 62 (Initial Entity Types): Shows the raw entities (Employee, Dept).
• Slide 64 (E-R Diagram): Introduces relationships.
• WORKS_ON is M:N (Many employees, Many projects). It has an attribute
"Hours".
• DEPENDENT is a weak entity (double diamond).
• Slide 67 (UML Class Diagram): This translates the E-R diagram into UML notation
(boxes with lines). It shows the exact same logic but uses "1..*" notation for cardinality.
• Slide 52: Shows the full schema. Notice ORDER_LINE. This is an Associative Entity
created from the Many-to-Many relationship between ORDER and PRODUCT.
• Slide 54: The blue arrows represent Referential Integrity. They show that Product_ID
in the ORDER_LINE table points to the PRODUCT table.
Instructor's Summary
By following these steps, you ensure that the database is accurate, efficient, and capable of
growing with the business.
We are going to cover everything from the slides and the book, structured logically to make it
easy to digest.
• In the Analysis phase, we figured out what the system needs to do.
• Now, in the Design phase, we figure out how it looks and interacts with the user.
The Goal:
To move from abstract requirements to the actual "look and feel" of the system. We call this
Logical Design. We are designing the "User Interface" (UI).
1. Form
• Definition: A business document that contains some predefined data but includes areas
where the user needs to enter or modify data.
• Key Concept: Forms are for INPUT or Action.
• Example: A checkout page on Amazon, an Employee Registration screen, or an ATM
screen where you type your PIN.
• Structure: Usually stylized, not just simple rows/columns. Ideally based on one
specific database record (e.g., one customer).
2. Report
• Definition: A business document that contains only predefined data. It is a passive
document.
• Key Concept: Reports are for OUTPUT or Reading. You do not type into a report.
• Example: A monthly bank statement, a sales summary, or a pie chart.
• Structure: Often simple rows and columns. Usually contains data from many records
(e.g., all sales for the month).
In the business world, reports generally fall into five specific categories. You need to know
which one your user needs:
(Slides 6–12)
How do we actually create these? We use a User-Centered Design approach. This means we
focus on the user, not just the technology.
The Workflow:
This is the core skill of a designer. If you follow these rules, your system will be usable.
• Meaningful Titles: Don't call it "Screen 1." Call it "Customer Entry Form." Include
the Date (Current date vs. Data date).
• Balance: Don't cram everything on one side. Use white space.
• Navigation: It should be obvious how to move forward, backward, or exit.
• Meaningful Information: Only display what is necessary. Don't clutter the screen.
• Bad Form (Slide 15): The title is vague ("Customer Information"). The fields are
crammed together. There is no clear way to exit. Labels are confusing.
• Good Form (Slide 16): Clear title ("Detail Customer Account Information"). Fields
are grouped logically. Buttons (Save, Help, Exit) are clear at the bottom.
• Methods: Blinking, Bold, Size difference, Reverse video (black text on white), Boxing,
Underlining.
• Rule of Thumb: Blinking is aggressive. Use it only for critical alerts (e.g., "System
Meltdown"). Use Bolding for headers.
• Case: Mixed case (e.g., "Enter Name") is easier to read than UPPER CASE ("ENTER
NAME"). Upper case feels like shouting and is slower to read.
• Spacing: Use double spacing for long blocks of text.
• Justification: Left-justify text. Leave a "ragged" right margin (it helps the eye track
the line).
• Hyphens: Do not hyphenate words at the end of lines on screens.
• Bad Help Screen: All CAPS. No spacing. Huge block of text. Very hard to read.
• Good Help Screen: Mixed case. Grouped into sections ("Field Descriptions", "Special
Function Keys"). Easy to scan.
• Labels: Every column needs a label. If the list is long, repeat the label on the next page.
• Spacing: Leave a blank line every 5 rows so the eye doesn't get lost.
• Alignment (Crucial!):
• Text: Left-Justify (e.g., Names, Addresses).
• Numbers: Right-Justify (e.g., Prices, Quantities). This aligns the decimal
points so users can compare values easily.
When should you use a table and when should you use a graph?
• Use a Table when: The user needs to read a specific individual value.
• Example: "What exactly was the sales figure for March?" -> Look at the table.
• Use a Graph when: The user needs to see trends, patterns, or comparisons.
• Example: "Are sales going up or down?" -> Look at the Line Graph.
• Example: "Who sold the most?" -> Look at the Bar Graph.
(Slides 32–35)
Usability is the overall evaluation of how well the system supports the user. It is not just about
looking pretty; it is about functioning well.
• Consistency: The "Save" button should be in the same place on every screen.
• Clarity: Don't use jargon. Labels should be self-explanatory.
• Flexibility: Allow shortcuts for advanced users (e.g., Ctrl+S to save).
(Slides 36–40)
Web design has specific challenges because you don't control the user's screen size or browser
speed.
• Bleeding-Edge Tech: Don't force users to download weird plugins to view your site.
• Scroll-Killers: Avoid horizontal scrolling (left-to-right). Users hate it.
• Slow Downloads: Giant images that take forever to load will make users leave.
• Non-Standard Colors: Blue underlined text usually means a link. If you make your
non-links look like that, users will get frustrated clicking them.
1. Understand the User: Who are they? (Novice/Expert). What do they need? (Input via
Form / Output via Report).
2. Prototype First: Sketch it out (Wireframe) before you code it.
3. Follow the Rules: Align text left, numbers right. Use mixed case. Use colour sparingly.
4. Test for Usability: Can they learn it? Can they remember it? Do they make errors?
1. Interface Design:
2. Dialogue Design:
How do we actually tell the computer what to do? There are five main styles.
• Description: The system gives you a list of options; you pick one.
• Examples:
• Pop-up Menu (Slide 12): Right-click on your desktop. Good because it's right
where your mouse is.
• Drop-down Menu (Slide 12): File → Save. Good because it saves screen space.
• Guidelines (Slide 13):
• Wording: Use verbs (e.g., "Save," "Print"). Be precise.
• Organization: Group logical items together (e.g., "Cut/Copy/Paste" are always
together).
• Selection: Use consistent methods (mouse click or keyboard shortcut).
You need hardware to interact. The choice depends on the task (Slide 24).
Note on Slide 23: This table summarizes usability issues. For example, keyboards cause "User
Fatigue" (typing all day hurts), while touch screens have "Visual Blocking" (your hand covers
the screen while you touch it).
Data entry is where most errors happen. We must design the interface to prevent them.
• Entry: Never ask for data you already have (e.g., if I enter "Customer ID," the system
should pull up "Customer Name").
• Defaults: Always provide defaults (e.g., Today's Date).
• Units: Clarify units (e.g., "Weight (kg)" not just "Weight").
• Format: Show the format (e.g., MM/DD/YYYY).
• Class Test: Is it a number? (User types "ABC" into a Price field -> Error).
• Range Test: Is it reasonable? (User types "200" for Age -> Error).
• Missing Data: Is a required field empty?
• Self-Checking Digits (Slide 35): A mathematical formula used to verify ID numbers
(like Credit Card numbers). If you mistype one digit, the formula fails, and the system
knows it's a typo.
1. Status Information: "Saving...", "Page 1 of 5". (Tells user where they are).
2. Prompting Cues: "Enter Date (MM/DD/YYYY)". (Tells user what to do).
3. Error/Warning Messages:
• Bad: "Error 56." (User has no idea what this means).
• Good: "File not found. Please check the name and try again." (Polite, specific,
helpful).
Context-Sensitive Help:
The best help systems know where you are. If you press F1 while in the "Date" field, it should
show help about Dates, not the main menu.
• Opening New Windows: Don't do it unless necessary. It breaks the "Back" button.
• Orphan Pages: Every page needs a link back to Home.
• Scrolling Navigation: Don't put the menu at the bottom where no one sees it.
• Complex URLs: Users can't type [Link]/cgi-bin/xc/889?id=9. Keep it simple.
Instructor's Summary
1. Interaction: Choose the right method (Menu for novices, Command for experts).
2. Input: Prevent errors before they happen using validation (Range checks, Format
checks).
3. Feedback: Always tell the user what is happening (Status updates, Polite error
messages).
4. Dialogue: Map out the flow using Dialogue Diagrams to ensure the user never gets
stuck in a dead end.
This chapter is about Architecture—how we physically lay out the network, hardware, and
software to make the system work efficiently.
Here is your structured, comprehensive lesson plan covering all slides and book concepts.
Part 1: The Context (The "Why" and "Where") (Covering Slides 1–5)
The Goal:
We are moving from "Logical Design" (what the system does) to "Physical Design" (how the
system is built). We are designing systems that don't just sit in one room but are spread out
(distributed) across buildings, cities, or the world via the Internet.
• Key Issues: Reliability (does it work?), Availability (is it online?), and Survivability
(if one server dies, does the system crash?).
Part 2: Designing for Local Area Networks (LANs) (Covering Slides 6–14)
Before the Cloud, we had LANs. We need to understand two main ways to set up a LAN: File
Server vs. Client/Server.
• Concept: Think of the File Server as a giant, shared USB drive connected to the
network.
• How it works:
1. The Client (your PC) asks for data.
2. The Server sends the ENTIRE FILE to the client.
3. The Client processes the data (sorts, filters, calculates) using its own CPU
power.
• The Diagram (Slide 9): Notice the arrow says "Entire file sent to client." This is the
bottleneck.
• Limitations (Slide 8):
• Excessive Data Movement: If you want 1 record from a file of 10,000, the
server sends all 10,000. This clogs the network.
• Fat Client Needed: Your PC must be powerful because it does all the work.
• Decentralized Control: If two people edit the file at the same time, data
corruption happens easily.
• Concept: The server is not just a hard drive; it is a "Database Engine" (it has a brain).
• How it works:
1. The Client sends a specific request (SQL query) to the server.
2. The Server processes the request and finds exactly what is needed.
3. The Server sends ONLY the result back to the client.
• The Diagram (Slide 11): Notice the arrow says, "ONLY result of request." This is
much faster and saves bandwidth.
• Key Terms:
• Database Engine: The back-end software (like Oracle or SQL Server) that
manages data.
• API (Application Program Interface): The software "hooks" that let the client
talk to the server easily.
• File Server: Client does the processing; High network traffic; Low security.
• Client/Server: Both do processing; Low network traffic; High security.
As systems got complex, we needed more than just a Client and a Server.
• On-demand self-service: You can buy more server space instantly without calling a
human.
• Rapid Elasticity: The system grows (scales up) when you are busy and shrinks when
you are quiet. (See Diagram on Slide 23: The red line matches demand perfectly, unlike
the blue stairs of in-house systems).
• Resource Pooling: One physical machine serves many customers.
• IaaS (Infrastructure as a Service): You rent the hardware/network. You manage the
operating system and apps. (e.g., Amazon EC2).
• PaaS (Platform as a Service): They provide the hardware and the operating system
tools. You just write the code. (e.g., Google App Engine).
• SaaS (Software as a Service): They provide everything. You just use the software.
(e.g., Gmail, Salesforce).
1. What is SOA?
Instead of building one giant software monster (Monolithic), we build software out of small,
reusable blocks called Services.
• Example: A "Credit Card Check" service. The Sales system uses it. The Website uses
it. The Accounting system uses it. You write it once, and everyone uses it.
• CSS (Cascading Style Sheets): A file that controls fonts, colors, and layout for the
whole site. If you change the CSS file, every page updates instantly.
• XSL: Used to style XML data.
• Trust: Does the site look professional? Do you disclose shipping fees upfront?
• Personalization: Does the site remember you? (e.g., "Recommended for you...").
• Link Longevity: "Links must live forever." Never delete a page; redirect it. Broken
links kill customer trust.
Let's apply this to a real scenario: Pine Valley Furniture (PVF) wants to add Advertising to
their WebStore.
1. The Requirement:
They want to increase revenue by showing ads, but they have concerns (Slide 46):
Instructor's Summary
Designing distributed systems is about choosing the right architecture to ensure the system is
fast, safe, and always available.
Chapter 13: System Implementation.
In previous chapters, we planned and designed the system (the blueprints). Now, we are
building the house and moving the family in.
Let’s break this down systematically, covering every slide and concept from your materials.
You cannot just write code and hope it works. You must have a Master Test Plan.
The Seven Types of Tests (Slides 12–17)
The slides categorize tests into Static (code is not running) vs. Dynamic (code is running), and
Manual (humans do it) vs. Automated (computers do it).
1. Inspections (Static/Manual):
• What is it? A formal group review. Peers look at the code to check for syntax errors or
standards violations. It’s like a grammar check for code.
2. Walk-throughs (Dynamic/Manual):
• What is it? A group meeting where the programmer walks peers through the logic of
the code. "First it does X, then it does Y."
• Slide 15 Diagram: Shows the steps: Schedule meeting → Present work → Walk through
logic → Reviewers ask questions → Resolve disagreements.
• What is it? The programmer sits at their desk and manually traces the logic with a pen
and paper. "If input is 5, the variable becomes 10..."
• What is it? Testing one single module (file) in isolation to see if it works on its own.
• What is it? Putting unit-tested modules together to see if they work together. Usually
done Top-Down.
• What is it? Testing the entire program as a complete product. Does it meet the business
objectives?
• What is it? If you are testing the top module but the bottom modules aren't written yet,
you write a "Stub"—a fake line of code that just says, "I ran successfully." It acts as a
placeholder.
• Test Case: A specific scenario (e.g., "Login with a wrong password"). It must be
repeatable.
• Testing Harness (Slide 21): Automated software that reviews code for errors. It saves
time by running thousands of tests automatically.
In modern Agile/eXtreme Programming, you don't code then test. You do them together.
• Refactoring: Making a program simpler after adding a new feature. You clean up the
messy code to make it efficient without changing what it does.
• Alpha Testing: Users test the system using simulated (fake) data.
• Includes: Recovery testing (pull the plug, see if it recovers), Security testing
(try to hack it), Stress testing (overload it with users).
• Beta Testing: Users test the system using real data in their real work environment.
Installation is the scariest part. It is turning off the old way of doing things and turning on the
new way. There are four strategies (Diagrams on Slides 27, 29, 31, 33).
• Concept: "Cold Turkey." Turn off the old system, turn on the new one.
• Diagram: Current System stops → New System starts.
• Pros: Cheapest method.
• Cons: Highest risk. If the new system fails, you have no backup.
• Concept: Run both the old and new systems at the same time for a while.
• Diagram: Current and New systems overlap.
• Pros: Safest method. If new fails, you still have the old one.
• Cons: Very expensive (double the work, double the staff). Confusing for users.
• Concept: Try it out at one branch (e.g., the Dhaka office) before rolling it out to the
whole company.
• Diagram: Location 1 gets New System. Location 2 stays on Current System until
Location 1 is successful.
• Pros: Limits damage if things go wrong.
• Concept: Install the system piece by piece (e.g., install the Accounting module first,
then Inventory later).
• Diagram: Current system slowly fades out as New Modules are added one by one.
• Pros: Low risk, easy to learn.
• Cons: Slow. Old and new systems must be able to share data (bridging).
Documentation is "boring" but essential. Without it, no one knows how to fix or use the system
later.
• System Documentation: Detailed technical info for programmers (how the code works,
database structure).
• User Documentation: Instructions for the end-users (how to file an order, how to log
in).
• User Guide Structure (Slide 38): A standard guide includes an Introduction, Getting
Started, Troubleshooting, and a Glossary.
Why do systems fail even if the code is good? Psychology and Politics.
Implementation Failure (Slide 45):
• Fear of change.
• Lack of commitment from management.
• Politics (employees engaging in sabotage because they liked the old way).
• Threats: Malware (Viruses, Trojans), Laptop theft, Denial of Service (DoS) attacks.
• The Weakest Link: The User.
• Users write passwords on sticky notes.
• Users use weak passwords like "123456".
• Solution: Firewalls, VPNs, and strict user policies.
The slides use a Webstore (Online Shop) example to apply these concepts.
• Testing (Slide 49): They didn't just test "Buying an item." They tested:
• Simple: Add to cart.
• Multiple: Add item, change quantity.
• Crisis: What if the server crashes mid-purchase?
• Bug Tracking (Slide 51): They used a formal form to track bugs. You can't fix a bug
if you can't replicate it.
• Alpha/Beta (Slide 52-53):
• Alpha: Employees got $100 to shop on the test site to find bugs.
• Beta: Real customers were invited to try it out.
Instructor's Summary
This concludes Chapter 13. You are now ready to maintain the system!