SlideShare una empresa de Scribd logo
1 de 19
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

Más contenido relacionado

La actualidad más candente

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 BeholderMichele 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 Oct2006tcab22
 
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 IntroductionTonny 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 ProgrammingAhmed Elnemr
 

La actualidad más candente (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 a Agile Modeling with Uml and Visual Studio 2010

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 AnalysisLaura Torres
 
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_1Mark Gaad
 
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.pptssuser2ef938
 
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 2010Gary 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 ArchitecturesESUG
 
Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: ModelsDavid Millard
 
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 architecturesRob 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 a 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
 

Último

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

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

Notas del editor

  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