= 1.1 software program + Software Engineering
Build process, build not just cc and link command, a complex piece of software not only have a reasonable software architecture , software design and implementation , but also all kinds of files and data to describe the dependencies between the various program files, compiled parameters , link parameters, and so on.
Some programs you want to configure different interface, running on the operating system in Chinese, English or other languages; some programs as well as 32-bit versions, 64-bit version, and so it is. Source code management issues, also known as configuration management.
We also have a range of tools, processes, procedures and documentation to ensure the accuracy of these tools, processes should achieve high quality in order to ensure the quality of developed software. This is the software quality , specific validation process is called software testing .
Read the existing program, we understand the design of the program, called program understanding.
Together with the repair of old and new members of the team a variety of problems, called software maintenance or service operations. This series of process is the software life cycle , in this cycle, someone must be responsible for managing software projects.
A good software, even if not very different functions and similar software, but it will make people feel very easy to use, this is the software user experience.
Software had to deal with different languages, different needs of users in different parts of the interface and functionality, called software internationalization and localization.
1.2 What is Software Engineering
Software engineering is the systematic, orderly, quantifiable method is applied to the process of software development, operation and maintenance.
People have a lot of technologies, practices, habits and ideology in the development, operation and maintenance of the software process. Those related to software engineering techniques and processes into one unified system, called the software development process.
1.2.1 Characteristics of software
·Complexity
Software is arguably the most complex type of system created by human beings. Large software over a million lines of source code, thousands of different files.
· Invisibility
Software engineers can directly see the source code, the source code is not the software itself.
· Volatility
Software must continue to change, modify the software correctly is a difficult thing.
· Obedience
Software can not exist independently, he always runs on top of the hardware.
· Discontinuity
Many software systems without continuous characteristic, sometimes small changes in input will lead to significant changes on output.
Relations 1.2.2 software engineering and computer science
Computer science theory section, most of them can be proved from the form, closely related to mathematics, discrete mathematics, mathematical logic; part related to computer science and practice, as well as data and all other disciplines have relations.
Software Engineering Research objectives in both "people" appears, these "people" can be a provider of project requirements, can be a software developer, may also be users of the software.
Different emphasis in computer science and software engineering
computer science | Software Engineering |
Discovery and study of long-term, objective truth | The actual short-term results (specific software become obsolete) |
Idealized | Compromise of various factors |
Certainty, perfection, versatility | Uncertainty and risk management, good enough, the specific application |
Various disciplines independent in-depth study, made achievements | Attention and knowledge of the various disciplines related applications, to solve the problem |
Unified theory | Flourishing practices |
Emphasis on originality | The best, proven practices |
Formal pursuit concise formula | Established in practice, inspiration and intuition |
Correctness | plasticity |
1.2.3 knowledge of the field of software engineering
The life cycle | Software requirements, software design, software builds, software testing, software maintenance |
Specialized areas | Software configuration management, software project management, software engineering process |
Theoretical basis | Computing infrastructure, basic mathematics, engineering basis |
Goal ---- to create a "good enough" software 1.2.4 Software Engineering
Customer Satisfaction bug: Users find a lot of problems when using the software, the user affects the efficiency of the use of the software.
Reliability bug: a piece of software often crashes from time to time an operating system crash, a site often landed in the most need not they go up.
Software process quality bug: too many problems of software development teams and processes, leading team members can not collaborate with each other, delivering software.
Maintainability bug: a software too difficult to maintain, fix a problem, another problem came out again. There is no adequate documentation, maintenance staff expressed the need for more funds to maintain the software, even pushed to rewrite suggestions.
1.3 Exercises and discussion
2.
1) read by software engineers to grow, the need to constantly update the progress of a program, which also requires programmers need to learn new technology can not be eliminated, there is nothing more effective ways to improve our capabilities?
2) How should we develop their own career planning?
3) by reading needs analysis, I found that the company's customers may be difficult to implement some of the requirements proposed in the internship, whether we can refuse?
4) by reading the IT industry innovation, and innovation is to do and not the same thing can be made is not an easy thing, how we can improve their ability to innovate?
5) by reading teams and processes, the team each person's responsibility approach to problems is different, how can we have consensus and avoid a fight?
3.
The main software used: Games glory of the King, Tools proper way translator, Operating Systems IOS
Analysis of Games glory of the King
Through advertising, a friend recommended as a user, the goal is to profit by buying recharge skin lottery profits
Through the App Store to download, in high school contacted its profit purposes too.
Find a bug timely maintenance updates, through continuous innovation and competitive play.