Tuesday, December 27, 2005

Celtix: Open Source Java Enterprise Service Bus


Celtix is an open-source JAVA ESB (Enterprise Sevice Bus). Celtix is developed by IONA Technologies and on December, 22th reached its 3rd milestone.
With the delivery of Milestone 3, the Celtix project compares favourably with available commercial ESBs," explained Carl Trieloff, director, Open Source Programs, IONA. "The Celtix community has delivered robust JMS support and this, combined with the other features made available in Milestone 3, gives end users a powerful, and cost-effective, ESB to support their Service Oriented Architecture and other integration projects.

A good source of information is (of course) the Celtix Wiki. There you can learn to build a simple application using Celtix ESB: "End-to-End HelloWorld" (believe or not!).

Monday, December 26, 2005

How to Implement a Successful SOA Pilot Program


SOAWebServices Jornal presents an interesting article titled "How to Implement a Successful SOA Pilot Program". Dan Foody and Alex Rosen (authors) give us some useful tips about a SOA implementation.
Critical Pre-SOA Initiative Questions

1. How do we phase in and successfully manage the move to SOA within the current IT environment?
2. How do we leverage the existing IT infrastructure and investments in the SOA?
3. What procedures need to be established or modified?
4. Where will policy and security reside?
5. How do we explain the benefits of SOA and provide financial justification to the business stakeholders?
6. How does the move from silos to SOA impact our ability to detect and resolve problems?
7. Who owns shared applications or services and how do we allocate costs and budgets for these services?
8. What do we need to do to ensure our SOA scales from pilot to production? With thorough, up-front planning, a transition to SOA can be achieved efficiently and provide tangible benefits to the enterprise. The following passages will offer guidance in answering the questions listed above.


Critical Question to Answer:
  1. What are your primary reasons for using SOA? (To reduce costs? Achieve better flexibility? Enable faster delivery? Improve customer satisfaction?)
  2. What is driving your near-term use of SOA? (Connecting your core applications? Integrating with your partners? Providing a single view for customers and/or users? Getting real-time business metrics? Regulatory compliance?)
  3. What is the long-term potential for SOA in your organization? (Faster product introductions? Flexible outsourcing? Business process flexibility? Stricter governance? Other?)

Friday, December 16, 2005

10 Steps to SOA

This article from ComputerWorld/Australia briefly point out 10 (good) steps toward SOA.
"True, SOA (service oriented architecture) builds on the stack of protocols that define Web services, but it is hardly limited to that stack and draws as much on time-honoured notions of business "re-engineering" as it does on XML, SOAP, and WSDL. Simply put, SOA is a broad, standards-based framework in which services are built, deployed, managed, and orchestrated in pursuit of new and much more agile IT infrastructures that respond swiftly to shifting business demands."

These 10 Steps would be:
1: Think big, start small
2: Go to the whiteboard
3: Survey your surroundings
4: Connect your first services
5: Deploy registry
6: Start tackling governance
7: Lay your security plans
8: Messaging infrastructure
9: Deploy service management
10: Consider orchestration

Good reading!

Sunday, December 04, 2005

Get started now with Eclipse

New to Eclipse? This is an excellent article from IBM/DeveloperWorks:

"Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software. This article gives you links to the latest version of Eclipse, information on IBM's involvement with Eclipse, and a guide to some of the most interesting Eclipse projects. Learn what Eclipse is good for, why it is important, how you can get started, and where to learn more about it."

Main topics:

  • What is Eclipse?
  • What Eclipse is good for?
  • Why is Eclipse important?
  • What does IBM have to do with Eclipse?
  • What are the Eclipse communities?
  • Why should I contribute to Eclipse?
  • How can I become an Eclipse committer?
  • What should I know about using or contributing to Eclipse?
  • What are some Eclipse's interesting projects?
  • Who wrote this guide?

Friday, December 02, 2005

The SOA Weblog: Definition of Service-Oriented Architecture

Tired of SOA definitions? Here is another one :-):
In Service-Oriented Architecture autonomous, loosely-coupled and coarse-grained services with well-defined interfaces provide business functionality and can be discovered and accessed through a supportive infrastructure. This allows internal and external system integration as well as the flexible reuse of application logic through the composition of services.


Did you realize that there is no mention to any specific product? I liked it!

Wednesday, November 30, 2005

SOA Vendors Announced SCA - Service Component Architecture

According to InfoWorld.com, "SCA (Service Componenet Architecture) will allow developers to focus on writing business logic in the building and packaging of applications, according to a source familiar with the announcement."

