Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile archiecture iltam 2014

6,283 views

Published on

In this lecture I will present a unified Agile process and techniques that allow for a seamless transition from the system engineering level to the SW engineering level in an iterative and evolutionary way. I will also show the benefits the unifying the processes of the two levels and of the resulting component based architecture. I will also talk on the architect’s role and this role evolves over time and will conclude with presenting a small but real life project example.

Published in: Software
  • Be the first to comment

Agile archiecture iltam 2014

  1. 1. © Copyright by ACTL Systems Ltd. Building the SW Architecture the Agile way Presented by: Dani Mannes ACTL Systems Ltd. Tel: 052-2231457 danim@actl.co.il Version 2.0
  2. 2. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 2 Who is ACTL?  We offer experience and knowledge transfer services for:  Agile, MDD & object oriented development.  System and SW Architecture Design  Process improvement  I train and coach teams since 1992 Over 150 projects Defence, finance , health, government, telecom, ...... Mission: Empower our customers to realize their visions. Unify system engineering and SW engineering methods and process.
  3. 3. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 3 Service Overview ACTL realizes your vision by offering a complete one-stop-shop solution for Agile MDD & implementation
  4. 4. © Copyright by ACTL Systems Ltd.
  5. 5. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 5 How is it Represented & What is Architecture?
  6. 6. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 6 What is Architecture?  A model showing a simplified view of a system.  It shows the important: Elements (-> static structure) Dynamics. (-> interaction of elements)  Why Manage complexity !
  7. 7. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 7 Simplified but True!!!
  8. 8. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 8 System vs. SW Architecture?  Elements being modeled depend on the scope.  Process and concepts remain the same
  9. 9. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 9 Principles behind the Agile Manifesto  Let’s examine a few of them: “Welcome changing requirements” “Agile processes promote sustainable development.” “… good design enhances agility.” “The best architectures, requirements, and designs emerge from self-organizing teams.” Conclusion Architecture is a critical success factor!
  10. 10. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 10 Survey Says: Agilists are Modeling 31.8 53.4 68.2 66.7 85.5 47 65.9 77.2 77.7 92.7 0 20 40 60 80 100 CASE Tool Modeling Paper Modeling Init. Agile Arch. Modeling Init. Agile Req. Modeling Whiteboard Sketching %Finding it Useful %Applying Technique Data, summary, and slides downloadable from www.ambysoft.com/surveys
  11. 11. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 11 Two types of Agilists!
  12. 12. © Copyright by ACTL Systems Ltd.
  13. 13. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 13 What are the Architectural Elements? It’s a matter of scope and point of time!
  14. 14. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 14 How to find Architecture?  Top Down  According to which lines?  Algorithm of decomposition?  Where is the top?  Bottom Up  What is the bottom?  Implementation, Foundation?  How do you find the elements? ?
  15. 15. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 15 Synthesis
  16. 16. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 16 Generic Process Scope of Requirements & Classifiers is a matter of scope! Identify Classifiers => Analysis
  17. 17. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 17 The meta element: classifier  Classifier is an abstraction of reality defining behavior.  Each kind of classifier has its behavior realization Class:  Operations  Attributes Component  Interfaces  Internal structure. Node  Internal structure & Artifacts Component Class Classifier Node Components naturally extend classes & focus on large scale functionality ! Nodes naturally extend classes & focus on physical infrastructure !
  18. 18. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 18 Classifiers & Architecture evolve over sprints!  Deployment diagrams show:  The physical infrastructure providing the behavior increaseSpeed( ) beat( ) Heart weight : int volume : int  Class & Package diagrams show:  Classifiers, Groups and their relations contract() Chamber size: int Heart_Pkg <<Component>> Brain  Component diagrams show:  Components & their wiring  Composite structure diagrams show  Internal structures of components <<Component>> Heart I_Pumping Human Brain <<artifact>> Brain 1.0.exe Heart <<artifact>> Heart1.0.exe
  19. 19. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 19 SW Architect Reviewer Db DesignerDesigner Logical Architecture Review -Logical view -Component View -Process View -Deployment View -Component Design -DB Design Design ProcessPhysical Architecture Build deployment view Design Component structure Model interface components Build logical data model Build physical data model Specify Requirements => Build Product Backlog Build component view
  20. 20. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 20 Component Design  If new components or artifacts are needed: Capture their requirements. Identify a conceptual solution (Analysis). Design a solution to be implemented (Design). The process is iterative !!!
  21. 21. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 21 Iteration Plan => 4 Weeks  Week 1.  Iteration initialization & planning.  Charter and initial use case model.  Identification of key NFR  Identification of classifiers  Team works on static analysis model  Week 2.  Team works on dynamic model via UC realizations.  Reduction of class dependencies.  Packaging and componentization.  Identification of additional components -> model extension  Update of UC realizations  Week 3.  Detailed component design and interface realization.  Initialization of implementation.  Team implements key UCs.  Quality team defines unit tests for packages and components  Week 4.  Team refines architecture => packages, components and their interfaces if needed.  Completion of development  Testing  Retrospect.
  22. 22. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 22 Summary: Iterative Middle out process  Scope of Requirements & size of Classifiers is a matter of size! Identify Classifiers => Analysis Up Down Middle
  23. 23. © Copyright by ACTL Systems Ltd.
  24. 24. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 24 Architect’s Role Manage complexity ! Manage change effect escalation! Test escalation Allow concurrent development
  25. 25. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 25 Architect’s Role  There are known knowns. These are things we know that we know.  There are known unknowns. That is to say, there are things that we know we don't know.  There are unknown unknowns. There are things we don't know we don't know.  There are unknown knows That is to say we were negligent in our pursuit of knowledge!
  26. 26. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 26 Principles of Complexity Management The principle of: Responsibility driven design Non-desired relation Responsibility delegation are the foundational concerns, concepts and motivations of the Architect
  27. 27. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 27 Principles of Complexity Management  Open Close principle stipulates that classes, functions and packages should be:  Open for extension.  Closed for modification.  The Common Closure principle stipulates that:  Classifiers within a released package should share a common closure.  If one classifier needs to be changed, most probably all other classifiers will need to be changed too.  The Principle of Package Dependency stipulates that:  The dependency structure of packages should be a directed acyclic graph (DAG).  There should be no cycles.  Build true component based architectures where  Components are large scale blocks of functionality defined only in terms of Required and provided interfaces  The internal structures are unknown and inaccessible by others!
  28. 28. © Copyright by ACTL Systems Ltd.
  29. 29. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 29 High Speed Data Acquisition System
  30. 30. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 30 Requirements Model uc Use Case diagram HSDA Sensor Data Recording Sensor Data Replay Sensor Data Download System Monitoring System Maintenance A_Operator (from Actors) Results analsyis
  31. 31. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 31 Classifier Model class Initial Class Diagram CentralController + createSession(char): void Configuration + getDevice(): Disk + getWS(): void Session + init(char): void + start(): void + stop(): void Work_Station DSP + start(): void Device + initialize(): void + start() + stop(): void + pause(): void + resume(): void Disk + prepareRecording(char): void + start(): void + store(FinalPrResult): void Sensor + start(): void OperStation MC + setResult(FinalPrResult): void ReplaySession RecordingSession + process(IntermPrResult): void MonitoringSession * * holds *
  32. 32. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 32 Dynamic Model sd Recording initialization A_Operator (from Actors) DSP (from Logical View) CentralController (from CC_Pkg) Disk (from Logical View) Sensor (from Logical View) :RecordingSession Configuration (from Config_Pkg) par [1] [2] [3] init(char) prepareRecording(char) start() getDevice(): Disk start() start() start() createSession(char)
  33. 33. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 33 Component Model cmp MonitoringSession I_DeviceObserver Disk_Comp I_DeviceObserver I_Device I_DeviceObserver Sensor_Comp I_Device I_DeviceObserver I_DeviceObserver Disk_Comp I_Device I_DeviceObserver I_Device CentralControleler_Comp I_CC I_Device I_DeviceObserver I_CC MC_Comp I_CC I_CC OperSt_Comp I_CC
  34. 34. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 34 Central Controller internal structure pkg CentralControl_Comp intrnal structure CC_Pkg + CentralController + Session (from Logical View) Config_Pkg + Device + Configuration + Work_Station (from Logical View) Monotoring_Pkg + MonitoringSession (from Logical View) Rec_Replay_Pkg + RecordingSession + ReplaySession (from Logical View) interfaces pkg + I_CC + I_Device + I_DeviceObserver + I_Disk (from Logical View)
  35. 35. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 35 Central Controller internal components cmp Logical View I_Configuration I_Device RecSession_Comp I_Configuration I_Device I_Configuration I_Device ReplSession_Comp I_Configuration I_Device I_Configuration I_Device MonitoringSession_Comp I_Configuration I_Device Configuration_Comp I_Configuration
  36. 36. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 36 Lessons Learned  Radically different approach and difficult to assimilate Not conventional top down approach! Not a functional but responsibility driven thinking! Working in iterations where unknowns exist Adopting the process requires investment  Early development allows for early feedback  Clear understanding of separation of concern  Concurrent development is much easier Coaching is needed to succeed!
  37. 37. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 37 Summary: Iterative Middle out process  Scope of Requirements & size of Classifiers is a matter of size! Identify Classifiers => Analysis Up Down Middle
  38. 38. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 38 Questions - Discussion
  39. 39. © Advanced CASE Technology & Language Systems Ltd. Agile SW architecture / slide 39 Thank You For Your Attention ACTL Systems Ltd.ACTL Systems Ltd.ACTL Systems Ltd. Jaffa street 217 / 5 POB 8129 91081 Jerusalem Tel: +972-2-5376459 Cell +972-52-2231457 E-Mail: danim@actl.co.il URL: www.actl.co.il

×