System Architect (Second Edition) Study Notes----Software Engineering

[Original link] System Architect (Second Edition) Study Notes----Software Engineering

1. Software Engineering

1.1 Manifestations of software crisis

  • Software development progress is difficult to predict
  • Software development costs are difficult to control
  • Software functionality fails to meet user expectations
  • Software quality cannot be guaranteed
  • Software is difficult to maintain
  • Software lacks proper documentation

1.2 Contents of software engineering

  • P (Plan): Software specification, stipulating software functions and its runtime limitations
  • D (Do): Software development, develop software that meets specifications
  • C (Check): Software confirmation, confirming that the developed software can meet the needs of users
  • A (Action): Software evolution, the software is continuously improved during operation to meet new customer needs

2. Software process model

2.1 Software declaration cycle

  • demand analysis
  • software design
  • software development
  • Operation and Maintenance
  • disuse

2.2 Waterfall model

  • demand analysis
  • system design
  • programming
  • Coding implementation
  • unit test
  • Integration Testing
  • System test
  • Operation and Maintenance

2.3 Disadvantages of the Waterfall Model

  • It is difficult, even impossible and unrealistic to determine the completeness and correctness of software requirements.
  • The waterfall model is a strictly serialized process model, which makes it take a long time for users and software project leaders to get a visible software system. If the user's expectations are inconsistent or there is a change in demand, it will cause huge losses.
  • The basic principle of the waterfall model is to completely solve the work of each stage at one time without omissions, errors, etc. In fact, this is unrealistic or impossible.

2.4 Prototype model

2.5 Prototype model development stage

  • prototype development stage
  • Target software development stage

2.6 Ways to develop prototypes

  • Human-computer interface and interpersonal interaction methods using simulated software systems
  • actually develop a prototype
  • Find one or several running similar software for comparison

2.7 Spiral model

2.8 Composition of each stage of the spiral model

  • Target setting
  • Risk Analysis
  • Development and validation
  • Review

3. Agile model

3.1 Characteristics of agile methods

  • Agile methods are "adaptive" rather than "predetermined"
  • Agile methods are "people-oriented" rather than "process-oriented"

3.2 Core ideas of agile methods

  • Agile methods are adaptive, not predictable
  • Agile methods are people-based, not process-based
  • Iterative and incremental development process

3.3 Common agile method practices

  • Extreme Programming (XP)
  • Crystal Series Method
  • Scrum
  • Feature-Driven Development (FDD)

3.4 The foundation and value of Extreme Programming

  • strengthen communication
  • Start simple
  • Ask for feedback
  • Have the courage to seek truth from facts

3.5 FDD believes that the three elements required for software development

  • people
  • process
  • technology

3.6 FDD defines 6 project roles

  • project manager
  • Chief Architect
  • development manager
  • main programmer
  • programmer
  • Domain experts

3.7 Five core processes of FDD

  • Develop overall object model
  • Construct feature list
  • Plan feature development
  • feature design
  • Feature construction

4. Unified Process Model (RUP: Rational Unified Process)

4.1 Life cycle of RUP

  • business modeling
  • need
  • Analysis and Design
  • accomplish
  • test
  • deploy
  • Configuration and change management
  • environment

4.2 Processes in each loop in RUP

  • Initial phase: Define the final product view and business model, and determine the scope of the system
  • Elaboration stage: design and determine the system architecture, specify work plan and resource requirements
  • Construction phase: Construct the product and continue to evolve requirements, architecture, and plans until product submission
  • Handover stage: Submit the product to users for use

4.3 Core concepts in RUP

  • Role: Who question
  • Activity: How question
  • Artifacts: What question
  • Workflow: Questions about When

4.4 Characteristics of RUP

  • Use case driven
  • architecture-centric
  • Iteration and Increment

4.5 RUP’s view model

  • use case view
  • logical view
  • Implementation view
  • process view
  • Deployment view

4.6 Benefits of using iteration and increment in software development

  • Address critical, high-impact risks early in software development
  • A software architecture can be proposed to guide development
  • Can better handle inevitable changes in requirements
  • You can get a runnable system earlier, boost the morale of the development team, and enhance confidence in the success of the project.
  • Provide developers with a development process that allows them to work more efficiently

5. Software Capability Maturity Model

5.1 CMMI’s 5 maturity levels

  • Level 1 initial level
  • Level 2 Managed level
  • Level 3 defined level
  • Level 4 Quantitative Management Level
  • Level 5 optimization level

Guess you like

Origin blog.csdn.net/redrose2100/article/details/133025506