Software Engineering Key questions answered

Introduction to the first chapter of Software Engineering

Software life cycle

  • Definition of software from beginning, through the development, use, maintenance, life-cycle stage until the entire process is abandoned software
  • Define the problem - Feasibility Study - Analysis Software - Software Design - Software development - Operation and maintenance - Software abandoned

Software engineering concepts

  • It is to guide the development and maintenance of software engineering disciplines
  • The core idea is to use the concept of the project point, principles, techniques and methods of software development and maintenance, proven to be correct and current management techniques to combine the best technology, high-quality economic development and effective maintenance of software it.

Seven basic principles of software engineering

  • With a phased plan Lifecycle Management Software Engineering Process
  • Insists on stage in software engineering review process
  • Strict product control
  • The use of modern technology for software design and development
  • Results of the work should be able to clearly review
  • The development team should be concise
  • Recognizing the need for continuous improvement of software engineering practices

Software engineering research

  • Software development technology
  • Software Engineering Management Technology
  • Software security technology

Software engineering school

  • Traditional methodologies: structuring techniques using
  • Object-oriented methodology: the use of object-oriented thinking

Chapter II software program and feasibility study

As well as aspects of the feasibility study mission

  • Feasibility study mission
    • Profiling analysis and research, initially determine the size and target software to determine the restrictions and limitations of the project, a simple needs analysis, abstract logical model, starting from the logical model to explore alternative methods for each method study its feasibility
  • aspect
    • Economic feasibility
    • Social feasibility
    • Technical feasibility

The purpose of the feasibility study, steps

  • purpose
    • Are you sure you in the shortest possible time with minimum cost problem can be resolved
  • step
    • Objectives and determine the size of the system
    • Research running system
    • Export of high-level logical structure of the new system
    • Design and evaluation of alternative solutions
    • Select the right solution
    • Preparation of feasibility study report

Feasibility study of CASE tools

  • System flow chart
    • Expression of the flow of data between components of the system.
  • Data flow diagram
    • Expression and transformation process transfer information in a data processing system
  • Data Dictionary
    • Information about data collection

Chapter III software requirements analysis

Step needs analysis

  • Through research, access to the user's needs

  • Removing non-essential factors that determine the real needs of the system

  • Description needs, create a system of logic model

  • Written requirements specification, conduct needs review

Common methods of thinking needs, each method

  • Structural analysis

    • The basic idea is abstraction and decomposition, top-down gradually break down the idea, until each sub-function is simple enough
  • Prototype Analysis Methods

    • By acquiring demand, the rapid development of a model to simulate the operation, to analyze the needs of
  • Object-Oriented Analysis

    • Object-oriented thinking, the use case model-based

The principles of needs analysis

  • Data and functional domains can express and understand issues
  • Able to decompose the problem and continue to refine, to establish a hierarchy problem
  • Logical and physical models of the system can be described

CASE tool needs analysis

  • Level block diagram
  • Warnier map
  • FIG IPO: input, processing, output of FIG.
  • ER 图
  • State transition diagram
  • Petri nets

Chapter 4 Design

Software architecture design concept and content

  • concept
    • Software design is the determination is made that the system module, and the relationship between the modules.
  • content
    • Using a design method, the principle of the modular structure, by decomposing a complex refining system into several modules, gradually, layer by layer design module hierarchy
    • Function determining module, establishing correspondence between the identified needs
    • Determining the relationship between the calling module, the interface quality, evaluation module structure between the modules

Principles of structural design

  • Reduce the coupling module, the module to improve the cohesion
  • Scale software should be affordable
  • Select the appropriate depth, width, fan out, fan
  • To minimize the complexity of the inter-module interface
  • Modules should be in the scope of the control domain range
  • Design of single entry single exit module
  • Modules may predict

Structured design of graphical tools

  • Hierarchical graph

[Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-9qnFT1qo-1577591346391) (C: \ Users \ 61768 \ AppData \ Local \ Temp \ 1577590192175.png)]

  • HIPO 图
  • Structure chart

chapter Five

Detailed design tool

  • Graphics Tools
    • Program flow chart
    • Figure PAD
    • FIG NS (FIG cartridge)
  • Language Tools
    • Pseudo code
    • PDL

Program flow chart

Here Insert Picture Description

NS Figure

Here Insert Picture Description

Figure PAD

Here Insert Picture Description

case

  • Seeking a maximum number of groups in the "detailed design example, the traditional flow chart, respectively, and the PAD FIGS NS FIG software process which will be described

Here Insert Picture Description

Chapter VI design software coding

Language coding tool

