Top Banner
DISTRIBUTED APPLICATION DEVELOPMENT (DAD) Presented By: • Syed M. Mujtaba •Osama Masood •Souban Ahmed
47
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

DISTRIBUTED APPLICATION DEVELOPMENT (DAD)

DISTRIBUTED APPLICATION DEVELOPMENT (DAD)

Presented By: Syed M. MujtabaOsama MasoodSouban Ahmed

Topics to be discussedIntroduction to DADHow to Measure the Success of Implementation of DADStrengths and Weaknesses of DADThe Process FlowStage 1 - Plan ProjectStage 2 - Activate ProjectStage 3 - Control ProjectStage 4 - DAD Gather Domain RequirementsStage 5 - DAD Model Domain RequirementsStage 6 - DAD Establish Development StrategyStage 7 - DAD Business Object AnalysisStage 8 - DAD DesignStage 9 - DAD ConstructionStage 10 - DAD TestingStage 11 - DAD DeploymentStage 12 - End ProjectINTRODUCTION TO DAD

What is Distributed Application Development?

The Distributed Application Development process encompasses modern design principles and proven practices to facilitate the development task and provide developers with a blueprint for building robust and correct distributed applications

It is a collection of experiences and best practices that have been taken from real-world development engagements, providing development teams with access to shared experiences and a proven, repeatable process

DAD key elementsDistributed Application Development has the following key elements:

Concurrent development of packages and components

Reuse of software components (either built in-house or purchased)

Cyclical and incremental development

Release strategyWhy Use Concurrent Development? This provides a basis for more rapid developmentSmooth transitioning from one stage of a project to the nextContinuous delivery of staged results that are of value in the total solutionImplies iteration with a checkpoint at the conclusion of each stage to validate the quality of stage resultsThe scope of the next stage is also defined with each checkpointSuccessful Implementation of Distributed Application Development Factors that measure the success of the implementation of distributed application

UsabilityReusabilityStabilityConsistencyQuality

Usability:This includes improving user productivity and satisfaction with the system through easier access to and manipulation of data, consistency in the user interface, and access to data through end user tools

Reusability:This measures the capacity to reuse components developed for the application in other distributed applications with a common interface.

Stability:Distributed technology is becoming more robust but is still relatively immature. Consequently, it is essential that the known weaknesses in this technology be acknowledged, understood, sought out and corrected through the design process to achieve stable applications

Consistency: The single greatest factor contributing to user satisfaction is consistency. Users expect that the same types of actions will occur in the same way each time they encounter them. The challenge is to provide a consistent work environment that ensures consistency across systems and toolsQuality: Quality takes on special meaning in distributed implementations, due to the complexities in distributing and upgrading applications across a network environment. Quality must be built in by applying a robust methodology and testing for quality at each checkpoint in the processSTRENGTHS AND WEAKNESSES OF DADSTRENGTHSGraphical presentation to the usersNetwork distribution of applicationsIntegration of legacy or heritage applicationsIntegration of purchased packages and componentsRobust application based on real-world business objectsFrameworks and patterns availability to reduce development timeAccess to shared business dataWEAKNESSESComplex or long update transaction cyclesDistributed transaction updateVery large database support on serversTHE PROCESS FLOW

The steps in the Distributed Application Development Include

Stage 1 - Plan ProjectStage 2 - Activate ProjectStage 3 - Control ProjectStage 4 - DAD Gather Domain RequirementsStage 5 - DAD Model Domain RequirementsStage 6 - DAD Establish Development StrategyStage 7 - DAD Business Object AnalysisStage 8 - DAD DesignStage 9 - DAD ConstructionStage 10 - DAD TestingStage 11 - DAD DeploymentStage 12 - End Project

Stage 1 - Plan ProjectObjectives:Determine the project goals and objectivesDefine the project scope and approachDefine the major products and resultsUnderstand the project risks, assumptions and constraintsProduce a realistic project planGain consensus for the project plan

Process Flow:

Output:

The output from this stage would be the introduction of the project being undertaken, the assumptions regarding it, its scope, the budget, the risks associated and the different types of resources required.Stage 2 - Activate ProjectObjectives:Initiate the projectEnsure timely availability of resources (e.g., people, skills, facilities, equipment, hardware, software, etc.).Maintain support for the project throughout its lifetimeManage expectations when a deliverable has reached a significant state (either completed or not completed by the expected date)

Process Flow:

Output:Output of this stage will be the information about the individuals, materials, equipment, or other resources that participate or are used in the project.

STAGE 3 - CONTROL PROJECTObjectives:Ensure that project activities are monitored and problems and issues are identified and resolved quickly

Ensure that high quality products and results are produced on time and within budget

Ensure that all project activities are coordinated internally and externally

Process Flow:

Output:Project results - The summarized project results include recommendations for subsequent action, products produced, other significant results, major decisions taken and the reasons for those decisions. Turned over to the project sponsor or project owner and information about what output is reusable is provided to the development coordination organization.

Stage 4 - DAD Gather Domain RequirementsA domain is a portion of the business which has a cohesive business policy. Examples include insurance claims management, telephone call routing, and bank loan management.Before beginning, the project team should determine what requirements to gather, how to document those requirements, and when to stop gathering requirements. The team then proceeds to document the business process using workflow methods, finally producing the requirements for the implementation of some part of the domain.

Process Flow:

Outputs:Requirements Package - The Requirements Package includes the following types of requirements:BusinessPerformanceOperationalSecurityUsabilityArchitectural

Stage 5 - DAD Model Domain RequirementsBusiness Domain Modeling begins with modeling the documented requirements. Create a documentation structure using a data dictionary. The requirements themselves need to be represented using UML models.

There are two views of the models: behavior view and concept view. Each represents a different aspect of the requirements. The concept view describes the structure of the objects underlying the domain. The behavior view describes the dynamics of interaction of the business domain

Process Flow:

Output:Revised Requirements Package

Stage 6 - DAD Establish Development StrategyIn this stage you must decide how to implement the application requirements via a series of successive software increments or releases. If the decision is to build, the distributed application should be implemented in separate software increments, based on segments of the business domain that translate into logical development projects. Make adjustments to the Business Domain Model as needed.

Process Flow:

Output:Release Strategy - A strategy to develop and deploy incremental versions of a distributed application and to install the additional technical facilities needed to support the information requirements. The Release Strategy is a living document that, while it sets the overall direction of development, is updated as more information about the application and the progress of its development is learned from the incrementally developed projects

Stage 7 - DAD Business Object AnalysisBusiness Object Analysis needs to model all the concepts and the behavior for the selected software increment. The domain model will provide a high-level view of some large-grained objects and possibly of some fine-grained objects. Analysts will need to define the exact scope of the software increment so that they can carve out the relevant part of the business domain. At the end of this stage you must subdivide the Specification Model into cohesive areas for iterative development and implementation. The iterations are defined in terms of design areas, or "packages" (UML terminology for a large grouping of classes). This stage concludes with a review of the preliminary application design for accuracy, completeness, and architectural integrityProcess Flow:

Output:Specification Model - The Specification Model captures all the information about a particular software increment to be built.The model is a composite of numerous diagrams, textual definitions and specifications, organized into two views, the Concept View and the Behavior View.The Concept View is composed of the following model elementsClass Diagrams (including object types, relationship types, attribute types)Package DiagramsOperation SpecificationsStructural RulesVarious business documents describing the business areaThe Behavior View is composed of the following model elementsUse case scenarios Use case diagramsActivity diagramsEventsContext diagramsState transition diagramsElementary Process documentationElementary Process Step documentationCollaboration diagramsSequence diagramsOperationsModel invariantsStage 8 - DAD DesignDesign the complete distributed application

The following activities must be conductedReview the technical architecture Identify all operations and services for components of the applicationIf you are using vendor framework architecture, evaluate and select those classes and packages of the framework architecture that you would like to incorporate into your application design.Gather the details from business usersDesign the presentation, business object, persistent object and data access layers of the application.Design the services that support the presentation, business object, persistent object and data access layers of the application.Design all interfaces to the application.Review the complete design and obtain the formal approval to proceed

Process Flow:Output:Approved System Design - The full design specification of the distributed application which has passed the Critical Design Review and is ready to be constructed. See the Design task "Perform Critical Design Review" for a list of criteria which the design specification must meet.

Stage 9 - DAD ConstructionDevelop a construction plan.Code and build all structures and components of the application, according to a Construction Plan.Testing at the individual component and integrated component group levels must take place in parallel with the construction of the components.

Process Flow:

Output:Constructed System - The fully constructed distributed application system, ready for system testing. All components have been built, individually tested, and tested within their respective component integration groups.

Stage 10 - DAD TestingTesting is performed to ensure that the customer receives a high-quality product. Testing is conducted iteratively in conjunction with the repeat of design and construction activities to fix discrepancies. When test results indicate that the system needs revision, you must revisit the necessary design and construction activities to implement the changes, and then retest the system.

Types of Product Testing

Component TestingComponent Integration Testing (a.k.a. String Testing)System TestingPerformance TestingUsability TestingRegression TestingProduct Certification TestingPilot Testing (conducted during the deployment of the product)

Process Flow:

Output:Certified Application - The distributed application which has been fully tested and formally certified in the environment in which it must run. Certification is a validation that the newly developed application successfully executes when integrated with other applications as necessary in the production environment.

Stage 11 - DAD DeploymentThe Deployment stage includes the following activities:Development of all essential source code documentation, operational documentation and end-user documentationDevelopment and delivery of end-user and operations/support personnel trainingPreparation of production environment for deployment of all application componentsBackup of any system components that are being replaced and may need to be accessible in the event of failure of the new systemAutomated and manual data conversionHelp Desk activationPilot testing of application at designated test sites and subsequent correction of problems as necessaryFull scale deployment of complete application to usersHand-off of application maintenance responsibility to appropriate personnel

Process Flow:

Output:Production System - The fully constructed, tested system that is ready for pilot testing and deployment to users.

Stage 12 - End ProjectThe End Stage brings the project to an orderly conclusion and retains its history for the benefit of subsequent projects. End Project tasks archive the project materials, report on the projects performance, turn over the project results to the owners, and release the project resources for use on other projects. The production of a deliverable or a result is the prerequisite of End Project. Any of the following events can trigger an instance of tasks in the End Project stage:

Objectives:The objectives of End Project are to:Formally end the project in a controlled mannerRetain project history in the form of metrics, experiences, and lessons learned as input for future effortsGain acceptance of the project results

Process Flow:

Output:Project completion products - The Project Completion Products is a comprehensive collection of products produced by the End Project Stage. It consists of the following products:Project Results (major product)Project Completion Report (key product)Project Resource Release (key product)REFERENCEShttp://www.gantthead.com/content/processes/8615.cfm#Process%20Flowhttp://www.microsoft.com/learning/en/us/syllabi/2549afinal.mspx http://weblogs.asp.net/rhurlbut/archive/2004/02/12/71854.aspx http://www.e-zest.net/distributed_application.html

THANKYOU