SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
The Unified Modeling Language
                         g    g g



              R. Akerkar



                     CIS 260 Software Engineering - I (R.
10:16:25 AM                       Akerkar)                  1
A movie project plan
   One of the key artifacts in the RUP
    framework is the project plan
                              plan.
   The project plan details the tasks, schedule,
    cost, resources, milestones,
    cost resources milestones and deliverables
    needed to complete the project.
   Progress is tracked against the plan and
    measured by work completed by milestones
    reached and results delivered.
   The plan is conceived early in the project and
    frequently updated throughout the lifecycle.
                   CIS 260 Software Engineering - I (R.
10:16:25 AM                     Akerkar)                  2
The Iterative Model graph of RUP
      The horizontal axis
       represents time and
       shows the dynamic
       aspect of the process as
       it is enacted, and it is
       expressed in terms of
       cycles, phases,
       iterations, and
       milestones.

      The vertical axis
       represents the static
       aspect of the p
          p           process:
       how it is described in
       terms of activities,
       artifacts, workers and
       workflows.

                                 CIS 260 Software Engineering - I (R.
    10:16:25 AM                               Akerkar)                  3
A movie project plan = a software
development project




              CIS 260 Software Engineering - I (R.
10:16:25 AM                Akerkar)                  4
A movie project plan = a software
development project
   In this figure, activities related to making a movie are substituted
    for the RUP disciplines.
     Developing the screenplay is analogous to writing requirements,

     filming corresponds to implementation, and

     producing the movie is more or less like project management.



   Dividing the timeline into four p
            g                       phases pputs the focus on different
    aspects of the movie project at different times.
   We also see that the activities run in parallel, typically
    exchanging information and work packages in a highly efficient,
    cross-functional manner:
           f
      just as the RUP.


                           CIS 260 Software Engineering - I (R.
10:16:25 AM                             Akerkar)                           5
The Essentials of RUP
          In all projects, it is important to explore what will
           happen if any of these essentials is ignored.

          For example:
      1.      No vision? You may lose track of where you are going.
      2.      No plan? You will not be able to track progress.
      3.      No risk list? You may be focusing on the wrong issues
              now.
      4.      No issues li ? With t accountability, th
              N i         list? Without      t bilit these are th
                                                               the
              roadblocks to success.
      5.      No architecture? You may be unable to handle
              communication, synchronization,
              communication synchronization and data access issues
              as they arise.



                             CIS 260 Software Engineering - I (R.
10:16:25 AM                               Akerkar)                    6
The Essentials of RUP
    6.    No product (prototype)? Get started writing code; just
          accumulating paperwork won’t get you very far; get
                                     won t
          something working in front of the customers.
    7.    No evaluation? Don’t keep your head in the sand. It is
          important to face the truth How close are you really to your
                                 truth.
          deadline? To your goals in quality or budget?
    8.    No change requests? How do you keep track of these?
    9.    No user support? What happens when a user has a
          question or can’t figure out how to use the product?




                            CIS 260 Software Engineering - I (R.
10:16:25 AM                              Akerkar)                    7
Next Step: Terminology
   Playing with Rational Rose
        To create three diagrams in Rational Rose,
             the use-case diagram,
             the sequence diagram, and
             the class diagram
                        diagram.
   Rational Rose is a program that allows you to build
    models based on the Unified Modeling Language (UML).
             The
              Th use-case didiagrams allow you t see all th scenarios and
                                      ll       to       ll the       i  d
              how the users act on them.
             The sequence diagrams allow you to elaborate on each of the
              use cases by showing example objects and messages that
              are passed between these objects.
             The class diagram describes the types of objects in the
              program and how they are related to each other.
                 g                 y

                              CIS 260 Software Engineering - I (R.
10:16:25 AM                                Akerkar)                         8
Use Case
 “A use case specifies the behavior of a system or a part of a
 system, and i a description of a set of sequences of actions,
            d is d      i i     f      f             f i
 including variants, that a system performs to yield an observable
 result of value to an actor.”
         - The UML User Guide, [Booch,99]

 “An actor is an idealization of an external person, process, or
  An                                          person process
 thing interacting with a system, subsystem, or class. An actor
 characterizes the interactions that outside users may have with
 the system.”
  h          ”
         - The UML Reference Manual, [Rumbaugh,99]


                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                        9
Use Case (Cont’d)


                                            A use case is rendered as an ellipse
          Register for Courses
                                            in a use case diagram. A use case is
                                                          diagram
                                            always labeled with its name.




                                 CIS 260 Software Engineering - I (R.
10:16:25 AM                                   Akerkar)                         10
Use Case (Cont’d)


                                   An actor is rendered as a stick
                                   figure in a use case diagram.
                                                        diagram
                                   Each actor participates in one or
                                   more use cases.




              Student

                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                          11
Use Case (Cont’d)
    Actors can participate in a generalization relation with other
    actors.
    actors




              Student                                            Person

                          CIS 260 Software Engineering - I (R.
10:16:25 AM                            Akerkar)                           12
Use Case (Cont’d)

                            Actors may b connected to use cases
                                        be        d
                            only by associations.




                                                           Register for Courses




              Student

                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                                     13
Use Case (Cont’d)
 Here we have a Student interacting with the Registrar and the
 Billing System via a “Register for Courses” use case.




                                                                    Billing System



              Student   Register for Courses



                                                                    Registrar



                             CIS 260 Software Engineering - I (R.
10:16:25 AM                               Akerkar)                                   14
Draw Use Case Diagram
   The diagram describes the functionality of the (simple)
    Restaurant System.

   The Food Critic actor can Eat Food, Pay for Food, or
    Drink Wine.
   Only the Chef Actor can Cook Food.




                       CIS 260 Software Engineering - I (R.
10:16:25 AM                         Akerkar)                  15
Use Cases are represented
  U C                     t d
  by an oval and Actors are
  stick figures.

  The box defines the
  boundaries of the Restaurant
  System




                            CIS 260 Software Engineering - I (R.
10:16:25 AM                              Akerkar)                  16
Actor and Use Case Diagram
                         g

                • An actor is a user of a system in a
                  particular role.
                   An
                   A actor can b h
                               be human or an external
                                                     l
 BookBorrower
                   system.

                • A use case is a a task that an actor
                  needs to perform with the help of the
  Borrow book     system.
                  system



                      CIS 260 Software Engineering - I (R.
10:16:25 AM                        Akerkar)                  17
Use Cases and Actors


  • A scenario is an instance (example) of a use case
  • A t i role, not an individual
    Actor is l        t i di id l
        (e.g., librarian can have many roles)
  • Actor must be a "beneficiary" of the use case
        (e.g., not librarian who processes book when borrowed)
  In UML the system boundary is the set of use cases.
     UML,                                      cases



                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                    18
