What is the core of software engineering?

Source: Internet
Author: User

WeI often do one thing. After a long time, I forgot my original intention. In software engineering, people talk about processes, standards, and process improvement, and the results forget the original motivation for engaging in software engineering.

to do anything, you must be clear about its goals before you can do a good job. Software Engineering these two basic objectives are to improve the efficiency of software development and the quality of software products. both" quality "and" productivity "are core tasks , that is to say, always ask yourself the following question: How can we develop better software at a low cost and high efficiency? To summarize the basic goal of software engineering in a popular language, it is " multiple, fast, good, and save .

  • More-more functions are required by the customer, and the more powerful the product features are.To meet more user needs.
  • Fast-the development efficiency is high, the development cycle is shortened, and the project is completed as expected or in advance.
  • Good-the developed products are of high quality, stable product performance, strong practicability, and high scalability, and can meet the customer's needs in a down-to-earth manner.
  • saving-low development costs, developing specific features at minimal cost.

Here4Among the goals, "good" is the most important. That is to say, quality is the core and quality-oriented. The best balance is achieved in terms of "many, fast, and save ".. The implementation of software engineering is not virtual, but real.The result is that the software enterprise can develop and produce good software or provide quality software services, and the development speed is fast, the cost is low, and the maintenance is easy. This is what the enterprise expects. If these basic objectives are met, software engineering is successful in enterprise applications.

 

 

My new bookIntroduction to Software EngineeringFocus on the "quality and productivity", the most basic core of software engineering, and strive to illustrate the ideas and methods of software engineering through some specific examples. This book is rich in content and novel in concept, breaking through the transfer of software engineering books
The system framework makes the entire software engineering system clearer. Starting from thought and management, it naturally extends to processes, methods, tools and environment, and re-explains the software engineering system. In addition, the latest progress of software engineering has been absorbed
The software-as-a-service (SAAS) Development Model adds relevant content to meet the actual needs of today's software engineering.

Forty years ago, people began to discuss the topic of "Software Engineering ".But software engineering is still not very mature. For example, today's software quality level is still not high, and the software development model is still under exploration, this is mainly due to the rapid changes in Software Technologies and the complex features of the software itself. The popularization of the Internet has pushed software technology changes to a new climax. With the help of the Internet, people can communicate and collaborate anytime and anywhere, sharing knowledge, skills, and experience, it can even accumulate the power of the world to discuss the same technology topic, all of which greatly promote the development of software technology. At the same time, the software industry is quietly undergoing huge changes, from the traditional software product sales model to the software service model, software as a Service ( Software as a service ) Or on-demand service ( On-demand service ), And the most representative service is Salesforce 80% Fast growth, high customer satisfaction 97% . Salesforce Provides online services for various business applications for small and medium-sized enterprises, from sales team automation to partner relationship management, marketing and customer services, Salesforce Redefine customer relationship management. Enterprises no longer need to deploy their own servers or purchase software. They only need to access Salesforce.com To obtain the business processing functions you need, you only need to pay a low service fee every month or every year. The software development model naturally follows SAAS The idea, method, and practice of software engineering need to be re-examined at this critical moment, which is also the main reason for writing this book.

Software Engineering is not only facing the challenge of rapid technological advances, but also the challenge of frequent changes in requirements and difficult to control quality. The following two examples illustrate the seriousness of this challenge to some extent.

 

 

 

Example 1: Traffic Light demand changes

Everyone is very familiar with the traffic lights on the streets. They can adjust traffic flows and traffic flows in different directions and implement intelligent control. But the early traffic lights were not like this. It was very simple. When one direction was red, the other direction was green.60Seconds alternate, then useSimple timing analog circuit controlYou can.

Later, people thought that such a design was not human-friendly. pedestrians or drivers passing through the crossroads did not know how long it would take for the green light to shine. Therefore, add a digital timer to display the remaining waiting seconds. At this time,Analog Circuit control must be changed to Digital CircuitTo be re-designed and implemented.

Later, people found two directions at a crossroads: Car/The human traffic is different. You need to adjust the traffic light switching interval in different directions. For example, one direction is75Second while the other direction is25Seconds. In addition, the traffic flow will change in the future, that is, the traffic light interval can be set by the user, so that the original digital circuit or controlProgramModification. This change may be very large and requires modifications to the design and implementation..

 

Example 2:Simple and sarcasm on the status quo of Software Engineering

(1) programmers write data that they think has no bugs (defects)Code.

(2) 100 bugs were found during software testing.

(3) The programmer modified 50 bugs and told the test group that the other 50 were not bugs.

(4) of the 50 bugs that have been corrected, during verification by the test group, 20 of them still exist and 30 new bugs are found.

(5) Repeat the preceding steps (3) and steps (4.

(6) In view of market pressure, the product was listed on time in order to meet the previously formulated overly optimistic release schedule.

(7) The user found many problems (nearly bugs) and reported them to the R & D department.

(8) programmers who have received the project bonus do not know where to go.

(9) The new project team has fixed almost all bugs, but the test team has found more than 80 bugs.

(10) programmers who left earlier called the test group and dug them away.

(11) The company's software release is faster, because developers are now testing their own programs, and few defects are found.

(12) Customers discover more and more problems and complain more and more.

(13) customers began to decrease quickly, and the company quickly closed down.

(14) The new company was set up, and new programmers wrote code that they thought had no bugs.

 

software requirements always change. This change comes from changes in customer requirements, many of these changes are not user-driven but driven by competitors. Many changes in requirements lead to changes in the product architecture. If the original design and implementation cannot adapt to such changes, they must be re-designed and re-implemented. This is reconstruction. The iterative development or reconstruction of software is to adapt to this specific demand and is increasingly valued, leading to changes in software engineering ideas and methods.

the improvement of software quality is imminent. A large number of testers can be recruited to partially solve the problem, but they cannot completely solve the problem, because quality is built and cannot be tested by tests. A large number of defects exist in the software. Although the software has been fully tested, many defects may be missed during software release, and the cost of testing and developers' rework is high. Therefore, to truly improve the quality, we need to do a good job in requirements, design, coding, and other work. When we do each job, we will do it right for the first time, this is the idea of Defect Prevention.

On the basis of explaining the software crisis, software process content, software engineering goals and requirements, this book emphasizes that the establishment of correct software engineering ideas is the source of everything, the idea determines the process and method. On the other hand, ideas need to be implemented through specific methods, which need to be put into practice and tested by practice. This is the basic idea of this book. from thought to method, from method to modeling, to software environment and tools, we will gradually move forward to reveal the connotation of software engineering. By introducing the ideas, methods, technologies and tools of software engineering, you can understand the complete software engineering system, it lays a solid foundation for the future study of demand engineering, software design, software testing and other courses.

 

 

 

 

 

 

 What is software engineering?

 

 

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.