Chapter I. Software
Software is a computer program, procedures, and operating systems may require documentation and data. Software is divided into general-purpose software and custom software.
Features of the software: 1. Complexity 2. Invisibility 3. Changing 4. Most software is still customized rather than assembled from existing artifacts.
The software was developed in the 20th century 50-60, 70, 80, 90 and so far.
There are some crises in this process: 1. Software development costs and progress are difficult to estimate, delays in delivery or even cancellation of the project is not uncommon. 2. The software has many errors, low performance, unreliable, unsafe and other quality problems. 3. The cost of the software is increasing in proportion to the total cost of the computer system. 4. Software maintenance is extremely difficult and difficult to adapt to changing user needs and use of the environment.
Software Engineering was first proposed by Fritz Bauer as early as October 1968 in a meeting in Germany about the reliability and software crisis.
It includes software engineering is a specific application of engineering concept in the Software field, and the software project involves all aspects of the product.
The three elements of software engineering: tools, methods, processes.
Computer-aided Software engineering case is a set of tools and methods, with a certain level of division. At present, its main challenges are the problems of legacy systems, the requirements of high-reliability development, and the change of software development mode.
The Software Knowledge System (SWEBOK) consists of software requirements, software design, software construction, software testing, software maintenance, software configuration management, software engineering management, engineering process, software engineering tools and methods, and quality components.
Software engineering personnel should uphold a certain code of ethics, Law and order, holding service customers, the concept of building a society, to the city of real trustworthiness as the core of engineering staff professional ethics.
(unconsciously 600 words.) )
Chapter II Software Process
A programmer should have an overview of task thinking and process thinking.
The definition of software process is a series of software process activities implemented by software engineer in order to obtain software products.
The basic activities of the software process are 1. Issue 2. Software specification 3. Software Design 4. Software implementation 5. Software validation 6. Software Evolution.
Software Process products in accordance with different stages, the book is carefully enumerated.
The model of software engineering is waterfall model, rapid prototyping model, increment model, formal method model, and component-based development model.
Microsoft company Development Software process case, 1. The principles of its Development and management (5 points no longer listed) 2. Microsoft's software process model has five phases (chronologically) planning, design, development, stabilization, and release phases. 3. Progressive software development strategy.
Chapter III software Project management
Features of software projects
"4p" of software project management 1. Personnel 2. Product 3. Procedure 4. Project.
Software project management activities 4 points
Organization and management of personnel there are democratic organizations, the main programmer-style organization, technical management organization.
Take Microsoft as an example to explain how the form of organization is used in practice.
Project Communication Management: Project communication has a certain complexity, and there are six ways of communication
Project Communication activities: 1. Planning Project Communication 2. Building Infrastructure 3. Implementation of periodic Review 4. Organize weekly group meetings.
Software project planning: 1. Estimate project size 2. Software Project plan
Software Risk Management
The risk is identification: (seven different forms of identification not listed)
Risk analysis, planning and monitoring should be made in the face of division first.
Basic concept of basic software configuration and configuration management activities.
The fourth chapter requirements engineering
There is a lack of a unified description of the term "software requirements", which the customer says is a higher-level product concept for developers, and what developers call "Demand" is a detailed design for the user. It should be said that people from different angles and different degrees of reflection of their respective needs, the formation of different levels of demand. There are business requirements, functional non-functional requirements, and system requirements.
Requirements Engineering Process 1. Acquisition of requirements 2. Analysis of requirements 3. Requirements Specification 4. Requirements verification (including correctness, ambiguity, completeness, verifiable, conformance, traceability, etc.). Requirements management is divided into requirements change control, requirements document version control, demand tracking requirements management tools.
Requirements acquisition technology can be achieved through interviews, demand workshops, and other methods, based on a prototype approach and a use case approach.
Case study: Small Library data management system
Step: 1. Identify the Participant 2. Determine scenario 3. Identify use case 4. Write a use case description.
The fifth chapter of the formal method in software engineering
The basic concepts of formal methods: 1. The software specification is a description of the system object, how the object is manipulated, and the behavior of the object. 2. Formal proof and verification techniques include model detection and theorem proving. 3. The process of refinement is the combination of automatic reasoning and formal methods, from the abstract form of the specification of the implementation of specific computer-oriented program code.
Temporal logic Kripke structure one-stage linear temporal logic Hanoi operation planning problem
Computational tree logic is a discrete, branch time, propositional temporal logic.
Model detection
Z Language Overview: the Z language establishes a state-based model for the system.
Its representation is broadly divided into two categories: 1. Sets, relationships and functions 2. Free Types and patterns
Example: 1. Parking Management System For example: initialization, basic definition, state definition, global variable declaration, operation definition. 2. Take the Library management system as an example: (same as 1.)
NET: basic definition Any system can be abstracted into two types of elements and events. Petri Nets
Example of a Petri net--a beacon. (A simple description of the principle of the beacon)
The sixth chapter is the object-oriented foundation
Object-oriented Approach Overview: The objective world is composed of objects, any objective thing or entity are objects, complex objects can have a simple object composition;
The development history of object-oriented technology (brief introduction, development, maturity three stages)
Object-Oriented Software engineering method: 1. Object-oriented Analysis 2. Object-oriented Design 3. Object-Oriented Programming 4. Object-oriented Testing 5. Object-Oriented Maintenance
Object-oriented Basic concepts: 1. Objects have different meanings from different angles 2. A class is a set of pairs of objects that have the same properties and services, and it belongs to the entire object of the class that provides a uniform abstract description of its internal properties and services two main parts. 3. Encapsulation is the combination of object properties and services into a separate system unit, and as far as possible to hide the internal details of the phase. 4. Inheritance (no longer played) 5. MSG 6. Association 7. Aggregation 8. Polymorphism
Software modeling concepts are critical to the complexity of software and to the understanding of complex issues, and it is important to use a common modeling language in the software development process, especially for complex systems that are particularly large.
Systems, Models and views (3 points in brief)
The importance of software modeling (brief, abbreviated)
Unified Modeling Language UML
1,UML History 2.UML Concept: Consists of views, graphs, model elements, and public mechanisms. 3,UML Example (image) 4.UML application
Common UML Diagrams: Class diagrams, Sequence diagrams, state diagrams. (already learned)
The seventh chapter object-oriented Analysis
Analytical Concepts: Analysis classes, analysis activities
Identify analysis classes Typically, an interaction or communication association between a participant and a use case corresponds to a boundary class. The boundary class collects information from the participants, which can be used by the entity class control class.
Recognition Control class
The control class is responsible for reconciling boundaries and entity classes, usually without corresponding things in the real world, and he is responsible for receiving information from the boundary classes and giving them to the entity classes.
Identifying entity Classes A brief description of the recognition method
Define the interaction behavior: The sequence diagram can be spoken = The force is associated with the analytical object. (Draw sequence diagram steps)
Building an analysis class Figure 1. Defining relationships and Properties 2. Apply Analysis Mode
Scoring analysis model (steps to check correctness)
The eighth chapter object-oriented Analysis
Concept of Design
Design activities, design principles 1. Modularity 2. Coupling degree and cohesion 3. Compound type
Software Architecture 1. Overview of the warehouse Architecture 2. Tiered Architecture 3.MVC Architecture 4. Client/server architecture 5. Piping and Filtering Architecture 6. Case: Minilibrary system Architecture (figure)
System design 1. Identify design elements 2. Data storage Strategy 3. Deployment Subsystem 4. System Design Review
Detailed design 1. Method Modeling (three points) 2. Attribute modeling 3. State Modeling 4. Critical Modeling 5. Detailed Design Review.
Application design mode: 1.abstract Factory mode 2.adaptor mode 3.bridge mode 4.facade mode
User interface design: 1. User interface design principles 2.web Interface Design 3. User support
Design document Step 1. Introduction 2. References, etc. (total of 6 steps)
The Nineth Chapter software realization
The programming language has been evolving and evolving from the process of machine language to high-level language.
Specification for software Coding 1. File naming and organization 2. Layout of code 3. Branch, align, and indent 4. Naming rules 5. Declaration 6. Comments
Software Coding Case Study: 1. Program comment problem 2. variable naming problem 3. Memory anomaly problem (4 points) 4. Exception handling issues 5. Performance issues two points
Software code Review Code review has: 1. Class 2. Property 3. Constructor 4. Method Header 5. Method body
The tenth Chapter software test
Verification and confirmation: 1. Software error 2. Verifying and confirming 3.V&V activities
Software Testing Fundamentals: 1. What is software Testing 2. Basic principles of software Testing 3. Software testing and software development at all stages of the Relationship 4. Test document 5. Software test Flow 6. Software Testers.
Software Testing Strategy: 1. Unit Test 2. Integration Test Confirmation Test 4. System test 5. Software debugging.
Software testing methods: 1. Static and dynamic testing 2. Black box test and white box Test 3. Black box test method 4. White box test method 5. Static test of the program
Object-Oriented Software testing: 1. Object-oriented test Type 2. Object-oriented test sample 3.gui test sample software Test tool.
11th Chapter Software Evolution
Features of software Evolution 1. Software maintenance is an inevitable process 2. Software changes can cause software degradation of 3. The evolutionary characteristics of software systems are set up in the early stages of development 4. The efficiency of software development is independent of the resources invested 5. Adding new functionality to software systems inevitably creates new flaws.
Concept of Software Maintenance: 1. Corrective Maintenance 2. Adaptive Maintenance 3. Perfect Maintenance
Features of software maintenance: 1. Software maintenance is affected by the development process 2. Software maintenance more difficult 3. High software maintenance costs.
Procedures for software Maintenance 1. Corrective Maintenance 2. Adaptive Maintenance 3. Perfect Maintenance
Software re-engineering: 1. Object Selection 2. Reverse process 3. Document refactoring 4. Code refactoring 5. Data Reconstruction 6. Forward engineering.
Software Engineering Chapter I to Chapter 11 summary