CHAMPS Component Based Software Development
Modular, then Object Oriented, and finally Component Based Software Engineering all have a common thread that makes software development, implementation, support and usage much easier and more cost effective. All three disciplines seek to create homogeneous reusable software bits and pieces that may be assembled and configured into a variety of applications. All three methodologies are sound, logical, well documented, often taught and enjoy widespread acceptance and approval. So…obviously all software is designed and developed using one or more of these techniques, right? Wrong!
More often than not, software products, even the biggest most recognizable names on the market end up as monolithic limitless lines of code growing ever larger and more tightly integrated as new functions and features are piled on. All the while, technical documentation related to these products are providing the warm and fuzzy of Modular, Object Oriented and /or Component Based Software Engineering.
The truth above begs the question, “If software vendors know this and their software markets want this, what is keeping it from happening?”
Roadblocks to successfully developing Component Based Software products are not limited to but include the following key barriers:
- Developer mindset. The sharpest programming minds are the prime candidates to deviate or ignore required disciplines. Product and Project Managers hear over and over again, “I can build and deliver it faster than the time it takes to do all that planning and documentation!” Add other source code developers to the project and the excuses and pushback goes exponential, “I don’t trust them…my code is awesome…Ad infinitum
- Components definition requires a deeper understanding of the immediate near term subject matter, as well as, the long term strategic work scope making the up front work critical and at time more difficult
- Enterprise application component structure and integration methodology decisions ratchets the degree of difficulty and pushback from adhering to the aforementioned disciplines and brings the game to an all new level
- Staying power to support the entire lifecycle nurturing and internal practices auditing is another key factor in long-term success. A single step in the wrong direction will forever dominate your destiny toward building the monolithic monster.
- Finally, devoted decision makers to this process become their own worst enemies and barriers to success by allowing investment commitments to crumble over time where time and money are reallocated to the “new kid on the block” project.
If these potential pitfalls are acknowledged in advance and overcome, there are great benefits to be had from Component Based Software Engineering.:
- What you currently own may be effectively exploited fast and cheap. An organization may already have components in other systems that are extensively used and tested. Now it becomes a function of segregating them for reuse.
- Components make it easier to capture business and the design experience of experts, thereby eliminating one of the biggest sources of errors in software design and implementation, translating requirements into design.
- Components can be acquired to develop specific applications. This approach might take a lower level of software and programming expertise to assemble components.
- Components are easier to enhance and maintain, thus facilitating customizing applications to meet specific work processes of any organization.
- Assembling and implementing applications with reusable software components reduces time and cost of implementing complex business solutions
The following list of CHAMPS software components is organized in various categories to demonstrate the type of applications that can be created using these components. CHAMPS offers the following benefits to any enterprise ready to embrace developing business applications with reusable software components:
- An inventory of web architected software components that can be used and reused to develop complex business solutions.
- Functionality that will meet the needs of your users. If required, the components can be customized with a simple gap analysis performed with your users.
- Deliver business applications quickly and cost effectively, meeting all your functional and technological needs.
- Transfer knowledge to your organization in how to build applications from components, how to identify components and how to integrate them to meet your business processes.
- Eliminate programming by your organization.
- Provide on going support and enhancements as required by users.
Work Management
- Condition Reporting / Issue Tracking
- Job Plan
- Work Request
- Work Order
- Scheduling
- Project Tracking
Maintenance Management
WorkForce Management
- Personnel
- Timecard
- Training
Work Force Safety
- Permit
- Lockout/Tagout
- Fatigue Rule
- Accident Reports
Inventory
- Parts
- Warehousing
- Bill of Materials
- Material Request
- Physical Inventory
- ABC Inventory
Purchasing
- Vendor
- Request for Quote
- Quote Analysis
- Purchase Request
- Blanket Purchase Request
- Material Receipt
Financial
- Chart of Accounts
- Accounts Payable
- Accounts Receivable
- Project Accounting
- Sales Order
- Fixed Asset
Administrative Functions
- User Administration
- Workflow
- Document Routing
- Code Table Administration