470 likes | 617 Views
DISTRIBUTED APPLICATION DEVELOPMENT (DAD). Presented By: Syed M. Mujtaba Osama Masood Souban Ahmed. Topics to be discussed. Introduction to DAD How to Measure the Success of Implementation of DAD Strengths and Weaknesses of DAD The Process Flow Stage 1 - Plan Project
E N D
DISTRIBUTED APPLICATION DEVELOPMENT (DAD) • Presented By: • Syed M. Mujtaba • Osama Masood • Souban Ahmed
Topics to be discussed • Introduction to DAD • How to Measure the Success of Implementation of DAD • Strengths and Weaknesses of DAD • The Process Flow • Stage 1 - Plan Project • Stage 2 - Activate Project • Stage 3 - Control Project • Stage 4 - DAD Gather Domain Requirements • Stage 5 - DAD Model Domain Requirements • Stage 6 - DAD Establish Development Strategy • Stage 7 - DAD Business Object Analysis • Stage 8 - DAD Design • Stage 9 - DAD Construction • Stage 10 - DAD Testing • Stage 11 - DAD Deployment • Stage 12 - End Project
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 elements • Distributed 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 strategy
Why Use Concurrent Development? • This provides a basis for more rapid development • Smooth transitioning from one stage of a project to the next • Continuous delivery of staged results that are of value in the total solution • Implies iteration with a checkpoint at the conclusion of each stage to validate the quality of stage results • The scope of the next stage is also defined with each checkpoint
Successful Implementation of Distributed Application Development
Factors that measure the success of the implementation of distributed application • Usability • Reusability • Stability • Consistency • Quality
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 tools
Quality: 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 process
STRENGTHS • Graphical presentation to the users • Network distribution of applications • Integration of legacy or heritage applications • Integration of purchased packages and components • Robust application based on real-world business objects • Frameworks and patterns availability to reduce development time • Access to shared business data
WEAKNESSES • Complex or long update transaction cycles • Distributed transaction update • Very large database support on servers
The steps in the Distributed Application Development Include • Stage 1 - Plan Project • Stage 2 - Activate Project • Stage 3 - Control Project • Stage 4 - DAD Gather Domain Requirements • Stage 5 - DAD Model Domain Requirements • Stage 6 - DAD Establish Development Strategy • Stage 7 - DAD Business Object Analysis • Stage 8 - DAD Design • Stage 9 - DAD Construction • Stage 10 - DAD Testing • Stage 11 - DAD Deployment • Stage 12 - End Project
Stage 1 - Plan Project • Objectives: • Determine the project goals and objectives • Define the project scope and approach • Define the major products and results • Understand the project risks, assumptions and constraints • Produce a realistic project plan • Gain 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 Project • Objectives: • Initiate the project • Ensure timely availability of resources (e.g., people, skills, facilities, equipment, hardware, software, etc.). • Maintain support for the project throughout its lifetime • Manage 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 PROJECT • Objectives: • 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 Requirements • A 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: • Business • Performance • Operational • Security • Usability • Architectural
Stage 5 - DAD Model Domain Requirements • Business 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 Strategy • In 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 Analysis • Business 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 integrity
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 elements • Class Diagrams (including object types, relationship types, attribute types) • Package Diagrams • Operation Specifications • Structural Rules • Various business documents describing the business area • The Behavior View is composed of the following model elements • Use case scenarios • Use case diagrams • Activity diagrams • Events • Context diagrams • State transition diagrams • Elementary Process documentation • Elementary Process Step documentation • Collaboration diagrams • Sequence diagrams • Operations • Model invariants
Stage 8 - DAD Design • Design the complete distributed application • The following activities must be conducted • Review the technical architecture • Identify all operations and services for components of the application • If 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 users • Design 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
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 Construction • Develop 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 Testing • Testing 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 Testing • Component Integration Testing (a.k.a. String Testing) • System Testing • Performance Testing • Usability Testing • Regression Testing • Product Certification Testing • Pilot 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 Deployment • The Deployment stage includes the following activities: • Development of all essential source code documentation, operational documentation and end-user documentation • Development and delivery of end-user and operations/support personnel training • Preparation of production environment for deployment of all application components • Backup of any system components that are being replaced and may need to be accessible in the event of failure of the new system • Automated and manual data conversion • Help Desk activation • Pilot testing of application at designated test sites and subsequent correction of problems as necessary • Full scale deployment of complete application to users • Hand-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 Project • The 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 project’s 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 manner • Retain project history in the form of metrics, experiences, and lessons learned as input for future efforts • Gain 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)
http://www.gantthead.com/content/processes/8615.cfm#Process%20Flowhttp://www.gantthead.com/content/processes/8615.cfm#Process%20Flow • http://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