Common development environment
Software is a collection of computer data and instructions organized in a specific order.
Software features
Software development process: research and communication/acquisition of requirements, requirement analysis, product design, interface design, design prototype diagram, program coding, testing, package release, product launch
Software development model waterfall model, evolution model, spiral model, fountain model
Development method: structured method, information model method, object-oriented method
Functional and structural features: haplotype, synergistic type, dispersed type, concurrent type.
General-purpose software development environment and special-purpose software development environment
Front-end development environment, back-end development environment, software maintenance environment, reverse engineering environment.
Software infrastructure
Common software architecture | composition | advantage | Disadvantage |
Layered architecture | Presentation layer, business layer, persistence layer, data layer | Simple organization, easy to understand and develop, clear division of labor, independent testing | There are changes, maintenance and modification are troublesome, the release cannot be supported, the entire service needs to be stopped to upgrade the software, and the scalability is poor |
Event-driven architecture | Event queue, dispatcher, event channel, event handler | Distributed heterogeneous architecture, wide adaptability, not prone to blockage, good performance, and easy to deploy. | Involving asynchronous programming is complex, difficult to support atomic operations, and difficult to test |
Microkernel architecture | Kernel, plug-in | Strong function extension, isolation between functions, high customization, adapt to different needs, can be concurrent | The kernel has poor scalability, cannot be distributed, and is difficult to develop |
Microservice architecture | User interface layer, service components | Service direct coupling is low, easy to expand, easy to deploy, easy to develop, easy to test | The system relies on a large number of microservices, performance is poor, and communication between services is required, the architecture will be complex and it is difficult to achieve atomicity |
Cloud architecture | Processing unit, virtual middleware | High load, high expansion, dynamic deployment | Complex implementation, high cost, mainly suitable for website applications, difficult to test |
Common development tools
The benefits of software development tools: reduce the labor of developers, improve efficiency and quality, user-friendly, reliable work
The characteristics of software development tools: easy to operate, powerful, large coverage, safe and reliable, modifiable, expandable, self-use themes.
Development tool functions: understanding and describing the objective system, storing and managing the information in the development process, the writing and generation of codes, the preparation and generation of documents, and the management of software projects
Development tool characteristics: expression ability or description ability, ability to maintain information consistency, ease of use, reliability of tools, requirements for hardware and software environments.
Classification of development tools: tools based on the work phase, tools based on the degree of integration, tools based on the relationship between hardware and software, and tools based on the application domain.
Some common tools
HBuilder-HTML5 web development IDE
WebStorm is a JavaScript development tool under jetbrains
IntelliJ IDEA is an integrated environment for java language development
Visual Studio 2019 IDE-programming software for Windows