Software Engineering Model - The Road to Architects (4)

  • software engineering model

Agile development :

Individuals and interactions trump processes and tools, working software trumps comprehensive documentation, customer collaboration trumps contract negotiations, and responding to change trumps sequential planning. (Adapting to changes in demand and actively responding)

Agile development differs from other structured methods in that it is people-oriented and adaptable.

Agile development is also iterative and incremental development.

 

  1. Extreme Programming (XP): Foundations and values ​​are communication, simplicity, feedback and courage . The process of the project is to strengthen communication, start simple, seek feedback, and be brave in seeking truth from facts.

Near-spiral development breaks complex development into relatively simple small cycles. Follow the test first.

  1. Crystal family methods: Human-centered, each development method has unique roles, process models, work products, and practices.

  1. Scrum: Iterate every period of time (eg 30 days) into sprints.

  1. Feature Driven Development (FDD): is an iterative development.

Three elements: people, process and technology.

Five cores: develop overall object model, construct feature list, plan feature development, feature design, and feature construction.

  • Unified Process Model

Unified Process Model (RUP)

RUP describes how to effectively use commercial and reliable methods to develop and deploy software , which is a heavyweight process.  RUP provides guidelines, templates, and case support for all aspects and levels of program development .

The software life cycle is a two-dimensional software development model with nine core workflows .

Business modeling, requirements, analysis and design, implementation, testing, deployment, configuration and change management, project management, and environments.

The RUP development life cycle has multiple cycles, and each cycle consists of four phases.

Initial Phase: Determine system scope.

Refinement stage: system architecture is determined.

Construction phase: Encoding implementation.

Handover phase: for customer use.

RUP core concepts:

Role: The question of who. There are many different roles, architects, designers, testers.

Activity: Solve the problem of how. Clarify the purpose and how to do it.

Products: the question of what. Artifact activities produce, create, or modify information.

Workflow: the question of when. Continuous requirements workflow.

RUP features :

  1. Use-case-driven : Activities such as requirements analysis, design, implementation, and testing are all use-case-driven.
  2. Architecture-centric : includes the overall organization and global control of the system. Typical 4+1 attempt model.

 

  • Reverse Engineering

Software reuse:

In the early stage, it was code reuse, reducing software development and maintenance costs. Now refers to all relevant aspects such as domain knowledge, development experience, design decisions, architecture, requirements, design code and documentation.

reverse engineering :

Analyze the program, try to restore the source code at the most basic level.

Divided into four levels:

Implementation level: includes the program's abstract syntax tree, symbol table, and design representation of the procedure.

Structural level: dependencies such as call graphs, structure graphs, program graphs, and data structures.

Functional level: information about program functions and program segment relationships, data and control flow models.

Domain level: such as ER diagram, the relationship between domain concepts.

The domain level is the most abstract and the least complete. The implementation level is not abstract and has the highest completeness.

Refactoring, design recovery, reengineering and forward engineering.

Refactoring: transforming the system description form at the same level of abstraction.

Reengineering: On the basis of reverse engineering, modify or reconstruct the existing system to generate a new system version. Three processes, reverse process, new requirements consideration and forward engineering.

Design Recovery: Abstract the relevant data design from the existing program.

Forward Engineering: Using the information to change or refactor existing systems.

Guess you like

Origin blog.csdn.net/ke1ying/article/details/132329632