|
Principle 1:
Understand Requirements
- Understand the business domain
- Clear communication among stakeholders
- Define scope and objects
|
Rationale
When we embark on examining a system, the ultimate goal has perpetually been to streamline processes and obtain optimum outputs. The finale is to develop a robust electronic system that is continuously synchronized with the changing business process. Hence, the business process is central to any efforts. Thus, it is crucial to understand how the system elements within a business domain behave.
The understanding of, or change in, the business process behavior can only be achieved through a medium that guarantees clear exchange of views and ideas among the stakeholders (SMEs), of a specific business domain, within clearly defined system boundaries.
|
|
Principle 2:
Conduct Thorough Analysis
- Define system boundaries and surrounding environment
- Apply Systems Thinking principles, holistic view, instead of a problem centric approach
- Understand business domain logic, vocabulary and semantic
|
Rationale
When we examine “something”, we have to contain it first, to put our hands around it. Likewise, drawing boundaries around a domain, help us to clearly distinguish between elements that are, within or out, of our analysis scope.
Traditionally, we then tend to focus only on the internal elements behavior and interactions. Consequently, we overlook what goes on beyond the boundaries of the domain we are analyzing. On the other hand, Systems Thinking impels us to include the ever crucial impact of the surrounding environment in our analysis.
In order to have clear understandings of the elements behavior: logic, vocabulary and semantics, it is important to maintain the integrity of its behavior intact, “as is”, without corrupting it with the observer’s own perception or interpretations.
|
|
Principle 3:
Develop Intelligent Design
- Responsibility driven principles
- Distributed, granular, loosely coupled application design
- FSOA
|
Rationale
In general, business systems are man-made, i.e. artificial; they inherit neither random nor natural behavior. Rather, business systems behave in a controlled manner governed by manmade business rules. These rules dictate how the system operates and conduct its business. Business rules break down to responsibilities. In turn, responsibilities are assigned to specific elements, within a domain, to act in a certain way. It is then the assigned responsibility that defines how, where, why and when a business element exhibits its behavior. Designing electronic systems from this perspective allows for the development of systems that are in concert with their real-life counterparts.
Responsibilities are inherently distributional, which means that system elements accordingly fulfill their responsibility by conducting compartmental sets of activities. The design we practice prevails from this concept. For that reason, the applications we design manifest themselves as distributed component-base loosely coupled systems. Since our analysis focuses on business responsibilities, naturally the business process becomes the driver for the underlying architecture.
If business is all about services, which means that business systems have to be service oriented. Therefore, any support mechanism or application, have to be service oriented, that is why we implement a business process driven FSOA.
|
|
Principle 4:
Implement Pervasive Solutions
- Web Services
- De-coupled application components
|
Rationale
Web Services are granular application components that perform specific business processes/functions, they are language and platform independent leveraging open standards, such as XML, SOAP, UDDI, and WSDL. Web Services and are accessed by other applications through their published API while hiding implementation details. Web Services provides the following benefits:
- Promotes interoperability
- Collaborating Web Services are bound dynamically at runtime
- Dynamic service discovery and invocation (publish, find, bind) and message-oriented collaboration yield applications with looser coupling, enabling just-in-time integration of new applications and services that are self-configuring, adaptive and robust with fewer points of failure
- Reduces complexity by encapsulation
- Flexibility and scalability
- Enables interoperability of legacy applications, instead of full system rewrite.
|