SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Summary




                                          SWIM
                     Small World HypotesIs Machine


      Antonio Troina [708267], Federico Villa [720492]

              Software Engineering II Project - Politecnico di Milano
                            http://www.polimi.it


                                      April 23, 2008




Antonio Troina [708267], Federico Villa [720492]   SWIM
Summary




Summary

     Target: show all the design steps that led to the implementation of
     AutoBots SWIM3 and describe the test made on Bodum’s project
     RASD:
           Use Cases and Scenarios
           Alloy
     DD:
           User Experience Design
           Boundary-Controller- Entity and Architecture
           Component View
           Database Design
     Implementation
           Coherence with RASD and DD
     Bodum Test
           Coherence, Quality of Documentation and Implementation

          Antonio Troina [708267], Federico Villa [720492]   SWIM
Requirements Analisys and Specifications




                                               Part I

Requirements Analisys and Specification phase




   Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




RASD Intro


  SWIM:
     allows people to find, in a network of friends, the right person for
     their needings
     each user owns a set of abilities, and shares his profile with all
     SWIM users
     everyone is able to ask for help, in a certain area of skills, within his
     network of friends, specifying the maximum trusted degree of
     friendship




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




RASD Intro


  Actors and related Glossary:
      User: the actor of the system; he can be unregistered, registered,
      logged
      Object User: a user who receives a request
      Request: friendship request or help request made by an user to
      another user
      Notification: a message sent to an user or to an Object user to
      notify the change of the status of a request.
      Evaluation: the act of an user to accept or decline a request,
      changing request status.




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




RASD Intro



  Disambiguation:
      The registration part is made up of two steps: the first part asks for
      user personal data, the second one asks for abilities
      When an user creates a request, friendship or help, a notification is
      sent by the system to the Object User. The Object User has to
      evaluate the request and, after it, a new notification is sent to the
      user.




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




RASD Intro

  State charts:




                                      Figure: Request state chart




                                         Figure: User state chart



          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
               Requirements Analisys and Specifications     Use Cases and Scenarios
                                                           Alloy




RASD Scenarios




     A Scenario is made up of one or more Use Cases
     UML Diagrams: Activity Diagrams and Sequence Diagrams
     They show a running system interacting with actors




        Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                Requirements Analisys and Specifications     Use Cases and Scenarios
                                                            Alloy




RASD Use cases


     Use cases, stated simply, allow description of sequences of events
     that, taken together, lead to a system doing something useful
     Represented by a Fixed Schema:
          Name
          Actors
          Entry Condition
          Flow
          Exit Condition
          Special Requirements
          Exception
          Exception Handling




         Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
              Requirements Analisys and Specifications     Use Cases and Scenarios
                                                          Alloy




Use Case Diagram:




       Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                  Requirements Analisys and Specifications     Use Cases and Scenarios
                                                              Alloy




Examples




  Scenario: Registration to the System
  Involved use cases:
      Register
      Create Profile




           Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                    Requirements Analisys and Specifications     Use Cases and Scenarios
                                                                Alloy




Register Use Case


    Use Case Name               Register
    Actors                      Unregistered User
    Entry Conditions            User is not registered to the system
    Flow                        - User asks for registration to the system
                                - A new window with simple registration form is displayed
                                - User fills input fields
                                - System checks for email consistency
    Exit Conditions             User passed the first step, and is sent to the second step
    Special Requirements        Simple registration form
                                - Email address
                                - Password
    Exceptions                  - Email address already used
                                - User tries to register himself with a blank field
    Exceptions handling         - System asks for a new email address


                                            Table: Register use case



             Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                    Requirements Analisys and Specifications     Use Cases and Scenarios
                                                                Alloy




Create Profile Use Case

    Use Case Name               Create Profile
    Actors                      Unregistered User
    Entry Conditions            User gave a valid email address and password at first step
    Flow                        - System shows a new form asking for more informations
                                - User fills all fields
                                - System stores user’s informations and redirect the user to login page
    Exit Conditions             User is registered to the system
    Special Requirements        Simple registration form
                                More informations
                                - Name
                                - Surname
                                - Abilities
                                - Total amount of free time for each ability
    Exceptions                  - User tries to register himself with a blank field
    Exceptions handling         - System asks for a not blank field


                                       Table: Create Profile use case


             Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                Requirements Analisys and Specifications     Use Cases and Scenarios
                                                            Alloy




