Software Architecture in Practice A few notes on H1.

Slides:



Advertisements
Similar presentations
CSC271 Database Systems Lecture # 18. Summary: Previous Lecture  Transactions  Authorization  Authorization identifier, ownership, privileges  GRANT/REVOKE.
Advertisements

What do other people think dignity means ….?. Being with my family and feeling useful rather than a nuisance Ensuring we have the privacy you would want.
Class Study Fall Model Attachment Style Narcissistic Personality Hope Engagement.
© Lethbridge/Laganière 2001 Chapter 9: Architecting and designing software1 Layers Data from IBM-Rational and Craig Larman…
Detailed Design Kenneth M. Anderson Lecture 21
DAIMI(c) Henrik Bærbak Christensen1 Software Architecture Views.
Administrivia Lifecycle Architecture (LCA) group assignment will go out later today. Informal feedback meetings with LCO groups EasyShare: Mon, 2:45pm-3:15pm,
1 Jul 2005CSE403, Summer'05, Section 02 Section 02: Life Cycle Architecture Review Valentin Razmov.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
From Module Breakdown to Interface Specifications Completing the architectural design of Map Schematizer.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
CSC 395 – Software Engineering Lecture 15: Object-Oriented Design –or– Ask For Whom The Data Tolls.
Algorithm Programming Coding Advices Bar-Ilan University תשס " ו by Moshe Fresko.
Discussion examples Andrea Zhok.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
HL7 UK 2003 (c) Abies Ltd Modelling Clinical Information Using UML Tim Benson Abies Ltd
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Term 2 – Contemporary Relationships with Outdoor Environments.
Communication Skills Anyone can hear. It is virtually automatic. Listening is another matter. It takes skill, patience, practice and conscious effort.
Modelling information systems
E-Learning Material Applied Business Modelling. Business Patterns What are business patterns? Process interaction Practical process modelling Summary.
We Are All The Webmasters: New Models for Building a Library Website Christopher Stewart Sohair W. Elbaz Illinois Institute of Technology June 2002.
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
Software Architecture in Practice Architectural description (The reduced version)
Using error reports in SPI Tor Stålhane IDI / NTNU.
Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Some comments from AP Bio students the day after the AP Bio Exam 5/12/15 Q: What do you know now that you wish you’d known in September? What advice would.
Documentation. Your documentation must fit the needs of your audience. It’s always better to say one thing that is useful, as opposed to many things that.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
1 CS161 Introduction to Computer Science Topic #9.
Use Cases CS 6961 – Lecture 4 Nathan Dykman. Neumont UniversityCS Lecture 102 Administration Homework 1 is due –Still reviewing the proposal, but.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
MongoDB First Light. Mongo DB Basics Mongo is a document based NoSQL. –A document is just a JSON object. –A collection is just a (large) set of documents.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
HotCiv Project Starting up!. Henrik Bærbak Christensen2 HotCiv = Agile development Iterations of –product development –learning increments.
Marco Cattaneo, 26-Jan LHCb OO course  Format of course Current format Can we improve?  Some messages from the course Very selective What I still.
Question 7 Looking back at your preliminary task, what do you feel that you have learnt in the progression from it to the full product? BY PHOEBE FARRINGTON.
Refactoring and Integration Testing or Strategy, introduced reliably by TDD The power of automated tests.
Patterns are Roles What patterns are and what not…
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Software Architecture Quality Attributes. Good or Bad? Measurable criterions required...
Questioning as Formative Assessment: GRECC Math Alliance February 4 th - 7 th, 2008.
Messaging. Literature Hohpe & Woolf, 2004 –We will just scratch the surface Bærbak Christensen2.
CSHenrik Bærbak Christensen1 Flexibility and Maintainability And their metrics: coupling and cohesion.
WHAT GREAT TEACHERS DO DIFFERENTLY Part II. What is the main variable in the classroom? The TEACHER!! What if students do poorly? 1.Who does the best.
Hints - Mandatory 5 Blackbox Testing Pattern Hunting.
A service Oriented Architecture & Web Service Technology.
Introduction to UML.
Design Class Diagrams
Best Practices for Software System Design
Software Architecture Quality Attributes
Modelling Clinical Information Using UML
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Introduction When searching for a new mattress, you have to make sure you know where to go to find the best one. The mattress you sleep on is going to.
Review CSE116 2/21/2019 B.Ramamurthy.
Project Management How to access the power of projects!
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
What is a worldview? Lecture 2b
Software Engineering and Architecture
Presentation transcript:

Software Architecture in Practice A few notes on H1

Overall Good efforts and hard work on applying the techniques Lots of critique in the details ”Why do we fall, Master Wayne? – So we can learn to pick ourselves up.” –Alfred, in the Batman movie Bærbak Christensen2

”High Disregard of Originality!” Bærbak Christensen3 Home made notation for a package (and WRONG by the way)

Avoid Reinvented Wheels Bærbak Christensen4

UML Syntax means Something Does Spark-java really spawn a new thread for every request? –|| :object ||means a thread/process Bærbak Christensen5

UML Syntax The Syntax is there to mean something, not for the teacher to whack you over the head! Bærbak Christensen6 Broker depends on Client!

Devil in Detail Bærbak Christensen7 Method ‘command’ is called ‘command’ is called, but asynchroneous Method does not return, but makes a backcall asynchroneous So – authors have expressed complex sequencing? Or just been sloppy in their making of this diagram? Numbers? Undefined in Seq Diagrams

Naming! How can I find Magnus if you call him Pernille? Bærbak Christensen8 cs.saip.appserver?

Maps are for navigation Why call it Randers if it is Aarhus??? Bærbak Christensen9 Randers Århus

Noise! Keep Focus Document TM16. Not Broker! Bærbak Christensen10

Please contrast: Architecture – not implementation Bærbak Christensen11 Low level impl detail

Architecture is NOT… Architecture is abstraction Abstraction = Reality, irrelevant details removed! Abstraction ≠ Something completely different Bærbak Christensen12 Exercise: Why is this wrong?

Cross View Consistency Bærbak Christensen13 If called X in CC then why call it Y in Deploy view? How can I map between views? If called X in CC then why call it Y in Deploy view? How can I map between views?

Less is More Coarse grained map of everything – nice! Bærbak Christensen14

The Act of Balance Nice balance in abstraction… Bærbak Christensen15

What is Broker, anyway? In several hand-ins I object that Broker is not architectural Please disregard that statement! Broker greatly influence modifiability with respect to –Marshaling format –Choice of IPC Other IPC choices may again influence –Performance (?) + Availability (!) E.g. a MQ solution as IPC Conclusion: Broker influences architecture a lot! Bærbak Christensen16

But… Still, all the gory details of Broker is way too much implementation, and way too little architecture Bærbak Christensen17

Broker is a Connector I would view Broker pattern as a Connector Connector: Broker –Broker pattern implements remote method invocation –Using HTTP as IPC JSON as marshalling format Bærbak Christensen18

Responsibilities Generally you all do a fine job stating the responsibilities of the elements –Less so on relations And some forget all together –Shame on you Bærbak Christensen19 Ex: from POS

Concluding Remarks Architecture = Abstraction Question: What to abstract and what not? Architecture = decisions that influence QA –Builder does not really Implementation detail as HL7 format is fixed… Bærbak Christensen20

Concluding Remarks Documentation is generally –Not very sexy –Easily gets out-of-date –Done infinitely close to ‘never’ –Falls for the ‘criticized for incorrectness’ trap My best advice –Less is more I am more inclined to actually do it. Little is better than nothing –”Keep it abstract, but not too abstract” Avoids constant required modifications Bærbak Christensen21

Until next time H2 continues in the same report template. Thus – Adjust to my (hardest) comments in the next delivery Bærbak Christensen22