[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.
  • Because it is asynchronous, data inconsistencies may occur, and management and costs are increased because a message agent is required.
  • 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
  • Dynamic (state, sequence diagram)
  • 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.
  • Mockup? A static model made similar to an actual screen for design, usage explanation, evaluation, etc.
  • Placing components only visually, usually not implemented in practice
  • A document that adds a description of the content, flow of movement between pages, etc. to the storyboard wireframe.
  • 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
  • Structural pattern? Adapter, Bridge, Proxy, Composite, Decorator, Facade, Flyweight
  • Behavior pattern? Chain of Responsibility, Command, Iterator, Mediator, Observer, State, Strategy, Visitor Strategy pattern: Behavior pattern for selecting algorithm
  • 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 테크

      15 / 164