More from the article: "SCA is designed for SOA, unlike platforms such as J2EE, which have been adapted to SOA. SCA is intended to allow development of application assemblies without regard to middleware or language."

Behind this initiative are IBM, Oracle, SAP, Iona, Siebel, BEA, SAP and Sybase (!).

Monday, November 28, 2005

SOA and Open-Source: Open Servicing

This article, by Ajit Sagar, bring to us some open-source alternatives to implement SOA.
It seems as though as soon as the open source community rallies around a technology, the IT industry starts taking it more seriously - and finds practical application for it. Ironically, although organizations like the concept, despite the maturation of the open source community in a variety of platforms and technologies, adoption of open source products in large organizations is still an uphill battle. The good news is that mainstream vendor products are now based on a combination of open source technologies, and so mature products from the community are finding homes in many corporations.


I have noticed that, in fact, there is a tendency to mix open-source and proprietary products in a SOA implementation. I truly believe that this is the best approach. Let's see an example that Ajit tells in his article: Apache Synapse (read also this preliminar analysis from Gartner)

The idea behind Synapse is intended to address the issue of creating something tangible from the quagmire of standards around Web services. Synapse plans to produce a service broker - lightweight and scalable - based on Web services standards. The broker will be developed with contributions from Infravio, Blue Titan, Iona, Sonic Software, and others. Synapse focuses on the implementation of a pure Web services stack, including WS-Policy, WS-Security, WS-ReliableMessaging, and WS-Addressing. Also, Synapse is targeted to enable SOA adoption by combining with other open source components such as Struts, Axis, Spring, and Hibernate. In essence, Synapse is the equivalent of your open source ESB.

Saturday, November 26, 2005

IBM DeveloperWorks Portal: Page Devoted to Software Architecture

Finally IBM has released a page related only to software architecture. Must read resources about SOA, IT Architecture, Rational Softwares for architetcure job etc are available from this page. Add it to your bookmark or, even better, share it at del.icio.us! Best regards.

Tuesday, November 22, 2005

Gary Booch's Papers (some of them)

Gary Booch is an IBM fellow and a legend regarding software architecture. Here is the page where he keeps good and must read presentations. Are you a software architect? Take a look at these papers! Do not worry if you have to register before, it is worth, believe me.

Sunday, November 20, 2005

SOA 101

SOA 101 by ZDNet's Chris Jablonski -- You've been hearing about it more and more, so if you are new to service-oriented architectures (SOA) and want the full scoop but not ready to start connecting the dots between terms like BPEL, WS-Policy, and WSIF, then read this (free PDF) four-page overview from Nucleus Research. The research firm, which bases its conclusions on [...]

Tuesday, November 01, 2005

Free Oracle Database: 10g Express Edition

Oracle released on Fri, Oct 28th, his Oracle Database 10g Express Edition that, according to announcement, it is free to develop, deploy and distribute. This product is still a beta version but, of course it is a good opportunity to test and to report bugs to Oracle. Interesting, no? I recommend the reading of the FAQ product.

Thursday, October 27, 2005

SOA Modeling and Architecture (by IBM)

This a 4 pages paper from IBM whose highlight are:

- Aligns business and IT goals through service modeling that is designed to connect an enterprise's business model with its technology model
- Helps ensure that business knowledge in legacy applications can be accessed in a new, integrated, SOA
- Helps increase business flexibility and reduce risks by validating several aspects of SOA design, from business goal to service realization

Friday, October 21, 2005

The CMMi of SOA: from ESB to ESP, an action-oriented SOA

This post from blogs@ZDNet talks about the announcing that three SOA vendors are lauching something called "SOA Maturity Model". According to this model, SOA has five key phases in its lifecycle: from initial projects to evolution into a full-fledged "enterprise nervous system". The model is based on CMMI from CMU.edu.

We have the "Three SOA amigos": AmberPoint, Sonic Software and Systinet.

The model defines five levels of maturity and sets a vision for business benefits realized at each of these levels.

- Level 1: This is the initial learning and initial project phase of SOA adoption. Projects here are typically done to simultaneously meet a specific need to implement functionality while trying out specific technologies and an approach to SOA.
- Level 2: At this level, standards are set as to the technical governance of SOA implementation, typically under leadership of the architecture organization.
- Level 3: A partnership forms between technology and business organizations in order to assure that the use of SOA provides clear business responsiveness.
- Level 4: Level 4 focuses on measuring and presenting these processes at the business level so as to provide continuous feedback on the performance and business impact of the processes implemented at Level 3.
- Level 5: The SOA information systems becomes the "enterprise nervous system" and takes action automatically according to events occurring at the business level according to rules optimizing business goals.

