[Information processing engineer handwriting] Software design
· Tech· CS
Certification
middleware
In the process of processing large amounts of data, it has become difficult to process it in only one computing environment, and a distributed system environment has become necessary to improve performance and minimize obstacles.
- Software that allows applications to exchange data with each other
- It is software that sits between applications in many operating systems.
- ? RPC Remote Procedure Call-based middleware that exchanges data using a standardized interface without the user needing to know internal operations such as information exchange methods
- MOM Message-Oriented Middleware Message-Oriented Middleware
Message-Oriented Middleware, MOM
- ? It is suitable for online work that requires immediate response rather than slow and stable response.
- It serves to bundle independent applications into one integrated system.
- ? Supports communication between different applications in an asynchronous manner.
- Message Queue based pattern is the main + broadcast format / multicast format
- During the process of delivering messages, storage, routing, and conversion are possible. Routing means that messages can be distributed to multiple users at the middleware level. Multicast becomes possible.
software design
Requirements Analysis
- It is the starting point and practical first step in software development.
- The task of creating a requirements specification by tracing what the software should do
functional requirements
- It simply has to have certain features~
Non-functional requirements
- ? Performance, reliability, security, safety, availability (whether the service is provided when the user wants it)
analysis field
Requirements elicitation, domain analysis, modeling, prototyping and testing, documentation and review
- Domain Analysis Information on needs is collected, background is analyzed, and modeling is done based on this.
design principle
abstraction technique
? Material (data) abstraction, control abstraction, process abstraction
- ? There is no AVL diagram, there is an AVL algorithm. Self-balancing binary search tree
- The bias tree is reorganized into an AVL tree and has the properties of a binary search tree.
- The height difference between the left and right subtrees is 1.
Requirements Analysis Diagram
Data Flow Diagram, UML Diagram, E-R Diagram
UML diagram, Unified Modeling Language
- Functional (use case diagram)
- Static (class diagram) Operation: The behavior of a class
Use Case Diagram
- System, actor, use case, relationship? External systems that interact with the system are also ‘actors’.
- Relationships between components: association, extension, ? generalization, dependence
sequential diagram (sequence diagram)
- Dynamic interactions between objects are modeled around the concept of time.
- Generally, the vertical direction of a diagram represents the passage of time.
- actor, object, message, return message, ? Control block (loop for control statements)
software development methodology
Structural, information engineering, object-oriented, component-based methodology
- Software modeling? The results of a modeling task can influence other modeling tasks.
- Using a software model helps improve understanding of the software to be developed and communication between stakeholders.
- Model The model abstracts the development target and expresses it visually with symbols or pictures.
- Models can improve understanding of software.
- The model improves communication between stakeholders.
- Through the model, it is possible to infer the system to be developed in the future. - Prototype model
1. Structural Methodology (Waterfall)
DFD(Data Flow Diagram), DD(Data Dictionary)
- A divide-and-conquer approach methodology that divides and develops the entire system according to function and integrates it
data flow diagram (DFD)
- In requirements analysis, a method of describing data flow, conversion process, and functions centered on geometry.
- Also known as data flow graph and bubble chart.
- Data flow diagram component process - circle
- Data Flow - Arrow
- ? 자료 저장소(Data Store) - 평행선
- ? Terminator - Square
2. Information Engineering Methodology (Prototype)
- Modeling language for expression of database design 'Entity-Relationship Diagram', E-R diagram
3. Object-oriented methodology (iterative development), OOA (Object Oriented Analysis)
OOSE(Jcobson), OMT(? Rumbaugh), OOD(Booth)
- Analyze and design systems using basic units called objects
- ? Use a bottom-up process
UML notation
- A drawing depicting system interaction, workflow, system structure, and component relationships using the UML diagram unified modeling language.
- ? Static model: class, component, package, development
- ? Dynamic model: sequence, collaboration, state, interaction, timing
- ? Functional model: use case, activity
Booth Method
- How to approach the micro development process and macro development process
- Diagram for each task, definition of class hierarchy, and clustering of classes
Jcobson Method
- Analysis using use cases
- Describes how users, external systems, and other elements interact with the system
Wirfs-Block Method
- There is no distinction between analysis and design, and customer specifications are evaluated and design work is performed continuously.
Rumbaugh Method
- ? Create three models: object model, dynamic model (state diagram), and functional model (data flow diagram)
? Data flow diagrams appear in both object-oriented methodologies (OMT (Rumbaugh)) and structural methodologies.
4. Component-based methodology
RUP, XP, Agile, Marmi
- Component: A part of a system that can exist independently with a clear role. In a broad sense, it can be viewed as any reused unit, and can only be accessed through an interface.
Extreme Programming, eXtreme Programming, XP
- Representative methods of the agile development process
- This is an appropriate method when there are continuously changing business needs.
Scrum
- One of the agile methods
- A method of developing power by dividing the project development period into small pieces. Scrum Master: Serves as a guide who provides advice from an objective perspective to help the Scrum team perform Scrum well.
- Sprint: A short period of time during which a certain amount of work has to be completed.
- Product Backlog: A list of tasks to be resolved by the Scrum team, which may include software requirements, architecture definition, etc.
- Velocity: This can be seen as an estimate of how much product backlog a team can handle in one sprint.
Overloading vs Overriding
Both are techniques that support polymorphism in object-oriented concepts.
overloading
- ? A polymorphism support technique that allows methods with the same name to have different types and numbers of parameters.
overriding
- ? The implementation of a general method defined in a superclass can be ignored and redefined in a subclass.
Factors that determine the software development area
interface
- Devices that are indirectly controlled by software and hardware that runs the software
- Software that connects existing software and new software
- The process of executing software by sequential operations
features, performance, constraints, etc.
UI
- Feedback Shows the status of the system and the effect of the user's instructions, helping the user interpret the progress of the command and the displayed content.
UI design tool
- This is produced at the beginning of the wireframe planning stage, and is a stage in which the framework for the rough layout of the page or UI elements is designed.
type
GUK(Graphical User Interface), OUI(Organic User Interface), NUI(Natural User Interface), CLK(Command Line Interface)
- NUI (Natural User Interface): Recognizes the user's natural movements
design pattern
Common, iterative solutions to frequently encountered problems in software design
GoF (Gang of Four) design pattern
- Creation pattern? Abstract Factory, Builder, Prototype, Singleton
Encapsulation
- An object-oriented concept that means treating property-related operations as one by grouping them within a class.
software architecture
design process
- Setting design goals
- System type setting
- Apply and customize styles
- Create subsystem functions and interface actions
- Architectural design review
software architecture model
MVC, Model-View-Controller
- You don't need a model for each view.
- ? The cohesion of the layer responsible for the user interface can be increased, and the coupling between them can be reduced by creating several different UIs.
pipe filter architecture
- Used in systems that generate and process data streams
- ? When moving data between filters, overhead occurs due to data conversion.
class design principles
Single responsibility principle
- There should be only one reason to change a class.
open-closed principle
- A class must be open for extension (inheritance) and closed for modification.
Liskov Substitution Principle (LSP)
- ? A base class must be replaceable by a derived class.
- A derived class can always replace its base class.
- This is because if the derived class (new version) does not support all methods (old version) of the base class, the IS-A relationship, which is the basis of inheritance, cannot be established.
- Only by designing in accordance with the Liskov replacement principle can stable polymorphism be maintained based on the correct IS-A relationship.
Principle of dependency reversal
- ? Clients must depend on abstract classes (interfaces) rather than concrete classes.
Other terminology
Preprocessor (FEP, Front End Processor)
- ? A program or hardware that processes input data in advance before the computer's processor processes it, reducing processor processing time
- It serves to reduce the load on the computer by first performing transmission processing between the host computer and the terminal.
- Processes splitting of packets, assembly of split packets, message inspection, etc.
EAI(Enterprise Application Integration)
- Integration of enterprise applications
- A process that provides communication between applications within an enterprise by exchanging data and invoking the services provided.
- A solution that helps various applications within a company easily interact with each other
GPL, General Public License (GNU GPL or GPL)
- A free software license created by the Free Software Foundation, guaranteeing end users the freedom to run, study, share, and modify the software.
Duplexing
- Duplex or two-way communication is an electronic communication system that exchanges information between two points.
Comments
No comments yet. Be the first!
164 posts in 테크
- 2233D Gaussian Splatting vs Unreal Engine: Two Ways to Build a 3D World — and Where Each One Ships
- 222LLMs Inside Unreal Engine: The New Skills Game Developers Need in 2026
- 220Living With Claude Fable 5: How the Most Capable Model Changes the Way You Actually Work
- 219Luma's Bet: From Video Generator to a Single Model That Thinks in Pixels
- 215The Best AI Video Models in 2026: Types, Differences, and Where This Is All Going
1–5 / 164