Introduction
2022 SA am2
01-08: http://127.0.0.1:4000/archives/191
09-15: http://127.0.0.1:4000/archives/192
16-20: http://127.0.0.1:4000/archives/193
21-25: http://127.0.0.1:4000/archives/194
The difficulty of this specific exam seems manageable, but there are still things I’ve already studied. I should be able to pass the objective questions after some solid review. I’m hoping to finish these quickly and move on to the afternoon questions, as those are the real key to passing.
Thinking back, my approach for the first Common Subject exam was flawed. It’s pointless to grind through questions when I don’t understand the concepts at all. It’s better to take it slow, one question at a time. Previously, I was rushing to finish the analysis articles, which made that entire practice run basically useless. Since I’m just starting, it’s fine to go slow and steady.
Random Thoughts
Lately, I’ve been thinking of learning as a form of “connection.” My inspiration came from language learning, which is essentially connecting objects to words. Learning abstract concepts is similar: it’s about forming connections where a specific input produces a specific output. You deepen these links through repetition. A more direct example is how knowledge points relate; deriving one point from another is like building a bridge between two pieces of data. Once you’ve seen or derived this link, and then strengthened it, you’ve mastered the concept—just like how you master an object by learning its name. (Of course, this is just a random thought without proof. Most opinions I hear are probably based on personal experience rather than rigorous evidence anyway.) We form views based on our experiences; it’s hard to imagine what we haven’t seen. The only exception might be dreams. Maybe dreams are actually us visiting other worlds? This isn’t rigorous either, but I recently read a novel where the protagonist enters a world at a random location and, if they complete specific conditions, can keep memories or gains from that world. My own dreams made me lean toward this theory. But on second thought, it’s more likely that when we sleep, the brain can focus entirely on imagination, reaching its peak and creating things we can’t fathom while awake. For instance, the discoverer of the DNA double helix structure allegedly got the inspiration from a dream.
1
In the early stages of agile development, which method involves stakeholders gathering to confirm pre-set questions and issues to reach a common understanding of project objectives, scope, etc., and then sharing the results?
A. Agile Modeling
B. Inception Deck
C. Planning Poker
D. User Story Mapping
Translation of Japanese options: ア Agile Modeling イ Inception Deck ウ Planning Poker エ User Story Mapping
The Inception Deck is a vital tool used particularly at the start of a project to ensure the team reaches a consensus on the project’s purpose and scope. The team explores critical questions (goals, risks, success criteria, etc.) beforehand, which helps everyone align on the overall direction and boundaries. Therefore, the correct answer is B (イ).
2
Among software patterns, which description applies to GoF (Gang of Four) design patterns?
A. As Java patterns, they consist of Argument Objects, Object Mutability, etc.
B. Patterns for object-oriented development, categorized into three types: Creational, Structural, and Behavioral.
C. Categorized into four types: Structural, Distributed Systems, Interactive Systems, and Adaptive Systems.
D. Consists of “Layers” for dividing elements of different abstraction levels into hierarchies, and “Broker” for component partitioning.
Translation of Japanese options: ア Java patterns… イ Patterns for OO development, categorized into Creational, Structural, and Behavioral… ウ Four categories: Structural, Distributed, Interactive, Adaptive… エ Consists of Layers, Broker…
GoF design patterns are classic patterns proposed by four software engineers specifically for object-oriented programming. They are divided into three major categories: Creational, Structural, and Behavioral, used to solve common OO design problems. Therefore, the correct answer is B (イ).
I looked up some related info , and it seems this is where the design patterns I wrote about previously originated.
3
Among the architecture patterns in Pattern-Oriented Software Architecture (POSA), which one provides a mechanism to dynamically change the structure and behavior of software by splitting it into two levels: a meta-level and a base-level?
A. Broker
B. Microkernel
C. Model-View-Controller
D. Reflection
Translation of Japanese options: ア Broker イ Microkernel ウ Model-View-Controller エ Reflection
The Broker pattern is for distributed systems, aiming to decouple components (clients and servers) by using a broker for communication.
The Microkernel pattern is common in OS design, keeping core functions (memory/process management) in the kernel while implementing other features as pluggable modules.
Model-View-Controller (MVC) is an interactive system pattern that separates business logic (Model), UI (View), and input control (Controller). It decouples logic but doesn’t focus on dynamic structural changes.
The Reflection pattern splits software into a “meta-level” and a “base-level.” The meta-level holds metadata describing the system’s structure/behavior, while the base-level handles the business logic. This allows the software to modify its own structure and behavior dynamically. It’s often used in systems requiring high extensibility. Therefore, the correct answer is D (エ).
4
When using a DBMS in an embedded system, an in-process database is sometimes used to prevent communication overhead, avoid communication load, and keep the required memory within resource limits. Which of the following is an appropriate description of an in-process database?
A. It communicates via sockets with an application program acting as a client in a client-server format and uses SQL for processing.
B. The database engine is provided as a library, linked with the application program, and runs in the same memory space.
C. The entire database is placed in memory to speed up database processing.
D. Each table is managed as a single file, and the application program operates it via file I/O APIs.
Translation of Japanese options: ア Socket communication, client-server… イ Library format, linked to app, same memory space… ウ Entire DB in memory… エ One table per file, file I/O APIs…
An in-process database (インプロセスデータベース) means the DB engine is linked as a library within the application, sharing the same memory space. This avoids the overhead of client-server communication, making it ideal for resource-constrained embedded systems.
Option A describes a client-server DB; Option C describes an “In-memory database”; Option D describes a file-based management approach. Therefore, the correct answer is B (イ).
5
Using the Strategy pattern, a report output system was designed according to the following class diagram. Which description is appropriate?

