EARTH WEEK
Now through April 22, save up to 70% on digital learning resources. Learn more.
Register your product to gain access to bonus material or receive a coupon.
For CIOs, IT Directors, Project Managers, and solution developers.
Level
Intermediate.
Hedley Apperly is Vice President, Product Marketing and Development with Aonix
Hedley has graduate and post-graduate qualifications in production engineering, business computing and strategic marketing. His 19 years experience in IT, have focused on the design and development of relational, object-oriented and component-bases systems. He is also a committee member of the British Computer Societies (BCS), Object-Oriented Programming and Systems (OOPS) specialist group. As well as his involvement Component Based Development for Enterprise Systems, published by Cambridge University Press, Hedley co-authored Component Based Software Engineering; Putting the Pieces Together, published by Addison Wesley.
Barry Maybank is Principal Consultant with Aonix. Barry has been within the IT industry for over 17 years, holding positions in consultancy groups, IT Product Companies and Engineering companies with roles ranging from software engineer to architect.
Barry McGibbon is Associate Consultant with Aonix. Barry has worked in the IT industry for over 35 years, holding very senior management positions with leading computing services providers. He has been involved in component-based development initiatives for significant enterprises in the UK and Europe. As well as a frequent contributor to major journals, he is author of Managing Your Move To Object Technology: Guidelines & Strategies for a Smooth Transition published by SIGS Books Inc. He is also Technical Chair for Europe's largest CBD/OO conference and a series editor for Cambridge University Press.
David Piper is a Principal Consultant with Aonix. D
Structure of the Book
This book has eleven main chapters that cover the major topics of component based development (CBD) using the Select Perspective. After the introduction and overview chapters are the three key chapters covering the supply-manage-consume lifecycle. These three chapters detail the workflows, processes, and activities that ensure successful delivery of business IT solutions. Although they are closely related, each chapter can be studied separately. The remaining chapters cover supporting material referred to in the main supply-manage-consume chapters, such as techniques and deliverables.
CHAPTER 1
Introduction to Component Based Development outlines the experiences you need to derive real business benefits from using software components. It also shows how the component based approach is similar to the scenario of buildings houses.
CHAPTER 2 Overview of Select Perspective provides a description of the development lifecycle for component based solutions, outlines the business benefits of adopting this approach, and lays out the principles behind the method. It gives an introduction to the supply-manage-consume workflows.
CHAPTER 3 Supply discusses the issues surrounding the build/reuse/rent/buy debate for the supply of components and services, such as those provided by Web Services. It presents the detail on the tasks and activities for delivering components.
CHAPTER 4 Manage shows how reusing components is more than simply storing them in a library and providing a catalog. This involves strategies for acquisition, certification, classification, and publishing of components, as well as success in locating and retrieving those components.
CHAPTER 5 Consume forms an umbrella process for all those activities that focus on the project-based delivery of business solutions: business alignment, business architecture, technical architecture, solution delivery, solution rollout, maintenance and support. Each section describes these major processes in detail and within this framework, Select Perspective fully supports the concepts of incremental working and iteration.
CHAPTER 6 Data Architecture details the approach to handing the complexities of storing and managing data. It discusses the different approach to data migrations and shows how data components provide a flexible and adaptable way to handle the information used by the solution.
CHAPTER 7 Project Management outlines core features of Select Perspective that address the issues that frequently arise in projects. These core features include: use case driven, iterative working, incremental working, parallel working, and active support for different project types.
CHAPTER 8 Roles list the skills and responsibilities for those roles that are special to the component development approach as well as those common roles where new skills are needed.
CHAPTER 9 Techniques focuses on those techniques that are special to the component development approach.
CHAPTER 10 Deliverables covers the many products produces during a CBD project, some of which are common to all types of software development projects.
CHAPTER 11 Tools provides details of the Select Business Solutions products that support the component based development approach
What this book is about
This book is about software development. It presents approaches and practices for the construction of software systems using a component-based approach. It details the key workflows for a modern approach to supplying, managing, and consuming software assets that meets the needs of the stakeholders of the business. Above all, this book is based on a proven, pragmatic approach to delivering successful software solutions in a wide variety of contexts: industry, scale, maturity. This approach is called Select Perspective™.
The approaches presented here were developed over many years at Select Business Solutions (SBS),1 a division of Aonix. All the authors are leading experts involved in working with SBS customer teams worldwide to develop and deliver successful solutions. These solutions were built within many different types of businesss, covering such diverse sectors as financial services, call center operations, internet publishing, retail, manufacturing, and utility services. The team sizes ranged from a few developers to large globally distributed teams, all with different skill levels. This has made Select Perspective fit for real-world solution delivery.
Select Perspective is a blend of approaches from several object-oriented methods, improved and adapted to meet the new demands of component-based development and web services. It uses the Unified Modeling Language (UML) to communicate the designs, structures, and blueprints across all the roles involved in todays software development.
In contrast to those development approaches that are mainly concerned with the activities and tasks that often result in volumes of documents but do not produce meaningful deliverables, Select Perspective defines a small set of key deliverables and identifies the activities and tasks to produce them. If a particular diagram was not necessary to a particular solution then it is not produced.
1. Previously known as Select Software Tools Ltd.
The structure of this bookThis book has eleven main chapters that cover the major topics of component-based development (CBD) using the Select Perspective. After the overview and introduction chapters are three key chapters covering the supplymanage
consume life cycle. These chapters detail the workflows, processes, and activities that ensure successful delivery of solutions. Although they are closely related, each chapter can be studied separately. The remaining chapters cover supporting material referred to in the main supplymanageconsume chapters, such as techniques and deliverables.
Chapter 1, Introduction to contemporary software development, outlines the experiences you need to derive real business benefits from using software components and services. It also shows how the component-based approach is similar to the scenario of building a house.
Chapter 2, Overview of Select Perspective, provides a description of the development life cycle for component-based solutions, outlines the business benefits of adopting this approach, and lays out the principles behind the method. It gives an introduction to supplymanageconsume workflows.
Chapter 3, Supply, discusses the issues surrounding the reuse/rent/buy/build debate for the supply of components and services, such as those provided by web services. It presents the detail on the tasks and activities for delivering components.
Chapter 4, Manage, shows how reusing components is more than simply storing them in a library and providing a catalog. This involves strategies for acquisition, certification, classification, and publishing of components, as well as success in locating and retrieving those components.
Chapter 5, Consume, forms an umbrella process for all those activities that focus on the project-based delivery of business solutions: business alignment, business architecture, technical architecture, solution delivery, solution rollout, maintenance and support. Each section describes these major processes in detail, and within this framework Select Perspective fully supports the concepts of incremental working and iteration.
Chapter 6, Data architecture, details the approach to handling the complexities of storing and managing data. It discusses the different approaches to data migrations and shows how data components provide a flexible and adaptable way to handle the information used by the solution.
Chapter 7, Project management, outlines core features of Select Perspective that address the issues that frequently arise in projects. These core features include use case driven, iterative working, incremental working, parallel working, and active support for different project types.
Chapter 8, Roles, list the skills and responsibilities for those roles that are special to the component-development approach as well as common roles where new skills are needed.
Chapter 9, Techniques, focuses on techniques that are special to the component-development approach.
Chapter 10, Deliverables, covers the many products produced during a CBD project, some of which are common to all types of software development project.
Chapter 11, Tools, provides details of the tools that support the component-based development approach with examples from the Select Business Solutions product range.
Who should read this book
Select Perspective is a pragmatic, component-based software development process that can be implemented by all roles in software development. It includes the business people that specify, accept, verify and use software solutions. As such, every individual who is involved in the specification, acceptance, construction, testing, delivery or budgetary control of software solutions will gain from the experiences, examples, and process definitions in this book.
We recommend that individuals fulfilling any role in software development read the first two chapters of this book to understand the principles, drivers, and benefits of a component-based approach to software specification, construction, and delivery. To gain full value from the content, generic roles are described in this section, and the areas of the book that are most appropriate are described. All individuals can gain from our experience in all the chapters; however, particular chapters and workflows provide specific assistance, guidelines, and principles for particular roles.
Chief executives, senior technology executives, CIOs and CTOs
For executives involved in the management, control, and strategic direction setting for software development in their organizations, the supplymanage consume model and principles described in the first few chapters will be of particular interest, together with the roles, techniques, deliverables and tools definitions. The remaining detailed workflow chapters and case study will then provide concrete examples and definitions to emphasize the impact of adopting these process and technology principles.
Project and program managers
To assess project and program team roles, skills, deliverables and use of tools, Chapters 811 will provide detailed definitions and relationships to the process workflows. The key chapter for you is the one on project management workflow (Chapter 7).
Business analysts
Chapter 5 has workflows that describe the alignment of requirements and business process models to the business and the development of the business architecture. This then follows through the consume workflows to the solution delivery and solution rollout workflows, which cover the design, development, testing, acceptance, and rollout of the software solution aligned to the business.
Software developers
Depending on the architectural layer in which you develop, i.e. solution (user interface and process control components) or business/infrastructure (business, data, legacy wrapping, COTS components), either the consume or supply workflows will provide the activities, dependencies, modeling deliverables, and techniques for you. For the more technically focused, the specific technical architecture workflow will add invaluable experience. Also, the component management workflow provides the mechanisms for publishing and reusing components and implementing the design by contract paradigm.
Software designers
Similar to software developers, the applicable workflows depend on the architectural layer in which you design. Either the consume (user and process control layers) or supply (business/infrastructure component layer) workflows will provide the activities, dependencies, modeling deliverables, and techniques for you.
Software engineers and architects
In particular, the technical architecture workflow in Chapter 5 provides a unique model-centric approach to analysis, design, and implementation of technical architecture frameworks and the integration of these into business solutions. Depending on your architectural responsibility, i.e. solution or component development, Chapters 3 and 5 provide invaluable insight into the activities surrounding component-based design, testing and deployment. The component management workflow will help if you have any responsibility for reuse and/or maintenance and storage of your components.
Software testers and quality assurance analysts
Each of the workflows has elements of testing and accreditation; therefore, the supply, manage, and consume workflows detail the testing activities and dependencies. Furthermore, Chapters 810 provide detailed definitions of the outputs and various responsibilities.
Process owners
All of the workflow definition chapters will be of particular interest to you, with their detailed definitions of activities, dependencies and prerequisites. Definitions in Chapters 811 add the final pieces to refining your own processes to adopt component-based analysis, design, construction, testing, and deployment.
Computer science and software engineering academics/students
For any student, lecturer, or professor attending, teaching, or managing a computer science or software engineering course, all chapters of this book provide valuable, industry-proven processes, techniques and deliverables, which are critical to component-based analysis, design, development, testing, and deployment.
Acknowledgements
First, we would like to extend our greatest thanks to the customers of Select Software Tools, Princeton Softech and Aonixs Select Business Solutions division. Without their real projects with real business issues, budgets and timescales, none of the founding experience for the Select Perspective would exist. The consultants used in these projects were highly skilled but also used the experiences to continually refine the Select Perspective component and service-based development process. This is not insignificant, as the projects number more than 1,000 in North American, European (especially the UK and Benelux) and global organizations. To name all of the countries in which the Select Perspective has been tested and practised on customer projects would fill the page, but the reach can be indicated by just a few: China, Australia, Brazil, Sweden, the Netherlands, Germany, England, the USA, Hong Kong and Poland.Second, the authors would like to thank their respective employers over the period of Select Perspective evolution. The writing of this book took place under the management of Ashley Abdo, CEO and President of Aonix, to whom we are grateful for the gainful employment and unerring support.
Many more people and organizations have played a part in the development of Select Perspective and this book: the non-author (pre- and post-sales) consultants past and present, who all worked towards a common goal; the managers within Select Software Tools, Princeton Softech and Aonix, who supported and nurtured their staff; the staff in marketing, sales, software development and support, who all played a part in the development of the Select Perspective and this book; and the partner organizations and competitors, who helped to support good ideas and identify weaker alternatives, respectively.
We would also like to thank the various authors who helped to found the object-oriented and component/service-based movements. They have paved the way and sown many a useful seed.
Finally, and most importantly, we would like to thank our partners, parents, children, relatives and friends for their support, particularly when it may have appeared that we had our minds on different things. We care for you and appreciate the time you have allowed us to work on this book.
Introduction
Every business faces constant change, and these changes increase the pressure on IT development to deliver successful solutions. Changes to the business make new demands on IT developers to respond quickly to the opportunities or threats to the core business. Solution development is measured in weeks rather than months, which means that the development process must be responsive to the different needs of each project. This approach is known as agile development, of which eXtreme Programming Beck is a well-known example.Changes in technology also increase the demands on the IT community. Many of these changes are improvements of an existing technology that requires a re-evaluation of current systems. Such re-evaluation can result in significant work in upgrading these systems, which can be mitigated by the development of adaptable systems, i.e. systems that have been designed for change.1 The key to providing adaptable systems is components. Each component delivers a set of services published as clearly defined interfaces, behind which is the encapsulated behavior and information to support the required operations. Components are designed to be highly flexible, i.e. any changes are contained within the boundary of the component without affecting other components. Every attempt is made to minimize any dependency on the development or deployment environments, especially the user interface. The delivered solution is then an assembly of components that can be deployed in a number of combinations.
However, other technology changes involve a significant shift in technology; these are often called discontinuous innovations. They have a new nature, which means they do not fit the old way of building solutions; they demand new skills from the IT community, and they introduce new risks to development projects. An example of such a shift is the growth of web services. The term web service has been coined to describe an application service that is accessible either publicly or privately using web-based protocols. At its simplest, a web service could be used to pass a single business document, such as a purchase order, between two companies. Web services can also be used for more
1. Older systems generally do not have this characteristic and need to be re-engineered to provide an adaptable solution (see Componentization of legacy systems in Chapter 3)complex interactions, such as processing a payment transaction, conducting a credit check or performing an insurance risk assessment. At the heart of web services are a number of standards aimed at enabling communication between software applications over the internet, e.g. SOAP, a mechanism for accessing service functionality using HTTP and eXtensible Markup Language (XML) schemata. These standards enable not just whole applications to be accessed but also individual application services, a concept that fits well with the evolution of application architecture towards components and services.New technology cannot be ignored; it must be tackled. Developers must start the long journey to understand the technology, evaluate the benefits, assess the impact, prove the claims, and finally incorporate it into appropriate solutions. The map for such a journey is a defined development process. A process defines a way of working: a blueprint of workflows, steps, and tasks that shows how to deliver successful solutions in a number of different contexts. This blueprint must be sufficiently flexible to accommodate significant shifts in technology and yet provide the rigor required to support the complex business of developing solutions.
This book is about such a process: Select Perspective™
Select Perspective has had a long history. It first appeared in 1994 as a response to Selects visual modeling tool customers, who needed to establish a method of working in object-oriented technology. Their existing processes, which were usually based on structured techniques, did not seem to fit the new high-energy activities surrounding object-based development. Much of the early process was derived from the rapid application development (RAD) approach as published by the Dynamic Systems Development Method (DSDM) consortium.
However, Select Perspective was, and still is, different. From its early days Select Perspective, unlike many other processes, has had two key characteristics:
1. It is delivery-focused.
2. It has been tested, evolved, and proven on many projects.
The majority of software development processes are mainly concerned with the activities and tasks that often result in volumes of documents that capture facets of the problem and solution. Developers can get caught in cycles of activity that keep them busy but do not produce meaningful deliverables; you often hear of analysis paralysis. The early authors of Select Perspective believed in defining a small set of key deliverables and identified the activities and tasks to produce them. If a particular diagram was not necessary to a particular solution then you did not produce it. This principle applies to Select Perspective to this day.
The second key characteristic of Select Perspective is that it is based on experience: experience gained by many Select staff working with customer teams to deliver successful solutions for different types of business in diverse business sectors. The development teams varied in numbers with each individual at a different skill level. This experience-based characteristic has made Select Perspective fit for real-world solution delivery.
Since 1994, Select Perspective has changed; it has had to evolve to cater for changes in the business and software development world. One of the first changes was to include architecture as a key part of the solution deliverables. This gave rise to the RAAD (rapid architected application development) approach, which enabled complex business applications to be built quickly while ensuring that the software architecture was fundamentally sound and scalable. Select Perspective became more powerful to handle these new deliverables, which defined the multi-tiered architecture and framework of modern distributed systems.
The second major and most significant change to Select Perspective started in 1997. This was the move to components. Object technology and object-based development became the preferred approach to delivering modern solutions, but some of the promised benefits were hard to realize. The major benefit that was the most difficult to realize was that of increased developer productivity through the reuse of objects. Objects are too fine-grained (small) for significant levels of reuse. Developers do use common framework objects such as GUI controls, but the major benefit is the reuse of business objects such as Product, Customer, and Order Capture. Todays programming languages now support component and service principles in response to these object-oriented issues.
Components are generally coarse-grained (large) encapsulations with more functionality than individual objects. A components publishes an interface that defines the services it offers, and the actual functions and data are provided as a black box: you know what it does, but not how it does it. Components may then capture business (or presentation) functionality and can then be reused in many different solutions. With this enforced separation of responsibilities between the interface (a contract) and the implementation, it becomes possible to have true concurrent development.
SBS knew that these benefits could be realized and encouraged its customers (and others in the industry) to make the move towards component-based development (CBD.) To make this move successful, Select Perspective needed to reflect the new development vision of the supplymanageconsume model for CBD.
Based on our process development principles (delivery-focused, tested and proven) the Select staff started exploring and augmenting Select Perspective to provide a pragmatic CBD approach that met the needs of our customers.
This version of Select Perspective has evolved over many years through discussion, drafting, testing, and reviewing to arrive at its form today. It has been the work of many hours from a wide range of authors and reviewers drawing on their many years of experience. The result is a comprehensive and adaptive set of life cycle processes that define component-based development for a wide range of different project types.
Select Perspective is not finished; it will never be finished. Over the coming months and years it will change, adapt, and evolve as we and our customers tackle new project types, integrate new technology, overcome organizational changes, and meet the high expectations from business management to deliver solutions that are critical to the business.
This book is therefore a snapshot of Select Perspective as it is today, giving you an insight into the vast real-world experience that has been documented and evolved since 1994. We will continue to use your feedback to improve this contemporary software development process, keeping it relevant and useful, as it has always been.
As well as a snapshot in time, this book is also a subset of the extensive detail contained in Select Perspective. The full detail of the workflows, deliverables, etc. is to be found in our computer-based version, provided with Select Process Director tool (see Chapter 11.)