OOM Victor

Assignment #1 Knowledge Sharing Weblog (10%) Tasks: Each student should keep a weekly weblog (blog) to document their learning experience and what they learned. The main purpose of the weblog is to encourage you to learn independently as well as a way to share what you learned with others in the class. Each student is required to give a short 5-minute talk on your blog in class.

Saturday, April 23, 2005

Week 13 Geographic Distributed Development

http://www-128.ibm.com/developerworks/rational/rationaledge/admin/current.html

Geographic Distributed Development(GDD) is a mode of software development that the business coordinates project teams located across the regions, countries and time zone.

As the growing of the out-source development from the in-house software development company to the outsider globally, we need to manage not only one company employee, but also the third party as well. We need to solve the conflicts between cultures differences, various languages, various values and conflicts between two companies.

In order to achieve a high quality product, we need to clarify the role of the among different company, or more accurately speaking, the Site, for example, the “Headquarter” only handle all the issues related to the Project and portfolio management, new features development, component, functional and system testing, all build and deployment activities. On the other hand, the “Branch” concern on maintenance coding on the current, client/server version of the application, unit testing of components modified during the maintenance coding, creates and modify requirements for the maintenance phase of the project..

This site shows that how to use RUP to adopt the GDD and with various tools, company can get the software development along with the running of the clock, i.e. 24 hours a day, 7 day-pre-week and reduce time-to-market.

In short: there's a whole lot more to the story of RUP can save time, cut cost, reduce risk, and improve quality on your next GDD project.


IBM Rational tools and assert repositories Posted by Hello

Monday, April 11, 2005

Week 11-Leveraging a global advantage

http://www.infoworld.com/article/03/04/18/16dyndev_1.html?s=feature

In fact, if all the software develop are developing with the RIP methodology, everything should be alright. The global software developer can get the advantage from it since the detail divide of the working force among the developers all around the world: under the XP, pair programming works as the American developer are sleeping, the Asia developer works on the code-review, testing or code re-factoring. From the point of my view, many software vendor would to work as a business: they use a lot of methodology and management technique to manage group of the developers. As the result, they are all working writing documents and paper, instead of creating a good intelligent property, in order to figure the best solution for the customers.

Open-source software, well, they are created by a group of volunteer developer around the world. Developers seldom bounded by these paper work. As the result, the quality of the software is extremely good but no one would use the MySQL to replace the Oracle. What’s the reason? Undoubtedly, Oracle provide a lot of “evidence” to show their products are really works and reliable but throwing several tones of paper and documents to show that, but not the MySQL.

In my point of view, RUP and XP are the tools to management a group of developers in the software vendors, not for the purpose to creating a good/extremely good software sadly.

Sunday, April 10, 2005


RUP iteration graph. Posted by Hello

Wednesday, April 06, 2005

Week 10 RUP and XP

http://www.objectmentor.com/resources/articles/RUPvsXP.pdf


Needs of the developer and customer

We have mentioned a lot what do the software engineers need to figure out what to do and what do not do under the Rational Unified Process, so we may think about what the NEEDS of the developer and the needs of the clients.


When comparing with the Extreme Programming, RUP provide more guidelines for a group of developer to build software in a disciplined, elegant and productive way in the limited time. Although XP is fast and fewer set of rules to follow, it is difficult to follow when developers are going to build a reliable and systematic, real-time, bug-free software.


In person, I would prefer XP since less documentations and rules means developers have more room to focus on the project coding, not in the planning stage. A workable software still better than a good written documentation but fairly acceptable software.

Saturday, March 12, 2005

Week 8 - Pattern Design

http://www.dofactory.com/patterns/Patterns.aspx

What is “Software Design Patterns”? According to this web site, design patterns are recurring solutions to software design problems you find again and again in real-world application development. Design patterns are about design and interaction of objects, as well as providing a communication of platform concerning elegant, reusable solutions to commonly encountered programming challenges.

http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html

The fundamental to any science or engineering discipline is a common vocabulary for expressing its concepts,. The goal of patterns within the software community is to create a body of literature to help software developers resolve recurring problems encountered throughout all of software development. Patterns help create a shared language for communication insight and experience about these problems and their solutions.


There are three goal to achieve this purpose:
The Quality:
Most important, regard as essence of all things living and useful that imparts unto them qualities such as: freedom, wholeness, completeness, comfort.. etc. it is what makes us feel “alive” and “sated”, give us satisfaction and ultimately improves the human condition.

