ABSE and AtomWeaver : A Quantum Leap in Software Development

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    ABSE and AtomWeaver : A Quantum Leap in Software Development - Presentation Transcript

    1. ABSE and AtomWeaver A Quantum Leap in Software Development
    2. PART I About Software Development A critical look into software development
    3. Software, Everywhere From wrist watches to the Space Shuttle, software is everywhere Every day, millions of lines of code are written by thousands of software developers around the world Our society becomes more dependent on software every passing day
    4. Increasing Software Complexity Every system, every application, in every version, in any domain, gets more complex at each iteraction Evolution in lines of code on typical systems 70's 90's 2010 Cell Phone - 100.000 10.000.000 High-End Car 100.000 1.000.000 100.000.000 (GM/IBM Estimates) Word Processor - 78.000 2.000.000+ (Word 4.0 DOS) Operating System 10.000 4.500.000 50.000.000+ (Unix v1) (Windows NT 3.1) (Windows Vista)
    5. Increasing Software Demand Demand for software is skyrocketing More and more “traditional” tasks are being assisted or replaced by software Today, most consumer devices have some sort of software running inside. A growing trend. Disposable computing is not far away...
    6. Increasing Challenges Software makers need to address the evolution in: - Compliance regulations (HL7, Sarbanes-Oxley, HIPPA) - Multi-core & Multi-threading - Development paradigms (SOA, Web 2.0, SaaS, cloud computing) And at the same time face: - Decreasing time-to-market - Decreasing budgets
    7. Software development is an ever-growing challenge... What have we done so far to address this?
    8. The “Software Crisis” “The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.” Edsger Dijkstra, 1972 This was written almost four decades ago, but looks as it could have been written today.
    9. The “Software Crisis” Consecutive revolutions are being achieved in many domains thanks to computer software. Increasing Increasing Increasing Demand Complexity Challenges Software Crisis Same Same Same Workforce Methods Tools However, software engineering is not seeing the same evolution rate as in the domains it addresses.
    10. Problem : Slow tool evolution In the seventies, people developed software line-by-line, file-by-file Four decades later, most people still develop software line-by-line, file-by-file While there has been some evolution in development methods and tools, most are essentially based on flat source files.
    11. Problem : Same old methods Waterfall First described in 1970, is still the most widespread development organizational method. “The waterfall model is argued by many to be a bad idea in practice, mainly because of their belief that it is impossible, for any non-trivial project, to get one phase of a software product's lifecycle perfected before moving on to the next phases and learning from them.” http://en.wikipedia.org/wiki/Waterfall_model One-Off Development Every developed application is unique, started from scratch “The assumption of one-off development is so deeply ingrained in this industry that most of us are not conscious of either the practice or the alternatives. Even XP* and UP** assume that every product will be designed and developed independently from first principles to accommodate its unique requirements, and neither of them provides guidance for supplying or consuming reusable assets.” Jack Greenfield, Keith Short – Software Factories *XP = Extreme Programming **UP = Unified Process
    12. Problem : Feature Traceability The traceability problem occurs when the solution features that implement a problem feature cannot be easily identified. This makes it hard to identify all of the things that need to change in the implementation, and to ensure that all of the changes are made consistently, when the requirements change. Failing to trace all elements that belong to a given feature Which leads to bugs, inconsistencies, ? Data and excess time. Feature It's a (too) common scenario. Source Specification Code
    13. Failed Promises In the recent past, several “promises” have emerged, claiming to be the silver bullet to the software crisis. But many have failed, or simply did not deliver. Let us have a look into the most important ones: (Quoting the opinion of others)
    14. #1 : UML – Unified Modeling Language “UML is applying an abstraction at the wrong end of the problem. It is primarily used to sketch object models for inferior languages. As such, it tends to explode into incomprehensible patterns of accidental complexity in order to accommodate the various “design patterns” that are used work around the lack of essential language features. Because the UML models cannot be compiled, executed, or interpreted, they are reduced to the level of mere documentation. As such, it is generally not even worth keeping in sync– the manual round trip from the code to the model and back is just too expensive for something that adds no more value to a project than an elaborate code comment.” From lispy.wordpress.com “UML has become complex and clumsy. For 80% of all software only 20% of UML is needed. However, it is not easy to find the subset of UML which we would call the Essential UML”. Ivar Jacobson, Co-Inventor of UML, June 2009
    15. #2 : MDA – Model-Driven Architecture “At its most basic, MDA involves transforming one UML model into another UML model, possibly several times and possibly automatically [...]. The MDA approach leads to the same results as wizards: lots of code (and models) that you didn’t write yourself but that you are expected to maintain. The MDA idea gets even worse when you consider round-tripping—would you like to update the manually made changes to the code and lower level models back to all the higher-level models?” Kelly / Tolvanen – Metacase “MDA is limited to the effectiveness of the UML as a language for model driven development, a task it was not designed to support.” Jack Greenfield - Microsoft “Unfortunately, early enthusiasm for Model Driven Architecture (MDA) has dissipated to the point that many people are openly skeptical of the value of any model-driven approach.” From “MDA Redux”, by Alan Brown, published by IEEE Computer Society
    16. #3 : DSLs - Domain-Specific Languages “[...] the Tower Of Babel* effect that results from having so many languages that a person needs to be familiar with (if not master) in order to get common jobs done.” “... nothing is better than having your own Little Language to do a specific job. It allows for concise expression of solutions to specific problems. But a problem arises when The Next Guy comes along and has to learn the concepts behind the language, the motivations for particular elements of it, the syntax, etc.” “Writing a decent DSL is hard. Very limited, very simple DSL's can be adequately produced by a competent programmer with expertise in the problem domain - DSL's that can be described on a page or two, and are tailored to a specific application/environment. These language are seldom usable outside the very limited context.” “But writing a good DSL that is robust and reusable beyond a limited context, is a lot of work. It requires persons with both domain expertise and language design expertise (not necessarily the same person) to pull off. A truly reusable DSL will require reasonable documentation, otherwise it won't survive the departure of its designers. And, it will eventually require a good set of tools - debugging environments and the like - for it to become worthwhile.” Taken from http://c2.com/cgi/wiki?DomainSpecificLanguage * http://c2.com/cgi/wiki?TowerOfBabel
    17. Gaining Momentum : MDSD and DSM Unlike MDA, MDSD (Model-Driven Software Development) and DSM (Domain-Specific Modeling) follow a more pragmatic, less formal approach to software modeling. That makes these approaches more accessible to the mere developer. “Forrester expects model-driven development (MDD) to play a key role in the future of software development; it is a promising technique for helping application development managers address growing business complexity and demand.” Diego Lo Giudice – Forrester Research Domain-Specific Modeling raises the level of abstraction beyond programming by specifying the solution directly using domain concepts. The final products are generated from these high-level specifications, because both the model and generators fit the requirements of only one company and domain. Your experts define them, your developers use them.
    18. PART II ABSE - Overview How can ABSE address today's software development problems
    19. Quick Facts ABSE - Stands for “Atom-Based Software Engineering” - Is a generative approach (generates code from models) to MDSD (Model-Driven Software Development) and DSM (Domain- Specific Modeling) - Relies on tree-based models AtomWeaver - Is a cross-platform Integrated Development Environment (IDE) - Implements and extends ABSE
    20. The ABSE Tree A software engineering project is made up of “Atoms”, organized as a tree. That tree is the Project Model. A tree conveys association, mimicking the associative human brain, therefore being able to represent and decompose any problem or data structure. The tree is ABSE's supporting paradigm, allowing the model to “think” like us. < A partial view of AtomWeaver's ABSE model
    21. Models in ABSE An ABSE model, like in other MDSD methodologies, is abstracted at multiple levels: Atom ABSE's single meta-metamodel 1 * Atom Template Metamodels 1 * Atom Instance Models 1 * Text / Data Generated artifacts
    22. Atom Types There are only three types of Atoms: Atom Template → The metamodels (building blocks) of any ABSE model Atom Instance → The actual models that make up a project model Atom Organizer → Organizes library contents into meaningful structures
    23. Atom Libraries An Atom Library contains Atom Templates, possibly structured in a meaningful way through Atom Organizers. Any ABSE model must be built from one or more libraries as it can only contain Atom Instances. Root Lib Language Lib Solution Domain Libraries can use or extend Platform Lib other libraries. Domain Lib We can raise the abstraction Problem Domain level everytime we extend Domain a library. Components Lib
    24. Atom Libraries The Atom Libraries are the driving force behind ABSE. A good library can help you save many development hours, and even more test hours. The vision behind Software Product Lines (SPL) is that once the company's domain is converted into models, they can be reused and combined to create similar, but different, systems. ABSE and its libraries help SPL's become a reality. Libraries can be exchanged between systems through ALX (AtomWeaver Library Exchange) files.
    25. ABSE is Universal It can support and combine all forms of software engineering, including: ● Traditional file-oriented methods Root Lib Literate Programming Higher Abstraction ● Language Lib ● Aspect-Oriented Programming Platform Lib ● Component-Based Development ● Feature-Driven Development Domain Lib ● Domain-Specific Modeling ● Software Product Lines Domain Components ● Software Factories Lib
    26. ABSE is Universal This is possible because ABSE... ● … is not targeted to a specific language, architecture, or platform ● … allows generation of any kind of text or data ● … has a very flexible meta-metamodel ● … uses association as its paradigm, the basis of human thinking
    27. ABSE is Domain-Agnostic ABSE can be applied to virtually any domain. Internet Horizontal (solution domain) libraries can be extended with vertical (problem domain) Healthcare libraries to achieve reductions in time-to- market and savings on development and testing efforts. Science Atoms can represent and generate code for specific aspects of the target domain. Embedded Devices Aerospace Enterprise Defense Systems Automotive Entertainment Engineering
    28. ABSE is Language-Independent Being largely based on text generation, ABSE can generate all kinds of textual output, from plain text files to complete software systems. A single ABSE project can target multiple languages and file types. FortranHaskellEiffelC#PhytonSQLJavaABAPErlangScalaSmalltalkVHDLPrologC++ AdaPascalPHPLispRubyJavaScriptDelphiSASCOBOLCamlTclDVisualBasicCGroovyML
    29. ABSE is Refactorable Line-Oriented ABSE metamodels can evolve with your skill. Objects You can start doing just some text transformation, grow up by refactoring Patterns Metamodels into common patterns. You can continue right up to full Components Domain-Specific Modeling and Software Product Lines. Each time you derive an Atom Template into Domain-Specific another Template, you increase the abstraction level. Software Factory
    30. ABSE is Easy You don't need to be a rocket scientist to apply in an effective way. ABSE is accessible to the "mere developer mortal". An ABSE project is like a large mechanism that can built from smaller, pre-built or custom parts. The ABSE approach is more pragmatic and simpler than other DSL/model-driven tools or technologies like oAW, OMG's MDA/MOF/XMI, Eclipse EMF/GMF, Microsoft OSLO/M, Xtext.
    31. ABSE is Complete source_file.h ABSE meta-metamodel designed to support 100% atom_concept_a Generated code code generation from the model. Custom code Generated Model Transformation code Generated code No round-trip necessary. Custom code Custom code The mix of custom and source_file.cpp generated code is directly atom_concept_b supported by the meta- Custom code metamodel. Generated code Custom Custom code code No worries about Generated code overwritten custom code, Generated code no management issues.
    32. ABSE is Manageable An ABSE model can grow to generate multi-million line applications, and still be easy to manage. That's because ABSE is based on a tree and not on a graph: Tree branches easily encapsulate other branches. A complex application using a graph
    33. ABSE is Comprehensive The complete ALM (Application Lifecycle Management) cycle can be supported. An ABSE tree is not exclusive to software implementation: it can also represent processes, documentation, SCM, etc. Documentation Project Bugs & Support
    34. ABSE is Collaborative Due to its granular nature, an ABSE model can be Instance A concurrently manipulated. Instance B Two or more developers can work on the same ABSE model. Instance C Instance D Instance E And through a supporting tool (like AtomWeaver), workflows Instance F can be applied. Individual atoms Instance G or tree branches can be checked-in or out, versioned and conditionally enabled/disabled.
    35. PART III ABSE in the Enterprise How can ABSE improve software engineering
    36. ABSE Can Bridge All Stakeholders By making available the appropriate Templates to each stakeholder, domain experts, designers, developers and testers can work together on the same ABSE model. ● Domain experts can specify ● Designers can design & re-arrange ● Developers can build ● Testers can debug & test
    37. ABSE Captures & Shares Knowledge The company's domain knowledge and the team's development knowledge can be captured into ABSE metamodels. Benefits: - Individual expertise can be shared with the whole team - Less skilled developers can work like the experts - Architectural uniformity can be achieved - Best practices are easily disseminated and enforced
    38. ABSE Increases Productivity Some tasks under manual coding simply cannot scale: - Repetitive patterns - Repetitive coding - Repetitive changes - Interfacing code/specification - Unit test preparation - Debug/log/trace code These and many other boring and error-prone tasks can be reduced or even completely eliminated by using a model-driven approach like ABSE.
    39. ABSE Increases Productivity The team's productivity potential increases whenever it adds another metamodel (Atom Template) to the ABSE library. Working on a higher abstraction level boosts your productivity. Each time an ABSE metamodel is instantiated, time is saved. Each time an ABSE metamodel is extended, more time is saved.
    40. ABSE Increases Quality of Code It is known that more time is spent debugging code than actually writing it. The code produced by the ABSE metamodels can (and should) be tried and tested code. By reducing the amount of custom code used in the model, overall code quality increases.
    41. Critical Innovation : Software Reuse Systematic software reuse is a promising means to reduce development cycle time and cost, improve software quality, and leverage existing effort by constructing and applying multi-use assets like architectures, patterns, components, and frameworks. “To realize a return on the investments we make in developing the solutions, we must reuse them enough to more than recover the cost of their development, either directly through cost reductions, or indirectly, through time to market reductions and quality improvements.” Jack Greenfield et al - “Software Factories”
    42. ABSE Promotes Reuse The most common type of reuse is the reuse of software components, but other artifacts produced during the software development process can also be reused: system architectures, analysis models, design models, design patterns, database schemas, web services, etc. ABSE's meta-metamodel allows Atom Templates to be aggregators, so you can turn any part of your project into a new template for future reuse. Instance A Template 1 Instance D Instance B Instance A Instance 1 Instance C Instance B Instance E “Templatization” Reuse Instance C Instance F Project A Library A Project B In the same way, ABSE lets you turn recurring patterns into templates, reducing project complexity and maintenance costs.
    43. ABSE Reduces Maintenance Costs With ABSE you'll have less code to maintain. Traditional Approach ABSE Approach That's because you only have to maintain Manual Code one instance of your code. All other instances of that code are automatically Manual Code Codebase Size updated. Generated And since manual code Manual Code Code is natively supported, Manual Code there's no need to Generated Code waste time maintaining protected regions, code guards and other trickery, just to Atom Library maintain the integrity Atom Library between manual and generated code.
    44. PART IV ABSE - Technical Overview A closer look into ABSE and how it works
    45. The Atom (ABSE's Meta-metamodel) The Atom can be root_default An Atom can also instantiated into be compared to an Atom Templates. object in an object- oriented programming Base Template language. Atom Templates derive from other templates. Atom Template Instantiation Atom Instance All Atom Templates Composition derive from Admin Parameters Variables root_default, the Creation only pre-existing Form Functions Condition Atom Template in Transformation Custom Areas Custom Code ABSE. Code Relocation Atom Templates can be instantiated into Derived Template Atom Instances.
    46. The Atom Admin Section Atom Template The Admin Section of an Atom Template determines how its instances Admin Parameters are presented and how they behave Form Functions on the Model Tree. Transformation Custom Areas Code On the Admin Section you can define: - Icon and Label to be shown on the model - Construction constraints - Atom parameters - Other discovery and construction helpers The Admin Section also inherits from its base templates.
    47. The Atom Form Section Atom Template Each Atom Template has a dedicated Editor. Admin Parameters Form Functions Transformation Custom Areas Code The Form Section lets you define how the editor presents the Atom Template Parameters and how you can set the corresponding Instance Variables. The Form Section also inherits from its base templates.
    48. The Atom Functions Section (and Behaviors) Atom Template This section lets you define extra atom Admin Parameters Functions. Form Functions Transformation Custom Areas The most common use is to define Code Atom Behaviors. An Atom Behavior is a powerful generalization technique: It allows the atom to respond to a specific, globally-defined query. Any atom can request processing from another atom without actually knowing its type, allowing unlimited future extensions.
    49. The Atom Transformation Code The transformation code allows any Atom Template atom to perform actions based on its input parameters. Admin Parameters Form Functions Most common task is to generate Transformation code, but other tasks like modifying Code Custom Areas other atoms and OS calls are also possible. The Atom's transformation code is segmented into the following steps: Create Pre Exec Post Code Code Code Code
    50. The Atom's Custom Code To support 100% code generation from Atom Template the model, and to avoid synchronization Admin Parameters problems between generated and custom code, ABSE allows you to define Form Functions one or more custom code areas on an Transformation Atom Instance. Code Custom Areas java_function source_file.java int Function() parameter { generated code; generated code; parameter custom_code custom_code generated code; }
    51. The Instance's Creation Condition Atom Instance The inclusion of each Atom Instance Variables on the project can be subject to an Creation expression that dictates whether that Condition Atom is executed or not. Custom Code If the evaluated condition is false, the Relocation Atom becomes invisible to the project. This brings more flexibility to the generation process and allows templates to include/exclude some of their auto- generated atoms based on user-supplied values.
    52. Instance Relocation Atom Instances that are auto-generated by Atom Instance an Atom Template can then be relocated to Variables another position on the model tree. Creation Condition The relocated atom may be again moved Custom Code by the user, if it is not blocked. Relocation For instance, user interface programmers may create atoms that will automatically create the interface visual elements's atoms. Designers can then manipulate and edit those atoms to achieve the desired application visuals.
    53. ABSE Strength #1 : Inheritance Like classes in several programming languages, Atom Templates can be derived into more complex and root_default specialized Templates. cpp_class This allows you to build metamodels that share common concepts. gui_dialog ext_data_object db_persistent_object The derived template will inherit all properties and code from its base template.
    54. ABSE Strength #2 : Composition Atoms can be combined to build larger structures. Atom Instances are combined to build the Project Model. Atom Templates can be composed of several other Templates which, on their turn, can also be composed of other Templates. From Wikipedia: ext_powered_class http://en.wikipedia.org/wiki/Obje ct_composition Composited (composed) objects are often referred to as having a "has a" cpp_member cpp_method relationship. A real-world example of composition may be seen in an automobile: the objects wheel, cpp_member cpp_argument steering wheel, seat, gearbox and engine may have no functionality by themselves, but an object called cpp_return_value automobile containing all of those objects would serve a higher function, greater than the sum of its parts.
    55. Inheritance & Composition Combined You can see here how a metamodel of Actual metamodels from AtomWeaver project a C++ class, composed of two Atom Instances, is derived into an “extended class” with added features. Then a C++ Component metamodel is defined by inheriting Extended Class and adding data and configuration features...
    56. Inheritance & Composition Combined Then a Persistent Component metamodel was created by inheriting a C++ Component model and adding specific DB features. The same was done to create a Database Document metamodel.
    57. Inheritance & Composition Combined You can implicitly generate dozens or even hundreds of atoms just by adding a single atom instance to the project. If each of those atoms generates just a few lines of code... Imagine how much code that can be generated at once! Now imagine that the generated code is mature, tested, quality code...
    58. Atom Templates = Software Components ABSE lets you build applications like Lego . A simple, yet effective tm constraint system drives you on the component discovery and construction process. Metamodels Constraints Correct Models + =
    59. ABSE is an Executable Model Every Atom on the ABSE Tree has its own transformation code (acquired from its template). To generate code, the Model Tree recursively executes its atoms, Execution Sequence which is equivalent to say that all atoms are executed from top to bottom. The tree is executed four times, and on each iteraction one of the following Atom Template sections is executed: Create Pre Exec Post Code Code Code Code
    60. Variable Transmission Atom cpp_class Defines: class_name, Variables are set on Atom inheritance Can access: ... Instances, and each variable corresponds to an Atom Template parameter. Atom cpp_function Defines: func_name Can access: class_name, inheritance Any variable from an Atom is automatically available to Atom cpp_argument all branch children. Defines: arg_name, arg_type Can access: class_name, Inheritance, func_name This way, any Atom can work “in context” with its Atom cpp_member ancestors. Defines: member_name, member_type Can access: class_name, inheritance
    61. PART V AtomWeaver An ABSE Integrated Development Environment
    62. AtomWeaver is an ABSE Model AtomWeaver is being developed through an ABSE Model. AtomWeaver is ABSE's proof-of-concept, showing that a fairly sophisticated application can be easily built using a model-driven approach like ABSE. Some statistics: (Current version of AtomWeaver Prototype) - 38000 Total Atoms - 7800 User-Created Atoms - 30200 Auto-Generated Atoms - 334 Atom Templates in Library - 2456 Atom Instances in Model - 174756 Lines of Generated (+ Manual) Code - 701 Generated Files
    63. Introducing AtomWeaver AtomWeaver implements and extends ABSE into a complete, agile, dynamic IDE. AtomWeaver prototype – AtomWeaver's own ABSE model loaded
    64. Introducing AtomWeaver Due to ABSE's genericity, AtomWeaver works on any development environment, Integrated with any tool chain AtomWeaver is presently the market's only plug-and-play MDSD system No other present system lets you start creating models in a few minutes
    65. AtomWeaver : The Universal Generator Besides pure programming, Why use separate tools? the modern software vendor faces a long list of other AtomWeaver can be the central peripheral, but equally point of all development activities. important activities: - Requirement management Using AtomWeaver's modeling and - Research generation capabilities, it's - Change management surprisingly easy to: - Building - Testing - Build your own bug tracker - Version control - Implement code coverage - Issue management - Automate documentation - Internal/customer reporting - Build synch'ed intranets/websites - End-user documentation - Code revisions - Create configurations/build files - Installer packaging - Package resources - Application resources - Automatically build tests - Databases - Embed debug/trace code - ... - Refactor features/architecture
    66. AtomWeaver Modules AtomWeaver is composed of several mandatory and optional modules. Each module contains a different aspect of the project. Library, Model, Files and Log are the mandatory modules. All others are optional. Future AtomWeaver versions will allow the creation of other, custom-defined modules through its API.
    67. AtomWeaver Modules Documentation → For development support documentation, drafts, etc. Library → Contains all libraries loaded into the project Model → Holds the project's main model Files → Lists and manages all generated artifacts Issues → Manages SCM operations (bug tracking as the most common) Help → Builds and concentrates all end-user documentation Log → Registers all that is happening in AtomWeaver
    68. AtomWeaver's Model Transformation DSL: Lua Instead of using an exotic, custom DSL, AtomWeaver uses Lua to transform ABSE models into final source code. Lua is a lightweight, reflective, imperative and functional programming language, designed to be a scripting language. Several benchmarks show Lua as the fastest interpreted scripting language available. This is specially important to code generation where millions of lines of transformation code are typically needed on a large project.
    69. AtomWeaver Extends ABSE AtomWeaver adds tools and commands to ABSE's basic featureset to improve the developer's experience and productivity, including : ● Atom Dictionary : Lets you reference any project Atom by its associated name. ● Atom Lists : Lets you categorize atoms and build lists according to your pre-defined criteria. ● Counters : Lets you use unique values project-wide.
    70. AtomWeaver editions Two editions of AtomWeaver are planned: Solo Edition Team Edition For: For: - Individuals - Collaborative projects - MicroISVs - SME's - Small projects - Large corporations - Isolated generation tasks - Research institutes
    71. AtomWeaver 1.0 feature matrix Feature Solo Edition Team Edition Code Generator, Interpreter, Rules Engine X X IDE X X Library Repository X X File-based Database Storage (SQLite) X Server-based Database Storage (MS SQL Server) X ALM (Application LifeCycle Management) Support X X Model Versioning X Developer Roles X Concurrent Model Edition X Workflows & Tasks X
    72. AtomWeaver estimated prices Solo Edition Team Edition USD $499 USD $999 Regular Regular, Per Seat USD $199 USD $499 Early Adopter Campaign Early Adopter Campaign Per Seat Prices not definitive, subject to change Optional support and/or maintenance not included
    73. AtomWeaver's next major features The following major features are planned for versions 2 & 3 of AtomWeaver Flexible Diagramming Generic GUI Mockups Scripting API Any kind of diagram can be Mockups for any system will AtomWeaver will be created, following rules be possible using ABSE's scriptable, opening the door defined in Atom Templates generic constraint system. to user-defined ABSE and in the Library. Hybrid Programmers can program models, extensions, custom diagram/tree development while designers can design actions on atoms, and third- will be possible. and rearrange. party add-ons.
    74. The Library Exchange AtomWeaver will have its dedicated Library Exchange site that will concentrate all publicly available Atom Libraries: - Free Libraries - Commercial Libraries These libraries can be supplied by: - Individual users - Commercial vendors - Isomeris By using ready-made libraries, you save time and get quality code and models from the domain experts.
    75. Team Edition Feature: Concurrent Model Edition The project is stored on a central database Developers can load a copy of the project into their workstations An Atom or a branch can be checked-out for edition. Other users are denied write access to that atom or branch After check-in, changes are incorporated into the central database AtomWeaver regularly checks for new updates and automatically loads them to the local copy of the project
    76. Team Edition Feature: Developer Role Management The structure of a development team is mimicked in the AtomWeaver environment Each user must log in to work on a project The two main roles are Architects and Developers. Other roles can be created Each role can have different privileges regarding code access or changes Developer roles are also useful for workflows
    77. Team Edition Feature: Model Versioning Like in a source control system, atoms can be versioned Branches/forks can be made Past project snapshots can be obtained Atoms can be reverted to a previous version Different versions of atoms or branches can be diff'ed
    78. Team Edition Feature: Workflows and Tasks The development process can be pro-actively managed by AtomWeaver All processes are defined by the organization through Atoms, stored as libraries Workflows, tasks and memos can be issued. Activities like testing, change requests, code reviews, etc. can be implemented Atoms can be selected & associated to these activities
    79. AtomWeaver release timeline* Mar.2010 : AtomWeaver Team v1.0 CTP Nov.2010 : AtomWeaver Team v2.0 2009 2010 2011 Sep.2010 : AtomWeaver Solo v2.0 Nov.2009 : AtomWeaver Solo v1.0 CTP Jan.2011 : AtomWeaver Solo v3.0 *Timings subject to change
    80. AtomWeaver Competitors Code Generation is a high-growth market segment: There are currently dozens of competitors. However, most of these products are specific to a given domain, platform, or function. None of the other existing products today is able to offer a technological innovation that can be recognized as a true software development breakthrough as ABSE & AtomWeaver do.
    81. PART VI Summary Summing up ABSE & AtomWeaver
    82. ABSE aims to lead the MDSD movement MDSD is recognized as the next revolution in the Software Engineering industry, and is gaining momentum among larger organizations. However, complexity in its various implementations prevents it from gaining mainstream adoption. ABSE aims to lead MDSD adoption by: - Defining a very light meta-metamodel - Having a small set of rules - Being flexible (can mix custom and generated code) - Having a reference implementation (AtomWeaver)
    83. AtomWeaver aims to compete with other high-end IDE's MS Visual Studio and Eclipse are the major players in the general-purpose software IDE segment AtomWeaver can differentiate itself by: - Its unique development approach (ABSE) - A high adaptability to very specific industries and domains - Having lower licensing costs
    84. Reality Check ! ABSE still in its infancy AtomWeaver is still just a bare-bones IDE Developer mindset inertia is a respectful opponent
    85. ABSE & AtomWeaver on the Internet www.twitter.com/atomweaver atomweaver.ning.com www.abse.info www.atomweaver.com www.ruicurado.com
    86. Thank you for your interest in ABSE and AtomWeaver www.isomeris.com

    + Rui CuradoRui Curado, 2 weeks ago

    custom

    67 views, 0 favs, 0 embeds more stats

    ABSE is a Model-Driven Software Development methodo more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 67
      • 67 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories