Detailed introduction to system analysis and modeling [1]

Source: Internet
Author: User
If you focus only on meeting customers' current needs, you can fix problems when they occur. You need to adjust the system architecture or try again. Design , Then, will soon fall Code A Quagmire or fall into the bottomless abyss of repeated system development, the sense of accomplishment at the completion of the project will be replaced by endless frustration. System Analysis determines the success or failure of system development. Software Modeling makes System Development mature.

I. Position of system analysis in website project management

After requirement analysis and business process analysis are approved by the customer, it is extremely important to analyze the project system. System Analysis is a document that can reflect the soul of the entire system, a process from the customer's needs to the abstract, and develop specifications and standards that can be implemented by the coding staff.

The development history of Web application technology is much shorter than that of software. In particular, in the system design of website production, designers often do not pay enough attention to system analysis, especially in some initial stages of design that are relatively simple or interactive and Function When there are few websites, the main reasons are:

· The customer's initial needs are relatively simple, ignoring the huge potential needs of the customer;
· The project implementation cycle is short, and the fastest rather than the most reasonable implementation means are adopted in the initial stage;
· Limited funds, making it difficult to pay high-quality human resources;
· Diverse web programming techniques, easy to use, and uneven design personnel;

In reality, the development and management of website projects are far inferior to those of software engineering standards.Programming LanguageDatabases, communication protocols, application servers, and other related environments are constantly developing and improving rapidly. It is indeed difficult to expect every designer to perform a rational analysis of the system on the website project, this allows you to develop a cross-platform, robust, scalable, and upgraded system solution.

However, this cannot be an excuse for system analysts to escape or slack off. If a system is compared to a car, system analysis is equivalent to designing an engine, it may be easy to imagine what the consequence would be to use a 125cc motorcycle engine to draw 10 tons of heavy-duty trucks.

In the process of system analysis, the requirement analysis needs to be further deepened and analyzed. Generally, the customer and business personnel pay more attention to the functional performance and definition in the Process of requirement analysis and process analysis, even if a formal user interface prototype is made, the requirements for the system are incomplete. Because of non-technical personnel, it is difficult to demand a complete, clear, and professional performance requirement, but it does not mean that this requirement does not exist, and this hidden requirement is extremely important to the coding staff.

Therefore, system analysis is crucial if the customer's requirements can be truly reflected and implemented in the system.

Ii. System Analysis

Separate the system analysis and detailed design phases, and decide the method for development based on the specific circumstances of different projects.

In the process of system analysis, we should focus on:

· Further improve and supplement the customer's demand analysis, especially the performance requirements, so that the customer can better understand what kind of system it is and what features and performance indicators it will achieve, the scalability and adaptability of the system, how to provide the most effective way for customers to upgrade or maintain in the future.
· Environment required for system operation, hardware, software, and network environment required for normal system operation;
· System resource description and various costs required by the system. Including personnel, time, work environment, one-time investment, continuous investment, and other resources.
· System feasibility analysis;

The system analyst is troubled by the fact that most customers do not come up with an independent or mature opinion on the system requirements, and the hot potato is handed over to the system analyst, to avoid out-of-control and out-of-the-box solutions that are hard to grasp in the system demonstration, it is a good way to design several different types of solutions for customers to choose.

For example, you should consider at least the following possible solutions:
1. Low-cost solutions
The system can only do the most necessary work and cannot do more.
2. Medium-cost solutions
Such a system not only can well complete the scheduled tasks, it is easy to use, but may also have some features and features that the user does not specify. Although the user has not put forward these specific requirements, the system analyst determines based on his own knowledge and experience that these additional capabilities will prove very valuable in practice.
3. high-cost "perfect" System

Such a system has all the functions and features that users may want. System analysts should use system flowcharts or other tools to describe each possible system, estimate the costs and benefits of each solution, and weigh the advantages and disadvantages of each solution, recommend a good system (the best solution) and develop a detailed plan for implementing the recommended system. If the user accepts the system recommended by the analyst, another major task of this phase can be completed ." (Reference the article "How to Write a system analysis book") after the system analysis stage, we can easily reach an agreement with the customer on how to deploy the system, the database type used, the design model, and the analysis model, if the customer's business logic analysis can be smoothly transformedProgramLogic: When you map the original user-visualized interface prototype and business flow chart into models and specifications that the coders understand, congratulations, the project is half successful.

Iii. Difficulties and skill requirements in System Analysis

The development technology of network applications is changing with each passing day, so that the development model of website application systems has a variety of options. To achieve the same goal, you can adopt many different methods, modern application systems are increasingly becoming a huge integration solution. Different operating platforms, different application servers, different databases, different programming languages, and different transmission media must be considered, it is undoubtedly a severe test for system analysts. No one can master or even master all technologies. Simple examples include windows, UNIX, Linux, and other server operating platforms, SQL Server, Oracle, DB2, Sybase, MySQL, and other databases, Java, PHP, ASP, CGI, JSP, C ++, VB, Delphi, and other tools, who can be all proficient? If not, how can we determine whether Windows + SQL SERVER + ASP is good or Unix + Oracle + Java is suitable? In addition, various software and languages are still evolving and evolving. beyond the narrow band Internet, broadband changes may be involved in the future, or wireless mobile interfaces may be added, therefore, the system analyst's ability to perform well determines the success or failure of system development.

 

The main difficulty of system analysis lies in

· Analysis of customers' hidden performance requirements. The customer cannot predict the future business development because the customer cannot predict the unimplemented system, the analysis and definition of performance requirements require system analysts to help customers determine and mine;
· Determine the project design method, and select the most appropriate design method based on the project requirements and resource configuration.
· Designs and maximizes the division of system modules and code reuse, and provides the highest degree of code reuse. It is a mature system that is constantly pursued, decomposing large and complex application systems into relatively independent and highly Reusable Modules. Using standard parameter interfaces between modules will greatly improve system development efficiency and ease of maintenance and upgrade. Even in the template design or interactive design of the website, we should try to use nested reusable templates or call unified style sheets and JS files.
· Overall project evaluation and system analysts should not be isolated perfectionists, but should proceed according to the overall situation of the project, for example, the company's resource configuration, manpower, customer requirements, and other factors evaluate the overall workload, progress, and resource allocation of the project and each module, and develop the most reasonable and feasible implementation scheme.
System analysts must not only have good communication and coordination skills, but also have professional skills in both business and technical fields. They are one of the key roles in the project team.

4. Software Modeling makes System Development mature

Web application systems tend to become very complex as customers' needs grow and Development continues to deepen. website Systems with web as the core usually have a high degree of dynamic expansion and interaction, A robust system that is easy to modify and maintain should be completed in a limited period of time under incomplete and constantly changing requirements, in the UML (Unified Modeling Language) it was extremely difficult before it appeared.

Most web designers or program developers directly enter the coding stage after the interface design or simple system analysis to enable customers to see the running application system as soon as possible, the entire application system is in a disordered and chaotic state because the server segment code is freely written, the database is randomly added, and parameter definitions are not standardized, when we use modeling and software engineering for management, the situation will soon be much better.

What is modeling?
· Modeling is a solution that allows you to solve problems layer by layer;
· Confirm functional requirements of the application system and model the transaction processing principles;
· Identify and provide design templates for abstract object ing requirements and create common templates;
· Identify and design objects or divide services into three-layer models;
· Map software components into objects and design how components are distributed on the network;

UML (Unified Modeling Language) is a common visual modeling language used to describe, visualize, construct, and build software systems. UML is applicable to various software development methods, various stages of the software life cycle, various application fields, and various development tools. Website Design UML also plays a powerful role in a variety of network application projects in the form of websites. UML can describe the static structure and dynamic behavior of the system. The static structure defines the attributes and operations of important objects in the system and the relationships between these objects; dynamic Behavior defines the time characteristics of the object and the mechanism by which the object communicates with each other to complete the target task. UML is not a programming language, but we can use a code generator to convert a UML model into code in multiple programming languages, or use a reverse Generator tool to program Source Code is converted to a UML model.
as we can see, modeling is not equivalent to program coding. Using the same UML model, you can generate framework code in different languages and generate it in reverse order, updating the UML model in time during code writing is a dream for system analysts and project managers. As long as you can carefully grasp the customer's needs and constantly improve the UML model, then what language development has become secondary, A large amount of demand accumulation and analysis work can be highly reused when customer needs change. Even if the system is re-developed using a new language, it only requires coding.

Although software modeling can enter any stage of development, at the initial stage of design, you should focus more on system functions and performance analysis, system runtime environment, and programming language selection, instead of considering program details, such as where to place buttons on the screen. It is very meaningful to introduce modeling in the middle of project development. Through modeling, You can grasp the development direction of the program and accurately complete the tasks required in the requirement analysis.

In Mr. Gao Zhan's "full-process modeling", the "full-process image integration Modeling Method" is described. The entire modeling process is driven by business, in model design, the upper and lower parts of the box represent the business organization structure and the software logic structure respectively, and the specific requirements visible to the customer correspond to the abstract logical processes of the system one by one, this has a significant effect on communication between customer representatives with a lack of technical background and system analysts with insufficient experience.

V. Summary

System Analysis is the most arduous task in project development. The focus of this stage is

· Supplemented and improved the performance requirements of systems that may be lacking in the previous stage;
· System analysts need to design reasonable and feasible solutions on a global basis;
· Design multiple solutions for customers to choose from when their needs are unclear,
· System decomposition modules to maximize code reuse;
· Use the UML modeling method to map customer changed requirements to the model, greatly improving system scalability and development efficiency

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.