IT323 - Software Engineering 2

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Systems Analysis I Data Flow Diagrams
Course Instructor: Aisha Azeem
Chapter 1: The Database Environment
Lecture-8/ T. Nouf Almujally
The Internet & The World Wide Web Notes
The Design Discipline.
MVC pattern and implementation in java
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Objectives Overview Define the term, database, and explain how a database interacts with data and information Define the term, data integrity, and describe.
An Introduction to Software Architecture
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Model View Controller MVC Web Software Architecture.
Lecture VIII: Software Architecture
General Architecture of Retrieval Systems 1Adrienn Skrop.
INTRODUCTION TO INFORMATION SYSTEMS LECTURE 9: DATABASE FEATURES, FUNCTIONS AND ARCHITECTURES PART (2) أ/ غدير عاشور 1.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
Software Overview How to… Review Video and Data  Review the Journal Review the Journal  Simple Search Simple Search  Advanced Search Advanced Search.
Discovering Computers 2009 Chapter 1 Introduction to Computers.
Successfully Implementing The Information System Systems Analysis and Design Kendall and Kendall Fifth Edition.
Advanced Higher Computing Science
Information Retrieval in Practice
Section 2.1 Section 2.2 Identify hardware
Introduction To DBMS.
CompSci 280 S Introduction to Software Development
Web Engineering CS-4513 Prepared By: Junaid Hassan Lecturer at UOS M.B.Din Campus
Support for the Development of Interactive Systems
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Component and Deployment Diagrams
Working in the Forms Developer Environment
Application Software Chapter 6.
Chapter 2 Database System Concepts and Architecture
Database System Concepts and Architecture
System Design Ashima Wadhwa.
SOFTWARE DESIGN AND ARCHITECTURE
Principles of Network Applications
Chapter 2: System Structures
MVC and other n-tier Architectures
Software Design and Architecture
Chapter Ten Managing a Database.
Part 3 Design What does design mean in different fields?
Distributed web based systems
The Client/Server Database Environment
Chapter 18 MobileApp Design
Understand Windows Forms Applications and Console-based Applications
#01 Client/Server Computing
Chapter 16 Designing Distributed and Internet Systems
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Database Management System (DBMS)
Model-View-Controller Patterns and Frameworks
Chapter 1 – Introduction to Computers
GCSE Computing Databases.
Web Application Architectures
Software Architecture
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Web Application Architectures
Internet Protocols IP: Internet Protocol
Chapter 9 Web Hosting and E-Business Software
SDLC Phases Systems Design.
Chapter 3 Database Management
Chapter 5 Architectural Design.
Web Application Architectures
The Database Environment
Chapter 6 – Architectural Design
#01 Client/Server Computing
Presentation transcript:

IT323 - Software Engineering 2 Architectural Design Tutorial 1 IT323 - Software Engineering 2

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

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.  

Q2 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

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).

Q3 Suggest best architectural design for the following and explain why. 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.

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.

Q3 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 50G.

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.

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

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.

Q3 Suggest best architectural design for the following and explain why. 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.

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. The Form will house the view and events will be passed to the controller who will then call methods on our model such as ADD/Subtract/NumberPress. The model takes care of all the work and it holds the current state of the calculator. Though MVC comes in different flavors, control flow generally works as follows: The user interacts with the user interface in some way (e.g. presses a button). A controller handles the input event from the user interface, often via a registered handler or callback. The controller notifies the model of the user action, possibly resulting in a change in the model's state. (e.g. controller updates user's shopping cart). A view uses the model (indirectly) to generate an appropriate user interface (e.g. the view produces a screen listing the shopping cart contents). The view gets its own data from the model. The model has no direct knowledge of the view. The user interface waits for further user interactions, which begins the cycle anew. By decoupling models and views, MVC helps to reduce the complexity in architectural design, and to increase flexibility and reuse.

Q3 Suggest best architectural design for the following and explain why. 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.

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.

Q3 Suggest best architectural design for the following and explain why. Suggest an architecture style for a system such as iTunes, that is used to sell and distribute music on the Internet.

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

Q3 Suggest best architectural design for the following and explain why. 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

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

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

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.