Object-oriented design is the process of translating the requirements obtained during the analysis phase into an abstract solution for implementing a system that meets cost and quality requirements. The move from object-oriented analysis to object-oriented design is a gradual process of expanding the model.
The waterfall model further divides design into two phases: outline design and detailed design, and similarly, object-oriented design can be subdivided into system design and object design. System design determines the strategy for implementing the system and the high-level structure of the target system. Object design determines the classes, associations, interfaces, and algorithms that will be used to realize the operations in the solution space.
(a) Guidelines for object-oriented design
Object-oriented development methods naturally support the design principle of decomposing the system into modules: objects are modules. It is a module consisting of a tightly coupled combination of data structures and methods for manipulating those data. Decomposing a system into a set of modules with high cohesion and loose coupling is a property of modularity.
Object-oriented methods support not only process abstraction but also data abstraction.
3 Information Hiding
In object-oriented methods, information hiding is achieved through the encapsulation of objects.
In object-oriented methods, objects are the most basic modules, so coupling mainly refers to how closely different objects are related to each other. Low coupling is an important criterion for design, as it helps to minimize the impact of changes in one part of the system on other parts.
Be careful about high cohesion
1) Operational cohesion.
(2) Class cohesion.
(3) General – specific cohesion.
(ii) Heuristic rules of object-oriented design
1) Design results should be clear and easy to understand
Making design results clear, easy to understand, and easy to read is an important measure to improve the maintainability and reusability of software. Obviously, people won’t reuse designs that they don’t understand.
To do this:
(1) Use consistent language.
(2) Use existing protocols.
3) Reduce the number of message patterns.
(4) Avoid vague definitions.
Peak general – the depth of the specific structure should be appropriate
3 Designing Simple Classes
Small and simple classes should be designed as much as possible so that they can be easily developed and managed. In order to keep it simple, the following points should be kept in mind:
(1) Avoid including too many attributes.
(2) Have clear definitions.
(3) Try to simplify the cooperation between objects.
(4) Don’t provide too many operations.
Sung with simple protocols
In general, don’t have more than 3 parameters in a message.
Be careful to use simple operations
Operations in object-oriented designed classes are usually very small, typically only 3 to 5 lines of source program statements, and can be described in a simple sentence containing only a verb and an object
Minimize design changes
Usually the higher the quality of the design, the longer the design results remain unchanged . Even if a situation arises in which the design must be modified, the modifications should be kept as small as possible.
(iii) System Design
System design is a high-level strategy for problem solving and building answers. It is necessary to develop a base that approach to problem solving, and the high-level structural form of the system includes the decomposition of subsystems, its inherent concurrency, subsystems assigned to hard and software, data storage management, resource coordination, software control implementation, and human-computer interaction interface.
1 ⒈ system design overview
The design phase starts at a high level, and then refinement. System design to determine the entire structure and style, this structure provides the basis for the design of more detailed strategies in the later design phase.
(1) System decomposition.
The major components of a system are called subsystems, which are neither an object nor a function, but a collection of classes, associations, operations, events, and constraints.
(2) Determine concurrency.
A number of objects in the analytic model, the real world, and the hardware are concurrent.
(3) Processor and task allocation.
Each concurrent subsystem must be assigned to a single hardware unit, either a general processor or a specific functional unit.
(4) Data storage management.
Storage management of internal and external data in the system is an important task. Usually each data storage can be a combination of data structures, files, and databases, and different data storage should make a compromise between cost, access time, capacity, and reliability.
(5) Global resource handling.
Global resources must be identified and a policy for accessing them must be developed.
(6) Selection of software control mechanisms.
All interactions in the analytic model are represented as events between objects. The system design must choose one of several methods to implement software control.
(7) Human-computer interface design.
Much of the work in design relates to stable state behavior, but the interactive interface through which the user uses the system must be considered.
Peak General framework for system architecture
3 System decomposition – building the system’s architecture
Available software libraries as well as the programmer’s programming experience.
The precise model of the problem domain obtained through object-oriented analysis provides a good basis for designing the architecture and establishing a complete framework.
Sung the selection of software control mechanisms
There are two types of control flow in a software system, external control flow and internal control flow.
Be careful with data storage management
Data storage management is the basic facility for the system to store or retrieve objects, it is built on top of some kind of data storage management system and is isolated from the influence of data storage management model.
Optional Design of Human-Computer Interaction Interfaces
In the process of object-oriented analysis, a preliminary analysis of user interface requirements has been made, and in the process of object-oriented design, the human-computer interaction interfaces of the system should be designed in detail in order to determine the details of the human-computer interactions, including the form of the specified windows and reports, and the design of the command hierarchy, and other items.
(D) object design
⒈ object design overview
Pie combination of three models
(1) to obtain the operation.
(2) Determine the target object of the operation.
3) Algorithm Design
Sung Optimization Design
Careful Implementation of Control
Adjustment of Selection Inheritance
Borrow Design of Associations
What are the five steps of an object-oriented analysis approach
The first step is to identify objects and classes. An object, as used here, is an abstraction of data and how it is processed, which reflects the ability of a system to hold and process information about something in the real world. A class is a description of a collection of attributes and methods common to multiple objects, and it includes a description of how to create a new object within a class.
The second step is to determine the structure (structure). Structure refers to the complexity and connectivity of the problem domain. The class member structure reflects the generalization-specialization relationship, and the whole-part structure reflects the relationship between the whole and the part.
The third step is to determine the subject. The theme is the general overview of things and the overall analytical model.
The fourth step, determine the attributes (attribute). An attribute is a data element that can be used to describe an instance of an object or categorical structure that can be given in a diagram and specified in the object’s store.
Step five, determine the method (method). A method is some processing that must be done after a message is received: methods are to be defined in the diagram and specified in the object’s store. For each object and structure, those used to add, modify, delete and select a method are implicit in themselves (although they are to be defined in the object’s store, they are not given in the diagram), while some are shown.
[Analysis of programming language class board teaching] object-oriented programming examples
Abstract: multimedia teaching and development of teaching methods, teaching methods and teaching effect have a qualitative change and development, especially in the programming language courses, multimedia teaching reflects the unique superiority. However, the many advantages inherent in the teaching method of the board book in the teaching of this type of course also has a unique adaptability. This paper discusses the advantages and limitations of multimedia teaching in the light of the actual teaching of programming language courses, and puts forward the high efficiency and special characteristics of board teaching in programming language courses, and briefly analyzes the board teaching method of programming language courses under the multimedia teaching environment. The article has some reference significance in promoting the organic combination of board writing and multimedia teaching in programming language courses to improve the overall teaching effect.
Keywords: multimedia teaching, board teaching, high efficiency, specificity, programming language
Currently, multimedia teaching has become a common classroom teaching method in colleges and universities, and handwritten boards have been widely replaced by PPTs and so on. Especially for the programming language class (such as C language, FORTRAN language, etc.) courses, because of its own characteristics of almost uniform use of multimedia teaching, and at all levels of the school for new teachers must take the provisions of the board teaching will be excluded from the courses. However, the board is still an important and indispensable form of teaching, how to use the board at the right time, in the right amount, in the right shape in the programming language class, so that it and multimedia teaching complement each other, in order to achieve better teaching results? Combined with my teaching experience, the C language teaching practice as an example of the analysis of the theory and method of teaching this kind of courses.
1. The superiority of multimedia teaching in programming language classes
1.1 Programming language courses mainly use a large number of actual program examples to analyze the basic syntax rules, programming methods and related algorithms, which can be displayed on the PPT or directly open the programming language software operation, can be intuitive, image, efficient application of the example code demonstration. This is a great way to reduce the workload of teachers and improve the efficiency of teaching.
1.2 The use of projectors to demonstrate the program can be directly in the classroom code writing, debugging, which can assist the teacher to intentionally design the error, first let the students look at the code to find the error, and then run the program to view the error message. This intuitive and specific teaching methods can better develop students’ program debugging ability.
1.3 The use of multimedia can expand the amount of information in the classroom, the complex algorithms and programming ideas can be more intuitive animation form of demonstration to improve the teaching of the interesting and readable, assisting students to understand the main points of knowledge, while stimulating the students’ interest in learning, learning motivation, active classroom atmosphere.
These advantages of multimedia in programming language classes are irreplaceable by the teaching of the board.
2. Limitations of Multimedia Teaching in Programming Language Classes
Multimedia teaching has the above intuitive, image, high efficiency features, but the whole process of using multimedia teaching, there are certain limitations, mainly expressed as follows:
2.1 The use of multimedia courseware teaching in the use of technology, light on the emotions, the lack of humanistic care
In multimedia courseware teaching, teachers ignore the feedback of in-class teaching, ignoring the emotional exchange between students and teachers, students and students, teachers are constantly busy between the mouse, the podium, the lack of necessary communication and interaction between teachers and students, good teaching results are difficult to achieve.
2.2 In the programming language class teaching process, the content before and after is interrelated, the understanding and mastery of new knowledge often need to be based on the previous content
For example: in the late function, structure and other chapters of the teaching process, with the demonstration of the complexity of the program, it will be constantly applied to the basic data structures learned earlier, program control statements and other knowledge points. If you do not use the board, just verbal recollection of the content of the previous lectures, the students’ acceptance of the effect will be poorer, especially for the previous content of the students who do not master, it is even more strenuous.
2.3 “The eye has seen a thousand times, but the hand has seen once”
Teachers in the playback of the courseware, the screen jump back and forth, the student’s mind jumping march, the coherent thinking process is often interrupted, it is difficult to take notes in a timely manner. Programming language of some of the code, procedures and algorithms and other knowledge is required to students must master, but in the multimedia teaching, students generally want to copy the teacher to produce a good PPT and no longer do the classroom notes, resulting in the class attention is not focused, did not understand, affecting the effect of students listening to the class.
3. The special nature of board teaching in programming language courses
Compared with other courses, programming language courses are almost uniformly used in multimedia teaching because of their own characteristics, and the application of board in such courses also has certain special characteristics.
3.1 Flexibility of the teaching method
Distinguished from the conventional technical courses, programming language is to program code and program design process as the main carrier, the teaching process will inevitably involve a large number of program code and design logic, the application of the board shows flexibility, it can be a logical outline to point out, guide the students to the programming ideas; but also write the key points of the program code, deepen the students’ understanding of the hierarchical order of the program code. The program code, deepen the students’ understanding of the hierarchical structure and program statements.
3.2 Interactivity in the Teaching Process
Programming language courses, due to their own characteristics, each class involves a large number of complex programming logic, which requires a high degree of energy input, but the boring program code is often easy to induce students to distraction, can not keep up with the progress, especially in the multi-media teaching, but even more so. The board teaching, can be free to flexibly control the progress of the lecture, write key points at will, timely manufacture of baggage, and constantly interactive, to improve students’ listening enthusiasm and attention.
3.3 Capacity Limitations
After all, the programming code is the main body of the programming language courses, especially in the later stages of the course, each class needs to write a large number of program examples, if you rely solely on the board will appear if the writing too much delayed the progress of the lectures, if the lectures are too little will affect the students to the knowledge of before and after the coherent learning, therefore, the board in this kind of course has a The content capacity of the limitations of the board in such courses.
4. Programming language class board teaching methodology
Now take the programming language C as an example, analyze the application of the board in the course.
4.1 Full-board teaching
This teaching method is suitable for the teaching of basic overview, algorithms, data types, operators and expressions.
These chapters are the first three chapters of the course, which are the beginning of the students’ exposure to the course, and their knowledge is fragmented, poorly correlated, and there are no large numbers of program statements for the time being. The teaching process can be summarized in accordance with the progress of all the knowledge points, the formation of the framework, and in the teaching process focus on the outline outside the free board for examples of knowledge points.
For example, in the process of writing positive and negative code, you can write the steps of writing on the left side of the board on the outline of the knowledge points, the right side of the board to write the corresponding binary numerical code, which not only helps students to grasp the key points, but also promotes the students to the depth of understanding of the knowledge points.
4.2 The board book for the outline of the auxiliary picture projection or simple PowerPoint projection
This kind of teaching method is suitable for program structure language control part of the chapter.
These chapters are the key intermediate parts of the course, students need to focus on the control statements to understand the control of the program running order of the law. The teaching process can be the key core control statements and control definitions in the form of an outline written on the board, and in the margins to assist in the writing and explanation of simple programs, and then for a better understanding of the students to grasp, can be discussed together with a good program projection, so that in the follow-up process can be reviewed at any time.
For example, in the if selection statement nested in the explanation, in the outline part of the writing of the key nested statements and program operation, and in the writing of each key statement are written on the board to write a specific example to help students understand, after writing each example will be projected and keep it until the knowledge point is taught, and then together to review the outline of the knowledge point written, projected sample code (also written), so that both grasp the student interest, but also to promote the overall grasp of the knowledge point.
4.3 to the board as an outline to assist the ppt program writing and actual program demonstration
The method is suitable for subsequent arrays, functions, pointers and other complex programming chapters.
These chapters involve both the learning of new knowledge, but also need the support of the previous knowledge, is a complex, integrated learning process. Teaching process will need to learn new knowledge points in the form of an outline with the progress of the key knowledge points will be written, with the ppt program step by step demonstrated, while interspersed with the key statements of the board writing to explain the last will be written to the actual demonstration of the program to run the results, which can help students to grasp the main body of the framework of the knowledge points, but also a clear picture of the whole program, but also to grasp the key points of the law of writing to improve the learning effect. The first step is to make sure that you have a good understanding of how to use the program and how to make it work.
For example, in the teaching of two-dimensional array output, two-dimensional array control rules can be written in the form of an outline on the board, with the board graphical analysis, and then step-by-step demonstration of the program writing process with PowerPoint, and the control of the array output of key statements in the board to explain one by one to write, and then finally demonstrated the results of the run in the actual software, and then the output can be appropriate changes in the output requirements, a piece of discussion of the written key statements, at this time, it is possible to put the key points of writing the program. Key statements, then you can discuss the statements directly written in the computer program code, run to show the results. This can help students thoroughly grasp the key points, but also a strong stimulation of student interest, improve student attention.
In today’s information age, teachers should pay attention to the multimedia teaching methods in teaching, especially in programming language courses, but should also give full play to the advantages of board teaching, correctly recognizing the high efficiency and specificity of board teaching, and carry out flexible and varied combinations of board and multimedia teaching methods for the content of the teaching. The first step is to make sure that you are able to get the best out of your teaching methods, so that you can get better results.
Li Yuanhui. Classroom board and its use in multimedia teaching [J]. Science and Technology Consulting, 2010, (24): 203.
Li Bei. Exploration of Teaching Methods of Programming Language Class [J]. Computer and Network, 2010: 185-188.
Qiu Jianlin, Liu Weifu, Gu Hui, et al. Research and Practice of Teaching C Programming Language. Journal of Electrical and Electronic Teaching, 2003, 25(3): 96-98.
Wang Danling. Discussion on improving the teaching quality of C language program design class [J]. Journal of Liaoning College of Education and Administration, 2005, 22(12): 72, 74.
Prototyping and Object-Oriented Analysis and Design (1)
Prototyping is a development model introduced in the mid-1980s for rapid system development, designed to improve the shortcomings of the traditional structured life-cycle approach, shorten the development cycle, and reduce development risk. The concept of the prototype method is: after obtaining a set of basic requirements, quickly construct an initial system prototype that reflects the user’s needs, so that the user can see the overview of the future system, in order to determine which functions are in line with the requirements, which aspects need to be improved, and constantly further supplement these requirements, refinement and modification, and so on, and so on, and so forth, until the user is satisfied with the development of a complete system.
Advancement of the system
Object-oriented is one of the most concerned technology in the IT industry at home and abroad in the past 20 years, object-oriented technology is a kind of epistemology and way of thinking in accordance with people’s habits of the real world to study and simulate the objective world of methodology. It regards anything in the real world as an “object”, and regards the objective world as composed of many different kinds of objects, each of which has its own internal state and law of motion, and the interconnections and interactions between different objects constitute the complete objective world. ObjectOriented (OO method for short) overcomes the traditional functional decomposition method can only purely reflect the structure of the management function, the data flow model focuses only on reflecting the information characteristics of things and processes, information simulation can only passively cater to the needs of the actual problem and other shortcomings, constitutes the center of the study of the system object for the analysis and design of information management systems to provide a new method.
The new approach to information management system analysis and design.
In this chapter, we will introduce the background and reasons for the prototype method, the basic idea, the basic steps, the key success factors, and the comparison of the life cycle method; introduce the basic concepts and principles of object-oriented, object-oriented information systems analysis, design and implementation methods.
1.1 The Prototyping Approach
The late 1960s and early 1970s saw the emergence of the “software crisis”, and in order to effectively manage software development projects, the information systems development (ISD) lifecycle approach was born. In order to effectively manage software development projects, the Information Systems Development Lifecycle Approach (ISDA) was born. Due to the standardization of the development process and the clarity of the hierarchy, the system development life cycle approach has been widely used. However, this approach is based on the premise that user requirements need to be defined at an early stage without allowing modifications, which is not realistic for many applications such as business information systems. Errors in the definition of user requirements are the most consequential errors that occur in the development of information systems. In this context, a rapid prototyping method based on cyclic modeling is proposed.
1. Background of the prototyping method
The “Software Crisis” appeared in the early 1970’s. The “Software Crisis” was manifested in the following ways: the speed of software development could not satisfy the actual needs, the cost of software was a major factor in the total cost of computer systems, and the cost of software was a major factor in the total cost of computer systems.
The “software crisis” emerged in the early 1970s, characterized by: software development that was not fast enough to meet actual demand, software costs that were increasing year after year as a percentage of total computer system costs, unreliable software products, software that was difficult to maintain, no proper documentation, and development progress that was difficult to control.
The reasons for the “software crisis” are: unclear user needs, lack of proper theoretical guidance, and the increasing size and complexity of software. So how to solve the “software crisis”? People pay more and more attention to the study of software development methodology, through years of research and efforts, software development methodology towards two aspects: on the one hand, focus on the study of software development tools related to the machine itself, that is, high-level language and software development environment; on the other hand, focus on the study of software design and specifications and so on. At this point, the Systems Development Life Cycle (SDLC) came into being. It is an organizational and management method for planning, executing and controlling information systems development projects, and is a specific application of engineering principles in information systems development.
As introduced in Chapter 3, the Life Cycle Approach is a structured methodology that views information systems development as a life cycle, and software as artifacts that inevitably undergo a life process of creation, growth, maturation, operation, and demise. The life-cycle approach divides system development into multiple phases, which are generally categorized into five phases: system planning, system analysis, system design, and system implementation. System operation and maintenance. Strictly according to the stages, each stage has a clear goal and task. After the completion of each phase, the corresponding documentation should be completed as a summary of the work of this phase, but also as the basis for the next phase. This approach particularly emphasizes the integrity of the phase and the development of sequential, it requires the developer to first determine the complete needs of the system and all the functions.
The life cycle approach has obvious advantages. It adopts a systems perspective and a systems engineering approach, analyzing and designing from the top down and implementing from the bottom up. The development process is clear, the task is clear, and there are standard diagrams, tables, descriptions, etc. to form the documentation of each stage. The life cycle approach introduces a user perspective and is suitable for the development of large-scale information systems, separating logical design from physical design.
However, the application of the Life Cycle Approach presupposes a rigorous requirements definition methodology and strategy. TheDefinitionofRequirement method is a rigorous, pre-defined approach. Theoretically, a project team responsible for analysis and design should completely and thoroughly point out in advance the business requirements that are reasonable for the application and expect users to review, evaluate and approve them, and work smoothly based on them.
This rigorous approach to requirements definition is based on certain assumptions, which are:
(1) All requirements can be predefined
The precise meaning of this assumption is that all system requirements can be logically pre-specified in the absence of actual working experience with a system in the absence of actual experience in working with the system. In some cases, while it is not guaranteed that individual project participants will know the system requirements and logic model with certainty, it is possible to describe a well-defined system requirement by using the majority of people’s suggestions and reasonable judgment about the system, and all requirements can be accurately predefined.
In practice, however, the validity of the assumptions of the requirements definition methodology is fragile. In reality, the people who provide detailed descriptions are often not professional authorities in their field and professional analysts; it is very difficult to define things with a high degree of complexity; and most users are by no means exhaustive, but only selective in their descriptions. Even when predefinitions are well done, systems often require further modification and several iterations because of the following facts. (i) individual perceptions of the system often do not match the reality exactly; (ii) observation and use of the system in the field stimulates the user to make new demands on the system; and (iii) viewing and experience modifies and removes prior demands on the system.
(2) Project participants are able to communicate clearly and accurately with each other
Another important assumption of the rigorous requirements definition approach is that, during the course of system development, the project team, project managers, analysts, user developers, auditors, confidentiality analysts, data administrators, and interpersonal specialists are all able to clearly and effectively communicate. While everyone has their own specialties, perspectives, and actions, the use of tools such as graphical/descriptive documents makes it possible for everyone to communicate clearly and effectively.
The reality is often complex, with everyone having their own interpretations and understandings of common conventions, and opinions or additions to specifications that should be there but are not. And textual narratives, such as English or Chinese and other textual descriptions, are not an accurate communication tool, even if a structured textual language is provided, such as structured English and the more rigorous advanced ways of communicating such as decision tables, trees, etc., which of course is certainly an improvement over narrative textual descriptions and reduces ambiguities, it still lacks the precise technically communication language of But it still lacks the “rigor”, “expertise”, and “industry” of a precise technical communication language.
Bridging communication between people from multiple disciplines and industries is therefore difficult. It has long been recognized that the loss of effectiveness of intercommunication is one of the major causes of failure in the development process.
(3) Static descriptions/graphical models are an adequate reflection of the application system
When using predefined techniques, the primary communication tool is the definition report, which includes both a working report and a final report. Narrative text, graphical models, logic rules, data dictionaries, and other forms are used, and these specific forms vary depending on the respective technology, but their roles are similar.
The common feature of all technical tools is that they are passive and static communication tools that cannot be performed, and thus cannot reflect the dynamic nature of the proposed application, while requiring users to recognize the system on the basis of some static information and static images seems to be close to demanding.
As a result, it is difficult to strictly define technologies that are inherently static and passive, and to ask them to describe a “living” system. The way to understand and evaluate an application is to experience it, not just to read and discuss it.
Taken together, these points show that the rationale for rigorous requirements definitions is not satisfied in many cases, so it is not unexpected that development strategies built on fragile foundations will lead to system failure when implemented. In order to better deal with the risks posed to a project by the lack of assumptions supporting a rigorous approach, a workaround needs to be explored.
One way to address the problem of changing requirements definitions is to obtain a basic set of requirements and then quickly “implement” them. These requirements are then added to and refined as users or developers gain a better understanding of the system. The system is defined in a step-by-step development process, rather than anticipating everything at the outset, which is the prototype approach.