Activity Diagram




         Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
               Requirements Analisys and Specifications     Use Cases and Scenarios
                                                           Alloy




Sequence Diagram




        Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                    Requirements Analisys and Specifications     Use Cases and Scenarios
                                                                Alloy




Alloy - Signatures

                                                   abstract sig Request
module swim                                        ObjectUser: one User,
                                                   madeby: one User
sig String
                                                   sig HelpRequest extends Request
sig User                                           requestedtime: String,
name:String,
surname:String,                                    //related ability
email:String,                                      relatedability: one Ability

//Friend List                                      sig FriendshipRequest extends Request
friend: set User,
                                                   sig Ability
//Will help                                        name: String,
helpedtobe: set User                               amountoftime: String,
                                                   owner: one User
             Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
               Requirements Analisys and Specifications     Use Cases and Scenarios
                                                           Alloy




Alloy - Metamodel




        Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




Alloy - facts


   //No friendship reflexivity
   fact nofriendshipreflexivity
   no x: User | x in x.friend

   //An user can’t help himself
   fact nohelpreflexivity
   no x: User | x in x.helpedtobe

   //An user can’t forward a general request to himself
   fact norequesttome
   all r: Request | r.ObjectUser not in r.madeby




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




Alloy - facts


   //An user can ask for friendship to other users that
   //aren’t already friend with him
   fact friendshipToNotAlreadyFriend
   all r: FriendshipRequest, u1, u2: User |
   ((u2 in r.ObjectUser) AND (u1 in r.madeby))
   implies (u2 not in u1.friend)
   //An user must own an ability
   fact helperHasAbility
   all u: User, r: HelpRequest, a: Ability |
   ((u in r.ObjectUser) AND (a in r.relatedability))
   implies (u in a.owner)




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                 Requirements Analisys and Specifications     Use Cases and Scenarios
                                                             Alloy




Alloy - facts



   //If A is friend of B, then B is friend of A
   fact friendshipSimmetry
   all u1, u2: User | (u1 in u2.friend) <=> (u2 in u1.friend)
   //The ObjectUser of an HelpRequest can’t be
   //helped by the sender in the same "request"
   fact helperIsNotHelpedByApplicant
   all u1, u2: User, r: HelpRequest |
   (u1 in u2.helpedtobe) <=>
   ((u1 in r.madeby) AND (u2 in r.ObjectUser))




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD Intro
                Requirements Analisys and Specifications     Use Cases and Scenarios
                                                            Alloy




Alloy - run




         Antonio Troina [708267], Federico Villa [720492]   SWIM
Design




                                           Part II

                                  Design phase




Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                              Boundary - Control - Entity
                                                    Design    System Architecture
                                                              Component View
                                                              Database Design



Design



   We drove our project from the elicitation phase to the design phase
   starting from the User eXperience diagram. By using this diagram we
   had the first idea of how the user could navigate the whole system. Then
   we built the BCE Diagram, to choose which classes we would need, and
   which methods for each class. And at the end, with component view
   diagram, we did a merge of UX and BCE, producing a complete
   component view of the whole system.
   This has been the input for the third phase, the implementation.




           Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                           Boundary - Control - Entity
                                                 Design    System Architecture
                                                           Component View
                                                           Database Design



User eXperience Design




        Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                            Boundary - Control - Entity
                                                  Design    System Architecture
                                                            Component View
                                                            Database Design



Boundary - Control - Entity




         Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                            Boundary - Control - Entity
                                                  Design    System Architecture
                                                            Component View
                                                            Database Design



System Architecture




         Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                          Boundary - Control - Entity
                                                Design    System Architecture
                                                          Component View
                                                          Database Design



Component View




       Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                           Boundary - Control - Entity
                                                 Design    System Architecture
                                                           Component View
                                                           Database Design



Database Design - ER




        Antonio Troina [708267], Federico Villa [720492]   SWIM
