+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

Slides:



Advertisements
Similar presentations
Architecture Representation
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
By Philippe Kruchten Rational Software
Outline About author. The problem that discussed in the article.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
MVC Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 20:01:34 Informatics 122 Software Design II Lecture 1 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 Nick Lopez Duplication.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
© 2010 University of California, Irvine – André van der Hoek1June 22, 2015 – 23:08:13 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
+ Informatics 122 Software Design II Lecture 1 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Informatics 122 Software Design II Lecture 10 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
+ Informatics 122 Software Design II Lecture 6 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Architecture CS3300 Fall Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.
© 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58 Informatics 122 Software Design II Lecture 1 André van der Hoek.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
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.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 14.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
4+1 View Model of Software Architecture
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Software Design and Architecture Muhammad Nasir Software Architecture Documentation
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Informatics 121 Software Design I
Informatics 121 Software Design I
Tools of Software Development
Systems Analysis Overview.
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
4+1 View Model of Software Architecture
Informatics 121 Software Design I
4+1 View Model of Software Architecture
Informatics 121 Software Design I
Chapter 5 Architectural Design.
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
From Use Cases to Implementation
Presentation transcript:

+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. 1

+ Today’s Lecture Design in the Large 2

+ Focus of 122 [Application design] [Interaction design] [Architecture design] Implementation design Maintenance design 3

+ Application, Interaction, Architecture Design Describe what the software system should do “How do we fundamentally approach the problem?” “What is desirable?” Identifying stakeholders and goals Defining how your system will meet these goals at a high level Creative thinking, incomplete specifications 4

+ Purpose of Implementation Design An implementation design is a road map An implementation design describes a path from application / interaction / architecture design to the product An implementation design describes what the implementers should do An implementation design is a guide towards future change 5

+ Maintenance Design Design Recovery How do we understand the design as it exists in the code and documentation? Design Patterns How can we improve simple aspects of the existing design with known “solutions” Reuse How can we leverage what is “out there” in our design? 6

+ The “Big Picture” In the sense of: 1. New perspective on some major topics 2. The impact of these issues on “big” projects 7

+ Two Key Issues in Design-in-the- Large Unified Design Vision Representations 8

+ Unified Design Vision 9

+ Unified Design Vision: Tough! How easy was it to understand SimSE? How did you attempt a unified design vision among your group? How was a lack of a unified design vision evident in your group? 10

+ Unified Design Vision Design is more than UML I hope it’s been obvious from the first assignment However, it does help… In reality, a lot is using conventions, standards, etc. The way we design “here” And lots of interaction, coordination, and communication And lots of reuse Frameworks Libraries Components 11

+ Unified Design Vision New challenges, however, make it more difficult Very large scale systems Long lived systems Global software development 12

+ Very Large Scale Systems Systems of systems Examples: defense systems, financial trading, healthcare, government systems, energy distribution Traditional approaches to software engineering are no longer adequate How can we reduce the complexity of the unified vision? Architectural styles The cornerstone of the vision is something we all know works and is simple Architecture description languages To provide higher level views Component-based design, service-oriented architectures To partition the system and set boundaries We can also reuse large scale design and architecture 13

+ Long-lived Systems How can we guarantee our vision stands the test of time? Process enforcement and the IDE Tracking issues, lots of reviews, automated code analysis, emergent design, etc. How can we deal with turnover? More documentation, better documentation? Training is key! 14

+ Global Software Development How can we guarantee the vision is shared by different groups? How does communication and coordination occur in distributed environments? GSD is a hot topic for research and a challenge in the real world Supporting with processes and tools Improving awareness in IDEs 15

+ Representations How do we represent our system? One or many views? One or many notations? What do they abstract? / What do they emphasize? 16

+ Architecture (Buildings) 17

+ Single Representation Using one single representation of the system serves all purposes shared by everyone But how can we guarantee interpretations are the same? No chance for inconsistency Agile approach: code is design Recording decisions Communication Does it scale? 18

+ Multiple Views Some facts… “The code is the truth but not the whole truth” [Booch] UML is only good for “low-level design” Traditional architecture diagrams (boxes and arrows) focus only on high-level functionality 19

+ Multiple Views One possible answer Views [Philippe Kruchten] 20

+ Multiple Views Still leaves many questions What level of abstraction is right? Takes longer to get to coding; will more change? How do we maintain them over time? There are many challenges Translating between different views Keeping consistency between different levels of abstraction Guaranteeing they are usable May require Language translation Additional design decisions Lots and lots of consistency checking! 21

+ More Approaches to Supporting Design-in-the-Large Design rationale Architectural styles Enterprise frameworks Product lines 22

+ Design Rationale Listing of decisions made during a design process, along with reasons why they were made other alternatives considered tradeoffs that were evaluated any other relevant information Purpose: to keep a record of this knowledge and communicate it to others Tools exist for managing design rationale In software engineering as well as other disciplines 23

+ Architectural Styles Provide “a vocabulary of components and connectors, with constraints on how they can be defined [Shaw, Garlan]” a common language with which to describe classes of systems Peer-to-peer Pipe and filter Client-server C2 REST … 24

+ Enterprise Frameworks 25

+ Software Product Lines Can we use lessons from mass production of physical goods in software? How can we produce software with minimum (human) effort? 26

+ Wrapping Up Maintaining a unified vision of design requires lots of support! Multiple views will be necessary (unless you’re “agile”) 27

+ Bottom Line There’s more to software design than we can show you firsthand Senior project’s a start Once you get “out there” you’ll see it more clearly 28

+ Next Time Reuse Presentations 29