Some things to consider when software system architecture (Essay)

What I need to consider when architecting:

Requirements and modeling: user requirements analysis, business rule analysis, system implementation analysis, use case design, data modeling

Design: Infrastructure modeling (module analysis, management method analysis, performance analysis including network, storage, interaction protocols and methods, scalability, security, compatibility, limitation description)

Module diagram, class diagram, sequence diagram, ER diagram, topology diagram, physical view, logical view, and external system relationship diagram

Development: Code framework and specifications, technologies used (whether multi-language and open source technologies are used to support the system), code copyright processing and open source agreements

Testing: The system supports continuous integration framework, automated testing framework

Deployment: Distributed deployment, isolation of packages (principle of separation of code and configuration)

Operation and maintenance: monitoring of system performance and logs, feedback mechanism for problems, early warning mechanism, etc.

 

The documents I refer to in the architecture:

(project contract), summary requirements analysis book, technical feasibility analysis report, use case design document (use case diagram), data modeling document (ER diagram), main business process document (flow chart)

System deployment and cost specification (network topology diagram and cost), system physical view (from operating system to middleware to database), system logical view, system module diagram (module and function list)

Project management related documents (development cycle, version milestones, change process, test plan)

 

Tools I use for my architecture work:

starUml powerDesigner navicat visio redmine jira axureRP xMind

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326600449&siteId=291194637