User eXperience Design
                                                            Boundary - Control - Entity
                                                  Design    System Architecture
                                                            Component View
                                                            Database Design



Database Design




      Completly useless. DB Schema is autogenerated by Jboss




         Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                            Code Organization
                 Coherence with Documentation
                          Extra Documentation




                                          Part III

                       Implementation phase




Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                      Code Organization
                                                             What we used
                           Coherence with Documentation
                                    Extra Documentation




Implementation




      Complete in feautures
      Partial in security and session handling




          Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                     Code Organization
                                                            What we used
                          Coherence with Documentation
                                   Extra Documentation




What we used




     Eclipse
     JBoss
     Hypersonic DataBase, embedded in JBoss




         Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                     Code Organization
                          Coherence with Documentation
                                   Extra Documentation




Code Organization




      Two different Project, Swim3 and Swim3Web
      Swim3: contains session beans, entity beans and exceptions
      Swim3Web: contains servlets and JSP




         Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                    Code Organization
                         Coherence with Documentation
                                  Extra Documentation




Packages of Swim3




        Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                    Code Organization
                         Coherence with Documentation
                                  Extra Documentation




Packages of Swim3Web




        Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                    Code Organization
                         Coherence with Documentation
                                  Extra Documentation




Coherence with BCE




     Coherent in structure:
         4 Entities: 4 Entity beans
         5 Controls: 5 Session beans
         3 Boundaries: 3 Servlets
     Not fully coherent in method names




        Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                     Code Organization
                          Coherence with Documentation
                                   Extra Documentation




Coherence with Component




     Fully Coherent in structure:
     Not fully coherent in method names




         Antonio Troina [708267], Federico Villa [720492]   SWIM
Implementation introduction
                                       Code Organization
                            Coherence with Documentation
                                     Extra Documentation




Extra documentation




   A manual has been produced, containing:
       User Manual
       Installation Guide




           Antonio Troina [708267], Federico Villa [720492]   SWIM
Testing
                      Documentation evaluation




                                          Part IV

                                 Testing phase




Antonio Troina [708267], Federico Villa [720492]   SWIM
Testing
                                                               List compatible helpers
                                  Documentation evaluation




Testing introduction



   We tested Bodum’s project in three phases
     1   RASD evaluation, coherence between requirements and use cases /
         diagrams
     2   DD evaluation, coherence with RASD specifications
     3   Implementation testing, by comparing with previous documentations
         - Black Box
   The bodum’s ”implementation” part didn’t contain any user manual.




            Antonio Troina [708267], Federico Villa [720492]   SWIM
Testing
                                                              List compatible helpers
                                 Documentation evaluation




List compatible helpers


   From users homepage, we select the item Search for Help. The system
   asks to choose an ability (called job), from a cascade window, to
   indicate the desired degree of separation, and hours needed.
   We tried some searches, and the result is that the system doesnt return
   the correct list. We asked to find a plumber with separation degree 1,
   and the system returned all plumbers, until degree ”n” (without
   considering any degree).
   Moreover the system shows also myself in the list, violating the alloy
   specication.
   The system performs also the search with 0 separation degree.




           Antonio Troina [708267], Federico Villa [720492]   SWIM
Testing
                                                          List compatible helpers
                             Documentation evaluation




1   the system performs the search also with empty fields, and it returns
    the list of all users with the requested ability.
2   the system shows also myself as compatible helper into the list
    (violating alloy specs)
3   the system perfoms the search without liking the degree of
    separation.
4   the system doesnt consider friendship relations while performing the
    search. It returns a list even if there are no friendship relations
    linking us to helpers.
5   the system performs the search also with 0 degree of separation




       Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD
                                                 Testing
                                                             DD
                                Documentation evaluation
                                                             Implementation




Documentation evaluation - RASD



      Many imprecisions. Theres a bit of confusion about Use Case and
      Scenarios: for each scenario there is only a use case.
      Diagrams are complete and accurate but often the event-ow
      contains not-expected actions, not appropriate for the use case.
      Alloy model is incomplete; it does not contain all the required
      specications and constraints.
      The constraints described in Alloy are not implementend or
      respected during implementation phase.




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD
                                                 Testing
                                                             DD
                                Documentation evaluation
                                                             Implementation




Documentation evaluation - DD



      Boundary-Control-Entity contains some questionable choices (the
      Entity layer is made up of Entity Elements representing all the tables
      in the database, including relational join tables)
      A Component View is not included
      According to BCE, there must be only one servlet and only one
      session bean. In J2EE view we can see 7 servlets and 5 session
      beans. The source package is made up of 13 servlets and 8 session
      beans.




          Antonio Troina [708267], Federico Villa [720492]   SWIM
RASD
                                                Testing
                                                            DD
                               Documentation evaluation
                                                            Implementation




Documentation evaluation - Implementation




      No user manual is provided.




         Antonio Troina [708267], Federico Villa [720492]   SWIM

Contenu connexe

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Swim

  • 1. Summary SWIM Small World HypotesIs Machine Antonio Troina [708267], Federico Villa [720492] Software Engineering II Project - Politecnico di Milano http://www.polimi.it April 23, 2008 Antonio Troina [708267], Federico Villa [720492] SWIM
  • 2. Summary Summary Target: show all the design steps that led to the implementation of AutoBots SWIM3 and describe the test made on Bodum’s project RASD: Use Cases and Scenarios Alloy DD: User Experience Design Boundary-Controller- Entity and Architecture Component View Database Design Implementation Coherence with RASD and DD Bodum Test Coherence, Quality of Documentation and Implementation Antonio Troina [708267], Federico Villa [720492] SWIM
  • 3. Requirements Analisys and Specifications Part I Requirements Analisys and Specification phase Antonio Troina [708267], Federico Villa [720492] SWIM
  • 4. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy RASD Intro SWIM: allows people to find, in a network of friends, the right person for their needings each user owns a set of abilities, and shares his profile with all SWIM users everyone is able to ask for help, in a certain area of skills, within his network of friends, specifying the maximum trusted degree of friendship Antonio Troina [708267], Federico Villa [720492] SWIM
  • 5. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy RASD Intro Actors and related Glossary: User: the actor of the system; he can be unregistered, registered, logged Object User: a user who receives a request Request: friendship request or help request made by an user to another user Notification: a message sent to an user or to an Object user to notify the change of the status of a request. Evaluation: the act of an user to accept or decline a request, changing request status. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 6. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy RASD Intro Disambiguation: The registration part is made up of two steps: the first part asks for user personal data, the second one asks for abilities When an user creates a request, friendship or help, a notification is sent by the system to the Object User. The Object User has to evaluate the request and, after it, a new notification is sent to the user. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 7. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy RASD Intro State charts: Figure: Request state chart Figure: User state chart Antonio Troina [708267], Federico Villa [720492] SWIM
  • 8. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy RASD Scenarios A Scenario is made up of one or more Use Cases UML Diagrams: Activity Diagrams and Sequence Diagrams They show a running system interacting with actors Antonio Troina [708267], Federico Villa [720492] SWIM
  • 9. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy RASD Use cases Use cases, stated simply, allow description of sequences of events that, taken together, lead to a system doing something useful Represented by a Fixed Schema: Name Actors Entry Condition Flow Exit Condition Special Requirements Exception Exception Handling Antonio Troina [708267], Federico Villa [720492] SWIM
  • 10. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Use Case Diagram: Antonio Troina [708267], Federico Villa [720492] SWIM
  • 11. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Examples Scenario: Registration to the System Involved use cases: Register Create Profile Antonio Troina [708267], Federico Villa [720492] SWIM
  • 12. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Register Use Case Use Case Name Register Actors Unregistered User Entry Conditions User is not registered to the system Flow - User asks for registration to the system - A new window with simple registration form is displayed - User fills input fields - System checks for email consistency Exit Conditions User passed the first step, and is sent to the second step Special Requirements Simple registration form - Email address - Password Exceptions - Email address already used - User tries to register himself with a blank field Exceptions handling - System asks for a new email address Table: Register use case Antonio Troina [708267], Federico Villa [720492] SWIM
  • 13. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Create Profile Use Case Use Case Name Create Profile Actors Unregistered User Entry Conditions User gave a valid email address and password at first step Flow - System shows a new form asking for more informations - User fills all fields - System stores user’s informations and redirect the user to login page Exit Conditions User is registered to the system Special Requirements Simple registration form More informations - Name - Surname - Abilities - Total amount of free time for each ability Exceptions - User tries to register himself with a blank field Exceptions handling - System asks for a not blank field Table: Create Profile use case Antonio Troina [708267], Federico Villa [720492] SWIM
  • 14. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Activity Diagram Antonio Troina [708267], Federico Villa [720492] SWIM
  • 15. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Sequence Diagram Antonio Troina [708267], Federico Villa [720492] SWIM
  • 16. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Alloy - Signatures abstract sig Request module swim ObjectUser: one User, madeby: one User sig String sig HelpRequest extends Request sig User requestedtime: String, name:String, surname:String, //related ability email:String, relatedability: one Ability //Friend List sig FriendshipRequest extends Request friend: set User, sig Ability //Will help name: String, helpedtobe: set User amountoftime: String, owner: one User Antonio Troina [708267], Federico Villa [720492] SWIM
  • 17. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Alloy - Metamodel Antonio Troina [708267], Federico Villa [720492] SWIM
  • 18. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Alloy - facts //No friendship reflexivity fact nofriendshipreflexivity no x: User | x in x.friend //An user can’t help himself fact nohelpreflexivity no x: User | x in x.helpedtobe //An user can’t forward a general request to himself fact norequesttome all r: Request | r.ObjectUser not in r.madeby Antonio Troina [708267], Federico Villa [720492] SWIM
  • 19. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Alloy - facts //An user can ask for friendship to other users that //aren’t already friend with him fact friendshipToNotAlreadyFriend all r: FriendshipRequest, u1, u2: User | ((u2 in r.ObjectUser) AND (u1 in r.madeby)) implies (u2 not in u1.friend) //An user must own an ability fact helperHasAbility all u: User, r: HelpRequest, a: Ability | ((u in r.ObjectUser) AND (a in r.relatedability)) implies (u in a.owner) Antonio Troina [708267], Federico Villa [720492] SWIM
  • 20. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Alloy - facts //If A is friend of B, then B is friend of A fact friendshipSimmetry all u1, u2: User | (u1 in u2.friend) <=> (u2 in u1.friend) //The ObjectUser of an HelpRequest can’t be //helped by the sender in the same "request" fact helperIsNotHelpedByApplicant all u1, u2: User, r: HelpRequest | (u1 in u2.helpedtobe) <=> ((u1 in r.madeby) AND (u2 in r.ObjectUser)) Antonio Troina [708267], Federico Villa [720492] SWIM
  • 21. RASD Intro Requirements Analisys and Specifications Use Cases and Scenarios Alloy Alloy - run Antonio Troina [708267], Federico Villa [720492] SWIM
  • 22. Design Part II Design phase Antonio Troina [708267], Federico Villa [720492] SWIM
  • 23. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design Design We drove our project from the elicitation phase to the design phase starting from the User eXperience diagram. By using this diagram we had the first idea of how the user could navigate the whole system. Then we built the BCE Diagram, to choose which classes we would need, and which methods for each class. And at the end, with component view diagram, we did a merge of UX and BCE, producing a complete component view of the whole system. This has been the input for the third phase, the implementation. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 24. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design User eXperience Design Antonio Troina [708267], Federico Villa [720492] SWIM
  • 25. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design Boundary - Control - Entity Antonio Troina [708267], Federico Villa [720492] SWIM
  • 26. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design System Architecture Antonio Troina [708267], Federico Villa [720492] SWIM
  • 27. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design Component View Antonio Troina [708267], Federico Villa [720492] SWIM
  • 28. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design Database Design - ER Antonio Troina [708267], Federico Villa [720492] SWIM
  • 29. User eXperience Design Boundary - Control - Entity Design System Architecture Component View Database Design Database Design Completly useless. DB Schema is autogenerated by Jboss Antonio Troina [708267], Federico Villa [720492] SWIM
  • 30. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Part III Implementation phase Antonio Troina [708267], Federico Villa [720492] SWIM
  • 31. Implementation introduction Code Organization What we used Coherence with Documentation Extra Documentation Implementation Complete in feautures Partial in security and session handling Antonio Troina [708267], Federico Villa [720492] SWIM
  • 32. Implementation introduction Code Organization What we used Coherence with Documentation Extra Documentation What we used Eclipse JBoss Hypersonic DataBase, embedded in JBoss Antonio Troina [708267], Federico Villa [720492] SWIM
  • 33. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Code Organization Two different Project, Swim3 and Swim3Web Swim3: contains session beans, entity beans and exceptions Swim3Web: contains servlets and JSP Antonio Troina [708267], Federico Villa [720492] SWIM
  • 34. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Packages of Swim3 Antonio Troina [708267], Federico Villa [720492] SWIM
  • 35. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Packages of Swim3Web Antonio Troina [708267], Federico Villa [720492] SWIM
  • 36. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Coherence with BCE Coherent in structure: 4 Entities: 4 Entity beans 5 Controls: 5 Session beans 3 Boundaries: 3 Servlets Not fully coherent in method names Antonio Troina [708267], Federico Villa [720492] SWIM
  • 37. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Coherence with Component Fully Coherent in structure: Not fully coherent in method names Antonio Troina [708267], Federico Villa [720492] SWIM
  • 38. Implementation introduction Code Organization Coherence with Documentation Extra Documentation Extra documentation A manual has been produced, containing: User Manual Installation Guide Antonio Troina [708267], Federico Villa [720492] SWIM
  • 39. Testing Documentation evaluation Part IV Testing phase Antonio Troina [708267], Federico Villa [720492] SWIM
  • 40. Testing List compatible helpers Documentation evaluation Testing introduction We tested Bodum’s project in three phases 1 RASD evaluation, coherence between requirements and use cases / diagrams 2 DD evaluation, coherence with RASD specifications 3 Implementation testing, by comparing with previous documentations - Black Box The bodum’s ”implementation” part didn’t contain any user manual. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 41. Testing List compatible helpers Documentation evaluation List compatible helpers From users homepage, we select the item Search for Help. The system asks to choose an ability (called job), from a cascade window, to indicate the desired degree of separation, and hours needed. We tried some searches, and the result is that the system doesnt return the correct list. We asked to find a plumber with separation degree 1, and the system returned all plumbers, until degree ”n” (without considering any degree). Moreover the system shows also myself in the list, violating the alloy specication. The system performs also the search with 0 separation degree. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 42. Testing List compatible helpers Documentation evaluation 1 the system performs the search also with empty fields, and it returns the list of all users with the requested ability. 2 the system shows also myself as compatible helper into the list (violating alloy specs) 3 the system perfoms the search without liking the degree of separation. 4 the system doesnt consider friendship relations while performing the search. It returns a list even if there are no friendship relations linking us to helpers. 5 the system performs the search also with 0 degree of separation Antonio Troina [708267], Federico Villa [720492] SWIM
  • 43. RASD Testing DD Documentation evaluation Implementation Documentation evaluation - RASD Many imprecisions. Theres a bit of confusion about Use Case and Scenarios: for each scenario there is only a use case. Diagrams are complete and accurate but often the event-ow contains not-expected actions, not appropriate for the use case. Alloy model is incomplete; it does not contain all the required specications and constraints. The constraints described in Alloy are not implementend or respected during implementation phase. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 44. RASD Testing DD Documentation evaluation Implementation Documentation evaluation - DD Boundary-Control-Entity contains some questionable choices (the Entity layer is made up of Entity Elements representing all the tables in the database, including relational join tables) A Component View is not included According to BCE, there must be only one servlet and only one session bean. In J2EE view we can see 7 servlets and 5 session beans. The source package is made up of 13 servlets and 8 session beans. Antonio Troina [708267], Federico Villa [720492] SWIM
  • 45. RASD Testing DD Documentation evaluation Implementation Documentation evaluation - Implementation No user manual is provided. Antonio Troina [708267], Federico Villa [720492] SWIM