eNewsletter 3
Volume VI, Number 1, January, 2006



Send TechConnections to a Friend now! Forward to a Friend!

Happy New Year!


Are you all as ready as I am for the New Year to begin? I loved the holidays – couldn't have been more perfect – a true Norman Rockwell time. And, I'm so glad they're over! You can have too much of a good thing, and it's actually great to be back at work.

It's always fun at the beginning of each year to read the predictions for the upcoming year. I was absolutely fascinated by one that actually said IT could experience a return to the growth of the 1990s. I should have saved it so I could quote it specifically, but the overall statement reflects an expectation from almost every writer of excitement, growth, and new products around every corner. The references to "hot jobs" are always interesting – two that appear on everyone's list are Security Specialists and Project Managers. Then look for Developers/Modelers with business knowledge and network professionals. Again, all the predictions say the job outlook is good. The article on 2006 Predictions (see below) goes into more detail.

This month's technical article is on modeling. Modeling is getting more and more important in all development, and, in fact, is the key to effective software development. While modeling has been reserved for large and complex problems in the past, many companies now use modeling as the technique for all software design because of its two purposes – debugging and presentation (or documentation).

Here's to a terrific 2006!

The schedule for the first quarter of 2006 is below, or view the complete schedule on the Website:

CSTA Web sessions:
February 1,2
March 1,2
March 28,29
April 26,27

CSTA classroom sessions:
January 19 - New York City area
January 31 - Atlanta
February 7 - Chicago
February 16 - DC
March 23 - Boston
April 4 - Atlanta
April 20 - Chicago

UITJ (Understanding IT Jobs) Web sessions:
February 2
March 2
March 29
April 27

TR Web session:
February 22

Keep in touch . . .

Back to top

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TechKnowledge


Modeling: the Key to Development


I've been saying this in seminars for a while – software is created on the design level, that modeling is used for debugging and presentation, that this is where the problem is solved, that a system will be only as good as its design, and that many modeling tools actually generate program code. All of these combine to make modeling a key skill in IT. Models are graphical and are used for debugging and presentation. Business users can understand them, and can participate in reviews at the design level to catch errors before the programming is done. The graphical models also act as documentation for the system, and can then be used when changes are required.

The importance of modeling is that modeling tools now generate code so that the model itself is used not only for the original development, but also during maintenance – applying changes to systems. One of the problems in IT is that developers work on the code level during maintenance. This means they're making changes to software without looking at the underlying design. This is akin to adding a second story to a house without looking at the blueprints to understand the basic structure of the house. The addition might look good, but it also might fall down after use because basic structure couldn't support the weight of the addition. Software reacts the same way! Modeling is a fairly broad term, and there are many modeling techniques.

The techniques include modeling languages, primarily UML (Unified Modeling Language); frameworks such as MDA (Model Driven Architecture); and software processes such as RUP (Rational Unified Process). None of these are used alone, but work together in modeling.

UML (Unified Modeling Language) is an important tool. It's both a development methodology and a notational format used in object analysis and design and works with all object-oriented methodologies. Using UML (Unified Modeling Language), developers define a three-tiered model of the application: user interface, business logic, and database. It defines thirteen types of diagrams, divided into three categories:
Structure Diagrams include the Class Diagram, Object Diagram, Component Diagram, Composite Structure Diagram, Package Diagram, and Deployment Diagram.
Behavior Diagrams include the Use Case Diagram (used by some methodologies during requirements gathering); Activity Diagram, and State Machine Diagram.
Interaction Diagrams, all derived from the more general Behavior Diagram, include the Sequence Diagram, Communication Diagram, Timing Diagram, and Interaction Overview Diagram.
UML combines the methodologies of Grady Booch, Ivar Jacobson and James Rumbaugh and was developed by OMG (Object Management Group) and released in 1996. It has become a standard for most modeling tools and works with MDA and RUP. UML is a complex system – often too complex for what is needed – and does not cover all situations. But, it's a good start and is continually evolving.

MDA (Model Driven Architecture) is an overall approach to software development that bases everything on models. It's actually a set of standards that uses software to generate program code from models. These standards stress building functional models that are not tied to specific platforms. Code can then be generated for any number of platforms from the same model. This is accomplished by mapping a PIM (Platform Independent Model) model to a PSM (Platform Specific Model), which could be an operating system such as Unix, or a development platform, J2EE or .NET. MDA in theory eliminates coding completely -- this is a long way off. Presently very few IT departments could go to a complete MDA environment, and whether this is ever going to be possible remains a question in many people's minds. At present the code generation from modeling tools is usually the generation of code stubs, with the detail coding for each stub still being done by developers.

