Software Engineering——Chapter 1 Overview of Software Engineering Knowledge Points Arrangement

This column is the blogger's personal notes, the main purpose is to use the fragmented time to memorize the knowledge points of soft engineering, hereby declare!

Article directory

1. Why is there a discipline of software engineering?

2. What are the stages of software?

3. Definition of software crisis?

4. What are the problems included in the software crisis?

5. What are the typical manifestations of a software crisis?

6. What are the reasons for the software crisis?

7. Misunderstandings and practices of software development and maintenance?

8. What are the configurations of software products?

9. What is the definition of software engineering?

10. What are the measures to solve the software crisis?

11. What are the basic principles of software engineering?

12. Definition of software engineering methodology/paradigm?

13. What are the three elements of software engineering methodology? And what is the role of each?

14. What is traditional methodology?

15. What are the functions of documents?

16. Why use object-oriented methodology? (Disadvantages of traditional methodologies)

17. What are the advantages and disadvantages of object-oriented methodology?

18. A well-known equation for object-oriented methods?

 19. What is the process comparison between traditional methodology and object-oriented methodology?

 20. What is the software life cycle? What are the stages?

 21. What is a software process?

22. What is the main difference between waterfall model and rapid prototyping model?

23. What are the characteristics of the waterfall model as the most widely used process model?

24. The actual waterfall model?

25. What are the advantages and disadvantages of waterfall model?

26. What is the essence of rapid prototyping model?

27. What is the reason why the rapid prototyping model can be developed linearly?

28. What are the advantages and disadvantages of rapid prototyping models?

29. What are the advantages and disadvantages of the incremental model?

30. What is the composition of the spiral model?

31. What are the advantages and disadvantages of the spiral model?

32. To which type of process model does the fountain model belong? What are the characteristics? why would you say so?

 33. What is RUP and agile process?

34. RUP and extreme programming comparison?

35. What are the applicable scenarios of the Microsoft process?

36. Try to discuss the advantages and disadvantages of the Rational unified process? and which items apply?

37. What are the essential characteristics of software engineering?

Summary at the end of the chapter


1. Why is there a discipline of software engineering?

In order to develop and maintain software more effectively and study ways to eliminate software crises , the discipline of software engineering has been formed.

2. What are the stages of software?

  1. Smaller programs, written specifically for each specific application , save only program listings
  2. software workshop
  3. software engineering stage

3. Definition of software crisis?

        Software crisis refers to a series of serious problems encountered in the development and maintenance of computer software , and almost all software has these problems to varying degrees

4. What are the problems included in the software crisis?

  1. How to develop software to meet the growing demand for software
  2. How to maintain an ever-expanding amount of existing software
  3. The software crisis is characterized by long-term and indistinct symptoms

5. What are the typical manifestations of a software crisis?

  1. Estimates of software development costs and schedules are often very inaccurate
  2. It often happens that users are dissatisfied with the completed software system
  3. The quality of software products is often unreliable
  4. Software is often not maintainable
  5. Software is often not properly documented
  6. Software costs as a percentage of total computer system costs are rising year by year
  7. The speed of software development productivity improvement is far behind the trend of rapid popularization and deepening of computer applications

6. What are the reasons for the software crisis?

  1. related to the complexity characteristics of the software itself ( root cause )
  2. Related to incorrect methods of software development and maintenance ( main reason )

7. Misunderstandings and practices of software development and maintenance?

        The main performance is to ignore the importance of software requirements analysis , think that software development is to write programs and try to make them run, and despise software maintenance , etc.

8. What are the configurations of software products?

Mainly includes programs, documents and data

A program is an executable sequence of instructions that can accomplish predetermined functions and performance

Data are data structures that enable programs to process information appropriately

Documentation is the graphic and textual information needed to develop, use and maintain programs

9. What is the definition of software engineering?

  1. Applying a systematic, standardized, and measurable approach to the process of software development, operation, and maintenance , that is, applying engineering to software
  2. The pathway mentioned in Study 1

10. What are the measures to solve the software crisis?

  1. The successful technologies and methods of software development summed up in practice should be promoted and used , and better and more effective technologies and methods should be researched and explored
  2. Better software tools should be developed and used
  3. There should be necessary organizational management measures

11. What are the basic principles of software engineering?

  1. Strictly manage with a phased lifecycle plan
  2. Adhere to the stage review
  3. Implement strict product controls
  4. Using modern programming techniques
  5. Results should be clearly scrutinizable
  6. The development team should be fewer but better
  7. Acknowledging the need for continuous improvement of software engineering practices

