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

Slides:



Advertisements
Similar presentations
Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Visual Studio Team System (VSTS). Richard Hundhausen Author of software development books Microsoft Regional Director Microsoft MVP (VSTS) MCT, MCSD,
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Stuart White 2 Visual Studio 2005 Vision Foster a vibrant partner ecosystem Simplify creation of Connected Systems Improve.
What’s Completely New? Visual Studio Team System! Sean Puffett Developer Evangelist
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation
Team System and Microsoft Solutions Framework Alan Cameron Wills Architect, MSF
DEV365 Visual Studio Team Edition for Software Architects: Overview Alex Torone Lead Program Manager Enterprise Tools Microsoft Corporation.
Visual Studio 2005 Team System: Software Project Management Hans Verbeeck
(code name: Data Dude) Josh Robinson Aculix.
Professional development with Visual Studio 2005 Team System Aali Alikoski Academic Developer Evangelist Microsoft Oy
Pedro Miguel Rosa Senior Software Engineer Developer Platform Group.
Kevin C. Kelly Microsoft
Enabling Better Software through Better Testing Jason Anderson, Microsoft
Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.
Visual Studio 2005 Team System: Enterprise Class Source Control & Work Item Tracking Ajay Sudan Microsoft Corporation
Introduction to Microsoft Visual Studio 2005 Davin Mickelson
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
ARC312 Tools For Architecture: Designing For Deployment Alex Torone Program Manager Microsoft Corporation Bill.
Visual Studio 2005 Team System: Building Robust & Reliable Software Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation
Building Robust and Reliable Software Jason Anderson, Microsoft
DEV 303 Visual Studio "Whidbey" Enterprise Tools: Source Control and Work Item Tracking Brian Harry Product Unit Manager Microsoft Visual Studio.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Visual Studio 2005 Team Edition for Software Architects: Developing Service-Oriented Systems Bill Gibson Senior Program Manager Enterprise Tools Microsoft.
DEV 301 Visual Studio Team System Tom Arnold Program Manager Microsoft Corporation “Enabling Better Software through Better Testing”
Visual Studio Team System Frank PrengelLothar Wieske TechnologieberaterLifecycle Management Technology Specialist Microsoft Deutschland GmbH.
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Architect Visual Studio.
DSL * Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools
ARC310 Microsoft Visual Studio 2005 Team Edition for Software Architects: Developing Logical Datacenters Alex Torone Lead Program Manager Enterprise Tools.
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
Visual Studio Team System overview Pierre Greborio Software Architect – PEWay Microsoft MVP – Solutions Architect.
Visual Studio 2005 Team System: Enabling Better Software Through Testing Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation
Visual Studio 2005 Team System: Software Project Management Brian A White Microsoft
Visual Studio 2005 C#VBC++J#WebExpress Visual Studio Standard Edition Visual Studio Professional Edition Novices Enthusiasts Students Hobbyists Part-Timers.
Visual Studio for Software Architects and Future Directions in Modeling Tools Jochen Seemann TLN311 Program Manager Microsoft Corporation.
Visual Studio Team System Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject Management.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 Introduction Bindia Hallauer & Ajay Sudan Product Management, Visual Studio Team System Microsoft Corporation.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Welcome Auckland Brent Colbert Director | Marketing Microsoft NZ.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
Tools to support the Software Development Process Simon Davies Microsoft Ltd
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Packaging Design and Architecture Guidance for Visual Studio Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft.
Connect with life Tejasvi Kumar Developer Technology Specialist | Microsoft India
Integrating with and Extending Visual Studio. Objectives.
WEB330 ASP.NET: Using Microsoft Visual 2005 Studio Team System to Build Enterprise Web Applications Brian Goldfarb Product Manager Web Platform and Tools.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Advance your career with a new generation of Microsoft certifications TargetedCurrent Cost-effective Easier to Distinguish Learn more, learn better Put.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
Building Enterprise Applications Using Visual Studio®
Unified Modeling Language
Software Factories - Today and Tomorrow
DAT381 Team Development with SQL Server 2005
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005

2 Arvindra Sehmi Head of Enterprise & Architecture Developer & Platform Group Microsoft EMEA HQ Acknowledgement: Keith Short & Jack Greenfield, Architects Enterprise Tools, Visual Studio, Microsoft Corporation Software Factories & DSL Tools

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

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

5 You all know what modeling is…

6 Spend a lot of time drawing loads of these…

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 Are our models “mathematical models”?

9 Are they “scale models”?

10 Are they “theoretical models”?

11 Definitely not this kind of model… Copyright:

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 You all know there is a “method in the madness” of software development…

14

15

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 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 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 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 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

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 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 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 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 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 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

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

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

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

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 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 XML, Projects, Configs, Classes, Code Deployment Units packaged into Services, Messages, Applications, Endpoints Abstraction/refinement Vertical Mapping - System Design

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 Providing Traceability Applications Application Hosting Logical Machines & Network Topology Hardware System Definition Model

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 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 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 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 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 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 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 …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 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

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 Building a DSL Concepts & Well-formedness Rules Generated and Related Artifacts Notations & Well-formedness Rules XML Serialization

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 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 Building A Designer For Visual Studio Toolbox PropertyBrowser Explorer Validation Drawing surface with domain specific notation

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 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 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 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 Define Domain Model Task Class Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight

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

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

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 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 Define Connector Visual Syntax Attend DSL Session Download & Try out DSL Tools Hands-On Lab Go Party Tonight

59 Define Mapping Attend DSL Session Shape Domain Model

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

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 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 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 Agenda Modeling and Methods What is a Software Factory? A Software Factory Schema Domain Specific Languages Wrap Up

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 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 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 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 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 Resources Book  Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Jack Greenfield, Keith Short, et al, ISBN , Wiley Publishing Inc., Websites  Software Factories   DSL Tools Homepage   DSL Tools Community Forum  1  Visual Studio 2005 Team System   Visual Studio Team System Workshop  Domain-Specific Language (DSL) Tools Newsgroups  Microsoft.private.whidbey.teamsystem.architect  Microsoft.private.whidbey.teamsystem.architect.modeling

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