RUP, EUP, AUP (Rational, Enterprise, Agile Unified Process)
These are all specific instances of a unified development process which unify practices from several software disciplines, and present guidelines, templates and examples for all development activity. The software tools run on corporate intranets and coach all team members on development issues following the full life cycle. Developers use UML (Unified Modeling Language) throughout the development process. RUP was developed by Rational Software Corp. (specifically by Grady Booch, Ivar Jacobson and James Rumbaugh), and can be used in conjunction with any of IBM Rational development products. EUP is an extension to RUP – it adds a production phase which covers the operation and support of the software. RUP only addresses development.

AUP illustrates the fact that any development methodology could fit into agile development. Agile development includes any number of development methodologies, (often called "lightweight methodologies.) which develop software in iterations, and typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an agile software project tends to be capable of releasing new software at the end of every iteration.

Modeling has been a subset of design, but it's quickly becoming a synonym. We'll continue to see movement and upgrades to the modeling tools, methodologies, and systems. While reaching the point where developers create models and the modeling tools generate machine code is at best a long way off, the more effort that's put into the design, the better the software will be.


Back to top

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TechCheck


1. Which of the following does not belong?
a. Ant
b. Scorpion
c. Spider
d. Wasp
e. Worm

2. Which of the following is not an IBM product?
a. BlueGlue
b. Bluetooth
c. BlueDragon
d. BlueMoon

3. ERP (Enterprise Resource Planning) software has been used in large companies for many years, and the major systems are too large and expensive for midsize and small companies. What are the options for the midmarket?

4. Is Ruby's full name Ruby on Rails?

5. Do all modeling tools support UML (Unified Modeling Language)?

Back to top

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2006 Predictions


These are all from articles – none are original from me!

It's going to be an interesting year. I loved this statement from Andres Carvallo, CIO, Austin Energy, in a Computerworld article: "The hot skills in 2006? Wireless network design, ITIL compliance management, portfolio management and Ajax programming." Do you know what about these hot skills? The face of IT is changing, and this will be a year of changes.

The first is the move to SOA. The Gartner Group is predicting that by 2007 most companies will adopt SOA frameworks for new applications and have the infrastructure required for wrapping legacy applications and integration across processes. SOA is seen as an answer to the problem of time – it just takes too long to develop and maintain software.

Gartner also talks about more corporate acquisitions and mergers. "In the last six months, 420 software companies have disappeared. Currently, there are 1,800, but that's still 50 to 60 percent too many. By 2007, at least half of IT vendors will be acquired or will go out of business."

Other hot skills include business process modeling, business process languages, codeless development, model-driven architectures, according to William A. Mougayar, Vice President and Service Director, Technology Research Practice, Aberdeen Group Inc.

Another interesting prediction is that dual/multi-core processors will become dominant, increasing the speed of computers and answering some of the cooling needs. The impact of this is, of course, how software will change. Hardware improvements always cause software growth!

Wireless will grow (WiMax will join Wi-Fi in importance), as will syndication via RSS (Rich Site Summary), and open source will make companies rethink software acquisition.

And some to think about:
• Office software (word processors, spreadsheets, presentation software) will move from the desktop to the Web.
• Information filtering, or newsmastering (isn't that a scary word) will become big.
• Web sites will use dampening techniques (I had to look this one up – it's now in TechRef®).
• The most important business applications will be hosted and run over the Internet.
• Ruby on Rails will achieve world dominance.
• Steve Jobs (Apple) will fall from favor into some kind of disgrace.

I especially like the last, which was obviously tongue-in-cheek and based on his lengthy popularity and success. The predictor just feels his time to goof has come.

It'll be a fun year!

Back to top

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Short Vocabulary


Project Management

Project Managers have appeared in many of the lists of important jobs for 2006. This is a job that is often neglected, and, in fact, many times problem or weak developers have been promoted to this position to get them out of the way of the actual development! This has changed, and the job of project management is becoming more and more important and requires a variety of skills.

feasibility study Application development function. High level analysis of a problem to determine if it can be solved effectively. Deals with all aspects of the problem:
operational - will it work
economic - a cost/benefit analysis
technical - what resources are required
people - how many people, with what skills
Results of the study determine whether the solution should be implemented. Part of project management.

Gantt chart Application development technique used in project management. Used for resource planning and scheduling, but does not show inter-task dependencies. Graphs tasks and resources across a time line.

life cycle Software development follows a life cycle of activity which moves through several phases. Every program, or system, starts out with a definition, which is followed by analysis and then design. These phases comprise the "high-level" part of the development cycle and can be done independent of the hardware that will be used. The "low-level" phases - programming and testing - require knowledge of specific hardware, database products, networking products, and other systems information. While development does proceed through the phases in sequential order, there is much overlap and situations encountered in one phase often require cycling back to a prior phases to solve the problem.

methodology Guideline identifying how to develop software systems. It is an approach to problem solving and is defined by a set of rules and specific development tools. A methodology should contain:
a description of all deliverables;
a notation system that is often supported by third party tools;
a set of tried and tested techniques;
a set of appropriate standards and test strategies;
identification of organizational roles e.g. business analyst, programmer;
guidelines for project management and quality assurance.
Methodologies exist for functional development and for object-oriented development.

PERT chart Application development tool used in project management. Shows the activities involved in project development and the interrelationships among the tasks. Encompasses CPM (critical path method), which identifies the longest time line of dependent tasks.

PMI (Project Management Institute) Certification for project managers. The actual certification is named PMP (Project Management Professional), but is more often referred to by the vendor name. Consists of training, adhering to standards, and passing an exam. A CAPM (Certified Associate in Project Management) program was established in 2002.

project management Part of the development process. Project management starts with the definition of a system and continues through the entire life cycle. It's the job of a senior developer who is responsible for planning and scheduling the system development and ensuring that the project stays on track and on time. Includes supervision of the project development team.

project management tools Application development tools that help plan, schedule, and control a project during its development. Consists of both techniques and software products.

SCM (Software Configuration Management) Operating system function and program. Identifying, managing and controlling software and software components (design diagrams, data descriptions, etc.) SCM software automates the management of code and includes version control functions. Configuration management is very important with object-oriented (and other systems) that reuse software components. Also called software process management system, and is part of the asset management function.

version control Application development process. Keeping track of revisions and versions of programs. Especially important in client-server systems because there can be several versions (one for each platform) of client programs, all of which must be updated when a change occurs.

Back to top

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Answers to TechCheck


1. e) Worm does not belong. The other four are all names of specific software products, while worm is a generic name for a type of destructive software – and there are many worms. While spider is also a generic name for a type of search software, Spider is the name of a specific product – an application development tool. Links Web front end systems to client-server systems.

2. All of them. This was just a way of getting you to check them all out as all of them are current products you could run into. BlueMoon is a communications platform and infrastructure for wireless applications, and Bluetooth is probably the one you're most aware of – a wireless technology. BlueDragon and BlueGlue are development tools.

3. Absolutely they do. Not only do the major vendors produce systems specifically for the mid market, other vendors work in this area. SAP's Business One, Microsoft's Dynamics (Great Plains), Intentia's OneBox, Oracle's JD Edwards EnterpriseOne and JD Edwards World, Lawson software, Syteline, and others provide many options.

4. No. Ruby is an object-oriented language. Ruby on Rails is a complete development framework (written in Ruby, of course).

5. No. All current ones do, but modeling tools existed before UML did! You're not wrong, though, to think they go together because UML is definitely accepted as a standard.


Back to top

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Privacy Policy


SemCo Enterprises, Inc. respects your privacy. We do not sell, rent or share your information with anyone.

   
Contents
Happy New Year!
Teaser
TechKnowledge
TechCheck
2006 Predictions
Answers to TechCheck
Short Project Management Vocabulary
   
SemCo's Newsletter

TechConnections is SemCo's free monthly newsletter that features important IT articles and a unique perspective on IT for the non-technical professional.


   
Teaser
How are you at GoogleWhacking?


TechConnections Archived Editions

If you receive the Text version of this newsletter and you'd like to view it in HTML, join our Resources membership, then click on "Register Today."



If you have a technical question while reading TechConnections or if you would like to make a suggestion, send us a quick email - we'll respond, usually within 24 hours!
Back to top

Contact us at:

SemCo Enterprises, Inc.
P. O. Box 181265
Casselberry, FL 32718-1265
407.574.6759
semco@semcoenterprises.com
http://www.semcoenterprises.com

Copyright © 2006 SemCo Enterprises, Inc. All Rights Reserved (but feel free to quote it, think about it and forward to others.)

You are subscribed as %%contact-email%%. To unsubscribe please click here.