Architectural Design Tutorial 1 IT 323 Software Engineering

  • Slides: 21
Download presentation
Architectural Design Tutorial 1 IT 323 - Software Engineering 2 1

Architectural Design Tutorial 1 IT 323 - Software Engineering 2 1

Q 1 � When describing a system, explain why you may have to design

Q 1 � When describing a system, explain why you may have to design the system architecture before the requirements specification is complete. 2

Answer : The architecture may have to be designed before specifications are written to

Answer : 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

Q 2 � Suggest and draw the architecture diagram of the following system: ◦

Q 2 � Suggest and draw the architecture diagram of the following system: ◦ A computer-controlled video conferencing system which allows video, audio and computer data to be visible to several participants at the same time 4

Answer : The most appropriate structure here is a client-server model. The client application

Answer : 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

Q 3 � Suggest best architectural design for the following and explain why. A.

Q 3 � Suggest best architectural design for the following and explain why. 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-end operations every day, as well as queries from more than half a million third-party sellers. 6

Answer : This is a distributed system and we better go with Client-server architecture

Answer : 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

Q 3 � Suggest best architectural design for the following and explain why. B.

Q 3 � Suggest best architectural design for the following and explain why. B. Dropbox is a file hosting service operated by Dropbox, Inc. that offers cloud storage, file synchronization, and client software. In brief, Dropbox allows users to create a special folder on each of their computers, which Dropbox then 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 50 G. 8

Answer : Since we will share huge data among multiple users and they will

Answer : 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

Q 3 � Suggest best architectural design for the following and explain why. C.

Q 3 � Suggest best architectural design for the following and explain why. 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: 10

Answer : We highly recommend to go with Model-View. Controller, or MVC, where: §

Answer : 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

Q 3 � Suggest best architectural design for the following and explain why. D.

Q 3 � Suggest best architectural design for the following and explain why. 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 (+, -, /, *), 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. 12

Answer : Model-view-controller (MVC) in order to isolate business logic from the user interface.

Answer : 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

Q 3 � Suggest best architectural design for the following and explain why. E.

Q 3 � Suggest best architectural design for the following and explain why. E. Suppose that you are to design a gmail like mail system. The 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. 14

Answer : Since we have a series of transformations on data we recommend using

Answer : 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

Q 3 � Suggest best architectural design for the following and explain why. F.

Q 3 � Suggest best architectural design for the following and explain why. F. Suggest an architecture style for a system such as i. Tunes, that is used to sell and distribute music on the Internet. 16

Answer : Client-server model is the appropriate architectural pattern for such 
Kind of system.

Answer : Client-server model is the appropriate architectural pattern for such 
Kind of system. i. Tunes 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

Q 3 � Suggest best architectural design for the following and explain why. G.

Q 3 � Suggest best architectural design for the following and explain why. 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 18

Answer : Since we have a data processing application, we recommend using a pipe

Answer : 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

Q 4 � Explain why design conflicts might arise when designing an architecture for

Q 4 � Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements. 20

Answer : Fundamentally, to provide availability, you need to have (a) replicated components in

Answer : Fundamentally, to provide availability, you need to have (a) replicated 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. Security requires minimizing the number of copies of the data and, 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. 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