Waterfall Model : Strictly follow the fixed order of each stage of the software life cycle, one stage completes and then enters another stage. Its advantages are: can make the process more standardized, conducive to review; disadvantages in with: too ideal, lack of flexibility, easy to generate demand offsets. So the waterfall model is used for projects with clear requirements, two development projects, and the use of prototype methods.
Rapid Prototyping Model : Adopt A method of dynamic definition of demand, by quickly establishing a software prototype that can reflect the user's main requirements, let the user use it on the computer, understand its summary, and then modify it according to the result of feedback, so it can fully embody the user's participation and decision. Prototyping is important to the implementation of prototypes, and the important criterion for measuring them is the ability to quickly get the actual requirements from the user's fuzzy description. So the rapid prototyping model makes up for the shortcomings of the waterfall model, which is suitable for projects with unclear requirements.
Evolutionary model : It is also a prototype development, but unlike rapid prototyping, rapid prototyping models abandon prototypes when they get real demand. The evolutionary model is not, it will gradually evolve from the initial model to the final software PRODUCT, is a "progressive" prototype method. The application is also a project with unclear requirements.
Incremental Model : It uses an "incremental" model that divides software products into a series of incremental artifacts designed, coded, integrated, and tested, respectively. Compared with the prototype method, this model is actually viewed from the other side of the system development, the focus of the prototype is "making a prototype", while the focus of the incremental model is "the functional module of the system is not done at once, but a piece of development, in an incremental way." In real-world development, we will find that a project development process uses both an incremental model and a prototype model. Therefore, the incremental model still facilitates the development of projects with ambiguous requirements.
Helix model : Combining the advantages of waterfall model and evolutionary model, the most important feature is to add risk analysis. It consists of a cycle of planning, risk analysis, implementation engineering, and customer evaluation, which initially starts with the first spiral from the concept project.
Fountain model: Mainly used to describe the object-oriented development process, the core of which is the iteration. All development activities have no apparent boundaries and allow for cross-cutting of various development activities.
up: Both a unified software development process and a common process framework that can handle a wide range of software systems, different organization types, different performance levels, and different project sizes. Up is component-based, which means that software systems developed using it are composed of components that are interconnected through well-defined interfaces. When preparing all the blueprints for a software system, up uses the Unified Modeling Language UML. Up has three notable features compared to other software processes: Use case driven, basic architecture centric, iterative, and incremental.
The software process in up is decomposed into four sequential phases, namely, the initial phase, the refinement phase, the construction phase, and the delivery stage. At the end of each phase, a technical review is scheduled to determine whether the objectives of this phase have been met. If the review results are satisfactory, you can allow the project to move to the next stage.
Up is generally used for large software development.
Agile Development : This approach is a lightweight development approach, as can be seen in agile development. The main idea of this development method is: the traditional Software engineering method document is too "heavy", now need to lighten up, so the unnecessary documents removed, which formed the agile development. Specifically, agile methods include XP (extreme Programming), adaptive development, crystal methods, and feature-driven development.
In the XP method, four values are put forward: communication, simplicity, feedback and courage. Five principles: Quick feedback, simple assumptions, gradual changes, promotion of change, quality of work. 12 Best Practices: Planning games, small releases, metaphors, simple design, test-first, refactoring, pairing programming, collective code ownership, continuous integration, 40 hours of work per week, onsite customers, coding standards.
1. If a software company contracts with customers to develop a software system, the system has a clearer definition of the function, and the customer has strict delivery time, the development of the system is most suitable for the use of waterfall model .
2. In order to effectively capture system requirements, prototype models should be used.
3. Module A directly accesses the internal data of Module B, and the coupling type of module A and Module B is content-coupled .
4. The following is a description of the role that encapsulation plays in software reuse, which is correct (A).
A. Encapsulation makes it unnecessary for other developers to know how a software component works inside.
B. Encapsulation makes the software components work more efficiently.
C. Encapsulation allows software developers to not briefly compile development documentation.
D. Encapsulation makes software component development easier.
Encapsulation is one of the three main features of object-oriented technology, and the purpose of encapsulation is to separate the definition and implementation of objects, thus reducing coupling. Encapsulation can make it possible for other developers not to know how a software component works, but to use the interface provided by that component to do the interaction, and if the same functionality needs to be done in another place, we can use that component in another place, which provides the reusability of the software.
5. The maintainability evaluation indicators for software systems do not include (C).
A. Comprehensible B. testability C. extensibility D. Modifiable nature of
The 6.McCall Software quality model identifies 11 quality characteristics from three aspects of the operation, revision and transfer of the SOFTWARE product, in which the flexibility is not the quality characteristic of the product running.
Operational aspects: Correctness, reliability, efficiency, completeness, usability; corrective aspects: maintainability, testing, flexibility; transfer aspects: maintenance of sexual portability, reusability, and co-operation.
7. According to the definition of software quality characteristics in the ISO/IEC9126 software quality model, the testability sub -Characteristics of maintainability quality characteristics refer to the software attributes related to the effort required to confirm the software modification.
Maintainability quality characteristics refers to a set of software properties related to the difficulty of software maintenance, which contains 4 sub-features of easy analysis, stability, testability and ease of change. which
Easy Analysis is an attribute that describes the difficulty of diagnosing a defect or failure and determining the degree to be modified.
stability is the degree of risk that describes the unpredictable consequences of modification, the lower the risk, the better the stability.
testability is a feature that describes how easy it is to test software that has been modified.
variability is the degree of difficulty in describing modifications, troubleshooting, or adapting to changes in the environment.
8. A project team intends to develop a large-scale system with development experience in related fields and similar scale systems. Waterfall Models are best suited for developing this project.
9. Error-proof programming, can effectively control the correctness of maintenance costs.
10. During the software maintenance phase, adding monitoring facilities for the operation of the software is a perfect maintenance.
11. When conducting risk analysis in the software development process, the risk control activity is designed to assist the project in establishing a strategy to deal with risks, and effective strategies should consider risk avoidance, risk monitoring, risk management and contingency planning.
Soft test pre-Test sprint seventh Chapter software Engineering Basic knowledge