<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=RUP_%26_MDD</id>
	<title>RUP &amp; MDD - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=RUP_%26_MDD"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=RUP_%26_MDD&amp;action=history"/>
	<updated>2026-04-12T21:27:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=RUP_%26_MDD&amp;diff=43908&amp;oldid=prev</id>
		<title>Filip Stachecki at 13:29, 11 October 2016</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=RUP_%26_MDD&amp;diff=43908&amp;oldid=prev"/>
		<updated>2016-10-11T13:29:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:UML|099]]&lt;br /&gt;
[[Category:private]]&lt;br /&gt;
&lt;br /&gt;
==Rational Unified Process⌘==&lt;br /&gt;
*The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation&lt;br /&gt;
* RUP is a &amp;#039;&amp;#039;&amp;#039;process framework&amp;#039;&amp;#039;&amp;#039;, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs.&lt;br /&gt;
===Project life-cycle⌘===&lt;br /&gt;
[[File:Development-iterative.png]]&lt;br /&gt;
&lt;br /&gt;
===Four project life-cycle phases⌘===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Inception phase&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** establishing business case (business context, success factors like expected revenue, market recognition, etc., and financial forecast&lt;br /&gt;
** a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Elaboration phase&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** mitigating the key risk items identified by analysis, creating basic architecture of the project &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Construction phase&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** building the software system&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Transition phase&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** transiting the system from development into production, making it available to and understood by the end user&lt;br /&gt;
&lt;br /&gt;
==Model Driven Development⌘==&lt;br /&gt;
===References⌘===&lt;br /&gt;
* IBM Software Group, The Value of Modeling&lt;br /&gt;
* Joshua M. Epstein, Why Model? &lt;br /&gt;
* Business Modeling: A Practical Guide to Realizing Business Value David Bridgeland and Ron Zahavi - MK/OMG Press, 2008. &lt;br /&gt;
* Rebecca Wirfs-Brock, Why Domain Modeling, blog posting, Feb 2013&lt;br /&gt;
* Mike Burner, Modeling for Software Development and Operations, https://msdn.microsoft.com/en-us/library/ms954611.aspx&lt;br /&gt;
&lt;br /&gt;
===The Value of Modeling⌘===&lt;br /&gt;
by Gary Cernosek, Eric Naiburg IBM Software Group&lt;br /&gt;
====When do I model?⌘====&lt;br /&gt;
Modeling complex applications has several general benefits:&lt;br /&gt;
*To better understand the business or engineering situation at hand (“as-is” model) and to create a better system (“to-be” model)&lt;br /&gt;
* To build and design a system architecture&lt;br /&gt;
* To create visualizations of code and other forms of implementation&lt;br /&gt;
&lt;br /&gt;
====When don&amp;#039;t I model?⌘====&lt;br /&gt;
Simple things do not necessarily need a model preceding its construction&lt;br /&gt;
* The problem domain is well known.&lt;br /&gt;
* The solution is relatively easy to construct.&lt;br /&gt;
* Very few people need to collaborate to build or use the solution (often only one).&lt;br /&gt;
* The solution requires minimal ongoing maintenance.&lt;br /&gt;
* The scope of future needs is unlikely to grow substantially.&lt;br /&gt;
====Why model software?⌘====&lt;br /&gt;
By modeling software, developers can:&lt;br /&gt;
* Create and communicate software designs before committing additional resources&lt;br /&gt;
* Trace the design back to the requirements, helping to ensure that they are building the right system&lt;br /&gt;
* Practice iterative development, in which models and other higher levels of abstraction facilitate quick and frequent changes&lt;br /&gt;
&lt;br /&gt;
Unambiguous models produced by domain experts will greatly reduce information loss in the requirements gathering process. Industry-specific models will &amp;#039;&amp;#039;&amp;#039;reduce the risk of inconsistent or improper implementations&amp;#039;&amp;#039;&amp;#039;, improving interoperability across diverse platforms.&lt;br /&gt;
&lt;br /&gt;
====How do I model?⌘====&lt;br /&gt;
* Adopting a standard notation such as UML is an important step in taking a model-driven approach to software development.&lt;br /&gt;
* UML is more than just a graphical notational standard—it is a modeling language.&lt;br /&gt;
* UML defines syntax (both graphical and textual, in this case) and semantics (the underlying meanings of the symbols and text).&lt;br /&gt;
====Abstraction⌘====&lt;br /&gt;
[[File:ClipCapIt-150826-090934.PNG]]&amp;lt;br/&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;source: IBM Software Group, The Value of Modeling, Figure 1. A spectrum of times, places and ways to model.&amp;lt;/small&amp;gt;&lt;br /&gt;
* Abstraction selectively exposes certain information while suppressing details deemed unnecessary or unwanted&lt;br /&gt;
* Abstraction is the essence of modeling and any visualization of code is indeed an abstraction.&lt;br /&gt;
&lt;br /&gt;
====MDA. The next step.⌘==== &lt;br /&gt;
* Model-Driven Architecture (MDA) can be considered the next logical step in the evolution of modeling and model-driven development technologies.&lt;br /&gt;
* MDA, based on UML and other related standards, focuses on defining models at varying levels of abstraction and on the transformations defined between these different levels.&lt;br /&gt;
&lt;br /&gt;
===Domain Model⌘===&lt;br /&gt;
by Rebecca Wirfs-Brock, Why Domain Modeling, blog posting, Feb 2013&lt;br /&gt;
&lt;br /&gt;
[[File:ClipCapIt-140625-111749.PNG]]&lt;br /&gt;
* Domain Model is a conceptual model of the domain that incorporates both behavior and data (source: wikipedia)&lt;br /&gt;
* Domain Modeling allows to make &amp;#039;&amp;#039;&amp;#039;explicit&amp;#039;&amp;#039;&amp;#039; the &amp;#039;&amp;#039;&amp;#039;connections&amp;#039;&amp;#039;&amp;#039; between the business problem and your code.&lt;br /&gt;
* It helps to embed domain knowledge in your working solution, and gives a deep shared understanding of the problem domain along with your code.&lt;br /&gt;
&lt;br /&gt;
===Creating a Good Model⌘===&lt;br /&gt;
by David Bridgeland and Ron Zahavi, Business Modeling: A Practical Guide to Realizing Business Value&lt;br /&gt;
* Not every model should be built. &lt;br /&gt;
* Sometimes the costs of creating and using a model are greater than the benefits that are gained from its use (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;model value destruction&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* Creating/using a model always takes time: &lt;br /&gt;
** time interacting with the subject matter experts, &lt;br /&gt;
** time spent constructing the model with modeling tools, and making the model simpler&lt;br /&gt;
** time spent finding and fixing problems with the model, &lt;br /&gt;
** and time spent verifying a model with subject matter experts. &lt;br /&gt;
** time spent analyzing the model for business implications, &lt;br /&gt;
** time spent explaining the model to others, &lt;br /&gt;
** time spent maintaining the model when things change, and so on.&lt;br /&gt;
&lt;br /&gt;
The decision about whether to create a model is ultimately an economic decision: Are we going to deliver more value using this model than we will spend creating/using/maintaining it?&lt;br /&gt;
====Model Value Analysis⌘====&lt;br /&gt;
* For small models, that can be built in an hour or four, we typically make a quick informal analysis (Do we expect to realize enough benefits to offset the time and trouble of creating the model?)&lt;br /&gt;
* Simple and useful model has value.&lt;br /&gt;
* More formal analysis - &amp;#039;&amp;#039;&amp;#039;model value analysis&amp;#039;&amp;#039;&amp;#039; - a summary of the expected costs and the expected benefits, and a comparison of the two.&lt;br /&gt;
:[[File:ClipCapIt-140901-155631.PNG]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Spend 1% of the total anticipated modeling time on the model value analysis, to decide whether the other 99% makes economic sense.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===4+1 UML Perspectives⌘===&lt;br /&gt;
[[File:ClipCapIt-151017-121524.PNG]]&lt;/div&gt;</summary>
		<author><name>Filip Stachecki</name></author>
	</entry>
</feed>