Larry Brinn Talk (Software) Design Method (CKER)

zhaozj2021-02-17  51

(Software) design method of: Larry Brinn translation: CKER

1 Introduction

2. (Software) What is the design?

3. (software) design process

4. (software) design foundation

5. (software) design methodology

6. (Software) Design Document

7. Object-oriented (software) design

8. Conclusion

Introduction How do you start a new project? Is it jumped to the computer, open your favorite RAD tool to start entering the code? Is there any problem that the process will do or how the system is manipulated? Have you ever thought about remembering something to help remind you or clarify the logic of the code you have developed? If you answer the first question, while other questions answer "Yes", you can skip this document. Otherwise, please read this article. You should have a plan, blueprint, and have a concise arrangement for your problem solution on your hand. "You must know where you have to get everything!" Let's take a look at what develops a program that enables the functions you designed, what is the most difficult.

(Software) What is the design? E.S. TAYLOR is defined under the design:

"... The process of applying various techniques and principles for the purpose of defining a device, A Process OR A System In Sufficient Detail To Permit Its Physical Realization.

"... Applies a wide variety of techniques and principles, and use them enough to define a process of physical implementation of a device, a program or system."

An absolute first step in the development phase of any engineering product or system is to determine the goal of the manufacturing prototype or entity performance to be constructed in the future. This step is determined by multi-faceted intuition and judgment. These aspects include constructing similar models, a set of principles that lead the development of model development, a set of standards that start quality evaluation, and repeated modifications until design the final formation process itself. Computer Software Design is still in the young period compared to other engineering disciplines, which is still changing, such as updated methods, better algorithm analysis, and significant evolution of understanding. The appearance of the methodology of software design is only more than 30 years, still lacks depth, adaptive and quantitative nature, usually more associated with classic engineering design subjects. Despite this, today's software technology already exists, standard quality standards can also be used, and design symbols can also be applied. With these opinions, let's take a look at what helps programmers find their software Nirvana (the meaning of heaven).

(Software) Design Process Software Design is a process that converts demand into software statements (expression). This kind of statement gives us a global point of software. The system gradually proximity to the source code by gradually refining. Here are two basic steps; the first step is to preliminate Preliminary Design, focus on how to convert demand into data and software frameworks. The second step is to design Detail Design in detail, focusing on the algorithm expression of the framework to gradually refine the specific data structure and software. Design behavior, data, algorithms, and programming, need to be combined with the clear behavior required by the interface designed by the modern program. Interface Design Interface Design Establish a program layout and human machine interaction mechanism. The quality of through the design process is evaluated by a series of formal technology to evaluate the formal technical reviews or design DESIGN WALKTHROUGHS. Good design specifications must be built on the assessment of design statements (expression), the following is some guidelines:

1. Design should show the hierarchy to make the control between the parts of the software more sensible. 2. Design should be modular; this is to say that the software should be logically divided into part of a specific function and sub-function.

3. Design should be constructed from clear and separate data and process expression.

4. Design should cause the module to show independent features.

5. Design should cause the boundary to reduce the complexity between the modules and its connection to the external environment.

6. The use of the repeatable method determines the information obtained during the software demand analysis.

It is necessary to have a good design feature is not a good luck, while in the design process, through comprehensive use of basic design principles, system methodology, thorough assessment review can help to design. The software design method is evolving every day. As a method that has been tested and refined, a good design should have the following four characteristics and maintain consistent between all these features.

1. Convert the expression of the information to the mechanism of the expression of software design.

2. Represents the symbol of the function component and its interface.

3. Trial of gradual refinement and segmentation.

4. Guidelines for quality assessment.

When developing software, no matter what design method you must be able to use a set of basic principles on data, algorithms, and programming.

(Software) The basic principle of designing basic software design methodology has been evolved for many years. Each concept is not the same, but they have experienced time baptism. Based on these basic principles designers can adopt more more mature design methods. These basic principles help designers answer the following questions:

1. Which standard will be used when splitting the software into an independent component?

2. How to divide the principles of software into a function or data structure?

3. Is there a unified standard for the technical quality of a software design?

M.a. Jackson has said: "For a computer programmer, the difference between the program is running and makes the program correctly is a good start." For "correctness", the basic design principle provides a must-frame frame. Therefore, let us make a short inspection of these basic principles.