Brief notes: points, evaluation, control, present, review, less, must

12. Definition of software engineering methodology/paradigm?

Usually, the collection of a set of technical methods used in the whole process of software life cycle is called methodology , also known as paradigm

13. What are the three elements of software engineering methodology? And what is the role of each?

The three elements of software engineering refer to: methods, tools and processes

A method is a technical method for completing various tasks of software development , answering the question of " how to do it "

A tool is an automated or semi-automated software engineering support environment for applying a method

The process is a framework of a series of tasks that need to be completed in order to obtain high-quality software , and it specifies the work steps to complete each task

14. What is traditional methodology?

        Traditional methodology, also known as life cycle methodology or structured paradigm , uses structured technology to complete various tasks of software development, and uses appropriate software tools or software engineering environments to support the use of structured technology.

15. What are the functions of documents?

  1. Documentation is a tool for communication
  2. Documents also function as memos
  3. Documentation increases visibility into the software development process
  4. Documentation records information about the development process
  5. Documentation can be used as a sign of the outcome and completion of phased work

Short notes: pass, prepare, degree, record, mark

16. Why use object-oriented methodology? (Disadvantages of traditional methodologies)

        Disadvantages: Traditional methodologies are either data-oriented or processing-oriented . When the software scale is large, or the requirements for the software are vague or change over time , developing software using traditional methodologies is often unsuccessful and difficult to maintain .

        Advantages: The software life cycle is divided into several stages, and the tasks of each stage are relatively independent and relatively simple, which facilitates the division of labor and cooperation of different personnel , thereby reducing the difficulty of the entire software development process . Adopting traditional methodologies can also greatly improve the success rate and productivity of software development .

17. What are the advantages and disadvantages of object-oriented methodology?

advantage:

  1. Reduced complexity of software products
  2. Improved software understandability
  3. Simplified software development and maintenance
  4. Promotes software reuse

shortcoming:

  1. Object-oriented methodology and its unique inheritance, polymorphism and other mechanisms make object-oriented testing and debugging difficult
  2. The design of object-oriented architecture is difficult and complicated , which may cause problems such as unreasonable system
  3. Object-oriented development costs are high , and it is not conducive to novice development

18. A well-known equation for object-oriented methods?

Object-oriented method = object + class + inheritance + message communication

 19. What is the process comparison between traditional methodology and object-oriented methodology?

        Traditional methodology emphasizes the top-down sequential completion of each stage of software development tasks.

        Object-oriented is an evolutionary process that actively iterates multiple times , and its unique inheritance and polymorphism further improve the reusability of object-oriented software.

 20. What is the software life cycle? What are the stages?

The software life cycle refers to the whole process from the beginning of the software product until the software is eliminated

Divided into eight stages: problem definition, feasibility study, demand analysis, overall design,

Detailed design, coding and unit testing, comprehensive testing, software maintenance

 21. What is a software process?

The software process is a framework of a series of tasks         that need to be completed in order to obtain high-quality software , and it specifies the work steps to complete each task .

22. What is the main difference between waterfall model and rapid prototyping model?

Different methods of obtaining user needs

23. What are the characteristics of the waterfall model as the most widely used process model?

  1. Sequence and dependencies between phases
  2. deferred realization perspective
  3. Quality Assurance Perspective

24. The actual waterfall model?

The actual waterfall model is a " feedback loop ", it is a document driven model, which is both its strength and its weakness.

25. What are the advantages and disadvantages of waterfall model?

advantage:

  1. Force developers to adopt a disciplined approach
  2. Strictly stipulate the documents that must be submitted at each stage
  3. All products handed over at each stage are required to be carefully verified by the Quality Assurance Team

shortcoming:

  1. Most of the actual projects are difficult to follow the order given by the model , and the iteration of this model is indirect, which can easily cause big confusion due to small changes.
  2. It is often difficult for customers to express their real needs, but this model requires this. This model does not welcome the existence of ambiguity .
  3. Customers won't see a running test version of the program until late in the development cycle , and discovering a major bug at this point can cause panic among customers, and the consequences can be catastrophic.
  4. is a document-driven model

26. What is the essence of rapid prototyping model?

        The essence of the rapid prototyping model is " fast ", without a " feedback loop ", and the development is basically carried out in a linear order . The advantage is that it helps to ensure that the real needs of users are met.

27. What is the reason why the rapid prototyping model can be developed linearly?

  1. The prototype system has been verified by interacting with users , and the resulting specification documents correctly describe the needs of users, and will not be reworked later
  2. Developers learn a lot by prototyping the system and are less likely to make mistakes during the design and coding phase

28. What are the advantages and disadvantages of rapid prototyping models?

advantage:

  1. The prototype system has been verified by interacting with users , and the resulting specification documents correctly describe the needs of users, and will not be reworked later
  2. Developers learn a lot by prototyping the system and are less likely to make mistakes during the design and coding phase
  3. Prototyping enables early access to the system by users
  4. Prototyping systems can be used to identify and mitigate risks

shortcoming:

  1. The inherent deficiency of the product , because developers often need to make compromises in implementation, and may use inappropriate operating systems or programming languages, so that the prototype can be completed as soon as possible
  2. The cost is high , once the requirements are confirmed, the prototype will be discarded, resulting in a waste of funds
  3. High requirements for development process management

29. What are the advantages and disadvantages of the incremental model?

advantage:

  1. Partially complete products can be delivered to users in a relatively short period of time
  2. Gradually increase product functions, so that users have enough time to learn and adapt , thereby reducing the impact of new software

shortcoming:

  1. Developers and customers entangled all the way until the full version came out
  2. Suitable for software projects with unclear software requirements and design schemes with certain risks
  3. Using this approach runs the risk that the components will not come together and the entire project will be ruined unless the entire development process is closely monitored

30. What is the composition of the spiral model?

The spiral model consists of four parts: planning , risk analysis , implementation engineering and customer evaluation

Spiral Model = Waterfall Model + Rapid Prototyping Model for Risk Analysis

Another way of saying: spiral model = waterfall model + incremental model of risk analysis

31. What are the advantages and disadvantages of the spiral model?

advantage:

  1. Facilitate reuse of existing software
  2. Make software development and software maintenance indistinguishable
  3. Contribute to software quality as an important goal of software development
  4. Reduces the risk of under-testing

shortcoming:

  1. Requires considerable expertise in risk analysis and assessment and depends on it for success
  2. The spiral model does not specify the differences in the content and emphasis of the four aspects experienced by different generations
  3. The spiral model does not address specific requirements for incremental prototypes delivered at the end of the iterative process

32. To which type of process model does the fountain model belong? What are the characteristics? why would you say so?

        Fountain model is a typical object-oriented software process model , iterative and seamless .

        The reason why the fountain model well embodies the seamless and iterative characteristics of the object-oriented software development process is that when using the object-oriented methodology to develop software, all stages use unified concepts and symbols. Therefore, the entire development process They are all consistent , or seamlessly connected , which naturally makes it easy to implement repeated iterations of each development step to achieve a gradual deepening of understanding, and the fountain model well reflects the iterative process of object-oriented software development. and seamless features.

 33. What is RUP and agile process?

RUP (Rational Unified Process) is a two-dimensional life cycle model

The agile process is for the ability to work more efficiently and respond quickly to changes , extreme programming is one of the most famous

Boundaries are about taking good development practices to the extreme

34. RUP and extreme programming comparison?

  1. RUP is a two -dimensional lifecycle model while Extreme Programming is one- dimensional
  2. Extreme programming has a faster response to demand changes and uncertainties , and can maintain a high development speed
  3. RUP is more comprehensive than extreme programming

35. What are the applicable scenarios of the Microsoft process?

The Microsoft process is suitable for projects in a commercial environment with limited resources and limited development time constraints

The discussion of methods, tools and products in Microsoft process is not as comprehensive as RUP and agile process

36. Try to discuss the advantages and disadvantages of the Rational unified process? and which items apply?

advantage:

  1. Improves team productivity and provides each development member with the necessary tools for all key development activities in terms of iterative development process, requirements management, component-based architecture, visual software modeling, verification of software quality, and control of software changes. guidelines, templates and tools to guide and ensure that all members share the same knowledge base
  2. A concise and clear process structure is established to provide greater versatility for the development process

shortcoming:

  1. RUP is only a development process and does not cover the whole content of the software process , for example, it lacks content about software operation and support, etc.
  2. It does not have a development structure that supports multiple projects , which somewhat reduces the potential for widespread reuse within the development organization

Applicable projects: suitable for large complex software system projects with changing requirements

