Object-oriented programming (OOP) now dominates the procedural-programming paradigm in many application areas. Developers often choose OOP and scripting languages—such as C++, Java, and Python—for project implementations because these languages provide a way to form appropriately realistic models of real systems and processes. Actually, avoiding OOP technology may produce less-than-optimal designs and deny the development team the opportunity to code in a more intuitive fashion.
Here's a list of some of the most interesting topics in OOP development:
- Unified Modeling Language (UML): This is the undisputed winner of the unofficial "modeling language wars," making it the modeling language.
- Rational Unified Process (RUP): All project managers need to be aware of this structured process for developing software systems.
- Design patterns: The momentum of design patterns continues to grow as they become mainstream.
- Java: This language continues to be hot, despite being a mature technology now. Of interest is that Java is on different kinds of platforms (such as phones and wireless devices), and Enterprise JavaBeans (EJBs) are being used for middleware.
- Web services: OOP languages add benefits to Web services. There's also added significance because they're being implemented in Java and .NET. Web services—businesses using loosely-coupled, interoperable applications across the network—are broadly comparable with object/component-based development architectures, and offer (subject to further development of security and standards) the benefits associated with object-orientation—all built on an open systems platform.
- .NET: There's a lot of interest in Microsoft's new platform for developing software and running Web services. The .NET development framework allows support for XML-based Web services created in all current programming languages, especially the popular OO languages like Java. Applications and XML Web services created in one language can therefore be programmed against, and debugged in, any of these other supported languages.
Use it the right way
Project managers who fail to use OOP effectively in the future might run into an array of difficulties. Possible problems include the code becoming bloated, limited availability of development tools, difficult parallel development, and no facility for concurrent execution. This could make the resulting programming work harder to understand, and comparatively, it may perform poorly because it mirrors reality less faithfully. Ultimately, there may be nightmarish maintenance issues, partly due to a lack of typed interfaces.
Also, it’s important to realize that it takes time to introduce OOP to a project development team with diverse skills. Designers and programmers need to develop new skills, adopt new tools, and make any existing code compatible with any long-term work-in-progress. Be aware, however, that OOP may not always represent the most effective solution to a particular task, especially given the inevitable time constraints of project management.
In the past, the "line of code" was the building block of software development. With OOP technology, the Class is taking on that role. Once there are effective standards for interoperability and security, project managers will be faced with many new opportunities and challenges in the development of network-enabled, service-based computing. At that point, the bulk of software development may shift up in scale again to using the networked Component as the fundamental unit with which project managers have to work.