Tuesday, October 18, 2005

IBM Ponies Up Rational Wares To Open Source


IBM announced on Oct 12th plans to contribute with Open source Community by "giving" a subset of the IBM Rational Unified Process (RUP). See a excerpt:
"IBM will contribute a subset of the IBM Rational Unified Process (RUP), a software process platform that has guided some 500,000 developers around the world in projects ranging from small-scale product development to large industrial-strength systems. RUP is a vast collection of methods and best practices for promoting quality and efficiency throughout software development projects. IBM's donation will also provide a foundation architecture and Web-based tools for the industry to engineer, collaborate on, share and reuse software development best practices."

other link related to:
- http://www.soa-pipeline.com/172300528?cid=rssfeed_pl_soa

Thursday, October 13, 2005

My new Book: RUP Made Easy

This holiday (Out, 12th) I was at livraria Cultura in São Paulo and, of course, I couldn't resist... ....I bought "The Rational Unified Process Made Easy". It is a classic must-have book. Instead of tons of white papers about RUP that I have to carry in my backpack, I keep only this five-star book.

See a piece of Amazon's editorial review:

The Rational Unified Process Made Easy will teach you the key points involved in planning and managing iterative projects, the fundamentals of component design and software architecture, and the proper employment of use cases. All team members--from project managers to analysts, from developers to testers--will learn how to immediately apply the RUP to their work. You will learn that the RUP is a flexible, versatile process framework that can be tailored to suit the needs of development projects of all types and sizes.

Key topics covered include:

* How to use the RUP to develop iteratively, adopt an architecture-centric approach, mitigate risk, and verify software quality
* Tasks associated with the four phases of the RUP: Inception, Elaboration, Construction, and Transition
* Roles and responsibilities of project managers, architects, analysts, developers, testers, and process engineers in a RUP project
* Incrementally adopting the RUP with minimal risk
* Common patterns for failure with the RUP--and how to avoid them

Use this book to get quickly up to speed with the RUP, so you can easily employ the significant power of this process to increase the productivity of your team

Tuesday, October 11, 2005

Achieving Robust Designs with Six Sigma

Six Sigma again. This time the Six Sigma approach is suggested in an attempt:
  • to build dependable – “plug-and-play” -  products;

  • realiable products: “last a long time”;

  • and, of course, low cost (anticipate that products will be affordable).

Six Sigma, according to this article, can help IT managers to reach these goals:

“As a breakthrough philosophy, process, and methodology, Six Sigma offers a refreshing approach to systematically implement robust designs.”

March of ESBs

March of the ESBs by ZDNet's Joe McKendrick -- It's no use fighting ESBs; they're an unstoppable wave now. First IBM announced it was offering not one, but two (count 'em, two) enterprise service buses, and now word is out that JBoss also is getting into the ESB act. InfoWorld's Paul Krill reports that the open-source app server company "plans to offer an open-source ESB in 2006." Along with IBM and JBoss, a lot of infrastucture vendors have been getting on the bus lately, including BEA. And, the open-source world has another ESB-like architecture in the offing — the Apache Synapse Web services intermediary.[...]

Software Architect: what do I actually do?

This is one of that articles that I always carry on in my backpack:

Rationale:
A key part of the software architect's job is producing an architectural description of the system that defines the architecture's key functions, features, and characteristics for its stakeholders. Where do you start? What do you need to know? Nick Rozanski and Eóin Woods provide detailed answers to these questions, with useful suggestions on how to attack this fundamental document that underpins any development project.

Book: Software Systems Architecture

Well, my wish list at Amazon.com is growing :-) I have discovered this five-stars book this week. I beg you: wanna give me a gift? Buy any one of these books. I deeply appreciate!

This week I present you the "Software Systems Architecture":

From the Back Cover

Software Systems Architecture is a practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices. It shows why the role of the architect is central to any successful information-systems development project, and, by presenting a set of architectural viewpoints and perspectives, provides specific direction for improving your own and your organization's approach to software systems architecture.

With this book you will learn how to

* Design an architecture that reflects and balances the different needs of its stakeholders
* Communicate the architecture to stakeholders and demonstrate that it has met their requirements
* Focus on architecturally significant aspects of design, including frequently overlooked areas such as performance, resilience, and location
* Use scenarios and patterns to drive the creation and validation of your architecture
* Document your architecture as a set of related views
* Use perspectives to ensure that your architecture exhibits important qualities such as performance, scalability, and security

The architectural viewpoints and perspectives presented in the book also provide a valuable long-term reference source for new and experienced architects alike.

Whether you are an aspiring or practicing software architect, you will find yourself referring repeatedly to the practical advice in this book throughout the lifecycle of your projects.

A supporting Web site containing further information can be found at www.viewpoints-and-perspectives.info

Sunday, October 09, 2005

Fusion: Oracle Middleware


According to this link, Fusion is the answer from Oracle to "Next-Generation Enterprise Architecture".

  • This suite of next-generation enterprise applications will leverage Oracle Fusion Middleware and also give customers access to Java, composite applications built on Service-Oriented Architecture (SOA), master data consolidation, Grid Computing, and other powerful technologies. Project Fusion also includes an architecture that provides:
  • Business Insight: Enterprise-wide business intelligence for improved decision making with the ability to take action immediately;
  • Adaptable Business Processes: Adaptive processes that help adjust to changing market conditions and competitive threats;
  • Superior Ownership Experience:Lowest total cost of ownership of all enterprise software providers

JBoss Releases First Seam Framework



Java Server Faces + EJB 3.0 + jBPM = JBoss Seam Framework

JBoss released the Seam framework that aims to unify the component models of JSF and EJB 3.0, providing a streamlined programming model for web-based enterprise applications.

Let's point out some promisses:

  • Seam introduces the notion of declarative application state management for POJO (Plain Old Java Objects) components;
  • Seam components are stateful and contextual, with a well-defined container-managed lifecycle. This approach helps solve a whole class of bugs and performance problems that plague web applications with non-linear or multi-window navigation;
  • Seam makes business process management a first class construct, by fully integrating JBoss jBPM into this state management architecture. It's never been this easy to write applications with complex workflows and complex user interactions;
  • Finally, Seam makes it easy to test Java EE 5 applications in unit test frameworks by leveraging the JBoss Embeddable EJB3 container.

It looks good don't you think?

Tuesday, October 04, 2005

Six Sigma Comes to IT

This is a Dec’2003 Article from CIO.com but ir more actual than ever. It brings an interesting approach to Six Sigma in “IT World”. If worked in companies like Chase Financial Services, Raytheon Aircraft, etc, why it shouldn’t work for our companies?

How Six Sigma Works in IT Despite its origin in manufacturing, Six Sigma isn't about widgets; the focus is on processes. When applied to IT operations, Six Sigma aims to measure and improve both internal processes, such as network speed and reliability, and line-of-business processes in which IT has a role, such as how well an online ordering system is working.

Monday, October 03, 2005

Microsoft and JBOSS

Microsoft and JBoss have made a technical agreement to compete with IBM:

Engineers from Microsoft and JBoss, which sells an application server and other middleware under an open-source license, will work together in Redmond, Wash., to improve the performance of JBoss products running on Windows. Although JBoss sells its products under a relative of the open-source GNU Public License, or GPL, that Microsoft has criticized as a threat to intellectual-property ownership, and its technology is based on the Java standard that competes with Windows as a development platform, Microsoft said the deal is meant to help a small software company that influences sales of Windows server software.

Some useful links about this "deal" (?):

Manager your Project: TRAC + SUbVersion + Apache

More one excellent open-source "package" to manager your projects through Intranet/Internet: Trac + SubVersion + Apache.

  1. Trac is a web-based Integrated SCM & Project Management;
  2. SubVersion is a open-source SCM (software configuration management);
  3. Apache - the best ever Web Server;
Well, with these three softwares you have:
  • A version control (SubVersion is the evolution of CVS):
    The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community.
  • A web-based Project Management that can integrate with SubVersion and. among other features, it will provide to you:

    • An integrated system for managing software projects;
    • An enhanced wiki
    • A flexible web-based issue tracker
    • An interface to the Subversion revision control system
Trac uses a minimalistic approach to web-based software project management. Our mission; to help developers write great software while staying out of the way. Trac should impose as little as possible on a team’s established development process and policies.
  • The best Web-Server (Apache) to support all of this.
Other interesting links:

Thursday, September 22, 2005

How open source will fit in with SOA and Web services

In this short interview we can see a good approach to anwser the question: How Open source will fit in SOA and WebServices.

Data centers are planning the use of virtualization technology to support SOA and WebServices. The options that they have are: VMWare, Microsoft Virtual Server etc. What about open source options? This is what try to put on the table to discuss.

