Tell the structured method, which breaks a system into functions, apart from object orientation, which bundles data with operations, by what each takes as the unit of design.
Explain what a use case describes and how it relates to UML.
Place reverse engineering as a technique for recovering specifications and design information from existing products.
The structured method (構造化手法) views a system in units of functions (processes) and designs it by breaking large functions down, level by level, into smaller ones.
Library system
Lending
Check the borrower
Record the loan
Returns
Accept the return
Check for overdue items
Then break each function into small processes that can be written as concrete steps.
3 / 3
The split is based on what the system does, and the data that flows between the resulting functions is sorted out at the same time. A DFD (data flow diagram), for example, is used to draw this flow.
AnalogyIt is like planning a big house cleaning: you go from the whole house to each room, then from each room to single jobs such as mopping the floor or wiping the windows, writing each one down.
How to rememberThink of a building: the structure is its frame. You fix the overall frame first and then work down into the details.
Exam points
Mix-upThe structured method (構造化手法) is the way the design itself proceeds, while a DFD is a diagramming technique used within its analysis to draw processes and how data flows between them.
Object orientation (オブジェクト指向) is an approach that builds a system from objects, each bundling data together with the operations that handle that data.
← Scroll the figure sideways →
The template for an object is called a class, and the objects that actually run are created from classes. Typical properties are encapsulation, which hides the inside from the outside; inheritance, which passes a higher class's characteristics down; and polymorphism, where objects respond to the same instruction in their own ways.
AnalogyYou can use a TV remote just by pressing its buttons, without knowing the circuits inside. Wrapping up the inside and showing only the controls is what makes it like an object.
How to rememberThe word encapsulation comes from a capsule, like a medicine capsule: the contents are sealed inside a shell.
Exam points
ExamThe user of an object only has to send it a request and can use its functions without knowing how its internal data is held or how its processing is built. This is the effect of encapsulation (カプセル化).
ExamInheritance (継承) lets a lower class take over the data and operations of a higher class, so common parts can be reused as components without being rewritten, which raises development productivity.
Mix-upThe structured method (構造化手法) designs by splitting into functions, while object orientation (オブジェクト指向) designs around bundles of data and operations.
A use case (ユースケース) describes, for each scene in which a user (an actor) uses the system to reach a goal, the interaction between that user and the system.
Element
How it is drawn
What it represents
Actor
Stick figure
A person or external system that uses the system
Use case
Ellipse
A goal the user wants to reach with the system
System boundary
Rectangle
The scope of the system being modeled
An actor is not limited to a person and also covers external systems that interact with the system. Because a use case records what can be done as seen from outside rather than how the system processes things inside, it is used when requirements are being organized.
AnalogyIt is like a play script that sets out, scene by scene, the lines the actors exchange, but says nothing about the stage machinery backstage.
How to rememberRead the name literally: a use case is a case of use. You write one for each situation in which the system is used.
Exam points
ExamA use case (ユースケース) is based on a scenario (シナリオ) of the user working with the system and describes what the user does and how the system responds.
UML (Unified Modeling Language) is a standard notation that defines the kinds of diagrams and how to draw them, so that a system's structure and behavior can be shown in pictures.
Example diagram
What it shows
Class diagram
Classes and how they relate (structure)
Use case diagram
How the system is used, seen from the user's side
Sequence diagram
The time order of messages between objects
Activity diagram
The flow of processing or business work
UML is widely used in object-oriented analysis and design and is not tied to any particular programming language or product. Its diagram types are each made for a purpose, and you pick the ones that fit what you need to show.
AnalogyBecause musical notation is fixed, anyone reading a score plays the same piece. UML is like a shared score for drawing designs.
How to rememberThe U stands for Unified: UML came from merging several notations that had been separate, and the name keeps that history.
Exam points
ExamUML has diagrams for behavior as well as for structure; an activity diagram (アクティビティ図), for example, can draw the flow of steps in a business procedure.
Mix-upA use case (ユースケース) diagram is one of the diagrams UML defines, while UML is the whole system of diagram notations that includes it.
Reverse engineering (リバースエンジニアリング) is a technique that analyzes an existing program or product to recover its specifications and design information.
Existing program or product
Analyze the inside
Recover specs and design info
Document it for maintenance and more
Turn that information into documents that serve as the basis for maintenance or rebuilding.
4 / 4
It runs in the opposite direction to ordinary development (forward engineering), which goes from design to product, by tracing back from the finished product to the design. The recovered information becomes material for maintaining or rebuilding existing systems and for technical research on products.
AnalogyIt is like taking apart an old clock, studying the shapes of the parts and how they fit, and redrawing the blueprint that no longer exists.
How to rememberReverse means backward. Like putting a car in reverse, you travel the usual development route in the opposite direction.
Exam points
ExamReverse engineering (リバースエンジニアリング) analyzes a program to investigate its specifications and extract design information. Its targets are not limited to software and include taking a product apart to reveal its construction.
Mix-upRefactoring (リファクタリング) tidies a program's internal structure while keeping its outward behavior unchanged, so its purpose differs from that of reverse engineering (リバースエンジニアリング), which recovers specifications and design information from existing products.