CPSC 875 John D. McGregor Wrap-up. Model-driven development (MDD) Model-driven development refers to a development approach that focuses on models as.

Slides:



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

CPSC 875 John D. McGregor C17 – Tool Chains. Workflow engine Uses grid.
By Philippe Kruchten Rational Software
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
CPSC 875 John D. McGregor C22 - Misc. CAD/CAM - NC 1&_cdi=5695&_user=590719&_pii=S &_origin=gateway&_coverDate=07%2F31%2F2004&_sk=
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Model-Driven User Requirements Specification using SysML Authors: Michel dos Santos Soares, Jos Vrancken Source: Journal of Software(JSW), Vol. 3, No.
Chapter 10 Architectural Design
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
CPSC 372 John D. McGregor Module 3 Session 2 Architecture Analysis/Design.
CPSC 871 John D. McGregor Module 4 Session 3 Architecture Evaluation.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
OOAD Using UML, v. 3.0 Architectural Design, p. 1 Copyright © 1997 by Rational Software Corporation R Architectural Design.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Design Concepts By Deepika Chaudhary.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
John D. McGregor Class 4 – Initial decomposition
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 آزمايشگاه سيستم های هوشمند ( معماری سيستمهای با مقياس بزرگ آزمايشگاه سيستمهای هوشمند پاييز 93.
CSC480 Software Engineering Lecture 10 September 25, 2002.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
John D. McGregor Architecture Evaluation
Capturing Requirements. Questions to Ask about Requirements 1)Are the requirements correct? 2)Consistent? 3)Unambiguous? 4)Complete? 5)Feasible? 6)Relevant?
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
CPSC 875 John D. McGregor C18 – Code generation.
CPSC 872 John D. McGregor Session 31 This is it..
CPSC 875 John D. McGregor Design Concept C5. ALISA
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
John D. McGregor Module 3 Session 2 Architecture Analysis/Design
UML Diagrams By Daniel Damaris Novarianto S..
SOFTWARE DESIGN AND ARCHITECTURE
System Design.
UML Diagrams Jung Woo.
John D. McGregor Quality attributes
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
John D. McGregor Design Concept C5
What is an Architecture?
Software Architecture
Design Yaodong Bi.
Chapter 6: Architectural Design
John D. McGregor Quality attributes
Presentation transcript:

CPSC 875 John D. McGregor Wrap-up

Model-driven development (MDD) Model-driven development refers to a development approach that focuses on models as the basic elements from which products are built. When a change is required it is the model that is changed not the detailed source code.

Tool chain MDD involves a sequence of tools that transform information from one form to another. This involves two types of languages: – Primary modeling languages – SysML and UML – Transformation languages such as Xtext and Xpand

Requirements management A database of requirements statements is developed in Word or Excel or DOORS There is a standard format for each requirement statement such as: – Id (standard form such as L1-00n) – Statement – Attributes such as “priority” These requirements are imported into a Topcased model

Requirements management - 2 The set of requirements that are imported are referred to as the upstream requirements. The new requirements we will model are the “current” or “downstream” requirements. The downstream requirements are derived from the upstream requirements and made more specific in the process. In the DoD this is named L1 and L2 respectively.

Requirements management - 3 An upstream requirement can be dragged into the current requirement list. There is a link attribute that points back to the upstream requirement. The new L2_infotainmentModel_ requirement is linked to L Note that in the upstream L1-003 is italicized.

Requirements management - 4 Instead of dragging into the bottom box you could drag into a requirements diagram. You now have a traceable set of requirements so that changes can be rippled back up the hierarchy. DoD projects will derive L3 and L4 level requirements, each becoming more specific

Documentation generation DocGen2 is a tool that takes a templated Word file and a Topcased model as input and produces a Word file as output. The template in the Word file is defined using the Acceleo language – an Eclipse project.

Configuring the document Then context clauses are used to direct the tool: – Bundles are libraries of routines that will be called later – searchMetamodels indicates if multiple meta-models are used

Setup The pair encompasses all processing. Actors [for (p.ownedElement->filter(Actor)->sortedBy(name))] [self.name/] [/for] Becomes Actors Installer Mechanic driver driver

Template

Processing Right click on the templated Word file and select “Generate Document” The Acceleo generator produces the new Word document infoUses.docx

Producing

Left hand turn

Getting the code