Tuesday, September 20, 2005

Oracle Certifies IBM WebSphere for Fusion

Oracle Certifies IBM WebSphere for Project Fusion— Oracle's Charles Phillips says, 'Oracle views the IBM-Oracle project as one of the most important customer focused projects underway at our company. We are highly committed to a successful outcome.' And IBM notes that the ecosystem surrounding all applications vendors, be it Oracle, Microsoft or any other vendor, can be up to ten times larger than the application themselves.

Monday, September 19, 2005

Google Blog Search



Another step of Google towards the “world domination”: Blog Search. It’s boring, I agree, but sometimes it is quite useful. You should try, at least.

Blogs At DeveloperWorks

The Blogs@DeveloperWorks are one of my main sources of good Software Architecture articles. Besides, Elias Torres’s blog  has an unofficial list of these blogs at IBM.

Sunday, September 18, 2005

Spring Framework (from IBM/DeveloperWorks)

Definition from its page at SourceForge: “Java/J2EE application framework based on [Expert One-on-One J2EE Design and Development] by Rod Johnson. Includes JavaBeans-based configuration, an AOP framework, declarative transaction management, JDBC and Hibernate support, and a web MVC framework.”

IBM DeveloperWorks has an interesting series about this framework:
Start to build lightweight, robust J2EE applications using Spring technology, with this first installment in a three-part introduction to the Spring framework.

Naveen Balani continues his Spring series with a how-to guide to integrating Hibernate transactions with Spring aspect-oriented programming (AOP). The result is a persistence framework you can count on.

Learn how to develop MVC-based applications using the Spring framework, in this third installment of Naveen Balani's popular Spring series.

Saturday, August 20, 2005

Koders - The Source Code Repository

With a clean interface that remebers Google, Koders is a good source code repository. Find the routine you desire in the language you want (of course not all languages are available but most of them are there). Try it!

Thursday, August 18, 2005

Publish your Post from MS Word

Now it’s possible to write and publish your post directly from MS Word. BloggerForWord add-in allows you:
  • Publish your blog

  • Save drafts

  • Edit Posts

To be honest, I’m looking for a plug-in for VI that allows me to do this task!

Wednesday, August 10, 2005

OpenSUSE Project Launched

According to the FAQ at OpenSUSE.org, this project is defined as
The openSUSE project is a community program sponsored by Novell. Promoting the use of Linux everywhere, this program provides free, easy access to the world's most usable Linux distribution, SUSE Linux. OpenSUSE delivers everything that Linux developers and enthusiasts need to get started with Linux. Hosted at opensuse.org, the project features easy access to builds and releases. It also offers extensive community development programs for open access to the development process used to create SUSE Linux.
It is also possible to download the 5 (five) ISO images of SUSE Linux 9.3. IMHO, this is far one of the best Linux distro. Have fun!

Wednesday, July 27, 2005

Book: IT Architecture Toolkit


I just received the book IT Architecture Toolkit. This is a must read and 5 stars book, considered the "Bible" for architects. Read the review from Amazon:

Enterprise IT architecture made practical--finally!

There's only one way to maximize legacy infrastructure while integrating new partners, technologies, applications, and data streams: begin with a coherent enterprise architecture. But most approaches to enterprise architecture have been far too complex and theoretical--until now. IT Architecture Toolkit is a breakthrough: a practical, simple, rapid, and complete approach to delivering on the promise of enterprise architecture.

Jane Carbone's approach has been proven in mid-market and Fortune 500 enterprises alike. Step by step, Carbone shows how to integrate business, architecture, implementation, and all key outputs: for data, applications, technology, and people. Whether you're an IT leader, architect, planner, or analyst, you'll learn how to:

  • Create strong, auditable links with business drivers
  • Model your architecture simply, easily, and quickly
  • Translate your models to real, manageable projects.
  • Define the value proposition for architecture and establish realistic metrics
  • Achieve buy-in throughout your organization
  • Manage the "soft" aspects of your architecture initiative, including processes, roles, responsibilities, and organizational structure

Carbone provides a "soup to nuts" collection of methods and examples. Using her exercises, you'll construct a complete draft architecture for your own business: one that will handle change, opportunity, growth, mergers, downsizing . . . whatever comes your way.

Tuesday, July 26, 2005

What is the value of Requirements?

This article is an except from the book "Requirements-Led Project Management : Discovering David's Slingshot (Hardcover)" by Suzanne Robertson, James Robertson. The text begins with an intesresting comment:

Whenever we make an investment—some stocks, a new car—or do some work, we like to think we get something in return for the money or effort expended. In this chapter, we look at your investment in requirements and what you can expect in return. And though all men may be considered equal, all requirements are not. Some requirements are crucial to the product, while others are gold-plated luxuries. We discuss how business people and requirements analysts can determine how much to invest in requirements, by focusing on the value of requirements to their organization.

"Improved software practices provide returns ranging from 300% to 1900% and average about 500% ... The reason for these excep tionally high returns is ... improved practices [that] have been avail able for decades, but most organizations aren't using. Risk of adopting these practices is low; payoff is high."

—Steve McConnell, Professional Software Development

SYS-CON Exclusive: What's New in Eclipse 3.1?

Link to Article: Since Eclipse's first release in 2001, it has become a popular environment for Java development. In the period between March 10 and May 11, 2005, users downloaded over 17,000 copies of one of the production SDK releases and over 3,500 copies of one of the stable (milestone) SDK builds on average every day. A vibrant eco-system of developers, plug-in providers, authors, and bloggers has grown up around it. Eclipse has also gained the backing of the key Java vendors including BEA, Borland, IBM, SAP, and Sybase. Developers like Eclipse because it provides a great platform for building Java applications, and companies like it because it unifies their software tools under one open source umbrella.
 
Take a look also in Eclipse-Wiki page.
 
Here is 7 (seven) good reasons to migrate to Eclipse 3.1?
 
1) Full support for the new language construtions in J2SE 5.0 (or J2SE 1.5): generics, annotations, enuns, auto boxing, enhanced for loop etc.
2) Fast compilation. Eclipse 3.1 has its own compiler that brings some benefits: besides raise you productivity, we have now smoother debugging and refactoring and a lot of diagnostic warinings.
3) Eclipse 3.1 improves its Ant support by including the latest version of Ant.
4) This version is a lot faster and uses far less memory for common operations, comparing with version 3.0.
5) Ready for large projects: Eclipse Platform team created one consisting of 135 separate projects and 70,000 classes and other resources. Good enough hum?
6) Return of the Java Client: the Rich Client Platform (RCP) is a subset of Eclipse that provides a framework for application development.
7) Over 7,000 enhancements requests and bug reports have been addressed in release 3.1.
 
 

XML Rich-Client Technology

This article from JDJ talk about the new "XML Rich-Client Technology". J2EE is the best for server-side but not so good as .NET is in the client-side. Until now!, according to this proposal. Let's see the rationale:

Which platform to use Java or .NET? Developers ask this question all the time. Java has been widely adopted because of its overwhelming benefits on the server side, but Java has less to offer on the client side. .NET has made inroads into the enterprise by leveraging its stronger rich-client capabilities. An alternative solution for enterprise-scale Internet application development is the emerging XML-based rich-client technology.



Monday, July 25, 2005

UML for the Software Developer (by DevX.com)

This serie of 6 articles from devx.com details the Unified Modeling Language (UML). Mark Goetsch explains how to build class, the UML diagrams, Aggregation etc. The context of these articles are:
 
- Part 1 - Building Class: "whatever language you code, however you feel about documentation... ...you will end up using models or modeling yourself"
- Part 2 - Mastering Associations: "use associations to define the way in which your applications's classes communicate"
- Part 3 - Aggregation: "aggregation (special form of association) is another way to establish the relationship between classes"
- Parte 4 - Deployment Diagrams: "the willing of any system is to be deployed :-), so, this article shows how to use deployment diagrams to coordinate the end-game activity between differents teams"
- Part 5 - Components Diagrams: "their ability to show interdependencies between application's components make component diagrams invaluable"
- Part 6 - Interaction Diagrams: "interaction or sequence diagrams are the critical link between the static class diagram and how the class behave; a well-defined sequence diagram will find missing classes, elucidade the sequence of events for class interaction, and define the methods needed for reach class"
 
Good reading!

Service-Oriented Architecture (by Developer.com)

The site developer.com has published a article (25 pages) about SOA. It covers the basic of SOA with a pratical example: a service named BankAccountService that manipulates both checking and saving accounts.

Wednesday, July 20, 2005

How do You Define Software Architecture?

