Podcast
Questions and Answers
What is one of the consequences of incompatibility between the architecture and the developing system?
What is one of the consequences of incompatibility between the architecture and the developing system?
What is a key aspect of system architecture?
What is a key aspect of system architecture?
Why is software architecture important?
Why is software architecture important?
What kind of requirements depend on the system architecture?
What kind of requirements depend on the system architecture?
Signup and view all the answers
What are some non-functional requirements that depend on the architectural style and structure of the system?
What are some non-functional requirements that depend on the architectural style and structure of the system?
Signup and view all the answers
What is architectural design?
What is architectural design?
Signup and view all the answers
Why is it important to hire a system architect for a new project?
Why is it important to hire a system architect for a new project?
Signup and view all the answers
What do system architects have to make during the architectural design process?
What do system architects have to make during the architectural design process?
Signup and view all the answers
What are some key points to justify the hiring of a system architect for a new project?
What are some key points to justify the hiring of a system architect for a new project?
Signup and view all the answers
What is a consequence of not having a system architect?
What is a consequence of not having a system architect?
Signup and view all the answers
Study Notes
Application Architectures
- Application systems are designed to meet an organizational need.
- They tend to have a common architecture that reflects the application requirements.
Generic Application Architectures
- Can be used as a starting point for architectural design.
- Can be used as a design checklist.
- Can be used to organize the work of the development team.
- Can be used to assess components for reuse.
- Can be used as a vocabulary for talking about application types.
Examples of Application Types
- Data processing applications:
- Data-driven applications that process data in batches without explicit user intervention during the processing.
- Transaction processing applications:
- Data-centred applications that process user requests and update information in a system database.
- Event processing systems:
- Applications where system actions depend on interpreting events from the system's environment.
- Language processing systems:
- Applications where the users' intentions are specified in a formal language that is processed and interpreted by the system.
Language Processing Systems
- Accept a natural or artificial language as input and generate some other representation of that language.
- May include an interpreter to act on the instructions in the language that is being processed.
- Used in situations where the easiest way to solve a problem is to describe an algorithm or describe the system data.
Architecture of a Language Processing System
- Includes a lexical analyzer, which takes input language tokens and converts them to an internal form.
- Includes a symbol table, which holds information about the names of entities (variables, class names, object names, etc.) used in the text that is being translated.
- Includes a syntax analyzer, which checks the syntax of the language being translated.
- Includes a syntax tree, which is an internal structure representing the program being compiled.
- Includes a semantic analyzer that uses information from the syntax tree and the symbol table to check the semantic correctness of the input language text.
- Includes a code generator that 'walks' the syntax tree and generates abstract machine code.
Compiler Components
- Lexical analyzer
- Symbol table
- Syntax analyzer
- Syntax tree
- Semantic analyzer
- Code generator
Architectural Design Decisions
- Include decisions on the type of application, the distribution of the system, and the architectural styles to be used.
- Architectural design decisions affect the performance, robustness, distributability, and maintainability of a system.
Architectural Patterns
- Are a means of reusing knowledge about generic system architectures.
- Describe the architecture, explain when it may be used, and describe its advantages and disadvantages.
Key Points
- A software architecture is a description of how a software system is organized.
- Architectural patterns are used to describe the architecture, explain when it may be used, and describe its advantages and disadvantages.
- Models of application systems architectures help us understand and compare applications, validate application system designs, and assess large-scale components for reuse.
- Transaction processing systems are interactive systems that allow information in a database to be remotely accessed and modified by a number of users.
- Language processing systems are used to translate texts from one language into another and to carry out the instructions specified in the input language.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz covers the fundamental concepts of architectural design, including design decisions, views, patterns, and application architectures in software systems.