Module 1 Model Driven Architecture and Sofwware development cycle.pdf

Document Details

Uploaded by Deleted User

Tags

model driven architecture software development code generation information systems

Full Transcript

Model Driven Architecture and Software Development Cycle Overview ⚫ What is MDA? ⚫ The Challenges MDA addresses ⚫ Developing in the MDA ⚫ Benefits / Conclusion ⚫ Case Study: Magnet Communications Inc. ⚫ Questions What is Model Driven Architecture? ⚫ MDA is define...

Model Driven Architecture and Software Development Cycle Overview ⚫ What is MDA? ⚫ The Challenges MDA addresses ⚫ Developing in the MDA ⚫ Benefits / Conclusion ⚫ Case Study: Magnet Communications Inc. ⚫ Questions What is Model Driven Architecture? ⚫ MDA is defined and developed by the OMG since March 2001. ⚫ Main ideas: – Addresses the complete system development life cycle – Separate specification from implementation – Specify a system that is independent of a platform – Transform a platform-independent (PIM) system specification into a specific platform (PSM) – Code generation – Applies directly to the mix : Programming language Network Operating system Middleware What is Model Driven Architecture? ⚫ Model Driven Architecture (MDA) is an approach to software development that emphasizes the use of models to design and build systems. ⚫ The goal of MDA is to increase productivity and reduce development costs by creating a high-level abstract representation of the system and generating code from it. It is based on the Unified Modeling Language (UML), which is used to create the system models. The Challenges MDA addresses ⚫ Portability ⚫ Cross-Platform Operability ⚫ Platform Independence ⚫ Domain Specific ⚫ Productivity MDA can increase the productivity of building business information systems in several ways. ⚫ Standardization MDA provides a standardized approach to software development that enables developers to create consistent models and generate code that conforms to these models. MDA can increase the productivity of building business information systems in several ways. ⚫ Reusability MDA promotes the use of reusable models, which can be used across multiple projects. MDA can increase the productivity of building business information systems in several ways. ⚫ Automation MDA enables the automation of certain aspects of the software development process, such as code generation. MDA can increase the productivity of building business information systems in several ways. ⚫ Collaboration MDA promotes collaboration among developers, architects, and business stakeholders. MDA can increase the productivity of building business information systems in several ways. ⚫Maintenance MDA can also help to reduce the time and effort required to maintain business information systems. MDA can help to reduce the cost of developing business information systems in several ways. ⚫ Reduced development time ⚫ Improved quality ⚫ Increased reuse ⚫ Facilitated collaboration ⚫ Simplified maintenance Model Driven Architecture (MDA) is based on the Unified Modeling Language (UML) ⚫ UML is an industry-standard language for creating system models. By using UML, MDA provides a standardized approach to software development that enables developers to create consistent models and generate code that conforms to these models. MDA is based on UML because it provides a standardized, widely adopted, expressive, and tool-supported language for creating system models that can be integrated with other modeling languages and technologies. System Development Lifecycle Process Foundational Concepts of the MDA Developing in the MDA ⚫ PIM Platform – Platform Independent Model(PIM) Independent represents business functionality Model and behavior without technology details ⚫ PSM Platform Specific – Applies a standard mapping to Model create or generate a Platform Specific Model (PSM) from the PIM ⚫ Code Model Code Model – Create or generate the code for PSM Platform Independence using MDA THE Difference with other software modeling tools Classic Approach: MDA: The developers must comprehend: Independence between the: -problem domain -Application Developers -Platform features -Platform Experts -Domain Experts MDA Specifications: MOF MDA is about expressing data and process precisely using formal languages. How do we keep up with evolving languages or new languages? How do we transform models from one language to another? Solution: Meta Object Facility Benefits – The CIO problem solver ⚫ Achieve Greater Productivity in Creating Software ⚫ Reduced Cost ⚫ Reduced Development Time ⚫ Increased ROI ⚫ Improved Application Quality ⚫ Rapid Inclusion of Emerging Technologies ⚫ Increases stability and lifetime ⚫ Reduces complexity System Development Lifecycle Process The systems development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application. SDLC can apply to technical and non-technical systems. Steps in System Development Lifecycle Process ⚫ Analysis ⚫ Plan and requirements ⚫ Design ⚫ Development ⚫ Testing ⚫ Deployment ⚫ Upkeep and maintenance There are several preconditions that need to be met in order to effectively use the Model Driven Architecture (MDA) approach: ⚫ A clear understanding of the problem domain ⚫ Availability of suitable tools ⚫ Availability of reusable components ⚫ A commitment to maintain models ⚫ A willingness to invest in training ⚫ A supportive organizational culture Advantages of SDLC Benefits of abiding by a clearly defined SDLC model include: ⚫ Having a clear view of an entire project, workers involved, estimated costs and timelines. ⚫ Gives project managers a projected base cost of the project. ⚫ Goals and standards are clearly defined. ⚫ Developers can move back a step if something does not go as expected. Disadvantages of SDLC ⚫ Due to assumptions made at the beginning of a project, if an unexpected circumstance complicates the development of a system, then it may stockpile into more complications down the road. As an example, if newly installed hardware does not work correctly, then it may increase the time a system is in development, increasing the cost. ⚫ Some methods are not flexible. ⚫ It can be complicated to estimate the overall cost at the beginning of a project. ⚫ Testing at the end of development may slow down some development teams. Software Development Life Cycle (SDLC) Models used in Industry ⚫ Software development models are various processes or methods that are chosen for project development depending on the objectives and goals of the project. Many development life cycle models have been developed to achieve various essential objectives. Models specify the various steps of the process and the order in which they are executed. Software Development Life Cycle (SDLC) Models used in Industry Software modeling is the process of creating abstract representations of a software system. These models serve as blueprints that guide developers, designers, and stakeholders through the system’s structure, behavior, and functionality. Waterfall Model ⚫ Waterfall model is a famous and good version of SDLC(System Development Life Cycle) for software engineering. The waterfall model is a linear and sequential model, which means that a development phase cannot begin until the previous phase is completed. We cannot overlap phases in waterfall model. Waterfall Model V-Model ⚫ V-Model is an SDLC model, it is also called Verification and Validation Model. V-Model is widely used in the software development process, and it is considered a disciplined model. In V-Model, the execution of each process is sequential, that is, the new phase starts only after the previous phase ends. V-Model Validation Phases of V-Model Unit testing Integration testing System testing Acceptance testing Incremental Model ⚫ In Incremental Model, the software development process is divided into several increments and the same phases are followed in each increment. In simple language, under this model a complex project is developed in many modules or builds. Incremental Model Incremental Model ⚫ Phases of Incremental Model ⚫ Communication ⚫ Planning ⚫ Modeling ⚫ Construction ⚫ Deployment RAD Model ⚫ RAD model stands for rapid application development model. The methodology of RAD model is similar to that of incremental or waterfall model. It is used for small projects. RAD Model RAD Model Phase ⚫ Phases RAD model ⚫ Business modelling ⚫ Data modeling ⚫ Process modeling ⚫ Application generation ⚫ Testing and turnover Iterative Model ⚫ In Iterative model we start developing the software with some requirements and when it is developed, it is reviewed. If there are requirements for changes in it, then we develop a new version of the software based on those requirements. This process repeats itself many times until we get our final product. Iterative Model Phases Phases of iterative model ⚫ Requirement gathering & analysis ⚫ Design ⚫ Implementation ⚫ Testing ⚫ Deployment ⚫ Review ⚫ Maintenance Spiral Model ⚫ Spiral model is a software development process model. This model has characteristics of both iterative and waterfall models. This model is used in projects which are large and complex. This model was named spiral because if we look at its figure, it looks like a spiral, in which a long curved line starts from the center point and makes many loops around it. The number of loops in the spiral is not decided in advance but it depends on the size of the project and the changing requirements of the user. We also call each loop of the spiral a phase of the software development process. Spiral Model Spiral Model Those phases are as follows:- ⚫ Determining objectives and alternate solutions ⚫ Identifying and resolving risks ⚫ Develop and test ⚫ Review and plan for the next phase Prototype model ⚫ Prototype model is an activity in which prototypes of software applications are created. First a prototype is created and then the final product is manufactured based on that prototype. Prototype model Prototype model ⚫ The prototype model has the following phases ⚫ Requirement gathering ⚫ Build the initial prototype ⚫ Review the prototype ⚫ Revise and improve the prototype Agile Model ⚫ Agile model is a combination of iterative and incremental models, that is, it is made up of iterative and incremental models. Agile Model Agile Model ⚫ In the agile model, the software product is divided into small incremental parts. In this, the smallest part is developed first and then the larger one. ⚫ And each incremental part is developed over iteration. ⚫ Each iteration is kept small so that it can be easily managed. And it can be completed in two-three weeks. Only one iteration is planned, developed and deployed at a time. Agile has the following models ⚫ Scrum ⚫ Crystal methods ⚫ DSDM ⚫ Feature driven development (FDD ⚫ Lean software development ⚫ Extreme programming (xp)

Use Quizgecko on...
Browser
Browser