1. Facing machine language

  • Machine language
    • Instruction code in binary form. Consists of an opcode and operands
  • Assembly language
    • Symbolic language, using certain mnemonics instead of machine language instructions and data

2. The high-level language

  • common language
  • Professional Language

Language features

1. psychological characteristics

  • Ambiguity
  • Simplicity
  • Locality
    • The relative concentration of related content
  • Sequential

2. engineering properties

  • portability
    • Procedure versatility and adaptability under different machine environments
  • Achieve efficiencies language compiler
  • Support development tools
  • Maintainability
    • Good readability and ease of use

3. Technical characteristics

  • Some languages ​​provide rich data types and complex data structures
  • Strong real-time functionality
  • Deletions of large data change check

Select programming language

  • Standard theory
    • Ideal modular mechanism, easy to read data structures and control structures and use
    • Sound, independent compilation mechanism
  • Practical standards
    • The system user's requirements
    • Scale and size of the project
    • Software operating environment
    • You can get software development tools
    • Theoretical knowledge of software developers
    • Software portability requirements
    • The complexity of the algorithms and data structures
    • Applications Software

Chapter VII of software testing

Software Testing Process Model

  • V model
    • Requirements phase - outline design - detailed design - coding
    • Test Unit - Integration Testing - Test System - Acceptance Test
  • W model
    • Testing and development in parallel relationship, synchronized
  • X model
    • Encoding each other proposed and tested for the separation of a separate block, thereafter through frequent handover, by integrating the final executable program synthesis
  • H model
    • Improved model for software test management deficiencies V and W model at the model

Test step software development process

  • unit test
    • Also known as a test module, the module to test the correctness of the test, in order to find the various errors that may exist within each module as soon as possible.
  • Integration Testing
    • After testing a plurality of front stage combined in modules or systems based on software testing unit
  • System test
    • Based on certain computer hardware environment, a series of tests of the entire system
  • Acceptance Test
    • The software is designed to showcase the system to meet the requirements of its users to software buyers

Software test case design

Summary of test cases

  • definition
    • A set of test input array is designed for a specific purpose, the conditions and the desired output
  • Design Principles
    • Representative test case
    • The results of the test may be determined
    • The test results can be found in the current

White-box use case design

  • Statement Coverage
  • Decision Coverage
  • Condition coverage
  • Coverage determination condition
  • Condition combination coverage
    • All possible combinations of conditions at least once values
  • Point coverage
  • Side cover
  • Path Coverage

Examples of the black box test design with

  • Equivalence partitioning

    • Effective equivalence class
    • Invalid equivalence class
  • Boundary value analysis

  • Cause and effect diagram method

    • A relationship between the input
  • Error reckoning

    • Based on experience and intuition speculate program error that may occur

Software debugging concept

  • Discover the test process eliminates error after error

Chapter VIII of Software Maintenance

Software maintenance tasks

  • That is, after it has been delivered, in order to correct mistakes and to meet new needs and modify the software engineering

Software Maintenance Category

  • Corrective maintenance
    • Maintenance or abnormal error occurred during the operation of the software
  • Adaptive maintenance
    • Software to adapt to the changing environment and make changes
  • Improve maintenance
    • In the process of using the software, users put forward new demands on software functionality and performance
  • Preventive Maintenance
    • In order to improve software maintainability or reliability of future

Chapter IX object-oriented software development technology Overview

Object-oriented modeling

Object-oriented development model

  • [Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-fTFUWuMQ-1577621265547) (C: \ Users \ 61768 \ AppData \ Local \ Temp \ 1577611006175.png)]

Object-oriented model

  • Object Model
    • System data structures described
  • Dynamic model
    • When expressed along, the nature of the behavior of the control system, the control structure of the system described
  • Functional Model
    • Define the system should do, expression of functional information system

5-level object model

  • Theme layer
  • Class - & - Object Layer
  • Layer structure
    • Indicate the complexity of the problem domain
  • Layer Properties
  • Service Layer
    • Some out must be performed after receiving the news

Dynamic Model

  • Scripting
  • From script to extract the event, contact the event and its audience
  • Order status and organization of events
  • Check the consistency between objects, to ensure a match between the events.

Establish functional model

  • Establish a basic system model diagram
  • FIG refinement data flow
  • Functional Description

Object-oriented design principles

  • Modular
  • Data abstraction and procedural abstraction
  • And package information hiding
  • High cohesion and low coupling
  • Reusable
Published 343 original articles · won praise 244 · views 40000 +

Guess you like

Origin blog.csdn.net/qq_41280600/article/details/103751203