-
Software Engineering
The Capgemini application development (AO) professionals stand in the frontline for and with our customers for innovation projects and using new technologies. They work in challenging projects in complex environments, at national and international level. Depending on their background and experience they work as system analyst, software architect, designer, application developer or IT tester. In summary, all roles that occur in the area of application and system development are fulfilled by our consultants. Read more.
-
Knowledge of Application Development
The Capgemini application development (AO) professionals stand in the frontline for and with our customers for innovation projects and using new technologies. They work in challenging projects in complex environments, at national and international level. Depending on their background and experience they work as system analyst, software architect, designer, application developer or IT tester. In summary, all roles that occur in the area of application and system development are fulfilled by our consultants.
Click here for the full curriculum.
Development methods
The following design and development methods are used within application and system development:
- Linear application development
- Iterative application development
- Agile application development
Linear development is characterized by different phases in which a following phase can only start if the previous phase has completely finished. At the end of a phase when everything has been accepted and approved, all products are handed over to the following phase. The customer receives working software after the system test by the development team has been executed at the end of the development phase. Analysis, design and development are involved with the total change process. An advantange is that all parts are managed together. A disadvantage is that a when a change in specification is required then all phases have to be repeated.
Iterative development is characterized by the various development stages not (always) being performed at the same time but in iterations. The products of a given phases are not complete until all iterations of this phase have been completed. The methodology Rational Unified Process® (RUP, © IBM Corp.) is an example of this method. The “handover” of products occurs after the completion of a number of phases, but the working software (and therefore value to customer) is delivered in multiple iterations. Because design and analysis activities occur in the Construction phase, a change in specification does not necessarily mean that a phase (or iteration) has to be repeated.
Agile Development is characterized by short cycles of work and rapid production of compact software products. This is achieved in “sprints” where chunks of analysis, design, development and test are executed. This makes it possible to provide working software to customers after every iteration (sprint). This short cycle approach means that it is possible to quickly react to changes in specification.
Core activities
Indepenent of the approach to developing or changing a system, a number of core activities need to be executed. The development method chosen determines when and by which role(roles) the core activities are performed. The core activities are as follows:
- Information Analysis
- Functional Design
- Technical Design
- Programming and Unit Testing
- Application/software architecture
The core activitiy Information analyis has the objective of design of a(n) (information)system that is so accurately described that customer can make a decision on whether to have delivered or not the proposed (information)system, a so-called go/no-go decision. The product from this core activitie is called Preliminary Investigation, Definition Study or Detailed Project Definition.
A good description provides insight into the total functionality of the (information)system and the consequences for realization, implementation and operation of this in the end-user organization.
The approach should quickly show that the proposed change is desirable and acceptable for the organizational objectives of the customer.
The core activity Functional Design comprises the detail design and functional specification of the to be developed or changed information system. In summary:
- what the new information system does for the end-user: what products are delivered;
- what the end-user has to do with the new system; how does the end-user get information into the system;
- what are the consequences of the new (implemented part) system for the end-user organization (in any case: additions to what already has been dercribed in the information system).
The objective of the core activity Technical design is:
- the research of the technical feasibility of the desired functionality of the designed system, where is defined that automatic support is required and in discussion with functional designer, database administrator and other specialists solutions to potential problems;
- the delivery of programming specifications for realization of the automated parts of the funcitonality.
The objective of the core activity Programming and Unit Testing is the design, coding and testing of the products describd in the Technical design.
Finally the core activity Application/Software Architectuer has the objective of aligning the application/software architecture with the result of the information analysis together with the application landscape and the technical architecture. This alignment with the existing architecture ensures that the end-user organization can (continue) function(ing) optimally.
N.B.
Outside the scope of the core activities of Application Development Buiten are other activities that must be performed on the delivered system: User acceptance test, Load test, producing deployment scripts, integration of system modules and so on.
Techniques
Within the various core activities the executing roles use a large number of techniques, that allow them to produce the desired description of the model and to be able to communicate on the different products. With the techniques for application development we can think of information requirements analysis, data modelling, interface modelling, processor modelling, program design, access path analysis and database design.
These various techniques are offered by the Capgemini Academy as separate training, that can be taken whenever a developer needs them.
The concept of "tracks" has been defined, whereby training modules are followed in a fixed order, so that a potential cursist can not only learn individual techniques but also relationships between these techniques. The available tracks are:
- Information analysis
- System modelling
- Problem and Change analysis
- Functional Design
- Preparation Functional Detail
- Execution Functional Detail
Would you like to know more? Download the brochure (in Dutch).