SlideShare a Scribd company logo
Agile Modeling with UML and Visual Studio 2010 Ogren Paunović ogrenpaunovic[at]gmail.com www.printecgroup.com
Q: Why is writing correct software so difficult?? COMPLEXITY! Modern software is reaching levels of complexity encountered in biological systems; sometimes comprising systems of systems each of which may include tens of millions of lines of code …any one of which may bring down the entire system at great expense
Complexity Essential complexity inherent to the problem cannot be eliminated by technology or technique e.g., solving the traveling salesman problem Accidental complexity due to technology or methods used to solve the problem e.g., building a skyscraper using hand tools only Modern software development suffers from an excess of accidental complexity
A Bit of Modern Software… SC_MODULE(producer) { sc_outmaster<int> out1; sc_in<bool> start; // kick-start void generate_data () { for(int i =0; i <10; i++) { out1 =i ; //to invoke slave;} } SC_CTOR(producer) { SC_METHOD(generate_data); sensitive << start;}}; SC_MODULE(consumer) { sc_inslave<int> in1; int sum; // state variable void accumulate (){ sum += in1; cout << “Sum = “ << sum << endl;} SC_CTOR(consumer) { SC_SLAVE(accumulate, in1); sum = 0; // initialize }; SC_MODULE(top) // container { producer *A1; consumer *B1; sc_link_mp<int> link1; SC_CTOR(top) { A1 = new producer(“A1”); A1.out1(link1); B1 = new consumer(“B1”); B1.in1(link1);}}; Can you see the architecture?! ©BrankoSelić
...and its model
Abstraction, tool for complexity Abstraction is the process or result of generalization by reducing the information content of an observable phenomenon, typically to retain only information which is relevant for a particular purpose. Every system can be described with more than one abstraction, depending on a purpose. Progressive abstractions is way  of building new abstractions on top of existing ones. Represented through models Usually, one model is not enough Models can be expressed in different notations
Unified Modeling Language Standardized general-purpose modeling language in the field of software engineering. ~150 known notations before UML Models structure and behavior Vide exploitation range (construction, communication, documentation, implementation) UML encapsulates almost all possible elements in software development Why use UML among other notations? It’s the least bad
Agile development Iterative and incremental (evolutionary) development based on frequent inspection and adaption through self-organizing cross-functional teams. Lightweight Different implementations (RUP, Scrum, XP, Crystal…)
Agile + UML? “What UML has to do with Agile? Wasn’t the whole point to cut out the ballast?” Modeling and UML are (funda)mental tools in overriding complexity! By just being agile, we are not overriding the complexity, we are ignoring it and suffering it. Agile manifesto doesn’t specify how any of mentioned goals should be achieved and it certainly doesn’t specify to get rid of the models (even some documentation)
Agile modeling (Scott Ambler)
So, what’s the catch? Having a model without automated relation to end result (functional software) has a cost and someone must explicitly choose to make that investment. Executable models should be considered as standard part of development environment, for others, the benefit of having models (and documentation) must be greater than the cost of creating and maintaining it.
Lifecycle of an agile model Models become permanent when they are stable, clear and provide value (to audience or through code) It is very useful to have modeling tools that support “offline” models that are not in direct relationship with the code all the time.
Models vs. Languages Level of abstraction Human  understanding Modeling languages Programming languages Implementation  details
Executable models  Instead of abstract diagrams an executable model is a working prototype It encourages focus on user needs, not technical design considerations Transformation from platform independent to platform specific model UML Profiles as extension mechanism for customizing models for particular domains and platforms At the end we still have to write code
Static models (documents) The fundamental issue should be communication, not documentation Write it only if that's the best way to achieve the relevant goals Should be concise: overviews/roadmaps are generally preferred over details Developers rarely trust static models Create it only when you need it at the appropriate point in the lifecycle Update only when it hurts.
Visual Studio 2010 and UML Microsoft has become OMG member Focus on: Understanding the code, maintaining the control and understanding the domain New project type – Modeling project (VS 2010 Ultimate + VS 2010 SDK + VS 2010 Visualization & Modeling SDK) Model data are not related to diagrams anymore, but stored in model repository related to modeling project Model explorer instead of files Support for code generation through standard extensibility mechanism - UML profiles (T4 based generator) Feature Pack
Demo: UML in Visual Studio 2010
Q&A
Useful links http://www.agilemodeling.com/ http://blogs.msdn.com/camerons/ http://blogs.msdn.com/jennifer/default.aspx http://www.olegsych.com/articles/ http://blogs.msdn.com/timfis/default.aspx

More Related Content

What's hot

Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2elliando dias
 
Beauty is in the Eye of the Beholder
Beauty is in the Eye of the BeholderBeauty is in the Eye of the Beholder
Beauty is in the Eye of the Beholder
Michele Lanza
 
Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006
tcab22
 
Proposal
ProposalProposal
Proposaliampree
 
Aljaz Jelen_CV_LinkedIn
Aljaz Jelen_CV_LinkedInAljaz Jelen_CV_LinkedIn
Aljaz Jelen_CV_LinkedInAljaz Jelen
 
Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610melbournepatterns
 
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
Tonny Madsen
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Tonny Madsen
 
Into To Solve Problem And Computer Programming
Into To Solve Problem And Computer ProgrammingInto To Solve Problem And Computer Programming
Into To Solve Problem And Computer Programming
Ahmed Elnemr
 
Pairing with People
Pairing with PeoplePairing with People
Pairing with People
Jeremiah Landi
 

What's hot (10)

Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2
 
Beauty is in the Eye of the Beholder
Beauty is in the Eye of the BeholderBeauty is in the Eye of the Beholder
Beauty is in the Eye of the Beholder
 
Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006
 
Proposal
ProposalProposal
Proposal
 
Aljaz Jelen_CV_LinkedIn
Aljaz Jelen_CV_LinkedInAljaz Jelen_CV_LinkedIn
Aljaz Jelen_CV_LinkedIn
 
Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610
 
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
 
Into To Solve Problem And Computer Programming
Into To Solve Problem And Computer ProgrammingInto To Solve Problem And Computer Programming
Into To Solve Problem And Computer Programming
 
Pairing with People
Pairing with PeoplePairing with People
Pairing with People
 

Similar to Agile Modeling with Uml and Visual Studio 2010

ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
KalsoomTahir2
 
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Jean Vanderdonckt
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
Laura Torres
 
Bai giang-uml-14jan14
Bai giang-uml-14jan14Bai giang-uml-14jan14
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Jordi Cabot
 
Learning uml 2_part_1
Learning uml 2_part_1Learning uml 2_part_1
Learning uml 2_part_1
Mark Gaad
 
MDA
MDAMDA
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)swethadln
 
