UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory UML Weekend Crash Course™ - To Parent Directory

crnarupa.singidunum.ac.rs
from crnarupa.singidunum.ac.rs More from this publisher
01.01.2015 Views

Session 2—UML and Development Methodologies 21 Programmers work extremely well together. In every shop I’ve worked in for over 20 years, programmers tend to be extremely individualistic and resist input from other programmers. I’ve mediated too many fights to be overly optimistic in this area. Experienced programmers work with new team members to maintain the system (“Maintenance is the normal state of XP,” says Kent Beck). In every shop I know, the experienced people move on to new projects and the new folks get stuck with the maintenance. It’s almost like a rite of passage. Plus, in XP there is no documentation other than in-line comments (that is, no overview documentation about how the design works or how the system fits together), which makes it extremely difficult to know how to modify a system. Design is a skill that is common to every coder. Not so. Many programmers have no concept of what good design is. Much of their coding is intuitive or simply “how they learned to do it.” Resources The single best resource I’ve found to track down the various methodologies is www.cetus links.org. On the first page of this site, you will find a link to OOAD Methodologies. Click on it and you will be sent to a page with links to more than 50 different methodologies, lists of books, articles, conferences, and organizations worldwide. REVIEW A methodology is made up of a predefined process, a vocabulary used to describe the process and the work products, and a set of rules and guidelines that help define the quality of the process and the work products. The UML specifies only the vocabulary, the notation that describes the artifacts of the process. Each methodology decides if and how to apply the UML notation. This session presented four leading methodologies that illustrate the diversity and commonality of the current techniques available for software development. The Rational Unified Process (RUP) provides a comprehensive plan for the activities and the artifacts required to complete the development process. The approach strongly emphasizes iterative and incremental development. The RUP is best suited for large projects. The Shlaer-Mellor Method emphasizes tight integration and simulation to verify the accuracy of the product throughout development. The Shlaer-Mellor Method is best suited for real-time systems. The CRC method emphasizes simplicity and role-playing to work out the class-level requirements for the design of the system. The CRC method is best suited for helping people learn about objects and object-oriented design. Extreme Programming (XP) attempts to address many of the personal issues involved in team dynamics and to create the most positive work environment for both programmers and clients alike. It emphasizes continuous testing, consistent standards, and a lot of communication throughout the process. XP tends to be best suited for small, fast-moving projects with high management and client support.

22 Friday Evening Each methodology has strengths and weaknesses. Choosing a method requires understanding your own environment and matching those strengths and weaknesses to your specific needs. QUIZ YOURSELF 1. What are the three key elements of a methodology (See Session introduction.) 2. What are the two hallmarks of the RUP (See “The Rational Unified Process.”) 3. Name the predominant strength of the Shlaer-Mellor methodology. (See “Shlaer- Mellor Method.”) 4. What are the three key concepts that define the CRC methodology (See “CRC.”) 5. Name the three driving factors behind the success of the XP approach. (See “Extreme Programming.”)

Session 2—<strong>UML</strong> and Development Methodologies 21<br />

Programmers work extremely well together. In every shop I’ve worked in for over 20<br />

years, programmers tend to be extremely individualistic and resist input from other<br />

programmers. I’ve mediated too many fights to be overly optimistic in this area.<br />

Experienced programmers work with new team members to maintain the system<br />

(“Maintenance is the normal state of XP,” says Kent Beck). In every shop I know,<br />

the experienced people move on to new projects and the new folks get stuck with<br />

the maintenance. It’s almost like a rite of passage. Plus, in XP there is no documentation<br />

other than in-line comments (that is, no overview documentation<br />

about how the design works or how the system fits together), which makes it<br />

extremely difficult to know how to modify a system.<br />

Design is a skill that is common to every coder. Not so. Many programmers have<br />

no concept of what good design is. Much of their coding is intuitive or simply<br />

“how they learned to do it.”<br />

Resources<br />

The single best resource I’ve found to track down the various methodologies is www.cetus<br />

links.org. On the first page of this site, you will find a link to OOAD Methodologies. Click<br />

on it and you will be sent to a page with links to more than 50 different methodologies, lists<br />

of books, articles, conferences, and organizations worldwide.<br />

REVIEW<br />

A methodology is made up of a predefined process, a vocabulary used to describe the process<br />

and the work products, and a set of rules and guidelines that help define the quality of the<br />

process and the work products. The <strong>UML</strong> specifies only the vocabulary, the notation that<br />

describes the artifacts of the process. Each methodology decides if and how to apply the<br />

<strong>UML</strong> notation.<br />

This session presented four leading methodologies that illustrate the diversity and commonality<br />

of the current techniques available for software development.<br />

The Rational Unified Process (RUP) provides a comprehensive plan for the activities<br />

and the artifacts required to complete the development process. The approach<br />

strongly emphasizes iterative and incremental development. The RUP is best suited<br />

for large projects.<br />

The Shlaer-Mellor Method emphasizes tight integration and simulation to verify the<br />

accuracy of the product throughout development. The Shlaer-Mellor Method is best<br />

suited for real-time systems.<br />

The CRC method emphasizes simplicity and role-playing to work out the class-level<br />

requirements for the design of the system. The CRC method is best suited for helping<br />

people learn about objects and object-oriented design.<br />

Extreme Programming (XP) attempts to address many of the personal issues involved<br />

in team dynamics and to create the most positive work environment for both programmers<br />

and clients alike. It emphasizes continuous testing, consistent standards,<br />

and a lot of communication throughout the process. XP tends to be best suited for<br />

small, fast-moving projects with high management and client support.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!