Designing System Architecture Before Requirements: Importance and Best Practices
When describing a system, designing the architecture before completing the requirements specification can aid in structuring the specification, enabling the development of subsystem specifications concurrently, facilitating hardware manufacture by subcontractors, and providing a model for system costing. For systems like a computer-controlled video conferencing system allowing multimedia visibility to participants, a client-server model is recommended. Similarly, for complex systems like Amazon.com, a distributed system with a client-server architecture is suitable due to its back-end operations and interactions with third-party sellers.
- System Architecture
- Requirements Specification
- Client-Server Model
- Distributed Systems
- Software Engineering
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Tutorial 1 Tutorial 1 IT323 - Software Engineering 2 1
When describing a system, explain why you may have to design the system architecture before the requirements specification is complete. When describing a system, explain why you may have to design the system architecture before the requirements specification is complete. 2
The architecture may have to be designed before specifications are written to provide a means of structuring the specification and developing different subsystem specifications concurrently, to allow manufacture of hardware by subcontractors and to provide a model for system costing. 3
Suggest and draw the architecture diagram of the following system: Suggest and draw the architecture diagram of the following system: A computer system which allows video, audio and computer data to be visible to several participants at the same time A computer- -controlled video conferencing system which allows video, audio and computer data to be visible to several participants at the same time controlled video conferencing 4
The most appropriate structure here is a client-server model. The client application would be required to do considerable processing to handle the complex multimedia data fed to it from the server(s). 5
Suggest best architectural design for the following and explain why. Suggest best architectural design for the following and explain why. A. A. Amazon.com is an online retail store that offers product lines include books, music CDs, video tapes and DVDs, software, are much more. Amazon handles millions of back operations every day, as well as queries from more than half a million third Amazon.com is an online retail store that offers product lines include books, music CDs, video tapes and DVDs, software, are much more. Amazon handles millions of back- -end operations every day, as well as queries from more than half a million third- -party sellers. end party sellers. 6
This is a distributed system and we better go with Client-server architecture because of the following: The data is in a shared database (database server) that has to be accessed concurrently by a range of customers who are geographically spread. Amazon.com can take the advantage of replication as well to enhance its services and performance. 7
Suggest best architectural design for the Suggest best architectural design for the following and explain why. following and explain why. B. B. Dropbox that offers cloud storage, file synchronization, and client software. In brief, folder on each of their computers, which synchronizes so that it appears to be the same folder (with the same contents) regardless of the computer it is viewed on. Files placed in this folder are also accessible through a web site and mobile phone applications. Files could be up to 50G. Dropbox is a file hosting service operated by that offers cloud storage, file synchronization, and client software. In brief, Dropbox folder on each of their computers, which Dropbox synchronizes so that it appears to be the same folder (with the same contents) regardless of the computer it is viewed on. Files placed in this folder are also accessible through a web site and mobile phone applications. Files could be up to 50G. is a file hosting service operated by Dropbox Dropbox, Inc. , Inc. Dropbox allows users to create a special allows users to create a special Dropbox then then 8
Since we will share huge data among multiple users and they will interact through dropbox shared folder only, we may go with Repository model because: Changes made by one user can be seen by all other users. Moreover, shared data can be managed consistently (e.g., backups done at the same time) as it is all in one place. Also, Users don't interact with each other directly, and we can add user or delete user without effecting the system. 9
Suggest best architectural design for the Suggest best architectural design for the following and explain why. following and explain why. C. C. Modern Analysis Company provides consultations to clients. In order for this company to be more productive, their system should support the following views for its employees: Modern Analysis Company provides consultations to clients. In order for this company to be more productive, their system should support the following views for its employees: 10
We highly recommend to go with Model-View- Controller, or MVC, where: Model: stores the data View: the GUI or web page Controller: the decision-making code This model is used in most GUI toolkits and web frameworks and it will be the best choice for the company. 11
Suggest best architectural design for the Suggest best architectural design for the following and explain why. following and explain why. D. D. A person needs to implement a web based scientific calculator. Here the user interface will display numeric keypad, and mathematical operation buttons like arithmetic (+, operations system calculates the expression at the back and provide appropriate output, which kind of architecture pattern is best suitable for this kind of software. A person needs to implement a web based scientific calculator. Here the user interface will display numeric keypad, and mathematical operation buttons like arithmetic (+,- -,/,*), scientific and statistical functions. Based upon the operations system calculates the expression at the back- -end and provide appropriate output, which kind of architecture pattern is best suitable for this kind of software. ,/,*), scientific and statistical functions. Based upon the end 12
Model-view-controller (MVC) in order to isolate business logic from the user interface. Model represents the information (the data) of the application and the business rules used to manipulate the data. View corresponds to elements of the user interface such as text, checkbox items, and so forth. Controller manages details involving the communication between the model and view. The controller handles user actions such as keystrokes and mouse movements and pipes them into the model or view as required. 13
Suggest best architectural design for the Suggest best architectural design for the following and explain why. following and explain why. E. E. Suppose that you are to design a incoming mails are scanned for different security checks at different level one after other. Each level has its own functionality and depends on input from previous designing such system, what is the best possible architecture that can be used for this situation. Suppose that you are to design a gmail incoming mails are scanned for different security checks at different level one after other. Each level has its own functionality and depends on input from previous levels.For designing such system, what is the best possible architecture that can be used for this situation. gmail like mail system. The like mail system. The levels.For 14
Since we have a series of transformations on data we recommend using a pipe and filter architectural style. The data is transformed as it moves through the system. - A set of filters , each one transforming some input stream into an output stream. - Pipes connecting the filters. 15
Suggest best architectural design for the Suggest best architectural design for the following and explain why. following and explain why. F. Suggest an architecture style for a system such as iTunes, that is used to sell and distribute music on the Internet. 16
Client-server model is the appropriate architectural pattern for such Kind of system. iTunes stores all the music they sell in a database where the client can search these tracks by artist name, genre, etc. This is all via web based interface. also, tracks can be downloaded and paid accordingly. Then, the server manages the music ordering also via web based interface. 17
Suggest best architectural design for the Suggest best architectural design for the following and explain why. following and explain why. G. G. If you have to design a system that reads a set of student marks for the last 10 years from a file, on which you need to select fall semester marks, then you need to group these marks based on various subjects, sort these records based on marks, and finally report the sorted marks and a statistical trend analysis (mean, median, etc.). Which architectural style would you prefer If you have to design a system that reads a set of student marks for the last 10 years from a file, on which you need to select fall semester marks, then you need to group these marks based on various subjects, sort these records based on marks, and finally report the sorted marks and a statistical trend analysis (mean, median, etc.). Which architectural style would you prefer 18
Since we have a data processing application, we recommend using a pipe and filter architectural style. Inputs are processed in separate stages to generate related outputs 19
Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non requirements. Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non- -functional requirements. functional 20
Fundamentally, to provide availability components in the architecture so that in the event of one component failing, you can switch immediately to a backup component. You also need to have several copies of the data that is being processed. availability, you need to have (a) replicated Security wherever possible, adopting an architecture where each component only knows as much as it needs to, to do its job. This reduces the chance of intruders accessing the data. Security requires minimizing the number of copies of the data and, Therefore, there is a fundamental architectural conflict between availability (replication, several copies) and security (specialization, minimal copies). The system architect has to find the best compromise between these fundamentally opposing requirements. 21