Book of Uml
Book of UmlBook of Uml
Book of UmlNiit
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
ssuser2ef938
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
Gary Pedretti
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
 
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesSmalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
ESUG
 
Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: Models
David Millard
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
landergustavo
 
Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)
Marwa Ali Eissa
 
Smalltalk in large scale enterprise architectures
Smalltalk in large scale enterprise architecturesSmalltalk in large scale enterprise architectures
Smalltalk in large scale enterprise architectures
Rob Vens
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementationthe_wumberlog
 

Similar to Agile Modeling with Uml and Visual Studio 2010 (20)

ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
 
Bai giang-uml-14jan14
Bai giang-uml-14jan14Bai giang-uml-14jan14
Bai giang-uml-14jan14
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
 
Learning uml 2_part_1
Learning uml 2_part_1Learning uml 2_part_1
Learning uml 2_part_1
 
MDA
MDAMDA
MDA
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)
 
Book of Uml
Book of UmlBook of Uml
Book of Uml
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesSmalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
 
Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: Models
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)
 
Ptc Uml2 Workshop
Ptc Uml2 WorkshopPtc Uml2 Workshop
Ptc Uml2 Workshop
 
Ooad with uml
Ooad with umlOoad with uml
Ooad with uml
 
Smalltalk in large scale enterprise architectures
Smalltalk in large scale enterprise architecturesSmalltalk in large scale enterprise architectures
Smalltalk in large scale enterprise architectures
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 

Recently uploaded (20)

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 

