Software Engineering-theory, method and practice

Source: Internet
Author: User

Chapter I. Overview

Software is a computer program, a procedure, and the relevant documentation and data that a computer system may require.

Software is generally divided into general and custom software.

Features of the software:

1, the software is complex;

2, the software is not visible;

3, the software is constantly changing;

4, most of the software is customized, rather than through the existing components assembled.

Software engineers have built and used a series of good engineering principles for economic access to reliable software that can operate efficiently on real machines.

Software crisis

1, the cost and schedule of software development is difficult to accurately estimate, delay delivery or even cancel the project phenomenon is not uncommon;

2, the software has many errors, low performance, unreliable, unsafe and other quality problems;

3, the cost ofsoftware in the overall cost of computer systems accounted for more and more large;

4, software maintenance and difficult, and it is difficult to adapt to changing user needs and use of the environment.

Chapter II Software Process

Task thinking and process thinking

Definition of software Process:

The software process is a series of software engineering activities that are carried out with the support of soft ware in order to obtain software products.

Basic activities of the Software process

1, the issue of the proposed;

2, software Requirements specification;

3, software design;

4, software implementation;

5, software validation;

6, software confirmation.

Software Process Model

1, waterfall model;

2, rapid prototyping model;

3, incremental model;

4, spiral model;

5, formal method model;

6, component-based development model.

Chapter III software Project management

Software Project Management Overview:

1, the characteristics of software projects;

2, software management of the "4P";

3. Software project management activities:

A, the project starts;

b, project planning;

C, project implementation;

D, project closure.

Personnel organization and Management

1, software project organization;

2, software team building.

Project Communication Management

1, project communication complexity;

2, Project communication methods;

3, Project communication activities.

Software project Planning

1, software scale estimation;

2, software cost estimation;

3, software project plan.

Software Risk Management

1, risk awareness;

2, risk analysis;

3, risk planning;

4, risk monitoring.

Software Configuration Management

1, the basic concept;

2, configuration management activities;

The fourth chapter requirements engineering

Software Requirements

1, business needs;

2, the user needs;

3, functional requirements and non-functional requirements;

4. System Requirements

Requirements Engineering Process

1, demand access;

2, demand analysis;

3, the requirements Specification description;

4, demand verification;

5, demand management;

Demand Acquisition Technology

1, interview;

2. Demand Symposium;

3, observe the user's work flow;

4, the method of prototyping;

5, based on the use case method.

Case

1, determine the participants;

2, determine the scene;

3, determine the use case;

4, write use case description;

The fifth chapter of the formal method in software engineering

Basic concepts of formal methods:

1, the form of the statute;

2, form proof and verification;

3, the process of refinement;

Temporal logic

1, first-order linear temporal logic;

2, the calculation tree logic;

Model detection

Z Language

1. Overview

2,Z language representation

3,Z language examples

Petri Nets

The sixth chapter is the object-oriented foundation

Object-oriented technology in the field of mobile phone software engineering important technology, this technology is a natural way to simulate human understanding of the world, as the current computer software engineering mainstream methods, object-oriented technology is not only a programming method, but also a kind of abstract thinking of the objective world.

The basic idea of object-oriented technology is to set up the software system by using the natural thinking mode of human as far as possible from the realistic objective things in the real world. It emphasizes the use of ideas and principles that are often used in everyday thinking, such as abstraction, classification, inheritance, aggregation, encapsulation, and so on, where developers think and understand problems in the real world, and express them in a way that people can easily understand.

The seventh chapter object-oriented Analysis

During the requirements acquisition phase, developers focus on understanding the user and their usage requirements. In the demand analysis phase, developers focus on understanding what the system needs to build, and its core is to produce an accurate, complete, consistent, and customer-validated system model called an analytic model.

The object-oriented analysis model consists of three independent models:

1, the function model: has the use case and the object graph composition;

2, the Analysis object model: Has the class diagram and the object graph representation;

3. Dynamic Model: Represented by state diagram and sequence diagram.

The eighth chapter, facing the object design

In general, the design activities are divided into two main stages of system design and detailed design, in which the system design is to choose the appropriate solution strategy. The principles of design are: modularization, coupling degree and cohesion, reusability.

For large complex systems, software architecture design is particularly important, and its quality is often the key to the success or failure of a system design. The typical software architectures are: Warehouse architecture, layered architecture,MVC architecture, client / server architecture, Pipeline and filter architecture.

In the system design, to identify the design elements, data storage strategy, deployment subsystem, System Design review. Detailed design of the child includes method modeling, attribute modeling, state modeling, and relational modeling. The most common design patterns are Abstract facatoty mode;Adaptor mode;Bridge mode ; Facade mode.

User page design is critical to the success of a system. A poorly designed user interface can cause users to be prone to errors and even users who refuse to use the system.

The Nineth chapter, software realization

The programming language has been evolving and evolving, and its development has undergone a process from machine language to high-level language.

Nowadays, people no longer emphasize the technique of coding excessively, but use the readability of code as an important factor to affect the quality of software. Some common coding specifications are: file naming and organization, code layout, (appropriate blank lines; lines of code and spaces within lines; branch, alignment, and indentation; naming rules; declarations; comments)

The programming style affects the readability, testability and maintainability of the program to a great extent, and even affects the execution efficiency of the program. There are program annotation problems, variable naming problems, exception handling problems, performance issues,

In order to obtain high-quality code, it is necessary to refer to the Code Review checklist for code walk-through.

The tenth Chapter software test

Software crises were once the hottest topic in the software world and even the entire computer world. In order to solve this problem, software practitioners, experts and scholars have made a lot of efforts. Now people have come to realize that the so-called software crisis is actually a state, and that is the error in software, it is these errors that lead to software development costs, progress and quality of runaway.

Nowadays the rapid development of information technology is the application of software products to the various fields of society, the quality of software products has naturally become a common concern of people. Software testing is the transfer of software quality assurance of key activities, it is through the requirements specification, software design instructions and program code review, to ensure that software products before delivery, as far as possible to find the latent problems in the software, a large number of statistics show that software testing workload is often accounted for the software development volume 40% above, in extreme cases, may even be as high as the cost of the other steps of software engineering integrated the times. At present, with the expansion of software scale, the complexity of the continuous improvement, especially in the face of object technology and tool application, the difficulty of software testing is further improved.

11th chapter, Software evolution

The inspection characteristics of the software during the change process. The following: Software maintenance is an inevitable process, software changes will lead to the degradation of software, software system inspection characteristics of the early stage of development is established, the efficiency of software development is not related to the resources invested; adding new functions in software system inevitably will produce new defects in the city.

According to the different center of software maintenance, can be divided into three types: corrective maintenance, adaptive maintenance, perfect maintenance.

The characteristics of software maintenance: software maintenance and development process has great impact, software maintenance is more difficult, software maintenance cost is high.

The software maintenance work includes the establishment of maintenance organization, reporting, and evaluation of maintenance applications, implementation of maintenance procedures and other steps.

Software re-engineering mainly includes: Object selection, reverse engineering, document reconstruction, code reconfiguration, data reconstruction, and forward engineering activities.

Software Engineering-theory, method and practice

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.