Use Cases for Borrowing Books
                         g


                                        Borrow copy
                                          of book

 BookBorrower
                                           Return copy
                                             of book


                                          Reserve
                                           book
              Extend
               loan
                       CIS 260 Software Engineering - I (R.
10:16:25 AM                         Akerkar)                  19
Case Study: Use Cases Drive the Development
Process

   A Process for Writing Use Cases
   Step 1: Identify Actors
   Step 2: Identify Use Cases
   Step 3: Prioritize Use Cases
   Step 4: Elaborate Use Cases
   Step 5: Create a Structured Use Case Model



                  CIS 260 Software Engineering - I (R.
10:16:25 AM                    Akerkar)                  20
Step 1: Identify Actors
   The actors represent users and external systems
    that will interact with the system under development.
                                              development
   One way to identify actors is to list the specific users
    that will use the system and then organize them into
                        y                  g
    categories based on their role or the purpose they
    have for using the system.

   Example:
   Consider th t k of fi di actors f a software
    C    id the task f finding t      for      ft
    system which simulates a virtual mall. A virtual mall
    connects buyers and merchants
                        merchants.
                      CIS 260 Software Engineering - I (R.
10:16:25 AM                        Akerkar)                  21
Step 1: Identify Actors (Example)
   Potential actors are:
   Customer - A customer represents any
    C t                  t               t
    person who uses the services of the virtual
    mall.
    mall
   Affiliate - An affiliate represents a person or
    organization who is authorized to sell
    merchandise at the virtual mall.
   Credit Bureau - A credit bureau represents
                                           p
    an external system used to verify the
    creditworthiness of a customer.
                    CIS 260 Software Engineering - I (R.
10:16:25 AM                      Akerkar)                  22
Step 2: Identify Use Cases
   This step may be performed simultaneously
    with the previous step
                        step.
   Many development projects start with a high-
    level list of desired features
                          features.
   For example, the feature list for a virtual mall
    might include:
        1) list item for sale,
        2) browse items for sale,
          )
        3) purchase an item.
        Each feature is a potential use case.

                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                  23
Step 2: Identify Use Cases (Example)
   The use cases that emerge
    from exploring how each actor
    gets value from or provides
    value to the system are:

   Browse I
    B        Inventory - Thi use
                   t     This
    case is used by a customer to
    shop for items to purchase.
   Purchase an Item - This use
    case is used by a customer to
    purchase an item.
   Offer Item For Sale - This use
    case is used by an affiliate to
    make an item available for
    purchase.

                           CIS 260 Software Engineering - I (R.
10:16:25 AM                             Akerkar)                  24
Step 3: Prioritize Use Cases
   There are two reasons to prioritize use cases.
   First, h l determine what order th uses cases
    Fi t it helps d t    i   h t d the
    will be implemented.
         Implementing the highest priority use cases first reduces
         the risk a high priority item won't make the schedule and
         provides more time to insure the item is implemented
         correctly.
         correctly
   Second, a prioritized list of use cases helps
    establish architecture.
        A system structure that is organized around high priority
         use cases tends to be more stable over time.

                           CIS 260 Software Engineering - I (R.
10:16:25 AM                             Akerkar)                      25
Step 4: Elaborate Use Cases
   Developers work from use cases when they
    implement th system. Therefore, they must
    i l       t the     t    Th f          th     t
    contain all the details of interaction between
    actors and the system
                    system.
   It's convenient to organize the interaction
    between a use case and it associated actors
    b t                      d its        i t d t
    as a flow of events.
   Each th through th use case i called a
    E h path th        h the            is ll d
    scenario.

                   CIS 260 Software Engineering - I (R.
10:16:25 AM                     Akerkar)                  26
Step 4: Elaborate Use Cases (Example)
   Purchase an Item - This use case is used by a customer
    to purchase an item.




                         CIS 260 Software Engineering - I (R.
10:16:25 AM                           Akerkar)                  27
Step 5: Create a Structured Use Case
    Model
      A use case model shows the
       relationships between actors and
       use cases.
      Apply to Become an Affiliate and
       Purchase Item are both
       generalized b th V if C dit
               li d by the Verify Credit
       use case.

      Verify Credit is an abstract use
       case.
       case
          The two concrete use cases Apply
           to Become an Affiliate and
           Purchase Item both include the
           behavior described by Verify Credit
           plus more
                more.




                                       CIS 260 Software Engineering - I (R.
    10:16:25 AM                                     Akerkar)                  28
Class Diagram
 •This diagram describes
 the structure of a simple
                       p
 Restaurant System.
 •UML shows is_a
 relationships with a
 triangle; and containers
 with diamond shape




                             CIS 260 Software Engineering - I (R.
10:16:25 AM                               Akerkar)                  29
Sequence Diagram
   This diagram describes the
    sequences of messages of the
       q                  g
    (simple) Restaurant System.
   This diagram represents a
    Patron ordering food, eating
                   g      ,      g
    the food, drinking wine, then
    paying for the food.
   The dotted lines extending g
    downwards indicate the
    timeline.
   The arrows represent
                   p
    messages (stimuli) from an
    actor or object to other objects.


                            CIS 260 Software Engineering - I (R.
10:16:25 AM                              Akerkar)                  30
Collaboration Diagram
   A Collaboration diagram
    models the interactions
    between objects in terms of
    sequenced messages.

   Collaboration diagrams
    represent a combination of
    information taken from Class,
    Sequence, and Use Cases
    Diagrams

   Collaboration and sequence
    diagrams d
    di         describe th same
                      ib the
    information, and can be
    transformed into one another
    without difficulty.

                          CIS 260 Software Engineering - I (R.
10:16:25 AM                            Akerkar)                  31
Relationships
   In UML, object interconnections, are modeled as relationships.

   There are three kinds of relationships in UML:

         • dependencies

         • generalizations
                 li ti

         • associations




                             CIS 260 Software Engineering - I (R.
10:16:25 AM                               Akerkar)                  32
Dependency Relationships
    p      y            p
  A dependency indicates a relationship between two or
  more elements.
       elements
  The dependency from CourseSchedule to Course exists because
  Course is used in both the add and remove operations of
  CourseSchedule.
  C      S h d l


              CourseSchedule
              C     S h d l
                                                                      Course
          add(c : Course)
                  Co rse)
          remove(c : Course)


                               CIS 260 Software Engineering - I (R.
10:16:25 AM                                 Akerkar)                           33
Generalization Relationships

              Person
                              A generalization connects a subclass
                              to its superclass. It denotes an
                                       p
                              inheritance of attributes and behavior
                              from the superclass to the subclass and
                              indicates a specialization in the subclass
                              of the more general superclass.
              Student




                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                        34
Generalization Relationships (
                            p (Cont’d)
                                     )
UML permits a class to inherit from multiple superclasses,
although some programming languages (e.g., Java) do not permit
                                      (e g
multiple inheritance.


              Student                                  Employee




                        TeachingAssistant

                         CIS 260 Software Engineering - I (R.
10:16:25 AM                           Akerkar)                    35
Association Relationships
                         p
  If two classes in a model need to communicate with each other,
  there must be link between them.
                              them

  An association denotes that link.



          Student                                              Instructor




                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                               36
Association Relationships (
                         p (Cont’d)
                                  )
  We can indicate the multiplicity of an association by adding
  multiplicity adornments to the line denoting the association.
                                                   association

  The example indicates that a Student has one or more
  Instructors:


          Student                                                      Instructor
                                                                1..*




                         CIS 260 Software Engineering - I (R.
10:16:25 AM                           Akerkar)                                      37
Association Relationships (
                         p (Cont’d)
                                  )

  The example indicates that every Instructor has one or more
  Students:



          Student                                                 Instructor
                    1..*




                           CIS 260 Software Engineering - I (R.
10:16:25 AM                             Akerkar)                               38
Association Relationships (
                         p (Cont’d)
                                  )
  We can also indicate the behavior of an object in an association
  (i.e.,
  (i e the role of an object) using rolenames
                                    rolenames.




                    teaches                    learns from
          Student                                               Instructor
                    1..*                                1..*




                         CIS 260 Software Engineering - I (R.
10:16:25 AM                           Akerkar)                               39
Association Relationships (
                         p (Cont’d)
                                  )
                    We can also name the association.




                                    membership
          Student                                                           Team
                       1..*                                          1..*




                              CIS 260 Software Engineering - I (R.
10:16:25 AM                                Akerkar)                                40
Association Relationships (
                         p (Cont’d)
                                  )
                    We can specify dual associations.




                                   member of
                      1..*                                          1..*
          Student                                                          Team
                      1            president of                     1..*


                             CIS 260 Software Engineering - I (R.
10:16:25 AM                               Akerkar)                                41
Association Relationships (
                         p (Cont’d)
                                  )
  We can constrain the association relationship by defining the
  navigability of the association.
      g      y

  Here, a Router object requests services from a DNS object by
  sending messages to (invoking the operations of) the server. The
                                                          server
  direction of the association indicates that the server has no
  knowledge of the Router.


              Router                                       DomainNameServer




                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                                 42
Association Relationships (
                         p (Cont’d)
                                  )
  Associations can also be objects themselves, called link classes
  or an association classes.

                             Registration
                           modelNumber
                              d lN b
                           serialNumber
                           warrentyCode
                                  y




         Product                                                Warranty

                         CIS 260 Software Engineering - I (R.
10:16:25 AM                           Akerkar)                             43
Association Relationships (
                         p (Cont’d)
                                  )
              A class can have a self association.




                        next

                  LinkedListNode
                                                   previous




                       CIS 260 Software Engineering - I (R.
10:16:25 AM                         Akerkar)                  44
Association Relationships (
                         p (Cont’d)
                                  )
  We can model objects that contain other objects by way of
  special associations called aggregations and compositions.
   p                           gg g               p

  An aggregation specifies a whole-part relationship between an
  aggregate (a whole) and a constituent part, where the part can
                                        part
  exist independently from the aggregate. Aggregations are
  denoted by a hollow-diamond adornment on the association.


                                                                 Engine
              Car
                                                               Transmission


                        CIS 260 Software Engineering - I (R.
10:16:25 AM                          Akerkar)                                 45
Association Relationships (
                         p (Cont’d)
                                  )
  A composition indicates a strong ownership and coincident
  lifetime of parts by the whole (i.e., they live and die as a
              p      y           ( , y
  whole). Compositions are denoted by a filled-diamond
  adornment on the association.


                                                                  Scrollbar
                       1                                   1

          Window                                                  Titlebar
                       1                                   1

                                                                   Menu
                       1                              1 .. *

                           CIS 260 Software Engineering - I (R.
10:16:25 AM                             Akerkar)                              46
Quiz 1
   Consider the following class diagram:




   According to this class diagram is there any
    way to express, with an object diagram, that
    Jane (a g ) likes Brian ( boy)?
         ( girl)            (a y)

                                                          Answer 

                   CIS 260 Software Engineering - I (R.
10:16:25 AM                     Akerkar)                             47
   No.
    No The relationship is boy-likes-girl With the
                           boy likes girl.
    class diagram above there is no way to
    express that a g likes a boy.
       p           girl         y




                   CIS 260 Software Engineering - I (R.
10:16:25 AM                     Akerkar)                  48
Quiz 2
Match the UML model with the
appropriate interpretation.
       i t i t      t ti

___ A plan i d
       l is dependent on a
                     d t
                                                           a.
  document. (dependency)
___ Plan first, then document.
         first       document                              b.
___ A plan is a special type of
  document. (generalization)
               (g          )                               c.
                                                           c




                    CIS 260 Software Engineering - I (R.
10:16:25 AM                      Akerkar)                       49
Quiz 3
   Create an UML class diagram that models the
    data relationships described in the following
    paragraph.

   To be a collector you have to have one or more
    collections. Each collection must have 2 or more
    items. E h collection b l
    it     Each ll ti belongs t one collector. A
                                    to       ll t
    collection is made up of items owned. A particular
    item may be in more than one collection


                                                              Answer 

                       CIS 260 Software Engineering - I (R.
10:16:26 AM                         Akerkar)                             50
CIS 260 Software Engineering - I (R.
10:16:26 AM                Akerkar)                  51
Quiz 4

   Use the figure to answer the
    three questions below.

a. How many portable audio
            yp
   devices does each student
   own?
b. Can there be a portable audio
                  p
   device not owned by any
   student?
c. Can there be a CD player not
                      p y
   owned by any student?

                                                                Answer 

                         CIS 260 Software Engineering - I (R.
10:16:26 AM                           Akerkar)                             52
   (a) 1 or more.
             more
   (b) no.
   (c) no
        no.
   A CD player is a portable audio device. All
    portable audio d i
        t bl   di devices hhave t b owned b
                                 to be      d by
    exactly one student, so any CD player must
    be owned by exactly one student
                              student.


                   CIS 260 Software Engineering - I (R.
10:16:26 AM                     Akerkar)                  53
Quiz 5

   What, if anything, is
    wrong with the following
    model. The model
    shows th activities and
     h      the ti iti     d
    data flows during a visit
    to a doctor s office.
         doctor's




                                                             Answer 
                                                             A
                      CIS 260 Software Engineering - I (R.
10:16:26 AM                        Akerkar)                         54
   It mixes control flow and data flow
                                    flow.
   The arrows to and from the "Patient Data"
    store represent data flow
                            flow.
   All other arrows are control flow arrows.
    Because of this it's not a valid activity
                 this, it s
    diagram or data flow diagram.
   Mixing control flow and data flow is
    confusing.

                   CIS 260 Software Engineering - I (R.
10:16:26 AM                     Akerkar)                  55
References
   Rational Unified Process, version 5.5, Rational Software
    Corporation, Cupertino, CA (1999)
   Philippe Kruchten, The Rational Unified Process—An
    Introduction, Addison-Wesley-Longman, Reading, MA (1999)
   Ivar Jacobson, Grady Booch, Jim Rumbaugh, The Unified
    Software Development Process, Addison-Wesley (1999)
   Grady Booch, et al., UML User’s Guide, Addison-Wesley-
    Longman, Reading
    Longman Reading, MA (1999).
                             (1999)
   Stefan Bergstrand, Adopting the Rational Unified Process:
    Success with the RUP, Addison Wesley (2004).
   Introduction to the IBM Rational Unified Process Essentials,
    an article by Mats Wessberg (2005).


                        CIS 260 Software Engineering - I (R.
10:16:26 AM                          Akerkar)                  56
Term Project 1
   Option #1 -- Connect Four Game
   This project implements the Connect Four game, a more
    complex version of tic-tac-toe.
   The game board is seven squares across and six squares tall.
    The winner is the first person to get four of their markers in a row
    (vertical, horizontal, or di
    ( ti l h i        t l     diagonal). Th wrinkle i th t th b d i
                                     l) The i kl is that the board is
    standing upright and you can only add markers from the top. (So
    a marker only can be placed at the bottom of a column, or
    directly on top of an existing marker )
                                   marker.)
   You will write a program that plays this game against a human
    user. The two main parts of the program are the user interface
    and strategy algorithm. The program needs to play reasonably
    well (it cannot make random moves), but does not have to be
    provably optimal or play without errors.


                           CIS 260 Software Engineering - I (R.
10:16:26 AM                             Akerkar)                       57
Term Project 2
   Option #2 -- Appointment Book
   This project implements a simple appointment book for one person.
   The user should be able to:
        Create new appointments.
        Delete existing appointments.
        List all appointments on a given date.
        List all appointments in a range of dates.
        List all appointments in a given category.
   Each appointment contains the following information:
        Date and time of appointment.
        Length of appointment.
        Description of the appointment.
        A "category" for the appointment.
   Optional features:
        Search appointments for a matching string.
        Edit existing appointments.
        Warn user of conflicting appointments (when creating a new one).


                                 CIS 260 Software Engineering - I (R.
10:16:26 AM                                   Akerkar)                      58
Term Project 3
   Option #3 -- Contact List
   This project implements a simple name and address book for one user.
         p j       p             p
        The user should be able to:
        Create new contacts.
        Delete existing contacts.
        Search for (and display) a person by last name or first name Should handle
                                                                 name.
         multiple matches.
        Edit existing contacts.
   Each contact contains the following information:
        First name last name
               name,     name.
        Street address, town, state, zip code.
        Phone number, email address.
   A "notes" field, where the user can enter any information.
   Optional features:
        Search contacts for a matching string (other than name).




                                 CIS 260 Software Engineering - I (R.
10:16:26 AM                                   Akerkar)                            59
Structure of the Project Report
   Title Page (Title, Group Members, Course, Year)
   Contents Page
   Summary of the project
   Requirements (purpose, functional, non-functional
                    (purpose functional non functional,
    constraints)
   Design (
         g (DFD level 1, Use case, Sequence
                                       q
    diagram, Algorithms etc)
   User Interface (Screen Shots)
   Coding
   Reports, if any

                     CIS 260 Software Engineering - I (R.
10:16:26 AM                       Akerkar)                  60

Más contenido relacionado

Destacado

Semantic Markup
Semantic Markup Semantic Markup
Semantic Markup R A Akerkar
 
What is Big Data ?
What is Big Data ?What is Big Data ?
What is Big Data ?R A Akerkar
 
Big data: analyzing large data sets
Big data: analyzing large data setsBig data: analyzing large data sets
Big data: analyzing large data setsR A Akerkar
 
Intelligent natural language system
Intelligent natural language systemIntelligent natural language system
Intelligent natural language systemR A Akerkar
 
Can You Really Make Best Use of Big Data?
Can You Really Make Best Use of Big Data?Can You Really Make Best Use of Big Data?
Can You Really Make Best Use of Big Data?R A Akerkar
 
Big Data and Harvesting Data from Social Media
Big Data and Harvesting Data from Social MediaBig Data and Harvesting Data from Social Media
Big Data and Harvesting Data from Social MediaR A Akerkar
 
Your amazing brain assembly
Your amazing brain assemblyYour amazing brain assembly
Your amazing brain assemblyHighbankPrimary
 
Semi structure data extraction
Semi structure data extractionSemi structure data extraction
Semi structure data extractionR A Akerkar
 
Rational Unified Process for User Interface Design
Rational Unified Process for User Interface DesignRational Unified Process for User Interface Design
Rational Unified Process for User Interface DesignR A Akerkar
 
Lecture-03 Introduction to UML
Lecture-03 Introduction to UMLLecture-03 Introduction to UML
Lecture-03 Introduction to UMLartgreen
 
artificial intelligence
artificial intelligenceartificial intelligence
artificial intelligenceR A Akerkar
 
Dr. kiani artificial neural network lecture 1
Dr. kiani artificial neural network lecture 1Dr. kiani artificial neural network lecture 1
Dr. kiani artificial neural network lecture 1Parinaz Faraji
 
Introduction to Neural networks (under graduate course) Lecture 3 of 9
Introduction to Neural networks (under graduate course) Lecture 3 of 9Introduction to Neural networks (under graduate course) Lecture 3 of 9
Introduction to Neural networks (under graduate course) Lecture 3 of 9Randa Elanwar
 
Slide 5 Class Diagram
Slide 5 Class DiagramSlide 5 Class Diagram
Slide 5 Class DiagramNiloy Rocker
 

Destacado (20)

Semantic Markup
Semantic Markup Semantic Markup
Semantic Markup
 
What is Big Data ?
What is Big Data ?What is Big Data ?
What is Big Data ?
 
Big data: analyzing large data sets
Big data: analyzing large data setsBig data: analyzing large data sets
Big data: analyzing large data sets
 
Intelligent natural language system
Intelligent natural language systemIntelligent natural language system
Intelligent natural language system
 
Can You Really Make Best Use of Big Data?
Can You Really Make Best Use of Big Data?Can You Really Make Best Use of Big Data?
Can You Really Make Best Use of Big Data?
 
Big Data and Harvesting Data from Social Media
Big Data and Harvesting Data from Social MediaBig Data and Harvesting Data from Social Media
Big Data and Harvesting Data from Social Media
 
Your amazing brain assembly
Your amazing brain assemblyYour amazing brain assembly
Your amazing brain assembly
 
Data mining
Data miningData mining
Data mining
 
Link analysis
Link analysisLink analysis
Link analysis
 
Semi structure data extraction
Semi structure data extractionSemi structure data extraction
Semi structure data extraction
 
SOFTCOMPUTERING TECHNICS - Unit
SOFTCOMPUTERING TECHNICS - UnitSOFTCOMPUTERING TECHNICS - Unit
SOFTCOMPUTERING TECHNICS - Unit
 
Rational Unified Process for User Interface Design
Rational Unified Process for User Interface DesignRational Unified Process for User Interface Design
Rational Unified Process for User Interface Design
 
Lecture-03 Introduction to UML
Lecture-03 Introduction to UMLLecture-03 Introduction to UML
Lecture-03 Introduction to UML
 
Neural Networks
Neural NetworksNeural Networks
Neural Networks
 
artificial intelligence
artificial intelligenceartificial intelligence
artificial intelligence
 
uml123 copy
 uml123   copy uml123   copy
uml123 copy
 
Dr. kiani artificial neural network lecture 1
Dr. kiani artificial neural network lecture 1Dr. kiani artificial neural network lecture 1
Dr. kiani artificial neural network lecture 1
 
Introduction to Neural networks (under graduate course) Lecture 3 of 9
Introduction to Neural networks (under graduate course) Lecture 3 of 9Introduction to Neural networks (under graduate course) Lecture 3 of 9
Introduction to Neural networks (under graduate course) Lecture 3 of 9
 
Data Mining
Data MiningData Mining
Data Mining
 
Slide 5 Class Diagram
Slide 5 Class DiagramSlide 5 Class Diagram
Slide 5 Class Diagram
 

Similar a Unified Modelling Language

Human machine interface
Human machine interfaceHuman machine interface
Human machine interfaceR A Akerkar
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionHenry Muccini
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a surveyNakul Sharma
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
software project management
software project managementsoftware project management
software project managementdeep sharma
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolKellyton Brito
 
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...David Rosenblum
 
Resume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyResume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyVenkata Rakesh Gudipalli
 
Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Henry Muccini
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineersPawel Szulc
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineersPawel Szulc
 
Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)Xi Qiu
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionHenry Muccini
 
Larsen,dustin eng resume_june2016 - copy
Larsen,dustin eng resume_june2016 - copyLarsen,dustin eng resume_june2016 - copy
Larsen,dustin eng resume_june2016 - copyDustin Larsen
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in DepthTrayan Iliev
 
Ecd302 unit 02(evaluate software packages)
Ecd302 unit 02(evaluate software packages)Ecd302 unit 02(evaluate software packages)
Ecd302 unit 02(evaluate software packages)Xi Qiu
 

Similar a Unified Modelling Language (20)

Human machine interface
Human machine interfaceHuman machine interface
Human machine interface
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
Prasad_CTP
Prasad_CTPPrasad_CTP
Prasad_CTP
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a survey
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
software project management
software project managementsoftware project management
software project management
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval Tool
 
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...
Scalability in Software Systems Engineering: The Good, the Bad, and the Ugly ...
 
Resume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - CopyResume_VenkataRakeshGudipalli Master - Copy
Resume_VenkataRakeshGudipalli Master - Copy
 
resumeGLS16
resumeGLS16resumeGLS16
resumeGLS16
 
Hardware-Software Codesign
Hardware-Software CodesignHardware-Software Codesign
Hardware-Software Codesign
 
Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
 
Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the Abstraction
 
Larsen,dustin eng resume_june2016 - copy
Larsen,dustin eng resume_june2016 - copyLarsen,dustin eng resume_june2016 - copy
Larsen,dustin eng resume_june2016 - copy
 
Prakash_Ganapathy
Prakash_GanapathyPrakash_Ganapathy
Prakash_Ganapathy
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in Depth
 
Ecd302 unit 02(evaluate software packages)
Ecd302 unit 02(evaluate software packages)Ecd302 unit 02(evaluate software packages)
Ecd302 unit 02(evaluate software packages)
 

Más de R A Akerkar

Rajendraakerkar lemoproject
Rajendraakerkar lemoprojectRajendraakerkar lemoproject
Rajendraakerkar lemoprojectR A Akerkar
 
Connecting and Exploiting Big Data
Connecting and Exploiting Big DataConnecting and Exploiting Big Data
Connecting and Exploiting Big DataR A Akerkar
 
Case Based Reasoning
Case Based ReasoningCase Based Reasoning
Case Based ReasoningR A Akerkar
 
Statistics and Data Mining
Statistics and  Data MiningStatistics and  Data Mining
Statistics and Data MiningR A Akerkar
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Personalisation and Fuzzy Bayesian Nets
Personalisation and Fuzzy Bayesian NetsPersonalisation and Fuzzy Bayesian Nets
Personalisation and Fuzzy Bayesian NetsR A Akerkar
 
Multi-agent systems
Multi-agent systemsMulti-agent systems
Multi-agent systemsR A Akerkar
 
Reasoning in Description Logics
Reasoning in Description Logics  Reasoning in Description Logics
Reasoning in Description Logics R A Akerkar
 
Building an Intelligent Web: Theory & Practice
Building an Intelligent Web: Theory & PracticeBuilding an Intelligent Web: Theory & Practice
Building an Intelligent Web: Theory & PracticeR A Akerkar
 
Relationship between the Semantic Web and NLP
Relationship between the Semantic Web and NLPRelationship between the Semantic Web and NLP
Relationship between the Semantic Web and NLPR A Akerkar
 

Más de R A Akerkar (11)

Rajendraakerkar lemoproject
Rajendraakerkar lemoprojectRajendraakerkar lemoproject
Rajendraakerkar lemoproject
 
Connecting and Exploiting Big Data
Connecting and Exploiting Big DataConnecting and Exploiting Big Data
Connecting and Exploiting Big Data
 
Case Based Reasoning
Case Based ReasoningCase Based Reasoning
Case Based Reasoning
 
Statistics and Data Mining
Statistics and  Data MiningStatistics and  Data Mining
Statistics and Data Mining
 
Software project management
Software project managementSoftware project management
Software project management
 
Personalisation and Fuzzy Bayesian Nets
Personalisation and Fuzzy Bayesian NetsPersonalisation and Fuzzy Bayesian Nets
Personalisation and Fuzzy Bayesian Nets
 
Multi-agent systems
Multi-agent systemsMulti-agent systems
Multi-agent systems
 
Reasoning in Description Logics
Reasoning in Description Logics  Reasoning in Description Logics
Reasoning in Description Logics
 
Decision tree
Decision treeDecision tree
Decision tree
 
Building an Intelligent Web: Theory & Practice
Building an Intelligent Web: Theory & PracticeBuilding an Intelligent Web: Theory & Practice
Building an Intelligent Web: Theory & Practice
 
Relationship between the Semantic Web and NLP
Relationship between the Semantic Web and NLPRelationship between the Semantic Web and NLP
Relationship between the Semantic Web and NLP
 

Último

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Último (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Unified Modelling Language

  • 1. The Unified Modeling Language g g g R. Akerkar CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 1
  • 2. A movie project plan  One of the key artifacts in the RUP framework is the project plan plan.  The project plan details the tasks, schedule, cost, resources, milestones, cost resources milestones and deliverables needed to complete the project.  Progress is tracked against the plan and measured by work completed by milestones reached and results delivered.  The plan is conceived early in the project and frequently updated throughout the lifecycle. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 2
  • 3. The Iterative Model graph of RUP  The horizontal axis represents time and shows the dynamic aspect of the process as it is enacted, and it is expressed in terms of cycles, phases, iterations, and milestones.  The vertical axis represents the static aspect of the p p process: how it is described in terms of activities, artifacts, workers and workflows. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 3
  • 4. A movie project plan = a software development project CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 4
  • 5. A movie project plan = a software development project  In this figure, activities related to making a movie are substituted for the RUP disciplines.  Developing the screenplay is analogous to writing requirements,  filming corresponds to implementation, and  producing the movie is more or less like project management.  Dividing the timeline into four p g phases pputs the focus on different aspects of the movie project at different times.  We also see that the activities run in parallel, typically exchanging information and work packages in a highly efficient, cross-functional manner: f  just as the RUP. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 5
  • 6. The Essentials of RUP  In all projects, it is important to explore what will happen if any of these essentials is ignored.  For example: 1. No vision? You may lose track of where you are going. 2. No plan? You will not be able to track progress. 3. No risk list? You may be focusing on the wrong issues now. 4. No issues li ? With t accountability, th N i list? Without t bilit these are th the roadblocks to success. 5. No architecture? You may be unable to handle communication, synchronization, communication synchronization and data access issues as they arise. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 6
  • 7. The Essentials of RUP 6. No product (prototype)? Get started writing code; just accumulating paperwork won’t get you very far; get won t something working in front of the customers. 7. No evaluation? Don’t keep your head in the sand. It is important to face the truth How close are you really to your truth. deadline? To your goals in quality or budget? 8. No change requests? How do you keep track of these? 9. No user support? What happens when a user has a question or can’t figure out how to use the product? CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 7
  • 8. Next Step: Terminology  Playing with Rational Rose  To create three diagrams in Rational Rose,  the use-case diagram,  the sequence diagram, and  the class diagram diagram.  Rational Rose is a program that allows you to build models based on the Unified Modeling Language (UML).  The Th use-case didiagrams allow you t see all th scenarios and ll to ll the i d how the users act on them.  The sequence diagrams allow you to elaborate on each of the use cases by showing example objects and messages that are passed between these objects.  The class diagram describes the types of objects in the program and how they are related to each other. g y CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 8
  • 9. Use Case “A use case specifies the behavior of a system or a part of a system, and i a description of a set of sequences of actions, d is d i i f f f i including variants, that a system performs to yield an observable result of value to an actor.” - The UML User Guide, [Booch,99] “An actor is an idealization of an external person, process, or An person process thing interacting with a system, subsystem, or class. An actor characterizes the interactions that outside users may have with the system.” h ” - The UML Reference Manual, [Rumbaugh,99] CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 9
  • 10. Use Case (Cont’d) A use case is rendered as an ellipse Register for Courses in a use case diagram. A use case is diagram always labeled with its name. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 10
  • 11. Use Case (Cont’d) An actor is rendered as a stick figure in a use case diagram. diagram Each actor participates in one or more use cases. Student CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 11
  • 12. Use Case (Cont’d) Actors can participate in a generalization relation with other actors. actors Student Person CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 12
  • 13. Use Case (Cont’d) Actors may b connected to use cases be d only by associations. Register for Courses Student CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 13
  • 14. Use Case (Cont’d) Here we have a Student interacting with the Registrar and the Billing System via a “Register for Courses” use case. Billing System Student Register for Courses Registrar CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 14
  • 15. Draw Use Case Diagram  The diagram describes the functionality of the (simple) Restaurant System.  The Food Critic actor can Eat Food, Pay for Food, or Drink Wine.  Only the Chef Actor can Cook Food. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 15
  • 16. Use Cases are represented U C t d by an oval and Actors are stick figures. The box defines the boundaries of the Restaurant System CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 16
  • 17. Actor and Use Case Diagram g • An actor is a user of a system in a particular role. An A actor can b h be human or an external l BookBorrower system. • A use case is a a task that an actor needs to perform with the help of the Borrow book system. system CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 17
  • 18. Use Cases and Actors • A scenario is an instance (example) of a use case • A t i role, not an individual Actor is l t i di id l (e.g., librarian can have many roles) • Actor must be a "beneficiary" of the use case (e.g., not librarian who processes book when borrowed) In UML the system boundary is the set of use cases. UML, cases CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 18
  • 19. Use Cases for Borrowing Books g Borrow copy of book BookBorrower Return copy of book Reserve book Extend loan CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 19
  • 20. Case Study: Use Cases Drive the Development Process  A Process for Writing Use Cases  Step 1: Identify Actors  Step 2: Identify Use Cases  Step 3: Prioritize Use Cases  Step 4: Elaborate Use Cases  Step 5: Create a Structured Use Case Model CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 20
  • 21. Step 1: Identify Actors  The actors represent users and external systems that will interact with the system under development. development  One way to identify actors is to list the specific users that will use the system and then organize them into y g categories based on their role or the purpose they have for using the system.  Example:  Consider th t k of fi di actors f a software C id the task f finding t for ft system which simulates a virtual mall. A virtual mall connects buyers and merchants merchants. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 21
  • 22. Step 1: Identify Actors (Example)  Potential actors are:  Customer - A customer represents any C t t t person who uses the services of the virtual mall. mall  Affiliate - An affiliate represents a person or organization who is authorized to sell merchandise at the virtual mall.  Credit Bureau - A credit bureau represents p an external system used to verify the creditworthiness of a customer. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 22
  • 23. Step 2: Identify Use Cases  This step may be performed simultaneously with the previous step step.  Many development projects start with a high- level list of desired features features.  For example, the feature list for a virtual mall might include:  1) list item for sale,  2) browse items for sale, )  3) purchase an item.  Each feature is a potential use case. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 23
  • 24. Step 2: Identify Use Cases (Example)  The use cases that emerge from exploring how each actor gets value from or provides value to the system are:  Browse I B Inventory - Thi use t This case is used by a customer to shop for items to purchase.  Purchase an Item - This use case is used by a customer to purchase an item.  Offer Item For Sale - This use case is used by an affiliate to make an item available for purchase. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 24
  • 25. Step 3: Prioritize Use Cases  There are two reasons to prioritize use cases.  First, h l determine what order th uses cases Fi t it helps d t i h t d the will be implemented.  Implementing the highest priority use cases first reduces the risk a high priority item won't make the schedule and provides more time to insure the item is implemented correctly. correctly  Second, a prioritized list of use cases helps establish architecture.  A system structure that is organized around high priority use cases tends to be more stable over time. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 25
  • 26. Step 4: Elaborate Use Cases  Developers work from use cases when they implement th system. Therefore, they must i l t the t Th f th t contain all the details of interaction between actors and the system system.  It's convenient to organize the interaction between a use case and it associated actors b t d its i t d t as a flow of events.  Each th through th use case i called a E h path th h the is ll d scenario. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 26
  • 27. Step 4: Elaborate Use Cases (Example)  Purchase an Item - This use case is used by a customer to purchase an item. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 27
  • 28. Step 5: Create a Structured Use Case Model  A use case model shows the relationships between actors and use cases.  Apply to Become an Affiliate and Purchase Item are both generalized b th V if C dit li d by the Verify Credit use case.   Verify Credit is an abstract use case. case  The two concrete use cases Apply to Become an Affiliate and Purchase Item both include the behavior described by Verify Credit plus more more. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 28
  • 29. Class Diagram •This diagram describes the structure of a simple p Restaurant System. •UML shows is_a relationships with a triangle; and containers with diamond shape CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 29
  • 30. Sequence Diagram  This diagram describes the sequences of messages of the q g (simple) Restaurant System.  This diagram represents a Patron ordering food, eating g , g the food, drinking wine, then paying for the food.  The dotted lines extending g downwards indicate the timeline.  The arrows represent p messages (stimuli) from an actor or object to other objects. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 30
  • 31. Collaboration Diagram  A Collaboration diagram models the interactions between objects in terms of sequenced messages.  Collaboration diagrams represent a combination of information taken from Class, Sequence, and Use Cases Diagrams  Collaboration and sequence diagrams d di describe th same ib the information, and can be transformed into one another without difficulty. CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 31
  • 32. Relationships In UML, object interconnections, are modeled as relationships. There are three kinds of relationships in UML: • dependencies • generalizations li ti • associations CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 32
  • 33. Dependency Relationships p y p A dependency indicates a relationship between two or more elements. elements The dependency from CourseSchedule to Course exists because Course is used in both the add and remove operations of CourseSchedule. C S h d l CourseSchedule C S h d l Course add(c : Course) Co rse) remove(c : Course) CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 33
  • 34. Generalization Relationships Person A generalization connects a subclass to its superclass. It denotes an p inheritance of attributes and behavior from the superclass to the subclass and indicates a specialization in the subclass of the more general superclass. Student CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 34
  • 35. Generalization Relationships ( p (Cont’d) ) UML permits a class to inherit from multiple superclasses, although some programming languages (e.g., Java) do not permit (e g multiple inheritance. Student Employee TeachingAssistant CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 35
  • 36. Association Relationships p If two classes in a model need to communicate with each other, there must be link between them. them An association denotes that link. Student Instructor CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 36
  • 37. Association Relationships ( p (Cont’d) ) We can indicate the multiplicity of an association by adding multiplicity adornments to the line denoting the association. association The example indicates that a Student has one or more Instructors: Student Instructor 1..* CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 37
  • 38. Association Relationships ( p (Cont’d) ) The example indicates that every Instructor has one or more Students: Student Instructor 1..* CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 38
  • 39. Association Relationships ( p (Cont’d) ) We can also indicate the behavior of an object in an association (i.e., (i e the role of an object) using rolenames rolenames. teaches learns from Student Instructor 1..* 1..* CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 39
  • 40. Association Relationships ( p (Cont’d) ) We can also name the association. membership Student Team 1..* 1..* CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 40
  • 41. Association Relationships ( p (Cont’d) ) We can specify dual associations. member of 1..* 1..* Student Team 1 president of 1..* CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 41
  • 42. Association Relationships ( p (Cont’d) ) We can constrain the association relationship by defining the navigability of the association. g y Here, a Router object requests services from a DNS object by sending messages to (invoking the operations of) the server. The server direction of the association indicates that the server has no knowledge of the Router. Router DomainNameServer CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 42
  • 43. Association Relationships ( p (Cont’d) ) Associations can also be objects themselves, called link classes or an association classes. Registration modelNumber d lN b serialNumber warrentyCode y Product Warranty CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 43
  • 44. Association Relationships ( p (Cont’d) ) A class can have a self association. next LinkedListNode previous CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 44
  • 45. Association Relationships ( p (Cont’d) ) We can model objects that contain other objects by way of special associations called aggregations and compositions. p gg g p An aggregation specifies a whole-part relationship between an aggregate (a whole) and a constituent part, where the part can part exist independently from the aggregate. Aggregations are denoted by a hollow-diamond adornment on the association. Engine Car Transmission CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 45
  • 46. Association Relationships ( p (Cont’d) ) A composition indicates a strong ownership and coincident lifetime of parts by the whole (i.e., they live and die as a p y ( , y whole). Compositions are denoted by a filled-diamond adornment on the association. Scrollbar 1 1 Window Titlebar 1 1 Menu 1 1 .. * CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 46
  • 47. Quiz 1  Consider the following class diagram:  According to this class diagram is there any way to express, with an object diagram, that Jane (a g ) likes Brian ( boy)? ( girl) (a y) Answer  CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 47
  • 48. No. No The relationship is boy-likes-girl With the boy likes girl. class diagram above there is no way to express that a g likes a boy. p girl y CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 48
  • 49. Quiz 2 Match the UML model with the appropriate interpretation. i t i t t ti ___ A plan i d l is dependent on a d t a. document. (dependency) ___ Plan first, then document. first document b. ___ A plan is a special type of document. (generalization) (g ) c. c CIS 260 Software Engineering - I (R. 10:16:25 AM Akerkar) 49
  • 50. Quiz 3  Create an UML class diagram that models the data relationships described in the following paragraph.  To be a collector you have to have one or more collections. Each collection must have 2 or more items. E h collection b l it Each ll ti belongs t one collector. A to ll t collection is made up of items owned. A particular item may be in more than one collection Answer  CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 50
  • 51. CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 51
  • 52. Quiz 4  Use the figure to answer the three questions below. a. How many portable audio yp devices does each student own? b. Can there be a portable audio p device not owned by any student? c. Can there be a CD player not p y owned by any student? Answer  CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 52
  • 53. (a) 1 or more. more  (b) no.  (c) no no.  A CD player is a portable audio device. All portable audio d i t bl di devices hhave t b owned b to be d by exactly one student, so any CD player must be owned by exactly one student student. CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 53
  • 54. Quiz 5  What, if anything, is wrong with the following model. The model shows th activities and h the ti iti d data flows during a visit to a doctor s office. doctor's Answer  A CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 54
  • 55. It mixes control flow and data flow flow.  The arrows to and from the "Patient Data" store represent data flow flow.  All other arrows are control flow arrows. Because of this it's not a valid activity this, it s diagram or data flow diagram.  Mixing control flow and data flow is confusing. CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 55
  • 56. References  Rational Unified Process, version 5.5, Rational Software Corporation, Cupertino, CA (1999)  Philippe Kruchten, The Rational Unified Process—An Introduction, Addison-Wesley-Longman, Reading, MA (1999)  Ivar Jacobson, Grady Booch, Jim Rumbaugh, The Unified Software Development Process, Addison-Wesley (1999)  Grady Booch, et al., UML User’s Guide, Addison-Wesley- Longman, Reading Longman Reading, MA (1999). (1999)  Stefan Bergstrand, Adopting the Rational Unified Process: Success with the RUP, Addison Wesley (2004).  Introduction to the IBM Rational Unified Process Essentials, an article by Mats Wessberg (2005). CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 56
  • 57. Term Project 1  Option #1 -- Connect Four Game  This project implements the Connect Four game, a more complex version of tic-tac-toe.  The game board is seven squares across and six squares tall. The winner is the first person to get four of their markers in a row (vertical, horizontal, or di ( ti l h i t l diagonal). Th wrinkle i th t th b d i l) The i kl is that the board is standing upright and you can only add markers from the top. (So a marker only can be placed at the bottom of a column, or directly on top of an existing marker ) marker.)  You will write a program that plays this game against a human user. The two main parts of the program are the user interface and strategy algorithm. The program needs to play reasonably well (it cannot make random moves), but does not have to be provably optimal or play without errors. CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 57
  • 58. Term Project 2  Option #2 -- Appointment Book  This project implements a simple appointment book for one person.  The user should be able to:  Create new appointments.  Delete existing appointments.  List all appointments on a given date.  List all appointments in a range of dates.  List all appointments in a given category.  Each appointment contains the following information:  Date and time of appointment.  Length of appointment.  Description of the appointment.  A "category" for the appointment.  Optional features:  Search appointments for a matching string.  Edit existing appointments.  Warn user of conflicting appointments (when creating a new one). CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 58
  • 59. Term Project 3  Option #3 -- Contact List  This project implements a simple name and address book for one user. p j p p  The user should be able to:  Create new contacts.  Delete existing contacts.  Search for (and display) a person by last name or first name Should handle name. multiple matches.  Edit existing contacts.  Each contact contains the following information:  First name last name name, name.  Street address, town, state, zip code.  Phone number, email address.  A "notes" field, where the user can enter any information.  Optional features:  Search contacts for a matching string (other than name). CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 59
  • 60. Structure of the Project Report  Title Page (Title, Group Members, Course, Year)  Contents Page  Summary of the project  Requirements (purpose, functional, non-functional (purpose functional non functional, constraints)  Design ( g (DFD level 1, Use case, Sequence q diagram, Algorithms etc)  User Interface (Screen Shots)  Coding  Reports, if any CIS 260 Software Engineering - I (R. 10:16:26 AM Akerkar) 60