Introduction Chapter One
(1)Excel、c/c++、VB、Unix Shell、Emacs、Powershell/VBScript、JavaScript、Perl、Python
(2) program, the user requirements, software requirements, engineering, application software, software services, source code, data, code, static data, executable code, software architecture, software design and implementation, dependence, compiler parameters, links parameters, the software build, 32/64-bit versions of source code quality management, configuration management, program correctness, software assurance, software testing, requirements analysis, program comprehension, software maintenance, service operators, software life cycle, software project management, user experience, internationalization and localization of software
(3) software program = + Software Engineering
= + Software enterprise software business model
(4) the different stages of software development:
Toy stage -> Hobby stage -> exploration phase -> mature industrial stage
What (5) Software engineering is:
Software engineering is the systematic, orderly, quantifiable approach to the development of application software, operation and maintenance of process.
(6) software engineering include : software requirements analysis, software design, software builds, software testing and software maintenance
Related disciplines (7) Software Engineering: computer science, computer engineering, management, mathematics, project management, quality management, software ergonomics, systems engineering, industrial design and user experience design
(8) Software particularity :
Complexity, invisibility, volatility, obedience, discontinuity
Other properties (9) Software:
There are many different programming languages, software tools and software development platform
There are many different software development process
Many different roles exist in the software team
Software can either be stored on magnetic tape, it can also be stored on CD / DVD
Relationship (10) software engineering and computer science
Colleges and universities in mainland China roughly speaking apparatus of three of the following computer software
Or the Department of Computer Science and Technology College, School of Software, Software Engineering, Software Engineering Institute
(11) the academic field of computer science in these areas can be divided into the following partial theories
Computer coding theory and information theory, arithmetic formal methods and data structures, programming languages
Field The following partial and Practice
Computer architecture and parallel distributed computer systems, real-time systems and embedded systems, operating systems, computer networks, scientific computing, security and cryptography, artificial intelligence, computer graphics, computer vision, multimedia
Large-scale databases and data processing, the World Wide Web, natural language processing and speech, human-computer interaction, software engineering
Different emphases (12) in computer science and software engineering
Computer Science, Software Engineering
Discover and study the long-term, short-term objective truth of the actual results (specific software become obsolete)
Ideal compromise of various factors
Uncertainty, perfect, general manager of uncertainty and risk, and good enough, the specific application
Various disciplines independent in-depth study, the results of attention and knowledge to make the various disciplines related applications, to solve the problem
Flourishing practices unified theory
Emphasize the originality of the best, proven practices
Formalized, the pursuit of simple formulas established in practice inspiration and intuition
Correctness of plasticity
Knowledge areas (13) software engineering
Life Cycle: software requirements, software design, software builds, software testing, software maintenance
Areas of specialization: Software configuration management, software project management, software engineering processes, software engineering models and methods of software quality
Rationale: calculation based on a mathematical basis, foundation engineering
Target (14) software engineering - to create a "good enough" software
User satisfaction: users found a lot of problems when using the software, the user affects the efficiency of the use of the software.
Reliability: a software crash often, from time to time an operating system crash, a site often can not get board when it is most needed.
The quality of software processes: too many problems of software development teams and processes, leading team members can not collaborate with each other, delivering software. This type of software can also be said of the team bug
Maintainability: a software too difficult to maintain, the press played a gourd dipper, fixes a problem, another problem came out again. There is no adequate documentation, maintenance personnel need more money and time to maintain the software, even
Down to the recommended rewriting.
1.3 Exercises and discussion (P18)
P18-2
(1) unit testing really heavy either, according to my practice, I think that unit testing is very important, if the unit tests done, is likely to lead to a small problem affecting the progress of the project, but will waste a lot of unit testing time, a lot of trouble, so I am very confused, in the end should or should not do this test, how to do this test.
(2) learning software engineering, then what kind of programming ability level reached in order to become a good software engineer? In addition to the program is not able to read outside is not have learning management, communication and other technologies
(3) coding format is strictly prepared in accordance with the provisions of the code still looks so comfortable like, according to my practice, I have been a very comfortable format according to specifications written probably adjust to, but I feel this way I do not too right, so some confusion, in the end should be how to write.
(4) How important is the team in the end, according to previous practice, every semester of every sub-group to complete the training, the first time a team we all feel is cumbersome to each other, but are later found to be the team's personnel division, to the strengths of each person reflected, and this is very good, but everyone has their own ideas, we put together is difficult, very difficult.
(5) is not a Bug should be carried out for each lot, then repair, engineering, do not fix some innocuous Bug okay.
P18-3
My phone software is divided into the following six categories:
Common equipment: QQ, micro-channel, browser, phone, camera
System equipment: calculator, calendar, alarm clock, flashlight, file management
Payment software: the US Mission App, Postbank App, China Construction Bank App, Merchants Bank App, 12306App, mobile phone operating room App, Alipay
Shopping Software: Jingdong App, Taobao App
Office software: wps, high moral map, Baidu network disk, power learning, e branch, Wealth
Entertainment Software: Diminshing music, Tencent / Sohu Video, 2048
Select Diminshing music for analysis:
Download reasons: decompression, to relax
How often Update: Yes
Profit model: energy purchase, buy clearance items, and other accessories to buy skin