1 Software architecture Letizia Jaccheri /swarchi-2001.ppt.

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

Chapter 13 Review Questions
Database Architectures and the Web
COURSE: COMPUTER PLATFORMS
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecture # 2 : Process Models
FORM: Feature-Oriented Reuse Method Kaan Kaynar. Domain Analysis and Engineering Domain: a family of related systems Domain analysis: examining a family.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Technical Architectures
Design Creative Process of transferring the problem into a solution
Designing the system Conceptual design and technical design
Distributed Systems Architectures
Software Reuse Building software from reusable components Objectives
Unified Modeling (Part I) Overview of UML & Modeling
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
RIZWAN REHMAN, CCS, DU. Advantages of ORDBMSs  The main advantages of extending the relational data model come from reuse and sharing.  Reuse comes.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
An Introduction to Software Architecture
DAT602 Database Application Development Lecture 12 C/S Model Database Application.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Databases and Database Management Systems
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
SE: CHAPTER 7 Writing The Program
Krista Lozada iAcademy First Term 2009
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
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.
Designing Classes. Software changes Software is not like a novel that is written once and then remains unchanged. Software is extended, corrected, maintained,
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Introduction to Software Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Introduction to OOAD and UML
CS 5150 Software Engineering Lecture 12 Software Architecture 1.
FORM: Feature-Oriented Reuse Method
CSC 480 Software Engineering
HCI in the software process
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Interpreter Style Examples
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Layered Style Examples
HCI in the software process
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Database Architecture
HCI in the software process
Design Yaodong Bi.
Human Computer Interaction Lecture 14 HCI in Software Process
Calypso Service Architecture
Presentation transcript:

1 Software architecture Letizia Jaccheri /swarchi-2001.ppt

2 Krav… Jeg ønsker at du fokuserer på typiske SW- arkitekturer (f.eks to-lags, tre-lags og fler- lags klient - tjener arkitektur, web-arkitektur,....) og mellovare (f.eks corba) som brukes for å "lime" komponentene i arkitekturene sammen. Fint om du kan si noe om fordeler og ulemper med de forskjellige arkitekturene. Jeg ønsker en mest mulig praktisk vinkling slik at studentene kan få direkte nytte av forelesningen i de løsningene de lager i forbindelse med Kundestyrt prosjekt.

3 Structure Software Architecture What/Who Examples and exercises Software Architecture How Examples and exercises Conclusions

4 What (definition) Software architecture of a software system is a set of structure descriptions. Each description gives a view of the system in terms of components and connections between components.

5 What (example) One view of a system So called 3-tier architecture

6 What (example) (2)

7 What (example) (3)

8 Middleware Method invocation (java,.net, etc.) Queues (java, microsoft, etc.) Corba Http

9 Exercise Define/Draw two / three structural views about your system. For each view, provide alternatives and try to list advantages and disadvantages with the different solutions. Each view consists of components and connectors of different kind One responsible

10 How Which are the forces which drive architecture definition? How to obtain a software architecture? How to analyse a software architecture? How to change a software architecture?

11 Some answers Styles dataflow, call-and-return, independent component, data-centered, object oriented Patterns 23 patterns in Gamma Operations Separation, abstraction, compression, resource sharing Qualities Technology features and constraints Java, microsoft (.net), corba,

12 Qualities (Non functional requirements) Performance Maintenability Usability Security Reuse Availability

13 Performance How much communication among components (architectural) What functionality has been allocated to which components (architectural) Choice of algorithms (not architectural) How algorithms are coded (not architectural)

14 Modifiability How functionality is divided. A system is modifiable if changes do not involve a large number of distinct components. It is the quality attribute most closely aligned to the architecture of the system Extending or changing capabilities Deleting unwanted capabilities Adapting to new operating environments Restructuring (see product line, reuse)

15 Usability Learnability Efficiency Memorability Error avoidance Error handling Satisfaction (does the system make the user’s job easy?) Many aspects of the quality of usability are not architectural

16 Qualities Observable via execution Not observable via execution: how easy is the system to integrate, test, and modify?

17 Separation Split functionality (parallelism for performance) Aggregation Is-a

18 Abstraction Define a virtual machine which abstract the implementation Emulate functionality which is not native Layered systems Common interface to several implementations Add a layer to a single user system in a way it becomes multi user

19 Compression Remove layers and/or interfaces. It is the opposite of separation. SE traditionally against it. Improve performance Eliminate layering which does not add needed services Speed development.

20 Resource sharing Encapsulate data and/or services and make it sharable among different components Database Blackboard Tool integrator/bus Enhance integrability

21 Abstrac tion Compr ession Part- whole decom positio n Is-a decom positio n Replica tion Resour ce sharing Scalabil ity + System modifia bility +-++ Integra bility Portabil ity +- Sequen tial perfor mance -+---

22 Abstracti on Compres sion Part- whole decompo sition Is-a decompo sition Replicatio n Resource sharing Concurre nt performa nce -+++ Fault tolerance + + Ease of system creation +-++ Compone nt modifiabil ity +-- Ease of compone nt creation +++ Reusabilit y +-+

23 Exercise Everybody changes group (not the responsible). The responsible explains the architecture to the other and receive feedbacks and comments. Try to apply one or more operations. Suggestions for change/improvement are recorded. I keep your architectures, you can access them if you like.

24 Conclusions Reason about your system, communicate decisions about your systems, work with alternatives designs Styles, patterns, technological issues, SIF8056 Programvarearkitektur