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
- 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
NS Figure
Figure PAD
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
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
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