The Gate:
This is the mechanism that allows us to reach the quality. It is manifested as a living common pattern language that permits us to create multiform designs which fulfill everyone’ needs. It is the universal “either” of patterns and their relationships that permeate a given domain. The gate is the conduit to the quality.

The Way:
Using the way, patterns from the gate are applied using a technique of differentiating space in an ordered sequence of piecemeal growth: progressively evolving an initial architecture.


My view:

The ultimate goal of the pattern design is to union the different programming design. It sounds great as we want to create the program, write it fast and maintain it easily. If it does happen, what is the standard of such pattern coding come from? Can it be came from the big software house? Or can it be came from the Open source projects? No! people do not like to stick to the standard. Like the literary, someone life to create something new but not like to follow the majority. If this is the case in Computer Science, and I am quiet certain that many programmers do not like to “step after” other people. Especially happen in big software company. They all like to create its standard in order to gain more market share ultimately.

Thursday, March 03, 2005

Week 7 What is UML

Week 6 – UML


What is UML?

UML stands for the Unified Modeling Language. UML is the OMG’s most used specification and the way the world models not only application structure, behavior and architecture, but also business process and data structure.

UML 1.5: the current official version

http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML

UML resource page

http://www.uml.org/

Borland UML tutorial

http://bdn.borland.com/article/0,1410,31863,00.html

The heart of object-oriented problem solving is the construction of a model. The model abstracts the essential details of the underlying problem from its usually complicated real world. That’s the reason why we would like to use the UML to model the real world while we are programming.

So, what is UML? UML stands for “Unified Modeling Language”. Why does the UML so important? Since writing software is something that does not like constructing a building. The more complicated the underlying system, the more critical the communication among everyone involved in creating and deploying the software. The UML is application to object-oriented proclaiming solving. Anyone interest in learning UML must be familiar with the underlying tent of object-oriented problem solving. How can we get started? We use model. What is mode? A model is an abstracting of the underlying problem. The domain is the actual world from which the problem comes.

At the center of the UML are its nine kinds of modeling diagrams, which we describe here:

1. Use case diagrams

2. Class diagrams

3. Object diagrams

4. Sequence diagrams

5. Collaboration diagrams

6. Statechart diagrams

7. Activity diagrams

8. Component diagrams

9. Deployment diagrams


UML are quiet simple. With several simply rules, we can adopt to the complicated world with simply diagram. It is really a great innovation and hopefully the upcoming version UML 2.0 will be much more

Huge of modeling tools

Poseidon for UML

http://www.gentleware.com/

Borland Together

http://www.borland.com/together/


7 out of 9 UML diagram Posted by Hello

Saturday, February 26, 2005

Week 5 - PSP with TSP development methodology

http://www.sei.cmu.edu/tsp/psp.html

What is PSP?

PSP stands for the Personal Software Process. It provides the disciplined and structured way for programmer to develop the program under the scheduled period since the cost of the software development heavily depends on the timing costs. As the result, the quicker the development of the software, the more profit that the company can gain.

As the PSP is so flexible and productive, it applied to many aspects. For example, the small software development, the software requirement definition, document writing, system tests, system, maintenance, the enhancement of large software systems as well. It almost covers all the status in the software production process.

Compare with the PSP, TSP (Team Software Process) is more suitable for the large to enterprise on the software development companies.

What is TSP? It is the original of the PSP. It aims to help the team of HIGH PERFORMANCE engineers to:
1. Ensure the quality SW products,
2. Create secure SW products
3. Improve process management in an organization


TSP and PSP are so popular in the software in-house company because they focus on the quantity rather than the quality of the software products. This methodology focus and stress on the disciplines guided and structured software development. Listing out what when how why to do every day routine on the document and programmers exhausted. This method does not consider the resting time of the programmer; always consume the working hours on the software development. If such methodology applied to the organization, the productivity decreases but not increases. It is because the undetermined workloads tired the driving force, the programmers. There’s just no rest and it seems "assume" that the programmer need to work 24 hours a day, 7 days a week!

We can get started with PSP and TSP by the following URL as reference:
http://www.sei.cmu.edu/tsp/get-started.html

Remarks: PSP modeling software.
http://processdash.sourceforge.net/index.html