table of Contents
Document introduction ... 5
1.1 Document purpose ... 5
1.2 Document range ... 5
1.3 reader object ... 5
1.4 reference ... 5
1.5 Terminology and Abbreviation Explanation ... 5
2. System architecture analysis ... 7
2.1 This system "What is" ... 7
2.1.1 Visitor Definitions ... 7
2.1.2 Creating a plot ... 7
2.1.3 Competitive analysis ... 8
2.2 Main functions of this system ... 8
2.2.1 Input of Project content and function ... 8
2.2.2 Project Structure ... 8
2.2.3 Alternative Analysis Mechanism ... 10
2.3 architectural mechanism of the system ... 10
2.3.1 The MVC structure is as follows: ... 11
2.3.2 Defining Process Flow ... 11
2.3.3 Object interaction ... 12
2.3.4 Class design - from analysis class to design class ... 12
2.3.5 Database design ... 12
3. Summary design ... 13
3.1 Overview of the design ... 13
3.2 Summary Design Tasks ... 13
3.3 Principles of Summary Design ... 14
3.4 Summary Design content ... 15
3.5 Summary Design Output ... 16
4 database design ... 16
4.1 Database design content ... 16
5. User interface design ... 17
5.1 Content of user interface design ... 17
6 design process ... 18
6.1 Centered Process in Architecture ... 18
6.2 iteration and incremental development ... 18
6.3 Development Specifications Overview ... 19
6.3.1 Application Project Development Process Tech ... 19
6.3.2 During the design phase ... 20
7. Data Model Design Example ... 21
9. Others ... 21
Appendix 1: Use examples ... 22
Appendix 2: Comparison of structured design methods and object-oriented design ... 22
Appendix 3: Web Service (Other Files) ... 25
1.5 Terminology and Abbreviation Explanation
Architecture: The system of the highest level in its environment involves the structure of the system. The architecture of the software system is an important component (at a specific time point) of an interface interact, which consists of some smaller components and interfaces. The architecture can reconstruct the interface between the components, the relationship between components, and constraints between the assembled components.
SD: System Design, System Design
XML: (Extend Markable Language, Extended Markup Language), indicating data information with strict nested tags, especially suitable for use in multipoint data exchange environments in the Internet environment
SOAP: (Simple Object Access Protocol, Simple Object Access Protocol), is used to define standards for data descriptions and remote access.
WSDL: (Web Services Description Language, Web Service Description Language) is a description language for publishing and requesting a web service.
UDDI: (Universal Description, Discovery and Integration, unified description, discovery, and integration), linking Web services to users to the intermediary.
OMT: (Object-Oriented Modeling Technique OmT) Object-Oriented Modeling Technology.
Design Patterns: Mode is in a context, a solution to a problem. That is, four elements: name, context, problem and solution. Divided into 23 design patterns: creation: 5 types; structure: 7 types; behavioral: 11. 2. System architecture 1. Architecture analysis mainly includes: determining analysis mechanism, identifying the core abstract concept, defining subsequent The system's high-level organization, create a use case implementation. 2. Analysis of the use case includes: supplementary example regulatory, find analysis class, determine the details of the analysis class, and define the analysis mechanism of the analysis class.
3, determine the design element.
4, determine the design mechanism.
5, describe the runtime architecture. 6, describe the distribution.
This system can use OMT pair analysis design
The system is analyzed using the OMT method. Usually two steps: the first step is a description of the problem; the second step is to establish a description of the problem into three models, namely the object model, dynamic model, function model.
2.1 This system "What is the system modeling method is started from the system's problem, the detailed and accurate problem description can make the developer's analysis and design more reasonable and accurate. Here, the ideal model is first established and behavioral analysis.
mainly includes:
2.1.1 Visitor Defining Who will be the visitor of the project? What is the purpose of the visitor? What information can visitors get? What kind of business function is made? Or what form of reward? 2.1.2 Creating a plot
According to the visitor's definition, find out that the person who can represent most visits will illustrate the real online experience of the user. How to complete a certain task, just like a story of a netizen Internet access, you can try it to mesh.
2.1.3 Competitive analysis
Browse and evaluate the website of one to two of our major competitors, and seriously evaluate competitors and analyze the advantages of the project in competition.
You can use the following table: Website Name URL Function Description Advantage Analysis 2.2 The main function of this system 2. System architecture analysis 1. Architecture analysis mainly includes: determining analysis mechanism, identifying the core abstract concept, defining the high-level organization of the sub-system, creating an example achieve.
2. Analysis of the use case includes: supplementary example regulatory, find analysis class, determine the details of the analysis class, and define the analysis mechanism of the analysis class.
3, determine the design element.
4, determine the design mechanism.
5, describe the runtime architecture. 6, describe the distribution.
This system can use OMT pair analysis design
The system is analyzed using the OMT method. Usually two steps: the first step is a description of the problem; the second step is to establish a description of the problem into three models, namely the object model, dynamic model, function model.
2.1 This system "What is the system modeling method is started from the system's problem, the detailed and accurate problem description can make the developer's analysis and design more reasonable and accurate. Here, the ideal model is first established and behavioral analysis.
mainly includes:
2.1.1 Visitor Defining Who will be the visitor of the project? What is the purpose of the visitor? What information can visitors get? What kind of business function is made? Or what form of reward?
You can use the following table (simplified use case):
information
Business treatment
reward
Sign over (if necessary, please fill in below)
2.1.2 Creating a plot
According to the visitor's definition, find out that the person who can represent most visits will illustrate the real online experience of the user. How to complete a certain task, just like a story of a netizen Internet access, you can try it to mesh.
2.1.3 Competitive analysis
Browse and evaluate the website of one to two of our major competitors, and seriously evaluate competitors and analyze the advantages of the project in competition. You can use the following table:
Website name
Website
Function description
advantage analysis
2.2 The main functions of the system are described in detail, and the functionality of the system needs to be described in detail to construct the target diagram, state diagram and data flow map of the system.
2.2.1 Input of Project Contents and Features
(1) Overview of the project (what is the item you have? What functions list lists the contents and features required.)
(2) Project content group and naming (grouped content, also divided into a number of columns, give each name, in Chinese, in English, Chinese, English as the name of the website file directory.)
(3) Functional requirements (listing the content of user function in the project)
2.2.2 Project Structure
(1) Structure list
Establish a text-based project hierarchy, the structure is as follows (taken from "Yunnan Mobile Portal Mobile Club Channel Plan"):
(2) Establish a structural blueprint, define global and local navigation.
The structure blueprint is a visual representation of the website structure. It shows how the elements in the website are grouped and the charts, different content (static or dynamic) and functions show different geometric shapes, the entire structure renders a rush, content elements And functional elements use different methods.
Example of available tables:
Main thread
Divided turn
time
(day)
Single thread time ratio
The total thread time ratio
before
station
open
hair
design phase
reference
Design framework
Design ornament picture
Complete design integration
Production phase
Design CSS
Making frame HTML
Join the code
Code optimization
design production
Integration
Communicate with planners
After joining the background code, consolidate according to the project team opinion
Web
clothes
Affirm
open
hair
Web
Service layer
Develop
Review functional specification
Determine modular / hierarchical design parameters
Dispatch task
Write code
Developer test (initial debug)
Upload function module
number
according to
Library
open
hair
Database development
Review functional specification
Determining table / process design parameters
Dispatch task
Write code
Developer test (initial debug)
Upload function module
2.2.3 Alternative Analysis Mechanism
The analysis mechanism of the project also includes
• Permanent
• safety
• Distribution
• Process Communication
• error report
• Format conversion
• Message Routing
• Process control and synchronization
• Transaction Management
• Information exchange
• Redundancy
2.3 The architecture mechanism of the system uses MVC (Model-View-Control), see design mode,
2.3.1 The MVC structure is shown below
2.3.2 Defining Process Flow The Process Flow is defined. Use UML description, including the following; 1, describe interaction of design objects
2, use subsystem simplified sequence diagram
3, describe permanent related behavior 4, improve event flow description
See Appendix 1 table: 2.3.3 Object interaction
Object interaction details include: request processing sequence diagram, event processing sequence diagram, using UML description.
2.3.4 Class design - from analysis class to design
From the analysis class to the design class: The following table (example) can be used:
Example: Analysis class LoginFoScreen identity and password information
2.3.5 Database design needs to consider: there is a strict order relationship to information flow in the system. Establish a strong query and statistics, users only need to simply select and combine the data to be queried to get query results. Flexible license management, user rights are divided into three: superuser, department-level users, documentary users. Different users are different. 2.3.6 Multi-layer structural development model based on web browser
The mainstream software architecture B / S has some shortcomings, so many B-N tier systems now have a multilayer structure development model based on a web browser, which absorbs the advantages of both.
A simple B / S method, although it can be considered that the cost of the end user is almost zero, but it has many shortcomings, its function is weak, and you cannot achieve your concept very easily. For example, if you want to implement a business model, you will find that the web approach is unsafe, unreliable, for example, users can return all the hope of the page or before changing all the desired results, the report is not enough, etc. (of course this It also depends on the complexity of the business).
Why is web that will cause logic implementation? Because it is STATELESS based, STATELESS is such a situation: I don't know what the client is like, the receiving information is uncontrolled, I don't know the flow of information passed to him, this is STATELESS. All http-based things are Stateless. The charm of Socket is that it is stateful.
The ASP, JSP, Java technology developed now, although it makes up for the state of stateless defects in the HTTP protocol, but even if these technologies are advanced, the HTTP protocol based on Stateless facts cannot be solved. In terms of IIS-based ASP technology, it uses session variables to implement State. But no matter what technology, it is finally on cookies, which is to keep the client status using cookies. Socket is currently available, ICQ, QQ and other instant messaging software, there are many network tools, mostly based on Socket, because the Socket protocol is stateful, so this can be done. It can be said that Socket makes online life more exciting! At present, the underlying technology used in web-based multi-layer structures mainly include SOAP State Protocol or HTTP State Protocol. The WebSNAP package is introduced from Delphi 6 (a web provider product). It also supports HTTP and SOAP protocols, and also uses a mode similar to the SESSION variable to implement state. It can be said to be one of the most powerful platform-based Browse / Server development tools on the market. It is not enough to be called complete RAD tools, and the threshold is high. In Delphi 7 has also introduced an intraWeb control package, it is a true web-rad development tool that is better than WEBSNAP. Web provider, logical components, multi-threaded processing, trading mechanism, message flow transfer, etc. are the high realm of N tier development, so it is the first choice for large commercial software architectures. It is also necessary to consider the message mechanism, and the message mechanism does not necessarily exist in all multi-layer structures, and if the message mechanism is to be implemented, you must find a means of implementation (such as using socket), otherwise, if you enforce a lot of messages in the program Circulation (such as using timer monitoring and message data sheet), whether it is efficient or realization, it is a problem to consider.
3. Summary Design Architecture Design Description - Summary Description
3.1 Summary of the design
The purpose of the summary design is mainly design system architecture, including: 1. Convert software system requirements to future systems;
2. Gradually develop strong system architecture;
3. Make the design suitable for the implementation of the environment, to improve performance;
4, the structure should be broken down into modules and classes.
3.2 Summary Design Tasks
Summary of profiles include:
1, formulate specifications
Develop the code system, interface statute, naming rules of the project group. This is the foundation of the project team in the future combat, has the interface rules between the development norms and program modules and project members, and the way, everyone has a common work language, a common work platform, making the entire software development Work can be coordinated in an orderly manner.
2, overall structure design
Function (Processing) -> Module: Each function is implemented with those module to ensure that each function has a corresponding module;
Module Hierarchy: Software Framework View of a Angle;
Call relationship between modules: overall description of the interface between the modules;
Inter-module Interface: The information is transmitted and its structure;
Design: Meeting the function and performance algorithm
3, user interface design
(slightly)
4, data structure design
Detailed data structure: table, index, file;
Algorithm related logical data structure and its operation;
The program module described above (in the front desk? In the background? Use a view? ·····
Data structure and rules of interface control tables
5, other performance design
Mainly considering pressure performance.
3.3 Principles of Summary Design
Overall principles and methods: Methods, decomposition and coordination methods, decomposition and coordination methods, and modified methods, qualitative analysis, and quantitative analysis of principles, qualitative analysis and quantitative analysis of principles, qualitative analysis and quantitative analysis.
To consider the general, correlation, integrity, and hierarchical properties of the system.
Decomposition coordination: The purpose is to create a better system. System decomposition refers to the decomposition of a complex system into several subsystems. The system coordination is the coordination within the system, that is, according to the system's summary, total function, total task, and total target requirements, each subsystem is coordinated with each other. On the basis of local optimization of each subsystem, the overall optimization of the system is achieved by internal balance;
Shield abstraction: starting from a simple frame, implicit detail;
Consistency: unified specifications, unified standards, unified file models;
Each module should have a unified naming name;
Encoding: from the outward (interface -> core);
User: Summary design is a brief description of the "how to do" after the button is pressed;
Module, full independence, closure of components;
At the same time considering static structure and dynamic operation;
Each logical object should explain its physical objects (non-one correspondence);
Each physical object has a suitable developer and is beneficial to division of labor and assembly. (Detailed instructions I have another article: the factors that the system architecture should be considered);
Establish an overall structure of each architectural view: the detailed organizational structure of the view, the packet of the element, and the interface between these major packets;
Software architecture is closely related to the technical platform used, currently common platforms include J2EE, .NET, CORBA, etc., so specific software architects should have software development experience using these platforms;
Corresponding to the list of demand functions and design modules, check if each requirements function has a corresponding module to implement, ensure the integrity of the traceability and demand implementation (module) of the requirements, and you can check repetition and unnecessary Module. The integrity and accuracy of the business processing process are very important during the demand research analysis. The survey learned that all business processes can design software that is suitable for the user's business characteristics and habits of all process business nodes, making the developed software more popular. Of course, when software summation is designed, try to exclude the service process, that is, work in the process as a separate object, design into a separate module, fully consider the interfaces of their various business object modules. Various services are implemented through the mutual calls of the business object module, so that when the business process changes (when the business logic of each business module itself is not changed), the system can be easily modified. The call relationship between the program module implements new needs. If this call relationship is designed to store the data dictionary stored in the configuration library, even the program code does not have to modify it, just modify the module call rules in the data dictionary.
3.4 Summary Design
System overview
(1) Describe the system "Yes", (2) describe the main functions of the system.
2. Design constraint
(1) Demand constraint. The architecture designer extracts demand constraints from demand documents (such as "User Demand Manual" and "Software Requirements Specifications"), for example: standard or specification, software, hardware environment (including operating environment and development environment) should follow Constraint, interface / protocol constraint, user interface constraints, software quality constraints, such as correctness, robustness, reliability, efficiency (performance), ease of use, clarity, security, scalability, compatibility , Portability, etc.
(2) implicit constraints. Some hypothetical or dependencies are not clear in the demand document, but may have an impact on system design, and designers should explain as much as possible. For example, some hypothesis or dependencies of the user education, computer skills, to support the hypothesis or dependence of software hardware that supports the system.
3. Design strategy
The architecture designer determines Design Strategy based on the demand and development strategy of the product. For example: expansion strategy. Note What measures are there now for convenience of this system in the future. Reuse strategy. Description The system is currently and future multiplexing strategies. Commercial strategy. Note how to trade in both targets, such as "time-empty" efficiency, complexity and practical compromise.
4. System overall structure
(1) Decompose the system into several subsystems, draw physical maps and logic diagrams, indicating the main functions of each subsystem.
(2) Description "How" and "How to" (how to "decompose the system.
(3) How to coordinate the work of each subsystem, thereby realizing the function of the original system. Interface design: External user, soft, hardware interface; internal module interruption port. 5. Structure and function of subsystems
(1) Decompose the subsystem into module (Module), draw logic diagrams (if physical charts and logic diagrams are different, the physical map should be drawn), indicating the main functions of each module.
(2) Describe "how" and "how to" decompose the subsystem N.
(3) Describe how the modules coordinate work, thereby implementing the function of the subsystem. Every module "What to do", a brief description "How to do" (input, output, processing logic, interface with other modules, interface with other systems or hardware), what logic position, physical location; 6. Development environment Configuration
Note What kind of environment should the system be developed, what mandatory requirements and suggestions?
Computer hardware, software, network communication, 7. Configuration of the operating environment
Description This system should run in what kind of environment, what is forced and suggestions?
8. Test environment configuration
Description This system should test what kind of environment, what is compulsory requirements and suggestions?
(1) Generally, the unit test, the integrated test environment is the same as the development environment.
(2) Generally, the system test, the acceptance test environment is the same or similar (more stringent).
3.5 Overview of the design
Coding specification: information form, interface statute, naming rules
Physical model: component map, configuration diagram
Architecture Views Different angles: use case view, logical view, process view, deployment view, implementation view, data view (optional);
System Overall Layout: Which parts are composed, and each part is physically, logically interrelated;
Two non-negligible outputs:
Relationship with demand functions: Which layer is used, which module, which type, which object is used, which object is implemented (a pair of relationships); in turn, you should explain that every layer of the system to be created, each Module, each object, what to do, "what functions do they help implement (a pair of multiple relationships). (The particles of the demand are often relatively thick at the beginning, so according to the estimate of the functional point for the size of the overall project or the error range of the project WBS is also relatively large. More important reason is that demand is often decomposed by coding work. Accurate basis, because a demand function point may correspond to multiple code modules, and multiple demand function points may only correspond to one or a minority code module, and there is also a software reuse and other factors to consider, so it is only designed to complete The secondary WBS of the detailed design or coding phase can be accurately obtained, and the scale of more accurate overall projects is estimated.)
Logic and physical location: Which layer is logically logically, which module, which class; in physical per module, each object, which application server or client, which application server or client, which is Document (library), or what is built in a database management system (process, function, view, trigger, etc.).
4 Database Design 4.1 Content of Database Design
1. Database environment description
(1) Describe the database system, design tools, programming tools, etc.
(2) Detailed configuration
2. Naming rules for the database
(1) Complete and clearly describe the naming rules of this database.
(2) If the naming rules of this database are incompletely consistent with the standard's standard, please explain.
3. Logic design
The database designer creates the partial entity chart (ERD) that is related to the database based on the requirements documentation. If an object-oriented method (OOAD) is used, the entity here is equivalent to class.
4. Physical design
(1) It is mainly designed for design. Generally, the entity corresponds to the table, the attribute of the entity corresponds to the column of the table, and the relationship between the entity is constrained. Most of the entity in logic can be converted into a table in a physical design, but they do not necessarily correspond to one. (2) Standardize the table structure (third paradigm).
(3) The indication of the table is listed, and the function description. 5. Safety design, data type (precision range), air / non-empty, constraint condition, and additional description 5. Security design
Improve the security of the software system should start from "management" and "design". This only considers the security design of the database.
5.1 Method for preventing user directly operating database
Users can only log in to the application with an account, access the database through the application, and there is no other way to operate the database.
5.2 Encryption method for user account password
Encrypt the password of the user account to ensure that the copy of the password will not appear anywhere.
5.3 Role and Permissions
Determine each role to the operation permission of the database table, such as create, retrieve, update, delete, etc. Each role has the permissions that are enabled by the task, not much. The role is assigned to the user in the application, then each user's permissions are equal to the permissions of all the characters he have. Includes: role, you can access tables and columns, operation permissions
6. Optimize
Analyze and optimize the "time-empty" efficiency of the database, "increase the processing speed" and "reduce the data occupation space" as much as possible.
Includes: priority, optimized object (target), measures
(1) Analyze the bottleneck of "time-empty" efficiency, find optimized objects (target), and determine priority.
(2) When there is a confrontation between optimized objects (targets), a compromise is given.
(3) A specific measures to optimize, such as optimizing database environment parameters, and anti-sectic processing for forms.
7. Database management and maintenance instructions
When designing a database, a method of managing and maintaining this database is given in a timely manner helps to write a correct user manual in the future.
5. User Interface Design 5.1 Content of User Interface Design
1. Interface design specifications should be followed
Combined with the "Software User Interface Design Guide" of the user needs and institutions, elaborate the specification (principles, suggestions, etc.) that the software user interface design should follow.
2. Relationship diagram and workflow chart of the interface
(1) Assign unique identifiers to all interface views.
(2) Draw the relationship diagram and workframe between the respective interfaces.
3. Main interface
(1) Draw a view of the main interface;
(2) describe the functions and operation methods of all objects in the main interface;
4. Submount
(1) Draw a view of the sub-interface;
(2) Describe the function and operation of all objects in the sub-interface;
6. Aesthetic design
(1) Explain the layout and reasons of the interface
(2) Explain the color and reasons of the interface
7. Interface resource design
(1) icon resources
(2) Image resource
(3) Interface components
6 design process
6.1 Centered Process in Architecture
The architecture of the software system refers to an organization or structure of an important component of the system, which interacts with components that are constituted by continuously reduced components with the interfaces that are constantly reduced by interfaces. The architecture has the following effects: 1) Understanding the system uses the architecture of the UML visual modeling system, and develops as a mandate, which makes developers, managers and other relevant personnel to understand the work you need, so that they participate System development. 2) Organization Development Architecture Designers can significantly reduce the workload between the development groups by dividing the system into a subsystem with clear definition interfaces, and allow the development team to significantly reduce the workload between the development group, and the software of the interface can be independently evolution. 3) Encourage the reusing structure to provide developers with a stable skeleton that can work on it, which helps developers know where to effectively find reusable elements and find suitable reusable components. 4) Evolutionary system A system with a stable architecture takes into account the needs of system evolution in analysis and design, thereby having a certain capacity, and the system can evolve moderately. 6.2 Itertreatment and Incremental Development Iteration refers to an unique activity sequence with a plan line, an iterative generation system's internal or external publishing (Release). Increment means that there is a difference (difference) between two published versions after the end of the subsequent iteration. The life cycle of general software is composed of a series of iterations, which are MINI-PROJECTs that are decomposed by software projects. Each iteration produces the actual results delivered in an internal version, where each internal version adds an increment and indicates that the risk of interest is reduced. These versions can be displayed to customers to obtain valuable feedback to confirm the results. The iteration of the early stage is mainly to focus on determining the scope of the project, eliminate key risks and establish system architectural reference. The later iterations continue to increase the incremental results until a product that is available. Iterative helps management planning, organization, monitoring, and control projects. Iteration and incremental development have some of the following advantages: (1) Allow changes to change; (2) Allow continuous integration; (3) decrease the risk early; (4) Held organization learning and improvement; (5) Improve multiplexing Sex; (6) generates a more powerful product.
6.3 Development Specifications Overview
6.3.1 Application Project Development Procencement Dantote This project should be split into a working stage according to the specific situation, ie milestones, to effectively control and metrically control the project progress. Start with the project project. The end sign is ended in project strokes. (Reference)
stage
Project Plan
demand analysis
System Analysis & Design
Encoding implementation
Test / documentation
Acceptance / release
Project summary
1
Project approval
data collection
Determine the problem domain
Coding Standards
unit test
Project version
Project summary
2
Application
demand analysis
Demand modeling
Unit code
Integration Testing
Version release
Task number metrics
3
Submit a feasibility study report or system construction plan
Demand analysis discussion
Establish an analysis object model
Encoding debugging
System test
Project group acceptance
Maintenance plan
4
Risk assessment
Demand analysis test / modification
System analysis test / post-test modification
Unit test / modification
Documentation
Customer acceptance
Output results
5
Progress plan
Demand analysis review
System analysis review
Encoding joint
Development documentation
Project Note
6
Submit the project overall plan
interface design
Integrated test / modification
User documentation
Seduce
Establish design model / design combination
System test / modification
Propaganda data
8
Object persistence design
Encoding review
9
detailed design
10
System design test / modification
11
System design review
6.3.2 Activity serial number in the design phase
Event name
Character
Activity description
Note
1
Systematic analysis
Architect
Divided demand issues, analysis and abstraction, define classes, and services, and structures, static contacts, and dynamic contacts for each problem domain.
Finally produce object-oriented analysis model.
2
Architecture design
Architect
Building a software system architecture and assign the software requirements of the system to the software structure.
Architecture design - analysis, design system architecture, generating architectural design workpieces based on demand.
3
Architecture design review
Architecture reviewer
Check if the software system architecture design is reasonable.
Discovery and repair defects - based on peer review specifications, review architecture design workpieces. Consistency confirmation - consistent with architecture design.
4
Baseline architecture design
Configuration manager
Place the software architectural design workpiece adopted by the review in configuration management. The baseline architecture is based on the basis for detailed design.
5
Software detailed design
designer
The software system is further accurately described based on the demand workpiece architectural design workpiece, and it is suitable for specific implementation environments.
Detailed design A detailed design is required according to a baseline architecture, demand workpiece.
6
Detailed design review
Detailed design reviewer
Check if the software system is detailed.
Discovery and repair defects - based on the "Peer Review Specification", review detailed design workpieces. Consistency confirmation - consistent with the detailed design
Seduce
Baseline Detailed Design
Configuration administrator
Place the software detailed design workpiece by the review through the review.
The baseline detailed design is based on the detailed design of the design, as the basis for implementing activities.
7. Data Model Design Example According to the above problem description, the system needs to be described in detail to construct a target diagram, state diagram, and data flow diagrams of the top layer of the system.
2.2.1 Input of Project Contents and Features
(1) Overview of the project (what is the item you have? What functions list lists the contents and features required.)
(2) Project content group and naming (grouped content, also divided into a number of columns, give each name, in Chinese, in English, Chinese, English as the name of the website file directory.)
(3) Functional requirements (listing the content of user function in the project)
2.2.2 Project Structure
(1) Structure list
Establish a text-based project hierarchical diagram, the structure is as follows:
(2) Establish a structural blueprint, define global and local navigation.
The structure blueprint is a visual representation of the website structure. It shows how the elements in the website are grouped and the charts, different content (static or dynamic) and functions show different geometric shapes, the entire structure renders a rush, content elements And functional elements use different methods.
Example of available tables:
Main thread
Divided turn
time
(day)
Single thread time ratio
The total thread time ratio
before
station
open
hair
design phase
reference
Design framework
Design ornament picture
Complete design integration
Production phase
Design CSS
Making frame HTML
Join the code
Code optimization
design production
Integration
Communicate with planners
After joining the background code, consolidate according to the project team opinion
Web
clothes
Affirm
open
hair
Web
Service layer
Develop
Review functional specification
Determine modular / hierarchical design parameters
Dispatch task
Write code
Developer test (initial debug)
Upload function module
number
according to
Library
open
hair
Database development
Review functional specification
Determining table / process design parameters
Dispatch task
Write code
Developer test (initial debug)
Upload function module
2.2.3 Alternative Analysis Mechanism
The analysis mechanism of the project also includes
• Permanent
• safety
• Distribution • Process Communication
• error report
• Format conversion
• Message Routing
• Process control and synchronization
• Transaction Management
• Information exchange
• Redundancy
2.3 The architecture mechanism of the system uses MVC (Model-View-Control), see design mode,
2.3.1 The MVC structure is as follows:
2.3.2 Defining Process Flow The Process Flow is defined. Use UML description, including the following; 1, describe interaction of design objects
2, use subsystem simplified sequence diagram
3, describe permanent related behavior 4, improve event flow description
See Appendix 1 table: 2.3.3 Object interaction
Object interaction details include: request processing sequence diagram, event processing sequence diagram, using UML description.
2.3.4 Class design - from analysis class to design
From the process of analyzing the design class: can be used as follows (example)
Analysis class design
Description
Detailed Description:
Example: Jeff Weiner CreateAccountform
AccountinFoScreen (account information screen)
LoginInfoscreen identity and password information screen
Reenteremailscreen (Rebuncing Mail Address Screen)
DuplicateAccountScreen (Account Repeat Display Screen)
2.3.5 Database design needs to consider: there is a strict order relationship to information flow in the system. Establish a strong query and statistics, users only need to simply select and combine the data to be queried to get query results. Flexible license management, user rights are divided into three: superuser, department-level users, documentary users. Different users are different. 2.3.6 Multi-layer structural development model based on web browser
The mainstream software architecture B / S has some shortcomings, so many B-N tier systems now have a multilayer structure development model based on a web browser, which absorbs the advantages of both.
A simple B / S method, although it can be considered that the cost of the end user is almost zero, but it has many shortcomings, its function is weak, and you cannot achieve your concept very easily. For example, if you want to implement a business model, you will find that the web approach is unsafe, unreliable, for example, users can return all the hope of the page or before changing all the desired results, the report is not enough, etc. (of course this It also depends on the complexity of the business).
Why is web that will cause logic implementation? Because it is STATELESS based, STATELESS is such a situation: I don't know what the client is like, the receiving information is uncontrolled, I don't know the flow of information passed to him, this is STATELESS. All http-based things are Stateless. The charm of Socket is that it is stateful.
The ASP, JSP, Java technology developed now, although it makes up for the state of stateless defects in the HTTP protocol, but even if these technologies are advanced, the HTTP protocol based on Stateless facts cannot be solved. In terms of IIS-based ASP technology, it uses session variables to implement State. But no matter what technology, it is finally on cookies, which is to keep the client status using cookies. Socket is currently available, ICQ, QQ and other instant messaging software, there are many network tools, mostly based on Socket, because the Socket protocol is stateful, so this can be done. It can be said that Socket makes online life more exciting! At present, the underlying technology used in web-based multi-layer structures mainly include SOAP State Protocol or HTTP State Protocol. The WebSNAP package is introduced from Delphi 6 (a web provider product). It also supports HTTP and SOAP protocols, and also uses a mode similar to the SESSION variable to implement state. It can be said to be one of the most powerful platform-based Browse / Server development tools on the market. It is not enough to be called complete RAD tools, and the threshold is high. In Delphi 7 has also introduced an intraWeb control package, it is a true web-rad development tool that is better than WEBSNAP. Web provider, logical components, multi-threaded processing, trading mechanism, message flow transfer, etc. are the high realm of N tier development, so it is the first choice for large commercial software architectures. It is also necessary to consider the message mechanism, and the message mechanism does not necessarily exist in all multi-layer structures, and if the message mechanism is to be implemented, you must find a means of implementation (such as using socket), otherwise, if you enforce a lot of messages in the program Circulation (such as using timer monitoring and message data sheet), whether it is efficient or realization, it is a problem to consider. 3. Summary Design Architecture Design Description - Summary Description
3.1 Summary of the design
The purpose of the summary design is mainly design system architecture, including:
1. Convert software system requirements to future systems;
2. Gradually develop strong system architecture;
3. Make the design suitable for the implementation of the environment, to improve performance;
4, the structure should be broken down into modules and classes.
3.2 Summary Design Tasks
Summary of profiles include:
1, formulate specifications
Develop the code system, interface statute, naming rules of the project group. This is the foundation of the project team in the future combat, has the interface rules between the development norms and program modules and project members, and the way, everyone has a common work language, a common work platform, making the entire software development Work can be coordinated in an orderly manner.
2, overall structure design
Function (Processing) -> Module: Each function is implemented with those module to ensure that each function has a corresponding module;
Module Hierarchy: Software Framework View of a Angle;
Call relationship between modules: overall description of the interface between the modules;
Inter-module Interface: The information is transmitted and its structure;
Design: Meeting the function and performance algorithm
3, user interface design
(slightly)
4, data structure design
Detailed data structure: table, index, file;
Algorithm related logical data structure and its operation;
The program module of the above operation (in the front desk? In the background? Use the process? ·····) data structure and use rules
5, other performance design
Mainly considering pressure performance.
3.3 Principles of Summary Design
Overall principles and methods: Methods, decomposition and coordination methods, decomposition and coordination methods, and modified methods, qualitative analysis, and quantitative analysis of principles, qualitative analysis and quantitative analysis of principles, qualitative analysis and quantitative analysis.
To consider the general, correlation, integrity, and hierarchical properties of the system.
Decomposition coordination: The purpose is to create a better system. System decomposition refers to the decomposition of a complex system into several subsystems. The system coordination is the coordination within the system, that is, according to the system's summary, total function, total task, and total target requirements, each subsystem is coordinated with each other. On the basis of local optimization of each subsystem, the overall optimization of the system is achieved by internal balance;
Shield abstraction: starting from a simple frame, implicit detail;
Consistency: unified specifications, unified standards, unified file models;
Each module should have a unified naming name;
Encoding: from the outward (interface -> core);
User: Summary design is a brief description of the "how to do" after the button is pressed;
Module, full independence, closure of components;
At the same time considering static structure and dynamic operation;
Each logical object should explain its physical objects (non-one correspondence);
Each physical object has a suitable developer and is beneficial to division of labor and assembly. (Detailed instructions I have another article: the factors that the system architecture should be considered);
Establish an overall structure of each architectural view: the detailed organizational structure of the view, the packet of the element, and the interface between these major packets;
Software architecture is closely related to the technical platform used, currently common platforms include J2EE, .NET, CORBA, etc., so specific software architects should have software development experience using these platforms;
Corresponding to the list of demand functions and design modules, check if each requirements function has a corresponding module to implement, ensure the integrity of the traceability and demand implementation (module) of the requirements, and you can check repetition and unnecessary Module.
The integrity and accuracy of the business processing process are very important during the demand research analysis. The survey learned that all business processes can design software that is suitable for the user's business characteristics and habits of all process business nodes, making the developed software more popular. Of course, when software summation is designed, try to exclude the service process, that is, work in the process as a separate object, design into a separate module, fully consider the interfaces of their various business object modules. Various services are implemented through the mutual calls of the business object module, so that when the business process changes (when the business logic of each business module itself is not changed), the system can be easily modified. The call relationship between the program module implements new needs. If this call relationship is designed to store the data dictionary stored in the configuration library, even the program code does not have to modify it, just modify the module call rules in the data dictionary.
3.4 Summary Design
System overview
(1) Describe the system "Yes", (2) describe the main functions of the system.
2. Design constraint
(1) Demand constraint. The architecture designer extracts demand constraints from demand documents (such as "User Demand Manual" and "Software Requirements Specifications"), for example: standard or specification, software, hardware environment (including operating environment and development environment) should follow Constraint, interface / protocol constraint, user interface constraints, software quality constraints, such as correctness, robustness, reliability, efficiency (performance), ease of use, clarity, security, scalability, compatibility , Portability, etc. (2) implicit constraints. Some hypothetical or dependencies are not clear in the demand document, but may have an impact on system design, and designers should explain as much as possible. For example, some hypothesis or dependencies of the user education, computer skills, to support the hypothesis or dependence of software hardware that supports the system.
3. Design strategy
The architecture designer determines Design Strategy based on the demand and development strategy of the product. For example: expansion strategy. Note What measures are there now for convenience of this system in the future. Reuse strategy. Description The system is currently and future multiplexing strategies. Commercial strategy. Note how to trade in both targets, such as "time-empty" efficiency, complexity and practical compromise.
4. System overall structure
(1) Decompose the system into several subsystems, draw physical maps and logic diagrams, indicating the main functions of each subsystem.
(2) Description "How" and "How to" (how to "decompose the system.
(3) How to coordinate the work of each subsystem, thereby realizing the function of the original system. Interface design: External user, soft, hardware interface; internal module interruption port. 5. Structure and function of subsystems
(1) Decompose the subsystem into module (Module), draw logic diagrams (if physical charts and logic diagrams are different, the physical map should be drawn), indicating the main functions of each module.
(2) Describe "how" and "how to" decompose the subsystem N.
(3) Describe how the modules coordinate work, thereby implementing the function of the subsystem. Every module "What to do", briefly describe "how to do" (input, output, processing logic, interface with other modules, interface with other systems or hardware), what logic location, physical location;
6. Development environment configuration
Note What kind of environment should the system be developed, what mandatory requirements and suggestions?
Computer hardware, software, network communication, 7. Configuration of the operating environment
Description This system should run in what kind of environment, what is forced and suggestions?
8. Test environment configuration
Description This system should test what kind of environment, what is compulsory requirements and suggestions?
(1) Generally, the unit test, the integrated test environment is the same as the development environment.
(2) Generally, the system test, the acceptance test environment is the same or similar (more stringent).
3.5 Overview of the design
Coding specification: information form, interface statute, naming rules
Physical model: component map, configuration diagram
Architecture Views Different angles: use case view, logical view, process view, deployment view, implementation view, data view (optional);
System Overall Layout: Which parts are composed, and each part is physically, logically interrelated;
Two non-negligible outputs: Relationship with demand functions: Which layer is used, which module, which type, which object is used to implement (a couple of relationships); in turn, it should be created Each layer of the system, each module, each object, every class "What do they help to achieve what functions (a pair of relationships). (The particles of the demand are often relatively thick at the beginning, so according to the estimate of the functional point for the size of the overall project or the error range of the project WBS is also relatively large. More important reason is that demand is often decomposed by coding work. Accurate basis, because a demand function point may correspond to multiple code modules, and multiple demand function points may only correspond to one or a minority code module, and there is also a software reuse and other factors to consider, so it is only designed to complete The secondary WBS of the detailed design or coding phase can be accurately obtained, and the scale of more accurate overall projects is estimated.)
Logic and physical location: Which layer is logically logically, which module, which class; in physical per module, each object, which application server or client, which application server or client, which is Document (library), or what is built in a database management system (process, function, view, trigger, etc.).
4 Database Design 4.1 Content of Database Design
1. Database environment description
(1) Describe the database system, design tools, programming tools, etc.
(2) Detailed configuration
2. Naming rules for the database
(1) Complete and clearly describe the naming rules of this database.
(2) If the naming rules of this database are incompletely consistent with the standard's standard, please explain.
3. Logic design
The database designer creates the partial entity chart (ERD) that is related to the database based on the requirements documentation. If an object-oriented method (OOAD) is used, the entity here is equivalent to class.
4. Physical design
(1) It is mainly designed for design. Generally, the entity corresponds to the table, the attribute of the entity corresponds to the column of the table, and the relationship between the entity is constrained. Most of the entity in logic can be converted into a table in a physical design, but they do not necessarily correspond to one.
(2) Standardize the table structure (third paradigm).
(3) The indication of the table is listed, and the function description. 5. Safety design, data type (precision range), air / non-empty, constraint condition, and additional description 5. Security design
Improve the security of the software system should start from "management" and "design". This only considers the security design of the database.
5.1 Method for preventing user directly operating database
Users can only log in to the application with an account, access the database through the application, and there is no other way to operate the database.
5.2 Encryption method for user account password
Encrypt the password of the user account to ensure that the copy of the password will not appear anywhere.
5.3 Role and Permissions
Determine each role to the operation permission of the database table, such as create, retrieve, update, delete, etc. Each role has the permissions that are enabled by the task, not much. The role is assigned to the user in the application, then each user's permissions are equal to the permissions of all the characters he have. Includes: role, you can access tables and columns, operation permissions
6. Optimize
Analyze and optimize the "time-empty" efficiency of the database, "increase the processing speed" and "reduce the data occupation space" as much as possible.
Including: priority, optimized object (target), measures (1) Analysis of "Time-empty" efficiency bottleneck to find optimized objects (target), and determine priority.
(2) When there is a confrontation between optimized objects (targets), a compromise is given.
(3) A specific measures to optimize, such as optimizing database environment parameters, and anti-sectic processing for forms.
7. Database management and maintenance instructions
When designing a database, a method of managing and maintaining this database is given in a timely manner helps to write a correct user manual in the future.
5. User Interface Design 5.1 Content of User Interface Design
1. Interface design specifications should be followed
Combined with the "Software User Interface Design Guide" of the user needs and institutions, elaborate the specification (principles, suggestions, etc.) that the software user interface design should follow.
2. Relationship diagram and workflow chart of the interface
(1) Assign unique identifiers to all interface views.
(2) Draw the relationship diagram and workframe between the respective interfaces.
3. Main interface
(1) Draw a view of the main interface;
(2) describe the functions and operation methods of all objects in the main interface;
4. Submount
(1) Draw a view of the sub-interface;
(2) Describe the function and operation of all objects in the sub-interface;
6. Aesthetic design
(1) Explain the layout and reasons of the interface
(2) Explain the color and reasons of the interface
7. Interface resource design
(1) icon resources
(2) Image resource
(3) Interface components
6 design process
6.1 Centered Process in Architecture
The architecture of the software system refers to an organization or structure of an important component of the system, which interacts with components that are constituted by continuously reduced components with the interfaces that are constantly reduced by interfaces. The architecture has the following effects: 1) Understanding the system uses the architecture of the UML visual modeling system, and develops as a mandate, which makes developers, managers and other relevant personnel to understand the work you need, so that they participate System development. 2) Organization Development Architecture Designers can significantly reduce the workload between the development groups by dividing the system into a subsystem with clear definition interfaces, and allow the development team to significantly reduce the workload between the development group, and the software of the interface can be independently evolution. 3) Encourage the reusing structure to provide developers with a stable skeleton that can work on it, which helps developers know where to effectively find reusable elements and find suitable reusable components. 4) Evolutionary system A system with a stable architecture takes into account the needs of system evolution in analysis and design, thereby having a certain capacity, and the system can evolve moderately. 6.2 Iteration and Incremental Development
Iteration refers to an unique active sequence with a plan line, an antective generated system, an iterative generating system (Release). Increment means that there is a difference (difference) between two published versions after the end of the subsequent iteration. The life cycle of general software is composed of a series of iterations, which are MINI-PROJECTs that are decomposed by software projects. Each iteration produces the actual results delivered in an internal version, where each internal version adds an increment and indicates that the risk of interest is reduced. These versions can be displayed to customers to obtain valuable feedback to confirm the results. The iteration of the early stage is mainly to focus on determining the scope of the project, eliminate key risks and establish system architectural reference. The later iterations continue to increase the incremental results until a product that is available. Iterative helps management planning, organization, monitoring, and control projects. Iteration and incremental development have some of the following advantages: (1) Allow changes to change; (2) Allow continuous integration; (3) decrease the risk early; (4) Held organization learning and improvement; (5) Improve multiplexing Sex; (6) generates a more powerful product. 6.3 Development Specifications Overview
6.3.1 Application Project Development Procencement Dantote This project should be split into a working stage according to the specific situation, ie milestones, to effectively control and metrically control the project progress. Start with the project project. The end sign is ended in project strokes. (Reference)
stage
Project Plan
demand analysis
System Analysis & Design
Encoding implementation
Test / documentation
Acceptance / release
Project summary
1
Project approval
data collection
Determine the problem domain
Coding Standards
unit test
Project version
Project summary
2
Application
demand analysis
Demand modeling
Unit code
Integration Testing
Version release
Task number metrics
3
Submit a feasibility study report or system construction plan
Demand analysis discussion
Establish an analysis object model
Encoding debugging
System test
Project group acceptance
Maintenance plan
4
Risk assessment
Demand analysis test / modification
System analysis test / post-test modification
Unit test / modification
Documentation
Customer acceptance
Output results
5
Progress plan
Demand analysis review
System analysis review
Encoding joint
Development documentation
Project Note
6
Submit the project overall plan
interface design
Integrated test / modification
User documentation
Seduce
Establish design model / design combination
System test / modification
Propaganda data
8
Object persistence design
Encoding review
9
detailed design
10
System design test / modification
11
System design review
6.3.2 Activities in the design phase
Serial number
Event name
Character
Activity description
Note
1
Systematic analysis
Architect
Divided demand issues, analysis and abstraction, define classes, and services, and structures, static contacts, and dynamic contacts for each problem domain.
Finally produce object-oriented analysis model.
2
Architecture design
Architect
Building a software system architecture and assign the software requirements of the system to the software structure.
Architecture design - analysis, design system architecture, generating architectural design workpieces based on demand.
3
Architecture design review
Architecture reviewer
Check if the software system architecture design is reasonable.
Discovery and repair defects - based on peer review specifications, review architecture design workpieces. Consistency confirmation - consistent with architecture design.
4
Baseline architecture design
Configuration manager
Place the software architectural design workpiece adopted by the review in configuration management. The baseline architecture is based on the basis for detailed design.
5
Software detailed design
designer
The software system is further accurately described based on the demand workpiece architectural design workpiece, and it is suitable for specific implementation environments.
Detailed design A detailed design is required according to a baseline architecture, demand workpiece. 6
Detailed design review
Detailed design reviewer
Check if the software system is detailed.
Discovery and repair defects - based on the "Peer Review Specification", review detailed design workpieces. Consistency confirmation - consistent with the detailed design
Seduce
Baseline Detailed Design
Configuration administrator
Place the software detailed design workpiece by the review through the review.
The baseline detailed design is based on the detailed design of the design, as the basis for implementing activities.
7. Data Model Design Example