Go home pageWeb site mapUnified development processOOADdevelopmentJobs.Netroot@webudp.com

The Unified Development Process

Development methodologies
The development process of any software is the set of various actions needed for the transformation of users' requirements into program system. The problem of the software product development turns to the difficulties of developers having to overcome a lot of obstacles, before the ready-to-use product will be handled to customer. To develop the qualitative software product the process is necessary, which has control over the activities of all the participants (consumers, users, and developers), directs who, what and when has to do and how to reach the set objective.
Nowadays, the Unified Development Process (UDP) is the most advanced technology, describing the process of the software design. That’s why we use in our work the methodology and base work processes, described in UDP. According to the UDP, the product development is based on three fundamental principles:
1. The process is controlled by use cases
The use case - is the sequence of actions, running in the system as the result of its interaction with user. They form the principal part of the system functionality and their entire definition allows describing the system functionality in full extent. To determine the use cases it is necessary to answer the question what the system is to do for each user.
The use cases are not only the means to describe the requirements to the system. They direct its design, implementation, testing e.g. the whole development process. Grounding on the use cases, the developers create the series of design and implementation models. The testers check the components in order to insure the correctness of fulfilment of the use cases. Thus, use cases initiate the process of design and generate the workflow.
2. The process is oriented to architecture
Architecture is the entire project representation, where the most critical composing parts are selected without complementary details. The role of the program architecture is similar to the role of architecture in building construction. This is the framework, the skeleton of any software system, on which the required functionality is "hung on" in the course of time. The conception of system architecture comprises its most important static and dynamic aspects. The architecture must be planned to allow the system to evolve not at the development moment but in the future as well.
3.The process - interactive and incremental
  This principle presumes the program design strategy relied upon the small controlled pieces:
  • We plan the small piece;
  • We specify, design and realize the small piece;
  • We assemble, test and execute the small piece.
The plan for realisation of the iterations is composed to manage them. The sequence of the iterations fulfilment is determined with two factors. For the first, the use cases are realised during current iteration, which increase the product usability, for the second, the most serious risks are removed during the realisation. The result of realisation of the chosen use cases is the executable code. The advantages of iterative development:
  • The financial risks are limited to the expenses for one iteration.
  • The risk of delivery out of the planned term is diminished.
  • The consumer has the possibility to make the alterations during the development process.
The main tool for the description of Unified Process is UML - the language for visualisation, construction, description and documentation of the program system development.
The product life-cycle
As a rule, the program product development is very complicate process for the integral perception. Therefore it is necessary to separate the whole amount of work into small parts, more convenient for the understanding. In UDP the life-cycle time is divided into four phases: analysis and requirements planning, design, implementation and testing, and within the stage into the iterations. Each this phase has own goals and tasks, as well as fixed criteria for the estimation of the work results on each of them. The five cardinal base processes inside the each iteration can be defined: determination of requirements, analysis, design, implementation and testing. This allows marking out the set of actions and the sequence of their fulfilment, as well as the set of documents and schemes going with on the output of every process.
In every phase the principal volume of work falls on different work processes and is determined with its main task.
1. Analysis and requirements planning phase:
  The main objective of this phase is the determination of the purpose for the creating product, diminishing the most dangerous risks and business-plan preparation, exact enough to make the decisions about project approval and launch. It is needed to create the business-plan:
  • To define the boundaries of the intended system;
  • To determine and describe in brief the intended architecture, in particular, its new and risky parts;
  • To find the most dangerous risks and the ways to reduce them;
  • If it is necessary, to construct the conceptual prototype;
2. Design phase
  The main objective for the design phase is the creation of steady architecture, on which the system base will be build. Besides, it is necessary to conduct the study of the intended system for the next phase planning. For this it is needed:
  • To create the base level of architecture;
  • To determine the risks, which can have an effect on expenses and the implementation of the schedule of work and the ways of their decreasing (removal);
  • To cover with the use cases the most part of functionalrequirements;
  • To make the financial plan, to appoint the stuff and expenses, grounding on the business practice
3. Construction phase
  The main objective is the creation of product ready to beta testing. This is the most long-lasting on time and most resource-consuming phase. Usually it includes the big number of iterations. As a rule, up to 90 per cents of use cases are not detailed, at the beginning of construction phase. The list of work comprises of:
  • determination of extended description for the use cases;
  • completion of analysis, design and testing;
  • preservation of architecture integrity and its modification in the case of necessity;
  • tracking of risks, revealed during two first phases.
4. Implantation phase
  Implantation phase begins with system transferring to the users’ environment and its beta testing. The main objective is the assurance that the built product fully corresponds to the consumer’s requirement. The next tasks should be done on the Implantation phase:
  • The preparation of places for the deployment;
  • The determination of requirements for the environment modernisation;
  • The development of guidelines and other documentation for the product;
  • The modifications applying to insure the efficiency under current environment condition;
  • The correction of the revealed defects.
The implantation phase is ended with formal release of product.
  The result of every cycle is new release of system, and every release is the ready-to-shipment product. Besides the source code, ready to compilation, the product includes the set of visual models of system and architecture description. The set of these documents allows making alterations to system much easier or modifying during the exploitation process.
Subject area model or business-model
  The construction of business-model implies the marking out of use cases of software and business-entities, which will be maintained with software. The objects of the subject area usually describes:
  • the entities, used in business, such as applications, invoices and contracts
  • the objects and notions in real world, which the system must watch
  • the events, which will occur or occurred, for instance, the gear halt, the temperature increase
The subject area determines the most important objects’ types in context of system.
Use cases model
  The use cases model is something similar to the convention between consumers and developers on requirements, which must satisfy the system. It gives the needed data for the further analysis, design and esting. It includes sets of actants, use cases and determines their interdependencies.
  • Actants are the extra-system agents which interact with system.
  • Use case is the part of functionality, which system grants to actants to acquire the significant result.
For the use cases events stream detailed description the state diagram, on which all possible system states are depicted (initial, intermediate, final) is used. The states diagram is supplied with detailed text description for the running processes. The use cases model describes the common developers’ and consumers’ opinion on the requirements to system.
Analysis model
  The analysis model is the conceptual model of the object, in which the requirement analysis is made. In the course of analysis the requirements are made more precise and structured. The analysis model comprises of the analysis package, analysis classes and the analysis of implementations of use case.
  • The analysis class is focused on the functional requirements. It can always be referred as one of types: boundary, control or entity. The boundary classes are used for modeling the interactions between system and actants. The entity classes are destined for modeling the informational filling of the system, and they describe the real world objects. The control classes are responsible for the objects interaction and management.
  • The analysis packages provide with the means for organisation of the analysis classes and implementation the use cases as logical blocks.
  • The analysis of implementation of use cases describes how the given use case is realised and how it is executed in the terms of analysis classes and interacting analysis objects. It consists of text description of the events flow, the class diagram, and interaction diagram in the definitions of analysis model.
The analysis model contains the exact and plain in using description of the requirements to system.
Design model
  The design model describes the physical implementation of use cases. It is used as initial data for implementation. It comprises the design subsystems and service subsystems, interfaces, design classes, use case projects.
  • The design subsystems and service subsystems are usually described on the base of analysis packages. They serve to organise the constituent parts of design model into easy controlled parts. They comprise of design classes, realisations for the use cases, interfaces and other subsystems (recursively).
  • The design classes are the most approximate to real class implementation of its abstraction. To describe it, the selected programming language is used, the visibility of attributes and methods is given. The design class can be active, that is to say the objects of class use its own logic for control, working concurrently with other active objects.
  • The project implementation of the use case determines the description for the concrete use case in the terms of design subsystems, design classes, and their objects. It consists of the text description for the events stream, the class diagram, diagram of collaboration in the term of design model.
  • The interfaces are used to assign the operations, run by the design class or subsystem. This is the variant for the separation of functionality specification from its implementation.
Deployment model
  Deployment model portrays the physical way of the system functionality allocation on computational nodes. Each node is the computational resource (processor or other unit) and connected with other nodes through the channels for information interchange (internet, intranet and so on). The functionality of each node is determined with components, which will be deployed on it.
Implementation model
  Implementation model describes how the design elements such as design classes are implemented. It comprises of the realisation subsystem and components.
  • The realisation subsystem defines the way of data storage, inherent to that or either development environment: Java package, the project in VB, C#, the directory in C++ and so on.
  • The component is the physical container for elements of the design model. Usually they represent such conceptions as: “executable module”, “source file”, “library”, “table”.
Testing model
  Testing model describes how the executable components of realisation model are examined with the help of integrity tests and system tests. Testing model is the set of test examples, testing procedures and test components.
  • The test example determines the way for test of the system and comprises the subject of test together with the initial data and the result, and the conditions for test.
  • The testing procedure determines the instructions for the execution of the separate example or its part.
  • The test component automates one or few test procedures or its parts.
Architecture representation
  Architecture representation contains the extracts form above-written models for system, which are important for the architecture design.
All these models are linked between each other. They are created and supplemented during the whole cycle of the product development while subsequent implementation of actions, which are determined for every work process. On the next cycle of development availability of these models allows the developers to obtain the full comprehension of the existing product.
Home Map UDP OOAD Development Jobs .Net Email