Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational...

download Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

of 27

  • date post

    28-Dec-2015
  • Category

    Documents

  • view

    219
  • download

    0

Embed Size (px)

Transcript of Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational...

  • Trends in Software Engineeringa personal viewIvar JacobsonVice President e-DevelopmentRational Software Corporationivar@rational.com

  • Virtual AgendaYesterdayTodayTomorrowThe best way to predict the future is to invent it!

  • The 1980 Letter to The CEO of Ericsson*The component-based development approach used for AKE/AXE will evolve into a world standardGo further in three steps1983: present a standard method including a modeling language [like SDL, UML], a process [like RUP] supported by a first generation tool-set1985: the modeling language becomes a formal executable language [like UML with action semantics]1990: expert system support on top of process, language and tool; talked about layman programming

    * Bjrn Svedberg

  • Component-Based ArchitecturesOriginated 1967-70 at Ericsson for real-time, distributed systems:blocks a k o components, designcodeexecutablesrun-time objectsinterfaces based on signals,functions crossed blocks -- or realized as collaborations among blocksComponents have become the standard. No new development paradigm to replace components in sight!

  • Modeling Languages -- a personal view1967-70: The AKE/AXE modeling language:block diagramscollaboration diagramssequence diagramsstate transition diagrams (state overviews, activity diagrams, concurrent states)1974-82: the first object modeling standard SDL adopts those techniquesnicknamed The Ericsson LanguageIn parallel Entity-Relationship modeling emerged1987: Objectory modeling language combined SDL and ER technologies, added Use Cases and Multi-Modeling.1996: The Unified Modeling Languagebased on Objectory, Booch and OMT from 1991plus many other modeling ideasThe standard modeling languageUML 2.0 a major new release, followed by more...

  • Development Process -- a personal view1967-70 The AKE/AXE methodfunctional specssoftware architecture descriptionfunctional descrs, block descriptions, separate from interface (signal) descriptionsfunctional tests and system test1987-95 The Objectory Processengineered process to facilitate specializations and instantiations (projects)use cases drive the business track, the system track and the user track1996-2000: The Rational Unified Processiterative developmentarchitecture-centrictool support for process engineering and process instantiationsde-facto standard for e-development

    Plus: a process without integral tools is just an academic idea!

  • Future of SoftwareWe have the standard modeling languageWe have a standard development processWhat next? A Software Component MarketplaceQuality from the BeginningGive Soul to Software ProcessA Complete UML Based Software Platform

  • A Software Component MarketplaceA component industry includingComponent factories provide components System Integrators reuse these componentsComponents are component systems used to build families of application systemsWe need a standard for playing on this marketplaceHow to design for reuseHow to design with reuseWe have a standard language, we have a standard process and there are tools.Nows the time!

  • Reuseable AssetsReuse of all models, that is of everythingarchitecture -- most important but just a fraction of what is reusableuse cases, analysis, design, implementation and testuser interface models, business models, etc.Reuse of technologyprocess with toolsprojects guidelines

  • The Reuse Initiative: e-Development AcceleratorReusable FrameworksReuse StandardsAutomationOpen UML-based standard expressing how to document and produce reusable assets.Technology or domain specific reusable assets with associated guidelines on usage.Tool support for creating, managing, and reusing software assets.

  • Layered System ArchitectureCar Sales ManagementCustomer profile Order managementShopping cart Credit card authorization Object persistency mechanismExamples of reusable objectApplication-general layerMiddleware layerApplication-specificlayerSystem-softwarelayer

  • Quality from the BeginningWe have lost two generations of developers who think they just need to debug at the end, when they instead shouldnt introduce any defects along the way.An attitude problembugs are nice, defects are badsome developers make the dirt, others (customers) clean upProcess changeverify and test along the way -- activity-based verificationthere is no test model, test artifacts are part of all modelsNew toolsgenerate test cases from requirements, analysis, design...

  • Activity-Based VerificationWhatever you do, you are not done until you have verified that you did what you wanted to do.Introduce verification on activitiesEach activity-artifact pair needs a Verification Case Each Verification Case has a corresponding Verification StepTest Cases are specializations of Verification Cases, related to the executable system

  • Software Process Comes AliveDevelopment stepsThe process at your fingertipsThe process gets soulthe third step 20 years agoa software engineering breakthrough technology

  • The Process at Your FingertipsRational Unified Process(RUP)My Unified ProcessMy ProjectMy tasksIs specialized toIs enacted asAnd to

  • Process gets soul: people may be humans Traditional processes hold static rules and regulations, but lacks soul and adaptive capabilities. They appeal to structured reasoning, but not to the creative (lateral) spirit.

    StructuredRe-InventGenericLong-TermLearnCreativeReuseStreamlined and PersonalizedShort-TermDo

  • AgentsSoftware Components, butAutonomousPro-ActiveEncapsulate Knowledge as RulesAdaptive

    Agent(in software)

  • Each Developer has its Own Personal AgentPersonal Agent(for Joe)Joe(Developer)Agent SystemIndividuals play roles in software development

    www.jaczone.com

  • Every Role in RUP is Matched to One AgentSystem AnalystRole Agent(for System Analyst)Agent Systemwww.jaczone.com

  • Personal Agents and Role Agents

    Personal Agent(for Joe)Joe(Developer)Role Agent(for System Analyst)Role Agent(for Business-Process Analyst)Agent SystemSince a developer can play many roles his/her personal agent may collaborate with several role agents

  • Specialist AgentsRule agentsReuse agents suggest candidate patterns, frameworks, etc Workflow agents suggest micro-activities based on stateConversation agents for conversational modeling Model completion agentsRound-trip modeling agents between all kinds of modelsEvaluation agentsBroker agents

    www.jaczone.com

  • A Complete UML Based Platform

    An executable UMLa programming language (or a set of PLs)Java, C++ become superfluouscombines graphical and program-like syntaxSemantics of changes -- functional and structural -- defined by UMLlanguage defined configuration and version managementRemoving seams (or gaps) between UML andoperating systems and database mgmt systemscomputer architectures

    "Function Distribution in Computer System Architectures, Harold Bud Lawson, 1976

  • Every Layer of Components described in UMLSystemware componentsoperating systemsdatabase management systemsMiddleware componentsCustomer relationship managementContent managementChange managementApplication general componentsSubscriber managementDigit analysis nodeRoute data

  • Trend: Focus moves upwards Use cases generate test cases and input to analysisAnalysis will generate implementation; design will become superfluousReq.tsImpl.TestAnalysisDesignMore generation=work eliminationNowTomorrow

  • Tomorrow, Life will be Much Better!We have UML, RUP and toolsEventually we will get a Component IndustryWe will do things right from the beginningProcess will get soul -- developers are people and people are humansWe will get rid of seams and gaps between levelsSummary

  • Readings by Ivar JacobsonUnified Software Development Process Jacobson, Booch, Rumbaugh, Addison Wesley Longman (1999)Object-Oriented Software Development--A Use Case Driven Approach (Addison Wesley) Ivar Jacobson, Addison Wesley Longman (1992)The Object Advantage: Business Process Reengineering with Objects (Addison Wesley) Ivar Jacobson, Addison Wesley Longman (1994)Software Reuse: Architecture, Process and Organization for Business Success (Addison Wesley) Ivar Jacobson, Addison Wesley Longman (1997)The Road to the Unified Software Development Process Ivar Jacobson, Stefan Bylund, Cambridge University Press, 2000

  • Special readingsSoftware Reuse: Architecture, Process and Organization for Business Success (Addison Wesley) Ivar Jacobson, Addison Wesley Longman (1997)Function Distribution in Computer System Architectures, Harold Bud Lawson (1976)

    Personal reflexionsPeople know that talking about the future is really what makes me going. Rational...When I started to work at Ericsson in the stone age-- 1963, I had a boss who kept talking about how We did for the AGF system in 1926. I could care less. Maybe I should have learnt something, but I didnt I think it is important to understand how we got where we are to understand where we will get.The Software Industry has a standard for drawings UML, a standard process and suites of tools. We can take the next stepI use the following metaphore which has worked very well. We are creating a new ball game, think of for instance soccer (yes, it is not new, but imagine...). We write the rule book which is the standard for what it means to play the game. This is non-propriatory -- of course. We also design and produce what you need to play this game: balls, shoes, goals, nets, ... that is we have products. We teach how to play, we have training camps,...that is we have services. However, we allow the whole world to build teams and let these teams compete with one another. The teams will have to get customers (spectato