Agile Modeling with Uml and Visual Studio 2010

  • 1. Agile Modeling with UML and Visual Studio 2010 Ogren Paunović ogrenpaunovic[at]gmail.com www.printecgroup.com
  • 2. Q: Why is writing correct software so difficult?? COMPLEXITY! Modern software is reaching levels of complexity encountered in biological systems; sometimes comprising systems of systems each of which may include tens of millions of lines of code …any one of which may bring down the entire system at great expense
  • 3. Complexity Essential complexity inherent to the problem cannot be eliminated by technology or technique e.g., solving the traveling salesman problem Accidental complexity due to technology or methods used to solve the problem e.g., building a skyscraper using hand tools only Modern software development suffers from an excess of accidental complexity
  • 4. A Bit of Modern Software… SC_MODULE(producer) { sc_outmaster<int> out1; sc_in<bool> start; // kick-start void generate_data () { for(int i =0; i <10; i++) { out1 =i ; //to invoke slave;} } SC_CTOR(producer) { SC_METHOD(generate_data); sensitive << start;}}; SC_MODULE(consumer) { sc_inslave<int> in1; int sum; // state variable void accumulate (){ sum += in1; cout << “Sum = “ << sum << endl;} SC_CTOR(consumer) { SC_SLAVE(accumulate, in1); sum = 0; // initialize }; SC_MODULE(top) // container { producer *A1; consumer *B1; sc_link_mp<int> link1; SC_CTOR(top) { A1 = new producer(“A1”); A1.out1(link1); B1 = new consumer(“B1”); B1.in1(link1);}}; Can you see the architecture?! ©BrankoSelić
  • 6. Abstraction, tool for complexity Abstraction is the process or result of generalization by reducing the information content of an observable phenomenon, typically to retain only information which is relevant for a particular purpose. Every system can be described with more than one abstraction, depending on a purpose. Progressive abstractions is way of building new abstractions on top of existing ones. Represented through models Usually, one model is not enough Models can be expressed in different notations
  • 7. Unified Modeling Language Standardized general-purpose modeling language in the field of software engineering. ~150 known notations before UML Models structure and behavior Vide exploitation range (construction, communication, documentation, implementation) UML encapsulates almost all possible elements in software development Why use UML among other notations? It’s the least bad
  • 8. Agile development Iterative and incremental (evolutionary) development based on frequent inspection and adaption through self-organizing cross-functional teams. Lightweight Different implementations (RUP, Scrum, XP, Crystal…)
  • 9. Agile + UML? “What UML has to do with Agile? Wasn’t the whole point to cut out the ballast?” Modeling and UML are (funda)mental tools in overriding complexity! By just being agile, we are not overriding the complexity, we are ignoring it and suffering it. Agile manifesto doesn’t specify how any of mentioned goals should be achieved and it certainly doesn’t specify to get rid of the models (even some documentation)
  • 11. So, what’s the catch? Having a model without automated relation to end result (functional software) has a cost and someone must explicitly choose to make that investment. Executable models should be considered as standard part of development environment, for others, the benefit of having models (and documentation) must be greater than the cost of creating and maintaining it.
  • 12. Lifecycle of an agile model Models become permanent when they are stable, clear and provide value (to audience or through code) It is very useful to have modeling tools that support “offline” models that are not in direct relationship with the code all the time.
  • 13. Models vs. Languages Level of abstraction Human understanding Modeling languages Programming languages Implementation details
  • 14. Executable models Instead of abstract diagrams an executable model is a working prototype It encourages focus on user needs, not technical design considerations Transformation from platform independent to platform specific model UML Profiles as extension mechanism for customizing models for particular domains and platforms At the end we still have to write code
  • 15. Static models (documents) The fundamental issue should be communication, not documentation Write it only if that's the best way to achieve the relevant goals Should be concise: overviews/roadmaps are generally preferred over details Developers rarely trust static models Create it only when you need it at the appropriate point in the lifecycle Update only when it hurts.
  • 16. Visual Studio 2010 and UML Microsoft has become OMG member Focus on: Understanding the code, maintaining the control and understanding the domain New project type – Modeling project (VS 2010 Ultimate + VS 2010 SDK + VS 2010 Visualization & Modeling SDK) Model data are not related to diagrams anymore, but stored in model repository related to modeling project Model explorer instead of files Support for code generation through standard extensibility mechanism - UML profiles (T4 based generator) Feature Pack
  • 17. Demo: UML in Visual Studio 2010
  • 18. Q&A
  • 19. Useful links http://www.agilemodeling.com/ http://blogs.msdn.com/camerons/ http://blogs.msdn.com/jennifer/default.aspx http://www.olegsych.com/articles/ http://blogs.msdn.com/timfis/default.aspx

Editor's Notes

  1. Lightweight - Only measure of a result is working software.Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planDifferent implementations do not exists as attempts to promote different approach, but when talking about selecting development methodology - there is no silver bullet. It depends on project type, team members, environment.
  2. Agile approach and modeling are two totally independent questions that do not exclude each other!RUP even proposes which documents should be created in which development phase (architectural model)
  3. UML Profile is a collection of stereotypes that can be applied to individual model elements. Each stereotype defines a set of attributes that extend definition of the model element it is applied to At the end we still have to write code, since there aren’t any modeling languages capable of abstracting all details and related generators to generate efficient and correct code.
  4. Visual Studio includes C# Profile that can be used to extend UML classes with attributes specific to C#.T4 - Text Template Transformation Toolkit