IT Trend Alert!

The following article was shamelessly copied from Semco's November 2008 Newsletter, TechConnections.

Modeling - Changing IT Completely

Modeling has become the basis of all design – which is the heart of software development. Modeling is used to specify, visualize, and document software systems graphically. A model is a representation of the architecture of a data structure (data model), or of the steps and work done in an application process (process model). A model can be conceived independently of any notation, hardware, or software. In one sense, it is the essential information expressed through the use of a notation. Modeling is design process used for large and/or complex systems, and current tools allow the developer to build models, then the tool generates the program code. While modeling was first used with large and complex systems, many companies now model everything. Modeling has two subsets – data modeling and process modeling.ER (Entity Relationship) modeling is the oldest and most common data modeling technology. It was introduced by Peter Chen in 1976 and identifies information as entities and ties these entities to each other through various rules that define relationships. As new technologies appeared, ER techniques and notational systems were incorporated and expanded. ER modeling is included in IE (Information Engineering) and UML (Unified Modeling Language). Each of these systems has expanded the technology and each has its own notational system, but all are very similar and it's very easy to move from one to another.There are two types of process models, software and business. Software processes can be programs, modules, objects, components. Modeling the software processes means defining the executable segments – and when and how they will execute. Business processes, of course, are the actions of our businesses. For example, order entry is a business process. It consists of working with data (collecting it, updating it, etc.), but the main focus is on the action itself (answer the phone, ask specific questions, enter this data, etc), when the action occurs (throughout the day, every Friday, at the close of business, etc.).UML (Unified Modeling Language) is both a development methodology and notational format used with object analysis and design. With UML, developers define a three-tiered model of the application: user interface, business logic, and database. UML then defines thirteen types of diagrams (or constructs), 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: include the Sequence Diagram, Communication Diagram, Timing Diagram, and Interaction Overview Diagram. UML combines the methodologies of the main gurus of object oriented programming (Grady Booch, Ivar Jacobson, James Rumbaugh) and ws developed by OMG (Object Management Group) and was originally released: 1996. It was fully adopted in July, 2006 and many modeling tools and techniques are built on UML.Business process modeling is the newest form of modeling and it is the one that could have the largest impact on IT. Business process modeling can be done with any process modeling tool and technology, but ,in fact, new tools are being developed. Many of these tools are designed to be used by business men and women – not by IT professionals. This could cause significant changes in the way applications are developed. Two languages have already been developed – BPEL (Business Process Execution Language) and BPML (Business Process Modeling Language). Even more important, BPMN (Business Process Modeling Notation) was introduced in 2003 and is growing in use by both the business community and government agencies. This technology was developed specifically for business process modeling and is supported by many companies including IBM and Microsoft. BPMN models are much easier for non-technical people to work with than those created with UML and IDEF.Two terms have been around for quite a while, MDD (Model Driven Development) and MDA (Model Driven Architecture) and both represent the trend to use modeling as the heart of the development cycle. The acronyms are often used interchangeably, and represent a set of standards that use software to generate program code from models. This is so important. It means that the model becomes the program, and any changes or updates are done to the model. The models are saved and every time a change is made to the model, software generates the new code. MDD stresses building functional models that are not tied to specific technologies or platforms. This results in generating code for any number of platforms from the same model, so software is not tied to specific hardware and software. Another factor in the modeling trend is that the tools are more and more designed to be used by business men and women rather than IT professionals. Think of the implications – as these tools evolve, application "programming" will be done by business people, and IT professionals will concentrate on systems and technical software – operating systems, DBMSs (DataBase Management Systems), and communication systems. IT is changing. But, of course, that's nothing new.

No comments: