Presentation is loading. Please wait.

Presentation is loading. Please wait.

2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

Similar presentations


Presentation on theme: "2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005."— Presentation transcript:

1 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005

2 2 Arvindra Sehmi Head of Enterprise & Architecture Developer & Platform Group Microsoft EMEA HQ asehmi@microsoft.com www.thearchitectexchange.com/asehmi Acknowledgement: Keith Short & Jack Greenfield, Architects Enterprise Tools, Visual Studio, Microsoft Corporation Software Factories & DSL Tools

3 3 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

4 4 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

5 5 You all know what modeling is…

6 6 Spend a lot of time drawing loads of these…

7 7..throw them away and get on with the code But wait! Isn’t the code also a model? So what exactly do we mean by “model”? Using Microsoft.Fabriq. EnterpriseInstrumentation.Schema; namespace Microsoft.Fabriq.Util { /// /// This class provides unified /// management, eventing, … /// public class Logger { public static void LogErrorMessage( string message, int severity, string errorCode) { ErrorMessageEvent.Raise( FabriqEvents.FabriqEventSource, message, severity, errorCode ); }

8 8 Are our models “mathematical models”?

9 9 Are they “scale models”?

10 10 Are they “theoretical models”?

11 11 Definitely not this kind of model… Copyright: www.gucci.com

12 12 A software “model” is Partly about visualisation  Abstraction for clarity  Because picture worth a thousand words Sometimes about algorithms  Expression in a convenient form  Because compact and efficient Often a set of instructions  A recipe  Because can be automated

13 13 You all know there is a “method in the madness” of software development…

14 14

15 15

16 16 A software “method” is A way of working from requirements to through implementation to deployment Typically process-oriented  Identifying a set of artifacts  Building those artifacts  Producing deliverables

17 17 Customers Want To Know What types of systems can I build?  What’s the architecture of each type? How do I go from requirements to deployment?  What artifacts and how are they related? Why are methodologies so ineffective?  Why aren’t they integrated with my tools?  Why can’t I get detailed and specific guidance for my project? Why are modeling tools so ineffective?  Why can’t they generate production quality code?  Why don’t models stay synchronized with code?  Why can’t models fit my file-oriented environment?

18 18 Is Agility The Answer? Agile methods optimize for change  Collaborating instead of documenting  Building and running in small iterations  Continuously validating requirements  Continuously refactoring the software  Time boxing or cash boxing the project Where do they fall short?  Don’t scale up to large or complex projects  One-off development of generic systems  Lack of metadata limits degree of automation  Lack of architecture documentation creates integration and support issues

19 19 Is Formality the Answer? Formal methods optimize for complexity  Prescribing roles, artifact, activities  Emphasizing requirements, analysis, design  Using models to document architecture Where do they fall short?  Don’t respond rapidly to change  One-off development of generic systems  Coding, testing, debugging, instrumentation, deployment, management, maintenance  Informal languages and mappings limit degree of automation

20 20 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

21 21 Software Development as Craftsmanship Labor Intensive Generic Tools Generic Processes One off applications Hand stitched from scratch Minimal reuse Overruns, defects, security holes, project failures

22 22 Exploiting Commonality We already exploit economies of scale to automate production Stamping out many identical copies of a prototype Used to produce CDs/DVDs Does nothing to help development

23 23 Exploiting Commonality We can also exploit economies of scope Reuse designs & components Build many similar but distinct prototypes Key is supporting variability Define only the unique pieces of each system

24 24 Software Factories Domain-specific process Domain-specific tools & languages Domain-specific content Automate rote and menial tasks General-purpose IDEs become domain-specific software factories

25 25 Software Factories Pillars – TBC Warning: This is a personal perspective Process, Tools & Languages, Content, Automation Software Factories Visual Studio (Whidbey, Orcas) DSL Tools GAT “FALCON” GAT SDM SDK? MSF Process Agile / Formal Trustworthy Metadata Rich Platform

26 26 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

27 27 XML, Projects, Configs, Classes, Code Deployment Units packaged into Code Visualization

28 28 Raising The Level Of Abstraction ? ? Config Files.asmx Files.asmx Code Behinds Other Code Projects and Templates Assemblies

29 29 ? ? Raising The Level Of Abstraction Application Connection Model Config Files.asmx Files.asmx Code Behinds Other Code Projects and Templates Assemblies

30 30 Models and Frameworks CustomPartialClasses FrameworkPartialClasses ASP.NET Config Files OtherResources uses uses completes FrameworkTools DSLEditor DSLModel generates OtherEditors edit / build generates Model Files (SDM)

31 31 Effective Transformations Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Generate to Framework DSLs

32 32 XML, Projects, Configs, Classes, Code Deployment Units packaged into Services, Messages, Applications, Endpoints Abstraction/refinement Vertical Mapping - System Design

33 33 XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Data Center Host Software Abstraction/refinement Vertical Mapping - Data Center Design

34 34 Providing Traceability Applications Application Hosting Logical Machines & Network Topology Hardware System Definition Model

35 35 XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Data Center Host Software constraints Horizontal Mapping - Deployment

36 36 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities, Operations, Rules Implementable Business Processes and Entities User Interface Process Logical Data Center Host Software User Interface Process Design

37 37 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software Business Entity Implementation

38 38 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities, Operations, Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities BusinessCapabilities Logical Data Center Host Software Business Process Modeling

39 39 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software Business Process Implementation

40 40 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Applications, Endpoints Logical Business Entities Rules, Operations BizTalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software A Graph of Interrelated Viewpoints (IEEE1471) Software Factory Schema

41 41 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities Operations, Rules WinOE Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software Recipe for a system family Software Factory Schema ModelsPatternsBlocksFrameworksComponentsProcess Test Cases Tools

42 42 …A Software Factory Schema Like a recipe for a specific class of systems  A set of viewpoints related by formal mappings  Describes artifacts required to build systems in the class and explains how to combine them Implemented by a software factory template  Configures Visual Studio to build members of the class  Provides the necessary ingredients and tools  Solution template, project templates, file templates, patterns, dynamic help, work item types, workflow, check in policy, reports, groups & permissions, phase exit criteria Creates a domain specific IDE called a software factory  Integrates tools, process and content for the class of systems  Domain specific editing, compilation, debugging, refactoring, building, testing, deployment, configuration management, defect tracking, reporting

43 43 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

44 44 Domain-Specific Languages Focused on a single aspect of app building  Success in broad horizontal domains: SQL, Windows Form Designer Designed support the concepts defined by an underlying framework  Automate rote tasks with effective code generation Increase agility by visualizing concepts, generating code and other artifacts, enabling rapid iteration Building them must be fast, cheap and easy

45 45 Building a DSL Concepts & Well-formedness Rules Generated and Related Artifacts Notations & Well-formedness Rules XML Serialization

46 46 Visual Languages Important Shapes Links, ends, style Labels Nesting Layout, routing property Corona label Shape GroupBase members waiting running pausebegin stop playing +v 0v 0.7CR R C 0.1R C R

47 47 Domain Specific Languages In The Context Of The DSL Tools Visual Languages…  To understand or define requirements  To understand or define design  To generate parts of the solution  To implement design patterns for specific frameworks and architectures  To customize applications and application components  To visualize existing systems

48 48 Building A Designer For Visual Studio Toolbox PropertyBrowser Explorer Validation Drawing surface with domain specific notation

49 49 Visual Studio Team System Change ManagementWork Item TrackingReportingProject Portal Visual Studio Team Foundation Server Integration ServicesProject Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team Edition Software Architects Static Code AnalyzerCode ProfilerUnit TestingCode CoverageTeam Explorer (includes Team Foundation Server CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case Management Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Testers Visual Studio Industry Partners Team BuildVisio for Enterprise Architects (in MSDN Premium Subscription) Modeling Platform DSL Tools Application Designer System DesignerLogical Datacenter DesignerDeployment DesignerClass Designer (in Visual Studio Standard Edition and higher)

50 50 A SDK To Build Visual Modeling Tools Visual Studio 2005 Microsoft Modeling Platform In Visual Studio DistributedSystemsDesignersClassDesigner DSL Tools for Visual Studio Your new Designer

51 51 Microsoft Modeling Platform In Visual Studio Modeling Platform Domain Model Framework Design Surface FrameworkTemplateEngineShellFrame-workValidationFrame-work In-Memory graph database with rich services (e.g., transactions, serialization…) and queries Extensible drawing surface with support for routing and auto-layout Artifact generation Constraint checking and guides user to resolve issues Visual Studio UI Integration for components like Toolbox, Menus

52 52 A Simple Workflow Language Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight Fascinated by DSL Tools AlreadyBored Too late Bored now Bored now

53 53 Define Domain Model Task Class Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight

54 54 Define Domain Model Inheritance Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight

55 55 Define Domain Model Relationships Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight

56 56 Define Shape Attend DSL Session Rounded Rectangle Outline color: black Outline color: black Fill color: gray Fill color: gray Text Decorator Position: center Position: center

57 57 Define Connector Appearance Attend DSL Session Download & Try out DSL Tools Hands-On Lab Text Decorator Position: Source, Top Position: Source, Top Connector solid solid black black filled arrowhead filled arrowhead Fascinated by DSL Tools

58 58 Define Connector Visual Syntax Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight

59 59 Define Mapping Attend DSL Session Shape Domain Model

60 60 CustomBehavior Building A Designer NotationDefinition MappingDefinition DomainModelDefinition Code generated by DSL Tools Validation/Constraints CustomXMLSerialization Code/ArtifactGeneration Custom Code (SDK)

61 61 Simple UIP Example BA designer based on UIP application block Define a domain model Define shapes Define mapping Generate code Build designer Run designer

62 62 Generators Based On Templates standardStuff;standardStuff; <# foreach Task t in this.Workflow.Tasks {#> class : TaskBase { … } <# } #> moreStandardStuff; … prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salesperson’s account 31 monthly bank a/c pay 7 £ standardStuff;standardStuff; class DoFirst : TaskBase {…} class DoNext : TaskBase {…} … Template Generated Code Model Queries

63 63 Software Factories Multiple Designers prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salesperson’s account 31 monthly bank a/c pay 7 £ Model 1 – Flow Model 2 – Entities 7 £ Model 3 – Control Flow aspect code Control aspect code Entities aspect code

64 64 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

65 65 Why Software Factories Consolidate implicit business and system development knowledge into specialized tools, process, and content Increase productivity and predictability by better organizing and automating the development process Reduce cost and risk by distributing the software life cycle across networks of interdependent groups and partners

66 66 Support For Building Factories Guidance for building Software Factories  With Visual Studio 2005 Team System Integration with Visual Studio 2005  Methodology Templates, Dynamic Help Visual tools for building Software Factories  Schema Designer, Template Builder Possibilities that we are considering

67 67 Support For Using Factories Guidance for using Software Factories Integration with MSF Agile and Formal  Guidance tuned for specific types of systems  Distributed across software factory schema Visual tools for using Software Factories  Template Installer, Configuration Console Possibilities that we are considering

68 68 DSL - What’s Next? DSL Tools are in an early stage CTP releases for Visual Studio 2005 available Continue to release every 2-3 months with growing feature set  Designer SDK  Model Data Access  Model Validation  UI and Designer Behavior  Custom XML Serialization  Richer design experience for Domain Models, Notation and Mapping  Multiple Views and Multiple Models  Designer Deployment Support

69 69 Microsoft Domain Specific Language (DSL) Tools For Visual Studio 2005 Generates executable designer based on description of the “Domain Specific Language” (DSL) used in the designer Generated Designer  Is a complete usable tool (fully functional, undo, persistence/XML file support… )  Is starting point of designer development (SDK, artifact generation… )

70 70 Resources Book  Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Jack Greenfield, Keith Short, et al, ISBN 0- 471-20284-3, Wiley Publishing Inc., 2004. Websites  Software Factories  http://msdn.microsoft.com/architecture/softwarefactories  DSL Tools Homepage  http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/  DSL Tools Community Forum  http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=6 1  Visual Studio 2005 Team System  http://msdn.microsoft.com/vstudio/teamsystem  Visual Studio Team System Workshop  Domain-Specific Language (DSL) Tools http://lab.msdn.microsoft.com/vs2005/teamsystem/workshop/ Newsgroups  Microsoft.private.whidbey.teamsystem.architect  Microsoft.private.whidbey.teamsystem.architect.modeling

71 THANK YOU 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005


Download ppt "2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005."

Similar presentations


Ads by Google