Software system architecture design of UESTC - Overview of system analysis and design

System Analysis and Design Overview

Information Systems Overview

what

An information system is a computer application system that can complete the collection, conversion, processing, calculation, analysis, transmission, maintenance and other information processing of business data, and can provide users with information services on certain aspects of problems.

image-20230901132156996

composition

  • Information infrastructure (computers, computer networks, servers, system software, etc.)
  • application
  • Database systems
  • business data
  • user

type

business processing system

Transaction Process System (TPS) is a type of information system that uses IT technology to process information on an organization's business activities (such as ordering, sales, payment, shipping, accounting, etc.) to automate business processing and improve business processing efficiency. .

  • Commercial terminal sales system
  • Online banking system (China Construction Bank Online Banking)
  • Air ticket booking system
  • hotel system
  • Railway 12306 passenger ticket booking system

MIS

Management Information System (Manage Information System, MIS) is a type of organization-led information management that uses IT technologies such as computer software and hardware, network communications, and databases to conduct overall information management of organizational functions in order to improve organizational work efficiency and Information systems that provide service value and support organizational functions and operational management.

  • Human Resource Management Information System
  • Enterprise CRM system
  • Enterprise ERP system
  • Student status management information system
  • Enterprise production safety management system

Customer relationship management (CRM) is enterprise software that automates the way customers interact with your business. CRM is often part of a larger customer experience (CX) application suite that also includes marketing, advertising, e-commerce and customer service solutions. CRM systems track and store all customer data collected, including customer communications with sales representatives, suggestions, purchase history, and service requests. Many CRM solutions supplement these customer records with third-party data sources to ensure contact data is complete and timely. All this customer data can then be shared across the enterprise, giving users a better understanding of what’s happening at every touchpoint. Good CRM solutions also use artificial intelligence (AI) to analyze a customer's history and recommend next sales actions.

Enterprise Resource Planning (ERP) is a type of business software used primarily to manage, automate, and connect day-to-day back-office business processes such as accounting, procurement, project management, supply chain management, risk management, and human resources. An ERP suite may also include enterprise performance management (EPM) software, which helps businesses plan and budget for financial results, as well as forecast and report financial results. By unifying these business processes on a single technology platform, enterprises can streamline operations and workflows. ERP systems collect transactional data shared within the enterprise from multiple sources, facilitate the flow of relevant data between departments, eliminate data duplication, and store data in a central location to form a single source of truth to ensure data integrity.

Decision Support Systems

A decision support system (DSS for short) is a type of information system that provides service support for decision makers to solve specific strategic problems through information processing such as data analysis, model evaluation, and knowledge reasoning in the form of human-computer interaction.

  • Flood Control Command Decision Support System
  • Notifiable Infectious Disease Epidemic Forecast Information System
  • Telecom Marketing Big Data Analysis System
  • Geological Disaster Early Warning System in Railway Area
  • Emergency plan system for public health emergencies

expert system

An expert system (Expert System, ES) is an information system that acquires, stores, and utilizes expert knowledge to solve certain types of problems. It generally uses technologies such as knowledge representation, knowledge reasoning, and deep learning in artificial intelligence to simulate complex problems that are usually solved by domain experts.
Typical expert system applications:

  • AlphaGo Go robot
  • Protein Identification Expert System
  • Urban Construction Planning and Design Expert System
  • Vegetable Pest Diagnosis Expert System

office automation system

Office Automation (OA) is an information system that realizes informatization and automated processing of office business processes.

  • Government affairs office system
  • University office system
  • Enterprise office system

knowledge work support system

Knowledge Work Support System (KWS) is a system with powerful data, graphics, image and multimedia processing capabilities. It can widely apply various information and technical resources under network conditions and provide design and creation for knowledge workers. , technological innovation and other service tool information systems.

  • Engineering Drawing System (AutoCAD)
  • Image non-linear editing system
  • CASE (Computer Aided Software Engineering) Tools
  • Power Designer software system

relation

image-20230901135412110

Stakeholders

image-20230901135518463

User classification

  1. System internal users

    • Business people
    • Supervisors, managers and general managers
  2. System external users

    • client
    • supplier
    • Partner

Developer

  1. systems analyst

    • systems analyst
    • Business domain experts
  2. system designer

    • system architect
    • software engineer
    • Interface Engineer
    • Database Engineer
  3. system builder

    • software programmer
    • hardware engineer
    • Network Engineer
    • System integration engineer
  4. system administrator

    • account Manager
    • project manager
    • Quality Assurance Personnel
    • test manager

Information system software

type

  • application
  • Support software (middleware)
  • system software

Other categories

According to development method:

  • General software products
  • Custom software system

Classified by license:

  • product software
  • free software
  • shareware
  • free software
  • public software
  • open source software

characteristic

  • Software is a collection of programs composed of logical codes, non-tangible objects.
  • Software does not wear out, but it does become obsolete as it loses value.
  • Software is developed by developers through mental work and cannot yet be manufactured on a production line.
  • The software has not yet fully implemented a standardized component assembly system.

Essential problems that need to be solved in software development

  • Complexity - Software complexity varies greatly depending on the application field, scale, and business.
  • Consistency—software is required to be compatible with the hardware and software platforms of its operating environment.
  • Variability - Due to constant changes in business processes and requirements, application software needs to have variability (such as software version upgrades) to maintain the long-term vitality of the software.

Quality attributes

Functionality: refers to the degree to which the functions implemented by the software can meet the design specifications and meet the needs of users.

Reliability: refers to the degree to which software can maintain its normal functional operation and performance level under specified time and conditions.

Usability: refers to the degree of effort required by users to learn, operate, and use software.

Efficiency: refers to the processing performance of the software system, such as processing time and resource usage.

Portability (Transportability): refers to the ease with which software can be transplanted from one computer system environment to another.

Maintainability (Maintainability): refers to the degree of effort required to modify a software if the requirements change, the environment changes, or an error occurs in the software after it is put into operation.

Availability: Used to measure the extent to which users can use software effectively and satisfactorily to achieve specific goals in specific scenarios.

Extensibility: refers to the ease with which software can add new functions and expand system capabilities. Scalability (Scalability): Used to measure the degree of change in system processing performance when the software load changes.

Safety: Used to measure the software's ability to prevent illegal access, data loss, virus hazards, unauthorized intrusions and other incidents.

Robustness: Used to measure the degree to which the system can continue to perform functions correctly when the software encounters unexpected events.

Interoperability: used to measure the ease with which software can exchange data and access services with other software systems.

information system development process

The information system life cycle refers to the time process from the conception of the system, through system planning, system development, system operation and maintenance, to system termination.

  • system planning stage
  • System requirements analysis stage
  • system design stage
  • system construction phase
  • System testing phase
  • System operation and maintenance phase

Only by using engineering projects to manage a large number of task activities in the system development process, support process, and organization process can we ensure that the project completes the information system development tasks within the specified time and in accordance with quality requirements.

system development process model

The system development process model refers to a specific model that developers have accumulated in long-term engineering practice to effectively solve the organization of system development engineering activities.

waterfall development process model

In the waterfall development process model, system development activities are carried out in a strict linear sequence of life cycle stages, and a large number of documents are created and submitted at each stage.

image-20230901145618968

Model features:

  • The system development process activities are simple in organization, the project phases are clearly divided, and it is supported by complete development documents, which facilitates project management.
  • It requires a lot of documentation and review work, which often affects the progress of system projects and distracts developers.
  • It takes a long time for users to see the prototype of the information system, and feedback on system projects is slow, which will bring project risks.
  • In the early stages of system development, it is often difficult to obtain the complete needs of users, which makes the waterfall development process difficult to carry out.

Application scenarios:
As a classic system development process model, the waterfall development process model is only suitable for system projects with very clear requirements and small scale.

Prototype Development Process Model

In the prototype development process model, based only on initial requirements, rapid development methods and tools can be used to provide an initial version of the prototype system as early as possible. User feedback and new requirements enter the iterative development of the next version of the system, thus solving the limitations of the waterfall development process model.

image-20230901145855119

Model features:

  • Can develop information systems that truly meet user needs, and can quickly submit the initial functional version of the system to users.
  • Changes in requirements can be quickly reflected in system development.
  • It is difficult to mark progress milestones in system project development, and project management is complicated.
  • If the system architecture design is not robust, multiple iterations will challenge the system stability.
  • The prototype development process model also requires tool support with rapid system development capabilities.

Application scenarios:
The prototype development process model is suitable for system projects with a large number of human-computer interaction interfaces, and is also suitable for system projects whose initial requirements are not clear.

Spiral Development Process Model

The spiral development model is also an evolutionary and iterative system development process model, which takes into account the iterative characteristics of the prototype development process and the systematic and strict review advantages of the waterfall development process.

image-20230901150112960

Model features:

  • It introduces risk analysis that other models do not have, so that the project has the opportunity to stop when major risks cannot be ruled out, so as to reduce project losses.
  • Iterative development is carried out along the spiral of system development activities from the inside out. Each iteration will result in a release version of the system, until a version that fully meets user needs is obtained and becomes the final system.
  • It is good to conduct risk analysis for each iteration of development, but the project schedule will be delayed, the cost will increase, and the cost of project development will be higher.
  • Compared with the waterfall development process model and the prototype development process model, the project management of the spiral development process model is more complex and requires more development activity organization and management.

Application scenario:

The spiral development model is suitable for large and complex system development, with special emphasis on risk analysis of system development.

Unified Software Development Process Model

The Rational Unified Process (RUP) is a use case-driven, incremental and iterative system development process model centered on the architecture.

image-20230901151012480

Model features:

  • Object-oriented, use case-driven, architecture-centered development system.
  • Incremental iterative development, targeting quality control and risk management.
  • Matched with UML, the process framework can be customized.

Application scenarios:
The unified software development process model combines the advantages of various previous system development process models, comprehensively considers the technical factors and management factors of system development, and is suitable for the development of large and complex systems.

Agile software development model

Agile software development (Agile software development) is a streamlined, fast, incremental iterative system development process model.

image-20230901151151461

Model features:

  • This paper proposes a lightweight development process model method that emphasizes close collaboration between programmers and business experts, face-to-face communication, and code writing that adapts to changes in requirements.
  • Pay attention to the role of people in the system development process, minimize document writing, quickly release system version functions, and be able to handle changing user needs.
  • It solves the limitations of traditional heavyweight development process models in small and medium-sized system projects such as high cost, long cycle, and difficulty in adapting to rapid demand changes.

Application scenario:
The agile development model focuses on rapid system development, and is suitable for system development projects that solve early requirements that are vague or require frequent changes.

System development methods and tools

system development strategy

  1. self-developed

    Utilize the organization's own IT staff to develop and implement information system development methods.

    Advantages and Disadvantages:

    • You can get information systems that meet your own needs and develop your own team through system development.
    • It is difficult to organize professional and standardized system development and implement strict quality assurance, and usually requires external consulting and technical training.
    • The developed system may have limitations in versatility, stability, and integrity.
  2. Commissioned development

    Entrust a professional IT company to customize and develop the development method of the information system according to the business needs of the organization.

    Advantages and Disadvantages:

    • Able to use the technical advantages and information experience of professional IT companies to develop information systems at a relatively low cost.
    • The organization itself can save human resources, focus on business optimization and improvement, and concentrate its energy on activities with higher value returns.
    • Analysts who are proficient in business are required to conduct a lot of communication with the development team.
    • Relying on technical support from professional IT companies, later system maintenance is difficult.
  3. Purchase product software

    By purchasing commercialized software packages, and on this basis, customized configuration of information systems is achieved.

    Advantages and Disadvantages:

    • Customers save time and effort, and the information system can be established in a short time, and the effect can be immediate.
    • It's not easy to purchase a system that exactly meets your organization's needs.
    • Limited by the limitations of existing software, it is difficult to meet changes in business needs.
  4. joint development

    Institutions jointly develop information system development methods with professional IT companies.

    Advantages and Disadvantages:

    • Give full play to the advantages of the customer team and development team, which is conducive to the cultivation of one's own technical strength.
    • Relying on the sincere unity of both parties, we need to have certain system analysis and design capabilities.

system development methods

  1. structured approach

    The structured method is a process-oriented software development method, which consists of structured analysis method, structured design method and structured programming method.
    The basic idea is as follows:

    • top down

    • Gradually seek refinement

    • System module decomposition

    • Building software systems with process as the center

    Typical techniques of structured methods:

    Data flow diagram, data dictionary, hierarchical structure diagram design, ER diagram design, program flow diagram design, pseudo code design, structured programming, etc.

    The advantages and disadvantages of the structured method:
    simple and practical, mature technology, and easy to apply.
    However, it is not suitable for large-scale and complex software system projects. There are problems such as difficulty in adapting to demand changes, difficulty in solving software reuse, difficulty in software maintenance, and difficulty in improving software production efficiency.

    Current status of software development:
    Most of today's software system projects have the characteristics of complex functions, large scale, heterogeneous platforms, rapid delivery, high maintainability and reliability requirements. Structured methods cannot accommodate these requirements. New software development methods are needed to deal with it.

  2. Object-oriented software development methods

    Object-oriented method is a method of applying object-oriented thought to software development process and guiding software development activities.

    • object-oriented analysis

    • object-oriented design

    • Object-Oriented Programming

    Basic idea of ​​object-oriented:

    • The objective world is composed of various objects (Object), and complex objects can be composed of simple objects.
    • Class is a template for objects with the same characteristics, encapsulating the object's attribute data and operating procedures.
    • Objects realize behavioral interaction through message (Message) transmission to simulate the connection between different things in the real world.
  3. Component-based software development method
    Component-based software development method is a development method based on distributed object technology that emphasizes the design and construction of software systems through reusable components.

    • From the perspective of business functions, software reusability can be improved by using a higher level of abstraction technology than the object-oriented method to design and implement software.
    • Shift the focus of software development from program writing to assembly based on existing components, constructing systems in a faster way, reducing the maintenance burden required to support and upgrade large systems, thereby reducing software development costs.

    Advantages and Disadvantages:

    • Component development improves software reusability and development efficiency and ensures software quality.
    • Software component development is closely related to programming languages, which can easily lead to inconsistent component interface standards and make it difficult for components implemented in different development languages ​​to interoperate.
  4. Service-oriented system development method
    Based on service-oriented thinking, a system development method of loose coupling and coarse-grained software function reuse is adopted.

    • The service-oriented system development method focuses on business, which maps directly to the business, emphasizes the alignment of IT and business, and uses business services as the core elements to encapsulate business functions or existing application systems.
    • Services have a larger granularity than components, better match the business in institutional information applications, and can achieve a higher level of software reuse.

    Advantages and Disadvantages:

    • Function reuse across platforms can be achieved, and existing application systems can also be reused.
    • The development technology is complex and requires solving many difficult technical problems in distributed applications.

System development tools and environments

  1. development tools

    Classification according to development process:

    • Project management tools (Project)
    • Version control management tool (VisualSVN Server)
    • Analysis and design tools (PowerDesigner, Enterprise Architect)
    • Program development tools (Eclipse)
    • System testing tool (Apache JMeter)
    • System maintenance tools
  2. Development and execution environment

    System development environment refers to the software tools and integrated environment used to develop and maintain information systems on computer hardware and system software platforms.

    The system operating environment refers to the platform environment on which the information system operates, including software environments such as operating system software, database software, and runtime software, as well as hardware support environments such as servers, network equipment, and storage devices.

Class Exercises and Classwork

1. Which of the following is not an information systems stakeholder? (D)

A.Customer B. User C. Developer D. Supervisory staff

2. Which of the following is not a software quality attribute of primary concern to users? (B)

A.SecurityB. ReusabilityC. FlexibilityD. Efficiency

3. In the information system life cycle, which of the following phases lasts the longest? (D)

A.System requirements analysisB. System design c. System structure D. System operation and maintenance

4. Which of the following system development process models does not require iteration? (A)

A.Waterfall development process model b. Prototype development process model C. RUP development process model D. Agile software development process model

5. Which of the following system development strategies can develop the organization's own development team? (D)

A.Self-developed B. Commissioned development C.Purchase commercial software package D. Joint development

1. The project manager is one of the system builders. (×)

2. Information system refers to a type of system software that processes information. (×)

3. System planning is carried out after the project is established. (×)

4. The agile software development process model is a lightweight process model. (√)

5. Application software depends on the system operating environment. (√)

Information systems usually consist of information infrastructure, application software, database management systems, databases, business data, (users) and other elements.

Software is divided into system software, application software and (middleware).

Carry out system analysis and design activities in the (system planning), system requirements analysis, and system design phases of the information system life cycle.

In the spiral development process model, system software coding is a development activity during the (implementation engineering) phase.

The system development method with the largest reuse granularity is (service-oriented development).

Guess you like

Origin blog.csdn.net/m0_63230155/article/details/132626287