CS 5150 Software Engineering Lecture 12 Software Architecture 1.

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
SWE 316: Software Design and Architecture
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Technical Architectures
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
CS 501: Software Engineering Fall 2000 Lecture 14 System Architecture I Data Intensive Systems.
Distributed Systems Architectures
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
SWE Introduction to Software Engineering
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Establishing the overall structure of a software system
Jun Peng Stanford University – Department of Civil and Environmental Engineering Nov 17, 2000 DISSERTATION PROPOSAL A Software Framework for Collaborative.
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Dr. Tom WayCSC What is Software Engineering? CSC 4700 Software Engineering Lecture 1.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Architectural Design, Distributed Systems Architectures
CS 360 Lecture 8.  The requirements describe the function of a system as seen by the client.  The software team must design a system that will meet.
第十四章 J2EE 入门 Introduction What is J2EE ?
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
UNIT 1 BROWSERS AND CLIENTS Cambridge Technicals.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
© TRESETarget Industry TRESE Group Department of Computer Science University of Twente P.O. Box AE Enschede, The Netherlands
Chapter 12 Review Chad Hagstrom CS 310 Spring 2008.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Lecture VIII: Software Architecture
CS223: Software Engineering Lecture 13: Software Architecture.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
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.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Databases and DBMSs Todd S. Bacastow January 2005.
System Architecture Issues
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Lecture 1 What is Software Engineering? CSC 4700 Software Engineering
IS301 – Software Engineering Dept of Computer Information Systems
Chapter 1 Reasons to study concepts of PLs Programming Domains
Distributed Systems CS
Part 3 Design What does design mean in different fields?
1.1 Reasons to study concepts of PLs
CSC 480 Software Engineering
Web Engineering.
Ch > 28.4.
System Architecture CS 560 Lecture 8.
Data, Databases, and DBMSs
Chapter 6 – Architectural Design
Database Systems Instructor Name: Lecture-2.
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
MORE ON ARCHITECTURES The main reasons for using an architecture are maintainability and performance. We want to structure the software into reasonably.
15. Proxy SE2811 Software Component Design
Chapter 6 – Architectural Design
Presentation transcript:

CS 5150 Software Engineering Lecture 12 Software Architecture 1

CS Administrivia You should have received comments on your reports Presentation room TBD (today)

CS First Presentation Preparation Who is your audience? Primary: Client(s), instructor Secondary: TA Practice! Presenter should stand, others should sit A team member should take notes When asked a question, the presenter should answer Refer to other team members if necessary It is unprofessional to interrupt your colleagues

CS SE in the News LinkedIn mobile redesign Fast, easy, reliable House metaphor Mix of native and web Microsoft just announced TypeScript Dart, GWT, Script#

CS Software Architecture Lots of pieces of the puzzle Operational definition: Technical decisions made early in a project that are expensive to change Equal parts experience and engineering creativity, with a sprinkling of science A Pattern Language. Ishikawa, Alexander, Silverstein

CS Components of Software Architecture Computers and networks (e.g., monolithic, distributed) Interfaces and protocols (e.g., http, ODBC) Databases (e.g., relational, distributed) Security (e.g., smart card authentication) Operations (e.g., backup, archiving, audit trails) Software environments (e.g., languages, source control tools) Testing frameworks

CS Language and Framework Choice If you are working in an established application domain, go with a popular choice If you are trying to define a new niche, unusual choices might be appropriate Long-lived projects tend to become multi- lingual No necessarily bad, but carries a high cost

CS Machine-Level Concurrency (Distribution) Can/Do components of your application run on different computers? Inherent in application domain: , big scientific simulations Isolation: security-sensitive data lives on a different machine Convenience: Use an application locally or remotely

CS Distribution Has Big Costs Moving data from one machine to another More special cases to handle Testing is much harder Installation and maintenance can be more complex Conclusion: do not split your application into pieces that can run on different computers unless there is a compelling reason

CS Modules and Interfaces Architecture is all about Modules (sub-components, classes, pieces,...) Interfaces (methods, protocols, languages, data types,...) Goal: Module interactions are strictly governed by interfaces Cognitive burden Replacement Human work parallelization

CS Architectural Pattern: Pipes Chain or pipe of components

CS Architectural Pattern: Three Tiers Popular in web design Many variations on the theme exist How much logic belongs in Presentation versus Application?

CS Architectural Pattern: Repository Advantage: Flexible pattern for data-intensive applications Disadvantage: Repository can be a bottleneck and an artificial block to code evolution

CS Improvement on Repository Pattern

CS Architectural Patterns for Distributed Data Mirrors Caches Single-owner Consistency and performance are hard to balance properly in distributed data schemes

CS Good Software Architecture How do you know if an architecture is good? Experience always plays an important role Do the module boundaries (interfaces) correlate well with actual interactions in the application? Direct invocation Data send/receive Indirect invocation Indirect data paths Leaky abstractions!