37. What are the essential characteristics of software engineering?

  1. Software engineering is concerned with the construction of large programs
  2. A central topic of software engineering is controlling complexity
  3. software changes frequently
  4. Efficiency in developing software is very important
  5. Harmonious development is the key to developing software
  6. Software must effectively support its users
  7. In the field of software engineering, people from one cultural background usually create products for people from another cultural background

Summary at the end of the chapter

        This chapter attempts to give a brief overview of computer software engineering.

        First, by reviewing the brief history of computer system development, it explains how some erroneous methods and concepts of software development are formed. Then it enumerates the serious ills (software crisis) brought about by these wrong methods, and clarifies some confused concepts. The science and technology of developing and maintaining software requires careful study for the progressive development of computer systems. The historical experience and lessons of computer software should be summed up, and management techniques in other engineering fields should be used for reference, so as to gradually develop and improve the new discipline of software engineering.
        This chapter strives to make readers have a general and essential understanding of the basic principles and methods of software engineering. The life cycle methodology
divides the software life cycle into several relatively independent stages, each stage completes some definite tasks, and delivers one or several components (documents or programs) of the
final software configuration ; basically, it is completed in sequence The tasks of each stage are completed using structured technology and appropriate software tools ; each stage is completed with rigorous technical review and management review . When the software scale is large or the requirements for software are vague and changeable, the development of life cycle methodology is often unsuccessful. In recent years, object-oriented methodology has rapidly replaced life cycle methodology in many application fields.

        Object-oriented methodology has 4 main points, which can be summarized by the following equation: object-oriented method = object + class + inheritance + message communication. In other words, the object-oriented method is a method that uses both objects and mechanisms such as classes and inheritance, and the objects can only
communicate with each other by passing messages .
The object-oriented method simplifies the development and maintenance of software, and improves the reusability of software . According to the nature of the tasks to be completed in the whole process of the software life cycle, the software life cycle can be
divided into problem definition, feasibility study, demand analysis, overall design, detailed design, coding and unit testing, comprehensive testing and operation and maintenance. There are 8 stages in total. When actually engaged in software development work, factors such as the scale and type of software, the development environment, and the technical methods used all affect the division of stages. The software process is a framework for a series of tasks that need to be completed in order to obtain high-quality software products. It specifies the work steps to complete each task. Since there is no set of tasks applicable to all software projects, a scientific and effective software process should be Define a set of tasks appropriate to the characteristics of the project being undertaken.

        The software process model is usually used to succinctly describe the software process, which stipulates the phases of the software life cycle and the order of each phase. This chapter introduces 8 typical software process models.
        The waterfall model has a long history and is well known, and its strength is that it is a prescriptive, document-driven approach;
the problem with this model is that the final software product developed may not be what users really want.
        The rapid prototyping model was proposed to overcome the shortcomings of the waterfall model. It obtains the real needs of users by quickly building a prototype system that can run on a computer , allowing users to try the prototype and collecting user feedback .
        Incremental model has the advantages of obvious return on investment and easier maintenance in the early stages
of software development, but requiring software to have an open structure is an inherent difficulty in using this model.
        The risk-driven spiral model is suitable for large software projects developed in-house , but it will only be used successfully if the developers have
experience and expertise in risk analysis and risk elimination.

        The fountain model better reflects the seamless and iterative characteristics of the object-oriented software development process, and is one of the typical object-oriented
software process models
.
        First launched in 1998Rational Unified Process (RUP) is a software process model with outstanding advantages.
It providesa complete and perfect model of software process in an ideal development environment
, which can be used as a good start for software development of a project. The agile process
        launched in recent yearsrepresented by Extreme Programming (XP) , has a faster and more agile response to changes and uncertainties, so it can better adapt to the limited requirements of small projects in the business competition environment. The constraints of resources and limited development time can be used as a supplement and improvement to RUP; however, as a software process model, the agile process is far less comprehensive and complete than RUP.         Years of practical experience have proved that the Microsoft process is very successful and effective. On the one hand, the Microsoft process can be regarded as a stripped-down configuration version of RUP. The whole process contains a continuous progressive cycle of three life cycles. Each life cycle is composed of five stages, and each stage is simplified to be completed by iterations; on the other hand On the one hand, the Microsoft process can be regarded as an expanded version of the agile process, which expands the specific workflow of each stage in each life cycle.

Next chapter: Software Engineering——Chapter 2 Feasibility Study Knowledge Points Arrangement

Repeatedly, down-to-earth; never forgetting, there will be echoes!

Guess you like

Origin blog.csdn.net/qq_52487066/article/details/131270300
Recommended