DSL Grammar grammar org.xtext.example.HelloLanguage.MyDsl with org.eclipse.xtext.common.Terminals generate myDsl " Messages: (messages+=Message)*; Message: HelloWorld|HappyFourthOfJuly; HelloWorld returns HelloWorld: 'Hello_World' name=STRING; HappyFourthOfJuly: 'Happy_Fourth_Of_July' name=STRING;

Sample program Hello_World "John" Hello_World "Reed" Happy_Fourth_Of_July "Jim" Happy_Fourth_Of_July "Jill"

Main.xpt «IMPORT myDsl» «DEFINE main FOR Messages-» «EXPAND Template::main FOREACH (this.types.typeselect(HappyFourthOfJuly))» «EXPAND DAO::dao FOREACH (this.types.typeselect(HappyFourthOfJuly))» «EXPAND Template::main FOREACH (this.types.typeselect(HelloWorld))» «EXPAND DAO::dao FOREACH (this.types.typeselect(HelloWorld))» «ENDDEFINE»

HappyFourthofJuly.xpt «IMPORT myDsl» «DEFINE main FOR HappyFourthOfJuly» «FILE "Greeting_"+name+".java"» public class «"Greeting_"+name» { public static void main(String[] args) { System.out.println("«"Happy Fourth of July "+ name»"); } «ENDFILE-» «ENDDEFINE»

*.java public class Greeting_Jill { public static void main(String[] args) { System.out.println("Happy Fourth of July Jill"); }

Right hand turn

Using what you have learned You show up for a new project as the lead of the architecture team What do you do? – Requirements – Constraints – Work the process

Requirements Functional – What the system must do – What the system should do Non-functional – Sets required levels of quality attributes Prioritize

Constraints Time – Results mean code Culture – Agile or process heavy Training/experience – Who do you have to work with Your team

Quality IEEE Std subfactors: Efficiency Portability Time economy Hardware independence Resource economy Software independence Functionality Installability Completeness Reusability Correctness Reliability Security Non-deficiency Compatibility Error tolerance Interoperability Availability Maintainability Usability Correctability Understandability Expandability Ease of learning Testability Operability Comunicativeness ies

Factors What do we measure?

Steps

Module structures Decompose – module into sub modules. Pieces related to the whole Uses – one module expects another to be present Layered – decomposition in which there is an ordering Class – specialization relationships module decompositionclass uses layered

Component and Connector Client/server – multiple modules go to a common module for the same action Concurrency – logical threads Process – actual threads/ processes of the system Shared Data – how is data stored and accessed Component and Connector Client/server Shared data process concurrency

Allocation structures work assignment– module assigned to a team deployment – which processor has which threads implementation – where in CM are the files for this module allocation Work assignment implementation deployment

Ocarina Petri net shows complexity This representation supports simulation

Pipe and Filter DSM

Conceptual Flow of ATAM Analysis Architectural Decisions Scenarios Quality Attributes Architectural Approaches Business Drivers Software Architecture Risks Sensitivity Points Tradeoffs Non-Risks impacts Risk Themes distilled into

Mirroring The architecture of a software product will closely resemble the architecture of the organization that built it. So, structure the organization the way you want the product to look For example, using an SOA design? Services should be written by small disconnected groups.

The Premise Simple architectures have conceptual integrity Architectures that are simple are better than those that are more complex A process of continuous architectural refactoring helps to converge a system to its practical and optimal simplicity Next few slides are from Grady Booch

Attending to Simplicity The fundamentals – Define crisp abstractions – Employ a good separation of concerns – Have a balanced distribution of responsibilities Insofar as a system embraces these fundamentals, it is simple; when and where it strains these fundamentals, it is complex

From Complexity to Simplicity Complexity masks the essential elements of a system Insofar as we have to expend energy to brush away the surrounding crud that obscures that essence, we’ve lost something in the message and we’ve hidden the Underlying purpose Uniqueness Elegance Beauty

On Architectural Failure Sometimes, systems fail because their architects have chosen a fundamentally wrong architecture Most of the time, projects – Die the death of a thousand cuts – Are nibbled to death by ducks

On Architectural Failure A thousand cuts – Collapse happens because of the accumulated weight of well-intentioned and reasonable local decisions that assemble over time at the expense of global optimization and simplicity Nibble to death by ducks – You rarely see the end coming, until some factor pushes your fragile, complex system over the edge into collapse

Architects have to be ever vigilant