Abstract Abstract is a solution description using terms used in the fields to be resolved at the highest level. The relatively low level abstraction is more facing the programming language, the lowest layer abstraction is a direct implementation of the solution. Each step of software design is an abstract gradual refinement of the corresponding hierarchy solution.

Seeking refinement is also refined to refine the strategy of developing program systems through program details. The process of decomposing the program is decomposed until the process of becoming the programming language simultaneously creates the hierarchy of the program. At this point, you must consider the details, which also shows the process of seeking refinement is actually a hard work.

Modular MODULARITY means that software can be split into components (also called modules), which integrates modules to meet the needs of problems. "The modularization of the software is the only property that allows the intelligent management program." In other words, when you break a complex problem into some small questions, it is easier to resolve. It is necessary to explain that even if a system must be implemented like a "microcontroller", it can also be modular design.

Software System (Architecture) Software Architecture involves two important features of the program: 1) The hierarchy of the module. 2) Data structure. This is a segmentation process that associates the implicit definition of real-world issues with a demand analysis. When each part of the problem is resolved by one or more software elements, the evolution of the problem and the evolution of the problem is started. This process represents the location of the demand analysis and design of the software.

Control Hierarchy Control Hierarchy is also called a program structure, describing the organization of program components and means control hierarchy. It does not describe the program of the software, such as the process sequence, the event / command, or work cycle. The following level chart shows the communication flow between the modules and shows which modules are repeated (the upper right corner is black). This chart describes a read file that calculates the value of each record and writes a report to display the information recorded and the completed calculations. The data structure Data Structure describes the logical relationship between a single data. The data structure specifies the organization, access method, correlation degree, and selection processing of information. The organization and complexity of the data structure is limited to the flexibility of the designer. The only restriction is the number of classic data structures hinders more than a long-term test structure.

Software Program Software Procedure focuses on processing details of each module and must provide a precise processing specification, including event order, accurate determination point, repetitive operation, and even data structures. The software program performance is a hierarchical, and the processing method should include a reference to all of its submodules.

Information Hiding Information Hiding's Law This is recommended that the module features scored by the design decision should be unacceptable to the rest of the modules. In other words, the module should be designed and designated to include content that is inside the module and other modules is not accessible to other modules. Hidden means that effective modularity can be implemented by defining a separate module that communicates with each other only includes information necessary to implement software functions. It has brought the biggest benefits when designing information hidden as a design criteria during test or future maintenance.

(Software) Design Method Let us traverse four areas of modular design during design: module MODULAR, data DATA, system Architectural and program procedural design.

Module Design Modular Design reduces complexity, easy to modify, and make it easier to implement parallel development of different parts of the support system. The operational feature provided by the module type is characterized by combining time history, activation mechanism, and control mode. Inside the program structure, the module can be classified as:

1. Sequential Sequential module, referenced and executed by the application, but cannot be interrupted from an apparent.

2. Increment Incremental module, can be interrupted by the application first, then start again from the interruption point.

3. Parallel Parallel modules, can be executed simultaneously with other modules in multiprocessor environments.

A separate module is easier to develop because the function can be divided, while the interface is only used to ensure the independence of the function. The independence of the function can use two qualitative standards to measure: the correlation between the functional strength of the module, and the correlation between the coupling coupling - measures inter-inter-module interdependent.

Data design Data Design first and some people also believe that it is the most important design behavior. The influence of data structure and the complexity of the program have caused a profound impact on software quality. This quality is implemented by the following principles:

1. Systematic analysis principles suitable for functions and behavior analysis should also apply to data.

2. All data structures, as well as the individual completed, should be determined.

3. Create a data dictionary and use to detail the design of data and programs.

4. The underlying data design decision should be delayed to the later stage of the design process.

5. Statement of the data structure (specified) should only be known to the modules that directly use data contained in this structure.

6. Useful data structures and operation libraries can be used when appropriate.

7. Software design and programming languages ​​should support specifications and implementations of abstract data types.

