CS 325: Software Engineering

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 13 Review Questions
8.
Software Architecture Design Instructor: Dr. Jerry Gao.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Course Instructor: Aisha Azeem
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Systems Analysis and Design in a Changing World, Fifth Edition
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
1 CMPT 275 High Level Design Phase Modularization.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
Basic Characteristics of Object-Oriented Systems
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
INTRO. To I.T Razan N. AlShihabi
Chapter 12: Architecture
GRASP – Designing Objects with Responsibilities
7. Modular and structured design
Software architecture
System Design and Modeling
which satisfies software requirements
Software Design and Architecture
Part 3 Design What does design mean in different fields?
CSC 480 Software Engineering
CHAPTER 3 Architectures for Distributed Systems
#01 Client/Server Computing
The Object Oriented Approach to Design
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Design and Maintenance of Web Applications in J2EE
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
CS223: Software Engineering
Princess Nourah bint Abdulrahman University
Introduction to Databases Transparencies
Software Architecture
Software Design CMSC 345, Version 1/11.
Architectural Design.
Chapter 12: Physical Architecture Layer Design
Chapter 6 – Architectural Design
Starting Design: Logical Architecture and UML Package Diagrams
Software models - Software Architecture Design Patterns
Software Design Lecture : 8
An Introduction to Software Architecture
Introduction To Distributed Systems
Chapter 5 Architectural Design.
Chapter 6: Architectural Design
OBJECT STORAGE AND INTEROPERABILITY
Architectural Mismatch: Why reuse is so hard?
Distributed Systems Architectures
#01 Client/Server Computing
Presentation transcript:

CS 325: Software Engineering Lesson Six Architectural Design Software Design Objectives Software System Types Architectural Styles UML Package Diagrams Software Design Principles

Software Design Objectives When designing the structure of a software system, it is important to focus on the precise goals and priorities of the system’s stakeholders. How frequently will the system need to be modified? Are commercial off-the-shelf (COTS) parts preferred (or prohibited)? What levels of response time and performance are needed on the system? How important are reliability and data protection on the system? To what extent must the system continue to operate in the presence of software faults? If the system crashes, does the application require it to recover by returning to some previous state? CS 325 Lesson Six Architectural Design Page 53

Software System Types The design of the software system’s structure is very dependent on the type of system being developed. Interactive systems (e.g., word processors, spreadsheets) employ a client-server relationship between the user and the software. Event-driven systems (software systems using callback functions or embedded systems using hardware interrupts) are state-dependent and reactive. Transformational systems (e.g., compilers, data mining applications) consist of information processing networks that transform a sequence of input into a sequence of output. Database systems support the storage and retrieval of records, often necessitating both instantaneous access and protective security protocols. CS 325 Lesson Six Architectural Design Page 54

Architectural Styles Various generic architecture designs have arisen, and may be modified appropriately for the particular system being developed. N-Tier A strict sequence of programmed layers (e.g., HUD/Graphics/ Physics/Assets/ Libraries/OS/Platform, Open Systems Interconnection). Client-Server Clients submit requests and servers respond with service (e.g., printers, web access, file storage and retrieval). Main/Subprogram Hierarchical structure with information processing delegated to procedures and inputs transformed into outputs. Event-Driven A state-based controller receives events from various components and responds with appropriate instructions. Persistence Large numbers of objects are shared, sometimes using different formats and platforms (e.g., networked databases). Peer-To-Peer Independent components communicate in a decentralized, scalable system. Blackboard A global data repository serves as the communication medium for independent components. Cloud Computing The client-server model is extended to applications, provided dynamically as services from a number of servers. CS 325 Lesson Six Architectural Design Page 55

UML Package Diagrams To simplify complex Class Diagrams, logically related classes may be grouped into “packages” in a Package Diagram. One package depends on another (illustrated with dashed arrows) if changes in the latter might force changes in the former. CS 325 Lesson Six Architectural Design Page 56

Software Design Principles Design for Change Good designs are adaptable and easily modified. New techniques, technologies, policies, and requirements arise and must be dealt with. Separation of Concerns Concentrating on each design problem in isolation will improve both the process and the product. The process is improved by progressively focusing on high-level and then low-level design. Information Hiding Modular design enhances modifiability and reusability. Inheritance, polymorphism, and the notion of a public interface and a private implementation are also enhanced. High Cohesion In a modular hierarchy, low-level modules should be extremely relevant to the functionality of high-level modules. This level of cohesion enhances understandability, maintainability, and modifiability. Loose Coupling Modules are easier to maintain when their internal structures are independent of each other. When required to communicate with each other, modules should rely on parameters rather than shared resources. Keep It Simple, Stupid! Straightforward designs are less inclined to be misinterpreted and more inclined to be implemented correctly. Elaborate data structures and algorithms are difficult to modify and maintain. CS 325 Lesson Six Architectural Design Page 57