The first chapter, outlining software is the masterpiece of human thought, and become the catalyst of human modern life. Today's software spread throughout the world, in bioengineering, modern communications, cosmic exploration, business processing, industrial control and other aspects of the great power, and promote the business, science and engineering in the field of leap-forward development, the economy and culture of the entire society has a profound impact. Software engineers to solve the problem of development cost-effectiveness and software quality. Software is a computer program, procedures, and running a computer system may need relevant documents and data. Software is divided into general-purpose software and custom software. Software is characterized by software is complex, software is not visible, software is constantly changing, most software is customized rather than through the assembly of existing components. Software engineering is a systematic, standardized, and quantifiable method applied to the development, operation and maintenance of soft ware, which will be used in engineering application to software. The three elements of software engineering are methods, tools and processes. The main challenge of software development is the problem of legacy systems, the requirements of high-reliability software development and the change of software development mode. The professional ethics construction of software engineering personnel:1, the law-abiding is the basic quality that the software engineering personnel should have;2, customer service, the benefit of society is software engineering personnel must firmly establish the concept;3 , honesty and credit are the core of the professional ethics of software engineering personnel.
The second chapter, the goal of software engineering software engineering is to develop high-quality software within the stipulated time and budget. The basic activities of software engineering are problem-making, specification, software design, software realization, software validation and software evolution. The software process model has the waterfall model, the rapid prototype model, the increment model, the Helix model, the formal method model, the component-based development model.
Chapter Three, software project management with the rapid development of computer application, software development scale and development team is increasingly large, software development is no longer like in the past by the individual developers can solve the matter, therefore, it is necessary to introduce software project management into the software development activities, so as to effectively ensure that the software project can be in accordance with the predetermined cost , progress, quality requirements successfully completed. Software projects are characterized by the invisibility of software products, the high degree of uncertainty in the project, and the high mobility of software personnel. Software project management focuses on four areas: people, products, processes, projects. The organization of the Software Project has the democratic organization structure, the main programmer type organization structure, the technical management type organization structure. Project Communication activities: Planning project communication, establishing infrastructure, implementing periodic reviews, and organizing weekly group meetings. Software scale estimation: Code line technology, function point technology. Software cost Estimation: Expert judgment, analogy estimation,COCOMO model. Engineering risk identification: Software planning risk, business impact risk, customer related risk, software process risk, development technology risk, development environmental risk, developer risk.
The fourth chapter, demand engineering software requirements is to determine the success of software development is a key element, in the event of errors, will bring great damage to the entire software development work, and to the future software maintenance brings great difficulties. Software requirements are divided into: business requirements, user needs, functional requirements and non-functional requirements, system requirements. Requirements Engineering Process: Demand acquisition, demand analysis, requirements specification, requirements verification, demand management. Requirements Acquisition Technology: Interview, demand symposium, observing user workflow, prototyping method, use case-based approach.
The fifth chapter, the formal method in software engineering from the broad sense, formal method refers to the method of discrete mathematics to solve the problem of software engineering field, mainly including the establishment of accurate mathematical model and analysis of the model activities. In the narrow sense, the formal method is to use formal language, formal specification description, model inference and verification method. In the process of applying formal method to software engineering practice, the main purpose is to ensure the correctness of the system.
The sixth chapter, object-oriented basic object-oriented technology is an important technology in the field of software engineering, which simulates the way of human understanding of the objective world and becomes the mainstream method in the current computer software engineering. The basic concepts of object-oriented are object, class, encapsulation, inheritance, message, associative aggregation, polymorphism. The concept of software modeling has the importance of systems, models and views, and software modeling. UML conceptual models include views, graphs, model elements, semantic rules, public mechanisms, and extension mechanisms. Common UML diagrams include use case diagrams, class diagrams, sequence diagrams, and state diagrams.
The seventh chapter, object-oriented analysis object-oriented analysis model is composed of functional model, analysis object model and dynamic model. The recognition analysis class includes the recognition boundary class, the recognition control class, the recognition entity class. Set up an analytic class diagram: Xingyi relationship and attributes, application analysis mode.
Eighth, object-oriented design object-oriented design phase will focus on the software implementation issues of the system, including architecture design, detailed design, user interface design and database design. The principle of design is modularization, coupling degree and cohesion, reusability. Software Architecture: Warehouse architecture, tiered architecture, mvc / server architecture, Pipeline and filter architecture, Case: minilibrary system architecture. System design: Identify design elements, data storage strategy, deployment subsystem system Design Review. Detailed design: Method modeling, attribute modeling, State modeling, relational modeling, detailed design review. Application design pattern: abstract factory mode, adaptor mode, bridge mode, Façade mode. User interface design: User interface design principles, web interface design, User support.
The Nineth chapter, software realization software implementation is a software product from concept to entity of a key process, it will be detailed design results translated into a programming language and finally can run program code. Software Coding Specification: file naming and organization, coded plate, naming rules, declarations, annotations.
Tenth, software testing verification and validation: software error, verification and validation,v&v activities. Software Testing Strategy: Unit Test (Module interface test, local data structure test, important execution path test, error handling test, boundary condition test, Unit test method), integration test (top-down integration, bottom-up integration), validation test, System test, software debugging (Simple debugging method, Induction debugging deduction debugging, backtracking debugging). Software testing methods: Static and dynamic testing, black-box testing and white-box testing
The 11th chapter, Software Evolution software maintenance concept: Software maintenance refers to the software in the operation or maintenance phase of the SOFTWARE product modifications, respectively, there are corrective maintenance, adaptive maintenance, perfect maintenance. Software Maintenance Features: Software maintenance hand development process impact, software maintenance more difficult, high software maintenance costs. Software Regeneration Engineering: Object selection, reverse engineering, document reconstruction, code refactoring, data reconstruction.
The method and practice of software engineering theory