SEI has a good material devoted to to Software Engineering. Stating with the basic question, How do You Define Software Architecture?. This page presents many classical definitions from the most known authors of Software Engineering, as well as the definitions that the comunity around the world submitted to SEI. Another must reading article is that one that defines the Duties of a Software Architecture. Let's point out some definitions:
  • "The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. First, architecture defines elements. The architecture embodies information about how the elements relate to each other. This means that architecture specifically omits certain information about elements that does not pertain to their interaction. Thus, an architecture is foremost an abstraction of a system that suppresses details of elements that do not affect how they use, are used by, relate to, or interact with other elements. In nearly all modern systems, elements interact with each other by means of interfaces that partition details about an element into public and private parts. Architecture is concerned with the public side of this division; private details of elements—details having to do solely with internal implementation—are not architectural...."
  • "An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization---these elements and their interfaces, their collaborations, and their composition (The UML Modeling Language User Guide, Addison-Wesley, 1999)." -- Booch, Rumbaugh, Jacobson 1999
  • [Lane 90]: Software architecture is the study of the large-scale structure and performance of software systems. Important aspects of a system's architecture include the division of functions among system modules, the means of communication between modules, and the representation of shared information.

Tuesday, July 19, 2005

Software Design Quotes

Glen Vanderburg keeps this page with quotes related to Software Design. Below you can read some of them.
- ...with proper design, the features come cheaply. This approach is arduous, but continues to succeed -- Dennis Ritchie
- The problem with using C++ is that there's already a strong tendency in the language to require you to know everything before you can do anything. -- Larry Wall (father of PERL)


Monday, July 18, 2005

Enterprise Blogs: the new trend

Enterprise Blogs are useful for many reasons:
  - Information is always there; it is difficult to search that magic tip that your friend sent you 6 months ago among tons of emails;

 - Co-workers and friends can add comments and complement your posts with alternatives, offering a new point of view that you probably never had though before. This is what makes a good discussion;

 - Share! Share! Share! "If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas." -- George Bernard Shaw

There are lots of good reasons that would encorage you to promote blog activities among your team members. IBM bets in this new trend: read this article (in Portuguese) or this (in English).

Sunday, July 17, 2005

Agile Modeling by Scott Ambler

Scott Ambler is one of the  best authors of "Agile Development". A good source if the Agile Modeling Site Map, a collection of essays and a general guideline about this methodology. Let's see what Wikipedia says about Agile Methodology:
Agile software development evolved in the mid 1990s as part of the reaction against "heavyweight" methods, like the Rational Unified Process

(RUP). The processes originated from those methods were seen as bureaucratic, slow, demeaning, and contradicted the ways that software engineers actually work.

Initially, agile methods were called "lightweight methods." In 2001, prominent members of the community met at Snowbird (see "The Agile Manifesto," above) and adopted the name "agile methods." Later, some of these people formed the Agile Alliance [1], a non-profit organization that promotes agile development.

Early agile methods--created prior to 2000--include Scrum (in management), Crystal Clear, Extreme Programming, Adaptive Software Development, and DSDM.

Extreme Programming, while it may not have been the first agile method, unarguably established the popularity of agile methods. Extreme Programming was created by Kent Beck in 1996 as a way to rescue the struggling Chrysler Comprehensive Compensation (C3) project. The methodology was refined by Ron Jeffries' full-time coaching and public discussion on Ward Cunningham's Portland Pattern Repository wiki . In 2000, Kent Beck published the first book on Extreme Programming [2]. Elements of Extreme Programming appear to be based on Scrum and Ward Cunningham's Episodes pattern language.

Thursday, July 14, 2005

Patterns: GoF at Wikipedia

Not only GoF is "defined" by Wikipedia, all the patterns present in "Design Pattern" book are defined as well. See the example of observer pattern.

Software Architecture Handbook

Grady Booch, chief scientist of old Rational, now IBM/Rational, has a page devoted to Software Architecture. The project (his Handbook) is yet under construction but you can find useful information from one of the fathers of UML. One of the best places of this project is Booch's Blog (needs 30 sec. registration). Enjoy!

Wednesday, July 13, 2005

Java Blogs: a good source

I consider Java Weblogs at Sun as an excellent source of reliable information. I always find good high-level discussion. Here are two examples:

- Jonh Reynold's blog

- Kirill Grouchnikov's blog

Tuesday, July 12, 2005