A. The client can use the report output strategy subclasses without being aware of the specific format being used.
B. It is easy to add algorithms for new formats.
C. The report output strategy class handles the logic of which format to use for the output.
D. The report output algorithm is written inside the context class.
Translation of Japanese options: ア Client doesn’t need to know the subclass… イ Easy to add new format algorithms… ウ Strategy class handles the dispatching… エ Algorithm is in the Context class…
The diagram shows the Strategy pattern implemented for multi-format report generation. The core principle is separating the implementation of an algorithm from its use, allowing you to switch or add algorithms without touching the client code. I’ve actually written about Strategy pattern before .
The design makes adding new algorithms very convenient—you just implement a new concrete strategy class. Therefore, the correct answer is B (イ).
6
Among the following methods of passing data between modules, which one results in the lowest module coupling?
A. Passing a single data item via global data.
B. Passing a single data item via arguments.
C. Passing a data structure via global data.
D. Passing a data structure via arguments.
Translation of Japanese options: ア Single item via global… イ Single item via arguments… ウ Data structure via global… エ Data structure via arguments…
This is about software coupling. I’ve also written an article on this .
Passing a single value is “Data Coupling,” passing a data structure is “Stamp Coupling,” and using global parameters is “Common Coupling.” Data coupling has the lowest degree of coupling. Therefore, the correct answer is B (イ).
7
What is the appropriate sequence of steps for creating a DFD when modeling a new system based on an existing one?
A. Current Physical -> Current Logical -> New Physical -> New Logical
B. Current Physical -> Current Logical -> New Logical -> New Physical
C. Current Logical -> Current Physical -> New Physical -> New Logical
D. Current Logical -> Current Physical -> New Logical -> New Physical
Translation of Japanese options: ア Current Phys -> Current Logic -> New Phys -> New Logic イ Current Phys -> Current Logic -> New Logic -> New Phys ウ Current Logic -> Current Phys -> New Phys -> New Logic エ Current Logic -> Current Phys -> New Logic -> New Phys
I’ll bet on B (イ). Generally, creating a DFD involves abstracting business requirements from the current implementation (Physical to Logical), then improving that logical model for the new requirements (Current Logical to New Logical), and finally implementing the new physical system (New Physical).
8
In the development of a certain procurement system, which of the following is an appropriate example of exploratory testing performed by a developer?
A. Based on past experience developing procurement systems, the developer guessed data patterns likely to detect flaws in input item correlation checks and created test cases in advance.
B. To confirm if the product price applied according to the quantity range is correct, test cases using the median value of each range were created and tested.
C. To confirm if organization names are printed correctly before and after an organizational change, test cases were created in advance using the effective start date and the day before as order dates.
D. To confirm that no slip is created when the combination of input values is invalid, several representative combinations were tested, and based on those results, the next test cases were created and tested repeatedly.
Translation of Japanese options: ア Guessed patterns based on experience, pre-made test cases… イ Used median values for range testing… ウ Pre-made cases for date-based changes… エ Tested combinations, created next cases based on results repeatedly…
Exploratory testing is a style where test design and execution occur dynamically. It doesn’t rely on fixed, pre-defined test cases; instead, you adjust the test plan in real-time based on system observations. The key is that test cases are not fully pre-set but are refined based on prior results.
In options A, B, and C, the test cases are created in advance, which is traditional scripted testing. Option D involves a feedback loop based on results. Therefore, the correct answer is D (エ).