The main goal of architectural design is the development of modular program structure and express control correlation between modules. In addition, the system design fuses the program structure and data structure, and the interface definition of the data that flows in the program. This approach encourages designers to pay attention to the overall design of the system rather than separate components in the system. Different methods are used to use different ways to approach the origin of the system, but all of these methods should recognize the importance of software global concepts. Program Design Procedural Design In the data, program structure, and statement of the detailed algorithm have used a natural language similar to English to render the program design. The reason for the use of natural languages ​​is that when most members of the development team use natural language to communicate, then a novice outside the group will more easily understand these instructions without learning. Here is a problem: the program design must be detailed in detail without disringus, but we all know that unambiguous natural language is not natural.

(Software) Design Documents In any system, develop documents are valuable. There are now many different development documentation plans to choose from when creating a system. One of the models of which is a so-called design specification (the translator Note: The original hyperlink has been invalid, so it can't get the original template. But CKer has a set of document templates called APM seem good. I will turn it to everyone later ... ^ _ ^). When you look at this document, please pay attention to the details of each level.

The first part shows the overall range of design results derived from system descriptions and other definition documents. The second part shows a detailed description of support documents. The content of the third part is also referred to as design descriptions, completed in the preliminary design phase. Fourth, the content of the five parts will develop the content of the initial design phase to the detailed design phase. The sixth part shows the cross-reference matrix that make sure the following two principles:

1. Use software design to meet all needs.

2. Indicate key modules that implement specific needs.

Section 7 is necessary to test the functionality and correctness of the system in the development test procedure (step). This section can be deleted if detailed test procedures are developed in parallel while developing design specifications. The eighth part details the considerations and requirements for transferring system packages to user sites. In the rest of the document, the algorithm description, selection program, list data, flowchart, pseudo code, data flow chart, and all related information used when designing specification development can be placed here. .

Object-oriented (Software) Design to everything we have detailed in detail is the cornerstone of design methods in the IT field. Object-oriented design (OOD) allows data objects and processing operations to connect to each other by modular information and processing methods thereof. This process relies on three extremely important design concepts: abstraction, information hide, and modular. All design methods strive to demonstrate these features; but only OOD mechanisms get all three characteristics without increasing complexity or compromising. In OD, we have Objects, Operations, and Messages. Objects, also known as classes, can be people, machines, commands, files, cars, houses, and more. Operations, including private data structure and processing methods for transforming data structures. Messages is used to activate program constructs that call operation control and objects. This means that the shared part of the object is its interface and the message is moved between the interface and specifies what kind of operation you want to use, but do not know how the operation is implemented. Objects Decide how to perform messages after receiving the message. Now let's take a look at some of the tools in an object-oriented system:

1. Pseudo code - close to the computer programming language instruction, but use the approximate English language instead of the real programming language to facilitate viewing program logic. Below is an example of a record in a machining file: start (start)

Initialize Program (Initialization)

Read A Record (read a record)

Process Record

Move Record to Print Area (moving record to the print area)

Write a line (writing a line)

End Job (end task)

STOP RUN. (Stop running)

2. Prototype - In the first version or model of the development package, or the computer hardware is ready for the step of testing before the production. You can usually create the RAD tool you love.

3. TOE Chart - (Task Task, Object Object, EVENT Event Chart) is used to show the task or work that needs to be completed, perform the work, and the event or action to complete this procedure. Please see the TOE chart plus two numbers:

Task object event

Launcher Main Form OnStartup

Enter the first number EDTFIRSTNUMBER USER TYPES IN

Enter the second number EDTSECONDNUMBER USER TYPES IN

Seeking EDTRESULT ONCLICK

Program Exit Btnexit Onclick

As you see in the above example, this correctly explains what to do, who is executed, and when it is executed.

As you start, "You must know where you have to get everything", and follow a specific path or method to give you the confidence you need to implement the system you try to develop. There are many ways to follow, just want to say a few words here: you should adopt a group that can be accepted by the group and you. The way you choose should make all people you plan to use simply and easy to understand. Try to remember the meaning of this abbreviation in your mind: KISS (Keep It Short and Simple)

References in design: "Software Engineering, A Practitioner's Approach 3rd Edition", by Roger S. Pressman. "

"Object-Oriented Design", by Peter COAD AND EDWARD YOURDON "

转载请注明原文地址:https://www.9cbs.com/read-28379.html

New Post(0)