What Developers Want? (by O'Reilly)

This article at ONLamp/O'Reilly presents ten tips that the software developers desire:

1. Ease of Use and Short Learning Curves
2. Library Routines and Application Service Modules for Faster Implementation
3. Seamless Migration and Transparent Upgrades
4. Comprehensive Functional Modules
5. Plug and Play: Service-Oriented Architectures
6. Performance-Optimized Blueprints
7. Open Standards Compliance
8. Rapid Development and Deployment Tools
9. Template Configurations
10. Probes and Debugging Tools

Good reading!

Quality in Brazilian Software

The page of "Quality and Productivity Brazilian Program" (PBQP), headed by MCT, presents links (1 e 2) to presentations and seminars related to Software Engineering and Quality of Software.

Monday, July 11, 2005

The Future of C++, by Bjarne Stroustrup

 Bjarne Stroustrup, the father of C++, wrote this essay (pdf) about the future of C++, named C++0x. Slashdot note: "Bjarne Stroustrup, the father of C++, has written an essay [PDF] on the features of the upcoming C++0x standard. In his essay, he argues that new features should whenever possible go into the standard library and not into the language, but that the language needs to shave of a few rough corners to make it easier to use for novices."

Scotty: Web-based Trouble Ticket

You are a IT manager and you are desperate for a web-based trouble ticket system? I introduce you Scotty, a Brazilian trouble ticket program, web based and, very important, open source. Scotty is written in PHP for Linux environment (installation) and all you users need is a browser.

Sunday, July 10, 2005

Re: More About SOA and WebServices

This time @ IBM. This is an excellent source of articles and red books about SOA and web services in general. From the beginning to the current start-of-art regarding service oriented architecture (see this series: 1 e 2). Another interesting link @ IBM and this issue is this.

Saturday, July 09, 2005

Desktop PC: Migration to Linux

Thinking about migration your desktops to Linux? Nowadays we have many options. There are many distributions that are focused in desktop, such as: Mandriva, Novell Desktop / SuSE, Fedora (open source Red Hat), Linspire etc. All these distribution's are well-known and have a good support, if not through a contract($), through the large Linux community. Some useful links that can help you to make the right decision:
Anyway, besides pick up one of these excellent distributions above, this is what I would consider when migrating to Linux:
  1. OpenOffice Brazil
  2. CodeWeavers (one of the best support for Windows applications on Linux)
  3. XP Desktop for Linux (excellent)

Good luck.

What is Software Design?

This is a classical article about Software Design. An except:
"This article assumes that final source code is the real software design and then examines some of the consequences of that assumption. I may not be able to prove that this point of view is correct, but I hope to shown that it does explain some of the observed facts of the software industry, including the popularity of C++."

Perl::Threads

Yes, Perl has threads! To start, check this two interesting links:

- Perl Threads Web Presentation, by a Perl group from Israel
- Perl Thread Tutorial, from Perldoc.com

Have fun!

Project Management

There is an excellent book from O'Reilly about project management: The Art of Project Management (April 2005, ISBN: 0-596-00786-8, 400 pages, $39.95 US). It is a new approach, more technical, less theoretical and not entirely PMBoK oriented. Very interesting. There is a sample chapter available on-line: Chapter 3: How to figure out what to do (PDF).

If you are a Amazon fan, like me, you can find it here. Talking about Amazon, read part of "Editorial Review" section:

"In The Art of Project Management, you'll learn from a veteran manager of software and web development how to plan, manage and lead projects. This personal account of hard lessons learned over a decade of work in the industry distills complex concepts and challenges into practical nuggets of useful advice. Inspiring, funny, honest, and compelling, this is the book you and your team need to have within arms reach. It will serve you well with your current work, and on future projects to come.

Topics include:

  • How to make things happen
  • Making good decisions
  • Specifications and requirements
  • Ideas and what to do with them
  • How not to annoy people
  • Leadership and trust
  • The truth about making dates
  • What to do when things go wrong..."

A Good WIKI

Looking for a good WIKI? Try TWiki. See also this excellent article from Linux Magazine (issue 55, June 2005).

Enterprise Architecture (EA)

Enterprise Architecture (EA)

What is EA?
-This first essay bring us some light in this subject:
This article discusses Enterprise Architectures as they relate to the broad decisions that must be made by an organization as it creates its organizational information support system.

-This one is a classic article by Scott Ambler (Ronin Int.). Please do not forget to read the references (item 10);

- Web Services Jornal has a lot of Articles related to EA and Web Services;

- Service Oriented Architecture is another good source of articles from Microsoft.

Zachman Framework

Have you ever heard about Zachman Framework? If you are interested in
Software Architecture and Enterprise Architecture read all you can
about this framework.

Java Ten years latter

Interview with the father of the Java language, by CNET.com:
SAN FRANCISCO--Ten years ago, Sun Microsystems publicly debuted Java, software that initially helped establish the company's forward-thinking reputation and that later spread to most corners of the computer industry. James Gosling is the man behind the technology.