📘 CodingMarble Learn

Information System Design

Designing an information system has three big jobs: find out what users really need (requirements analysis and definition), draw how data moves (modelling), and split the big system into small modules with clear links (partitioning). Good design makes the system easy to build, test and change.

🎬 Step-by-step story

  1. Someone says: "We need a library app." That is only an idea. We do not yet know what it must do.
  2. Requirements analysis: we ask the users and write 4 clear jobs on notes: borrow a book, return a book, search books, show fine.
  3. Modelling: we draw how a request moves. A student asks to borrow, the Borrow process checks the book list, and the answer goes back.
  4. Partitioning: the one big block is split into three small modules: Members, Books and Loans. Thin links show how they talk.
  5. Now we change only the Loans module. It is marked red for a moment. Members and Books are untouched and still work.
  6. Free play. Press "Add new module" to plug in SMS alerts. Press "Change the Loans module" to see that only one block changes.

Tip: drag the 3D scene to turn it. Use two fingers to zoom.

🤔 Common doubts, cleared

Why not start coding at once?

Without clear requirements you may build the wrong thing. The four notes in step 1 make the goal clear before any code.

What is the difference between a model and the real system?

A model is a simple drawing. It leaves out details so we can check the flow, like the red dot moving from student to book list.

Why split the system at all?

Small modules are easier to build, test and fix. You can change Loans without touching Members, as step 4 shows.

How do I decide the modules?

Group requirements that use the same data or belong to the same job. Borrow and return both use loans, so they go together.

Requirements analysis and definition

A requirement is something the system must do or be. Analysis means finding the requirements by talking to users, watching how they work, and reading old forms. Definition means writing them clearly so everybody agrees.

Each requirement should be clear, testable and not in conflict with another. The result is a requirements definition document that the users approve before building starts.

Modelling an information system

A model is a simple drawing of the system before we build it. Different drawings show different things.

Models help us find missing steps early, when mistakes are cheap to fix.

Partitioning an information system

Partitioning means dividing a big system into smaller parts called modules or subsystems. Each module does one clear job and talks to the others through a small, clear interface.

Common splits: by function (members, books, loans), or by layers (screen, logic, database).

Try it

In the 3D (last step): press "Change the Loans module". Which blocks changed? Then press "Add new module" and count the modules.

At home: pick a small system, such as a tuck-shop. Write four requirements on slips of paper. Then group the slips into 2 or 3 modules.

Key formulas and definitions

Worked examples

1. For a library app, is "search a book in under 2 seconds" functional or non-functional?

Non-functional. It says how well the search must work, not what the system does.

2. In a data flow diagram of "borrow a book", name the person, the process and the data store.

Person: the student. Process: borrow the book. Data store: the book list.

3. A system is split into Members, Books and Loans. The fine rules change. Which module is edited?

Loans (fines belong to borrowing). Members and Books stay as they are.

4. Group these into modules: add student, search title, issue book, remove book, return book.

Members: add student. Books: search title, remove book. Loans: issue book, return book.

Common mistakes

Practice quiz

1. What does a functional requirement describe?
2. A data flow diagram shows...
3. Dividing a system into modules is called...
4. Good modules have...
5. Which comes first in design?

Practice: answer these yourself

Type or choose your answer, then press Check. Use a hint if you are stuck; the full solution appears after you answer.

Frequently asked questions

What is requirements analysis?

Finding out what the users really need from the system by asking, watching and studying their work, then writing it clearly.

Why do we model before building?

A drawing is cheap to change. Finding a missing step on paper costs much less than finding it after the system is built.

What is a module?

A small part of a system that does one clear job and connects to other parts through a simple interface.

Where this is taught

Japan高校(専門学科)1〜3年Programming for Information Systems

Learn first

Related lessons

All Computer Science lessons