SlideShare une entreprise Scribd logo
1  sur  26
Object-Oriented Analysis and Design Using UML
Objectives


               In this session, you will learn to:
                  Measure the process-components of a software development
                  process
                  Measuring a project by using the function point technique
                  Measure the complexity of UML artifacts




    Ver. 1.0                                                         Slide 1 of 26
Object-Oriented Analysis and Design Using UML
Measuring Software Development Process


               To measure a software development process, you need to
               measure all its process-components.
               To measure the process-components, you need to measure
               its dimensions.
               Like the quality process, the process-component consists of
               the following dimensions:
                – Technology: Refers to the output of a process-component.
                – Methodology: Refers to activities and tasks related to a
                  process-component.
                – Sociology: Refers to roles in a process-component.




    Ver. 1.0                                                          Slide 2 of 26
Object-Oriented Analysis and Design Using UML
Measuring Process-Components


               To measure all the process-components of a software
               development process, you need to calculate the total
               number of roles, activities, output, and tasks.
               The total number of roles, activities, output, and tasks is
               also called total unit value.
               You may need to refine the total unit value in context of a
               specific environment because the same software can be
               implemented in various environments.




    Ver. 1.0                                                         Slide 3 of 26
Object-Oriented Analysis and Design Using UML
Measuring Process-Components (Contd.)


               To refine the total unit value, you need to determine:
                – The number of instances of each dimension of the
                  process-components required in the software development
                  process.
                – The weighing factors for each dimension of the
                  process-components.
               The weighing factor for each dimension of
               process-components depends upon the following:
                  The environment of the software project.
                  The importance of each dimension in the software project.




    Ver. 1.0                                                            Slide 4 of 26
Object-Oriented Analysis and Design Using UML
Measuring Process-Components (Contd.)


               To obtain the strength of the process-component
               dimensions, you need to multiply the number of instances of
               the dimensions to their weighing factor.
               Estimating the number of dimensions of the
               process-components for each iteration is known as the
               planned productivity.
               The actual productivity is determined at the completion of
               the iteration.
               To analyze the total expected delay in the project:
                  Calculate the adjustment factor.
                  Calculate revised time required to complete the successive
                  iterations using the adjustment factor.




    Ver. 1.0                                                            Slide 5 of 26
Object-Oriented Analysis and Design Using UML
Measuring Process-Components (Contd.)


                   Adjustment factor can be calculated as:
                   Adjustment Factor = Actual productivity /
                   Planned productivity
               •   To calculate the revised time required to complete a
                   successive iteration, you need to divide the planned
                   duration by the adjustment factor.




    Ver. 1.0                                                        Slide 6 of 26
Object-Oriented Analysis and Design Using UML
Measuring a Project by Using the Function Point Technique


               The Function Point (FP) estimation technique is the most
               popular technique used to estimate the size of a project.
               This technique breaks systems into smaller components, so
               they can be better understood and analyzed.
               FPs are a unit measure for software much like an hour is to
               measuring time, miles are to measuring distance, or Celsius
               is to measuring temperature.




    Ver. 1.0                                                       Slide 7 of 26
Object-Oriented Analysis and Design Using UML
Evolution of FP


               The FP technique was invented by Albercht of IBM in 1979
               and has evolved over the years.
               The key to identifying the FPs of a software, is to identify the
               different components that make up a software system.
               Using the FP technique, the estimation of the total work can
               be done by counting the total number of:
                  Files
                  Interfaces
                  Inputs
                  Outputs
                  Enquiries




    Ver. 1.0                                                           Slide 8 of 26
Object-Oriented Analysis and Design Using UML
Calculating FPs


               Calculating FPs for a project involves the following steps:
                1.   Determine the type of FP count
                2.   Identify the scope and application boundary
                3.   Determine Unadjusted Function Point (UFP)
                4.   Determine the Value Adjustment Factor (VAF)
                5.   Calculate the Adjusted Function Point (AFP)




    Ver. 1.0                                                         Slide 9 of 26
Object-Oriented Analysis and Design Using UML
Calculating FPs (Contd.)


               Determining the Type of FP Count:
                  The three basic categories of function points based on the type
                  of project are:
                       Development Project FP Count
                       Enhancement Project FP Count
                       Application FP Count
               Identifying the Scope and Application Boundary:
                  This helps in identifying the components of the proposed
                  system and the system’s references to external components.




    Ver. 1.0                                                            Slide 10 of 26
Object-Oriented Analysis and Design Using UML
Calculating FPs (Contd.)


               Determining the UFP:
               1.   Identify the following two types of information:
                    –   Data at rest: Comprises of stored data that is required for
                        processing.
                    –   Data in motion: Comprises of transactions that result in
                        movement of data in and out of an application.
               2.   Based on this information, calculate:
                    –   Data FPs: Calculated by measuring the Internal Logical Files
                        (ILFs) and External Interface Files (EIFs) – Together called File
                        Types referenced (FTRs). For each FTR, the following values
                        are measured:
                         –   Data Element Types (DETs)
                         –   Record Element Types (RETs)
                    –   Transaction FPs: These are calculated by measuring the
                        following:
                             External Input (EI)
                             External Enquiry (EQ)
                             External Output (EO)
    Ver. 1.0                                                                    Slide 11 of 26
Object-Oriented Analysis and Design Using UML
Calculating FPs (Contd.)


               Determining the VAF:
                    VAF is based on General System Characteristics (GSCs).
                    There are 14 GSCs:
                         Data Communication
                         Distributed Processing
                         Performance Objectives
                         Heavily Used Configuration
                         Transaction Rule
                         On-line Update
                         Complex Processing
                         Reusability
                         Installation Ease
                         Operational Ease
                         Multiple Site Use
                         Facility Change


    Ver. 1.0                                                        Slide 12 of 26
Object-Oriented Analysis and Design Using UML
Calculating FPs (Contd.)


                  To calculate the VAF, you need to:
                   1. Determine the degree of influence (DI) of each GSC.
                       The DI of a GSC varies from 0 to 5:
                             0 – Not Present, No Influence
                             1 – Incidental Influence
                             2 – Moderate Influence
                             3 – Average Influence
                             4 – Significant Influence
                             5 – String Influence Throughout
                   2.   Add the DIs of the 14 GSCs to obtain the Total Degree
                        of Influence (TDI).
                   3.   Use the following formula to calculate VAF:
                             VAF = TDI ×.01 + 0.65




    Ver. 1.0                                                        Slide 13 of 26
Object-Oriented Analysis and Design Using UML
Calculating FPs (Contd.)


               Calculating the AFP:
                    To calculate AFP, you can use the following formula:
                           AFP = (TUFP + CFP) × VAF
                 Where, CFP is the FP count for conversion functionality.




    Ver. 1.0                                                            Slide 14 of 26
Object-Oriented Analysis and Design Using UML
Demo: Determining the FP Count


               Problem Statement
                  Cathy Jones, a project manager at StarMoon Technologies,
                  has to calculate the total FPs for the Inventory Management
                  System project.
                  The following table shows the number of information domains
                  for the different complexities.
                        Information domain    Low   Medium   High
                        User inputs           9     10       5
                        User outputs          7     6        12
                        User inquiries        15    9        12
                        Internal files        12    14       9
                        External interfaces   10    7        11




    Ver. 1.0                                                          Slide 15 of 26
Object-Oriented Analysis and Design Using UML
Demo: Determining the FP Count (Contd.)


               – The following table lists the fourteen GSCs and their degree of
                 influence.
                   General System Characteristic     DI Value
                   Data Communications               5
                   Distributed Functions             5
                   Performance                       4
                   Heavily Used Configuration        3
                   Transaction Rate                  4
                   On-line Data Entry                5
                   End-user Efficiency               4
                   On-Line Update                    3
                   Complex Processing                5
                   Reusability                       4




    Ver. 1.0                                                            Slide 16 of 26
Object-Oriented Analysis and Design Using UML
Demo: Determining the FP Count (Contd.)


               – The following table lists the fourteen GSCs and their degree of
                 influence.
                   General System Characteristic     DI Value
                   Installation Ease                 3
                   Operational Ease                  3
                   Multiple Sites                    4
                   Facilitates Change                5


               – Estimate the size of the inventory management system project
                 by calculating the functional points of the project.




    Ver. 1.0                                                            Slide 17 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of UML Artifacts


               Complexity refers to the degree of interdependency among
               the UML artifacts in an object-oriented software system.
               The complexity of the dynamic components depends upon
               the complexity of static components. Therefore, you only
               need to measure the complexity of following static
               components:
                  Use case diagram
                  Class diagram
                  Component diagram




    Ver. 1.0                                                     Slide 18 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of Use Case Diagrams


               You measure the complexity of use case diagrams by
               identifying the number of actors, use cases, and their
               relationships used in the diagram.
               You estimate the complexity of a use case in terms of the
               length of description required to explain the interaction
               between multiple use cases and actors.
               The following are the categories of use cases based on the
               length of their description:
                – Simple: Refers to the use case whose set of interactions can
                  be described in a single sheet of paper.
                – Medium: Refers to the use case whose set of interactions can
                  be described in multiple sheets of paper.
                – Complex: Refers to the use case that shares the extend and
                  include relationships with the other use cases and require
                  multiple sheets of paper.

    Ver. 1.0                                                          Slide 19 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of Class Diagrams


               You measure the complexity of a class diagram by
               determining:
                  The size of its classes.
                  The number of relationships among classes.
                  The visibility of attributes of the classes.
                  The visibility of operations of the classes.
               Complexity of a class diagram also depends upon the
               number of objects and their relationship.
               To measure the complexity of a class diagram, you can use
               the following object-oriented metrics suites:
                  Chidamber and Kemerer (CK)
                  Metrics for Object-Oriented Design (MOOD)
                  Lorenz and Kidd


    Ver. 1.0                                                      Slide 20 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of Class Diagrams (Contd.)


               In the CK metrics suite, the following class-based design
               metrics have been proposed for object-oriented systems:
                – Weighted Methods per Class (WMC): Measure the
                  complexity of a class in terms of the complexity of its
                  operations.
                – Depth of Inheritance Tree (DIT): Measures the total number
                  of edges in the inheritance tree from its lowest node to its root.
                – Number of Children (NOC): Measures the number of derived
                  classes associated with a base class.
                – Response for a Class (RFC): Measures the number of
                  methods in the response set.
                – Lack of Cohesion in Methods (LCOM): Measures the
                  number of operations that access the same attribute.




    Ver. 1.0                                                                Slide 21 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of Class Diagrams (Contd.)


               The MOOD metrics suite consists of two metrics that
               quantitatively measure the characteristics of object-oriented
               design:
                – Method Inheritance Factor (MIF): Measures the extent to
                  which a UML class diagram can contain inheritance for
                  accessing operations and attributes of a class.
                – Coupling Factor (CF): Measures the coupling among classes
                  of a class diagram.




    Ver. 1.0                                                        Slide 22 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of Class Diagrams (Contd.)


               The Lorenz and Kidd metrics suite consists of three metrics:
                – Class Size (CS): Measures the size of a class by measuring
                  the total number of operations and attributes encapsulated
                  within the class.
                – Number of Operations Overridden (NOO): Measures the
                  total number of operations of a base class that a derived class
                  has overridden.
                – Number of Operations Added (NOA): Measures the total
                  number of operations and attributes that are declared in a
                  derived class and have private visibility.




    Ver. 1.0                                                             Slide 23 of 26
Object-Oriented Analysis and Design Using UML
Measuring the Complexity of Component Diagrams


               Complexity of a component diagram is measured by
               measuring:
                  Size of the components
                  Processing speed of the components
               The size of a component diagram depends on:
               – The number of classes that are realized in the component.
               – The number of interfaces that share dependency relationship
                 with the component.
               The processing speed of a component depends on the
               number of threads supported by the component.




    Ver. 1.0                                                          Slide 24 of 26
Object-Oriented Analysis and Design Using UML
Summary


               In this session, you learned that:
                  To measure all the process-components of a software
                  development process, you need to calculate the total number
                  of roles, activities, output, and tasks involved in the software
                  project.
                  The adjustment factor is used to determine the delay in the
                  software project.
                  The FP estimation technique is the most popular technique
                  used to estimate the size of a project.
                  In the FP technique, the estimation of the total work can be
                  done by counting the total number of:
                      Files
                      Interfaces
                      Inputs
                      Outputs
                      Enquiries

    Ver. 1.0                                                               Slide 25 of 26
Object-Oriented Analysis and Design Using UML
Summary (Contd.)


               To measure the complexity of UML artifacts, you determine the
               size and complexity of use case, class, and component
               diagrams.
               The CK, MOOD, and Lorenz and Kidd metrics suites measure
               the size and complexity of a class diagram.
               The complexity of component diagrams is measured by
               determining the size and processing speed of components.




    Ver. 1.0                                                        Slide 26 of 26

Contenu connexe

Tendances

07 ooad uml-08
07 ooad uml-0807 ooad uml-08
07 ooad uml-08
Niit Care
 
13 ooad uml-17
13 ooad uml-1713 ooad uml-17
13 ooad uml-17
Niit Care
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
Vidhun T
 
14 functional design
14 functional design14 functional design
14 functional design
randhirlpu
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
saurabhshertukde
 

Tendances (20)

07 ooad uml-08
07 ooad uml-0807 ooad uml-08
07 ooad uml-08
 
13 ooad uml-17
13 ooad uml-1713 ooad uml-17
13 ooad uml-17
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Round - Trip Software Engineering using UML: From Architecture to Design and...
Round - Trip Software Engineering using UML:  From Architecture to Design and...Round - Trip Software Engineering using UML:  From Architecture to Design and...
Round - Trip Software Engineering using UML: From Architecture to Design and...
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Arch06 1
Arch06 1Arch06 1
Arch06 1
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Ooad overview
Ooad overviewOoad overview
Ooad overview
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
Unit 1- OOAD ppt
Unit 1- OOAD  pptUnit 1- OOAD  ppt
Unit 1- OOAD ppt
 
4+1
4+14+1
4+1
 
software design principles
software design principlessoftware design principles
software design principles
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and Design
 
14 functional design
14 functional design14 functional design
14 functional design
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 

En vedette

Vb.net session 09
Vb.net session 09Vb.net session 09
Vb.net session 09
Niit Care
 
15 ooad uml-20
15 ooad uml-2015 ooad uml-20
15 ooad uml-20
Niit Care
 
11 ds and algorithm session_16
11 ds and algorithm session_1611 ds and algorithm session_16
11 ds and algorithm session_16
Niit Care
 
09 iec t1_s1_oo_ps_session_13
09 iec t1_s1_oo_ps_session_1309 iec t1_s1_oo_ps_session_13
09 iec t1_s1_oo_ps_session_13
Niit Care
 
Jdbc session01
Jdbc session01Jdbc session01
Jdbc session01
Niit Care
 
Deawsj 7 ppt-2_c
Deawsj 7 ppt-2_cDeawsj 7 ppt-2_c
Deawsj 7 ppt-2_c
Niit Care
 
Aae oop xp_06
Aae oop xp_06Aae oop xp_06
Aae oop xp_06
Niit Care
 

En vedette (20)

DSSC, Operating of Mall Doors, IDM7
DSSC, Operating of Mall Doors, IDM7DSSC, Operating of Mall Doors, IDM7
DSSC, Operating of Mall Doors, IDM7
 
Uml basic
Uml basicUml basic
Uml basic
 
 
Vb.net session 09
Vb.net session 09Vb.net session 09
Vb.net session 09
 
15 ooad uml-20
15 ooad uml-2015 ooad uml-20
15 ooad uml-20
 
11 ds and algorithm session_16
11 ds and algorithm session_1611 ds and algorithm session_16
11 ds and algorithm session_16
 
Dacj 2-2 c
Dacj 2-2 cDacj 2-2 c
Dacj 2-2 c
 
Oops recap
Oops recapOops recap
Oops recap
 
09 iec t1_s1_oo_ps_session_13
09 iec t1_s1_oo_ps_session_1309 iec t1_s1_oo_ps_session_13
09 iec t1_s1_oo_ps_session_13
 
Component Diagram
Component DiagramComponent Diagram
Component Diagram
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Rdbms xp 01
Rdbms xp 01Rdbms xp 01
Rdbms xp 01
 
Jdbc session01
Jdbc session01Jdbc session01
Jdbc session01
 
Deawsj 7 ppt-2_c
Deawsj 7 ppt-2_cDeawsj 7 ppt-2_c
Deawsj 7 ppt-2_c
 
Java Garbage Collection - How it works
Java Garbage Collection - How it worksJava Garbage Collection - How it works
Java Garbage Collection - How it works
 
Ds 8
Ds 8Ds 8
Ds 8
 
Understanding Java Garbage Collection - And What You Can Do About It
Understanding Java Garbage Collection - And What You Can Do About ItUnderstanding Java Garbage Collection - And What You Can Do About It
Understanding Java Garbage Collection - And What You Can Do About It
 
Aae oop xp_06
Aae oop xp_06Aae oop xp_06
Aae oop xp_06
 
Dacj 1-1 a
Dacj 1-1 aDacj 1-1 a
Dacj 1-1 a
 
JAVA Object Oriented Programming (OOP)
JAVA Object Oriented Programming (OOP)JAVA Object Oriented Programming (OOP)
JAVA Object Oriented Programming (OOP)
 

Similaire à 14 ooad uml-19

Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
DestinationQA
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16
Niit Care
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniques
Tan Tran
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
AAKASH S
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
Nur Islam
 

Similaire à 14 ooad uml-19 (20)

Chapter 12
Chapter 12Chapter 12
Chapter 12
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
 
Cost estimation techniques
Cost estimation techniquesCost estimation techniques
Cost estimation techniques
 
Cost effort.ppt
Cost effort.pptCost effort.ppt
Cost effort.ppt
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16
 
IJSRED-V2I4P8
IJSRED-V2I4P8IJSRED-V2I4P8
IJSRED-V2I4P8
 
Loc and function point
Loc and function pointLoc and function point
Loc and function point
 
Ch26
Ch26Ch26
Ch26
 
Chapter1
Chapter1Chapter1
Chapter1
 
Ijetr011834
Ijetr011834Ijetr011834
Ijetr011834
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniques
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
Decomposition technique In Software Engineering
Decomposition technique In Software Engineering Decomposition technique In Software Engineering
Decomposition technique In Software Engineering
 
Power point presentation 1
Power point presentation 1Power point presentation 1
Power point presentation 1
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
software project management.lpu.slide.ansh.gupta
software project management.lpu.slide.ansh.guptasoftware project management.lpu.slide.ansh.gupta
software project management.lpu.slide.ansh.gupta
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
 
View Alignment Techniques
View Alignment TechniquesView Alignment Techniques
View Alignment Techniques
 

Plus de Niit Care (20)

Ajs 1 b
Ajs 1 bAjs 1 b
Ajs 1 b
 
Ajs 4 b
Ajs 4 bAjs 4 b
Ajs 4 b
 
Ajs 4 a
Ajs 4 aAjs 4 a
Ajs 4 a
 
Ajs 4 c
Ajs 4 cAjs 4 c
Ajs 4 c
 
Ajs 3 b
Ajs 3 bAjs 3 b
Ajs 3 b
 
Ajs 3 a
Ajs 3 aAjs 3 a
Ajs 3 a
 
Ajs 3 c
Ajs 3 cAjs 3 c
Ajs 3 c
 
Ajs 2 b
Ajs 2 bAjs 2 b
Ajs 2 b
 
Ajs 2 a
Ajs 2 aAjs 2 a
Ajs 2 a
 
Ajs 2 c
Ajs 2 cAjs 2 c
Ajs 2 c
 
Ajs 1 a
Ajs 1 aAjs 1 a
Ajs 1 a
 
Ajs 1 c
Ajs 1 cAjs 1 c
Ajs 1 c
 
Dacj 4 2-c
Dacj 4 2-cDacj 4 2-c
Dacj 4 2-c
 
Dacj 4 2-b
Dacj 4 2-bDacj 4 2-b
Dacj 4 2-b
 
Dacj 4 2-a
Dacj 4 2-aDacj 4 2-a
Dacj 4 2-a
 
Dacj 4 1-c
Dacj 4 1-cDacj 4 1-c
Dacj 4 1-c
 
Dacj 4 1-b
Dacj 4 1-bDacj 4 1-b
Dacj 4 1-b
 
Dacj 4 1-a
Dacj 4 1-aDacj 4 1-a
Dacj 4 1-a
 
Dacj 1-2 b
Dacj 1-2 bDacj 1-2 b
Dacj 1-2 b
 
Dacj 1-3 c
Dacj 1-3 cDacj 1-3 c
Dacj 1-3 c
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

14 ooad uml-19

  • 1. Object-Oriented Analysis and Design Using UML Objectives In this session, you will learn to: Measure the process-components of a software development process Measuring a project by using the function point technique Measure the complexity of UML artifacts Ver. 1.0 Slide 1 of 26
  • 2. Object-Oriented Analysis and Design Using UML Measuring Software Development Process To measure a software development process, you need to measure all its process-components. To measure the process-components, you need to measure its dimensions. Like the quality process, the process-component consists of the following dimensions: – Technology: Refers to the output of a process-component. – Methodology: Refers to activities and tasks related to a process-component. – Sociology: Refers to roles in a process-component. Ver. 1.0 Slide 2 of 26
  • 3. Object-Oriented Analysis and Design Using UML Measuring Process-Components To measure all the process-components of a software development process, you need to calculate the total number of roles, activities, output, and tasks. The total number of roles, activities, output, and tasks is also called total unit value. You may need to refine the total unit value in context of a specific environment because the same software can be implemented in various environments. Ver. 1.0 Slide 3 of 26
  • 4. Object-Oriented Analysis and Design Using UML Measuring Process-Components (Contd.) To refine the total unit value, you need to determine: – The number of instances of each dimension of the process-components required in the software development process. – The weighing factors for each dimension of the process-components. The weighing factor for each dimension of process-components depends upon the following: The environment of the software project. The importance of each dimension in the software project. Ver. 1.0 Slide 4 of 26
  • 5. Object-Oriented Analysis and Design Using UML Measuring Process-Components (Contd.) To obtain the strength of the process-component dimensions, you need to multiply the number of instances of the dimensions to their weighing factor. Estimating the number of dimensions of the process-components for each iteration is known as the planned productivity. The actual productivity is determined at the completion of the iteration. To analyze the total expected delay in the project: Calculate the adjustment factor. Calculate revised time required to complete the successive iterations using the adjustment factor. Ver. 1.0 Slide 5 of 26
  • 6. Object-Oriented Analysis and Design Using UML Measuring Process-Components (Contd.) Adjustment factor can be calculated as: Adjustment Factor = Actual productivity / Planned productivity • To calculate the revised time required to complete a successive iteration, you need to divide the planned duration by the adjustment factor. Ver. 1.0 Slide 6 of 26
  • 7. Object-Oriented Analysis and Design Using UML Measuring a Project by Using the Function Point Technique The Function Point (FP) estimation technique is the most popular technique used to estimate the size of a project. This technique breaks systems into smaller components, so they can be better understood and analyzed. FPs are a unit measure for software much like an hour is to measuring time, miles are to measuring distance, or Celsius is to measuring temperature. Ver. 1.0 Slide 7 of 26
  • 8. Object-Oriented Analysis and Design Using UML Evolution of FP The FP technique was invented by Albercht of IBM in 1979 and has evolved over the years. The key to identifying the FPs of a software, is to identify the different components that make up a software system. Using the FP technique, the estimation of the total work can be done by counting the total number of: Files Interfaces Inputs Outputs Enquiries Ver. 1.0 Slide 8 of 26
  • 9. Object-Oriented Analysis and Design Using UML Calculating FPs Calculating FPs for a project involves the following steps: 1. Determine the type of FP count 2. Identify the scope and application boundary 3. Determine Unadjusted Function Point (UFP) 4. Determine the Value Adjustment Factor (VAF) 5. Calculate the Adjusted Function Point (AFP) Ver. 1.0 Slide 9 of 26
  • 10. Object-Oriented Analysis and Design Using UML Calculating FPs (Contd.) Determining the Type of FP Count: The three basic categories of function points based on the type of project are: Development Project FP Count Enhancement Project FP Count Application FP Count Identifying the Scope and Application Boundary: This helps in identifying the components of the proposed system and the system’s references to external components. Ver. 1.0 Slide 10 of 26
  • 11. Object-Oriented Analysis and Design Using UML Calculating FPs (Contd.) Determining the UFP: 1. Identify the following two types of information: – Data at rest: Comprises of stored data that is required for processing. – Data in motion: Comprises of transactions that result in movement of data in and out of an application. 2. Based on this information, calculate: – Data FPs: Calculated by measuring the Internal Logical Files (ILFs) and External Interface Files (EIFs) – Together called File Types referenced (FTRs). For each FTR, the following values are measured: – Data Element Types (DETs) – Record Element Types (RETs) – Transaction FPs: These are calculated by measuring the following: External Input (EI) External Enquiry (EQ) External Output (EO) Ver. 1.0 Slide 11 of 26
  • 12. Object-Oriented Analysis and Design Using UML Calculating FPs (Contd.) Determining the VAF: VAF is based on General System Characteristics (GSCs). There are 14 GSCs: Data Communication Distributed Processing Performance Objectives Heavily Used Configuration Transaction Rule On-line Update Complex Processing Reusability Installation Ease Operational Ease Multiple Site Use Facility Change Ver. 1.0 Slide 12 of 26
  • 13. Object-Oriented Analysis and Design Using UML Calculating FPs (Contd.) To calculate the VAF, you need to: 1. Determine the degree of influence (DI) of each GSC. The DI of a GSC varies from 0 to 5: 0 – Not Present, No Influence 1 – Incidental Influence 2 – Moderate Influence 3 – Average Influence 4 – Significant Influence 5 – String Influence Throughout 2. Add the DIs of the 14 GSCs to obtain the Total Degree of Influence (TDI). 3. Use the following formula to calculate VAF: VAF = TDI ×.01 + 0.65 Ver. 1.0 Slide 13 of 26
  • 14. Object-Oriented Analysis and Design Using UML Calculating FPs (Contd.) Calculating the AFP: To calculate AFP, you can use the following formula: AFP = (TUFP + CFP) × VAF Where, CFP is the FP count for conversion functionality. Ver. 1.0 Slide 14 of 26
  • 15. Object-Oriented Analysis and Design Using UML Demo: Determining the FP Count Problem Statement Cathy Jones, a project manager at StarMoon Technologies, has to calculate the total FPs for the Inventory Management System project. The following table shows the number of information domains for the different complexities. Information domain Low Medium High User inputs 9 10 5 User outputs 7 6 12 User inquiries 15 9 12 Internal files 12 14 9 External interfaces 10 7 11 Ver. 1.0 Slide 15 of 26
  • 16. Object-Oriented Analysis and Design Using UML Demo: Determining the FP Count (Contd.) – The following table lists the fourteen GSCs and their degree of influence. General System Characteristic DI Value Data Communications 5 Distributed Functions 5 Performance 4 Heavily Used Configuration 3 Transaction Rate 4 On-line Data Entry 5 End-user Efficiency 4 On-Line Update 3 Complex Processing 5 Reusability 4 Ver. 1.0 Slide 16 of 26
  • 17. Object-Oriented Analysis and Design Using UML Demo: Determining the FP Count (Contd.) – The following table lists the fourteen GSCs and their degree of influence. General System Characteristic DI Value Installation Ease 3 Operational Ease 3 Multiple Sites 4 Facilitates Change 5 – Estimate the size of the inventory management system project by calculating the functional points of the project. Ver. 1.0 Slide 17 of 26
  • 18. Object-Oriented Analysis and Design Using UML Measuring the Complexity of UML Artifacts Complexity refers to the degree of interdependency among the UML artifacts in an object-oriented software system. The complexity of the dynamic components depends upon the complexity of static components. Therefore, you only need to measure the complexity of following static components: Use case diagram Class diagram Component diagram Ver. 1.0 Slide 18 of 26
  • 19. Object-Oriented Analysis and Design Using UML Measuring the Complexity of Use Case Diagrams You measure the complexity of use case diagrams by identifying the number of actors, use cases, and their relationships used in the diagram. You estimate the complexity of a use case in terms of the length of description required to explain the interaction between multiple use cases and actors. The following are the categories of use cases based on the length of their description: – Simple: Refers to the use case whose set of interactions can be described in a single sheet of paper. – Medium: Refers to the use case whose set of interactions can be described in multiple sheets of paper. – Complex: Refers to the use case that shares the extend and include relationships with the other use cases and require multiple sheets of paper. Ver. 1.0 Slide 19 of 26
  • 20. Object-Oriented Analysis and Design Using UML Measuring the Complexity of Class Diagrams You measure the complexity of a class diagram by determining: The size of its classes. The number of relationships among classes. The visibility of attributes of the classes. The visibility of operations of the classes. Complexity of a class diagram also depends upon the number of objects and their relationship. To measure the complexity of a class diagram, you can use the following object-oriented metrics suites: Chidamber and Kemerer (CK) Metrics for Object-Oriented Design (MOOD) Lorenz and Kidd Ver. 1.0 Slide 20 of 26
  • 21. Object-Oriented Analysis and Design Using UML Measuring the Complexity of Class Diagrams (Contd.) In the CK metrics suite, the following class-based design metrics have been proposed for object-oriented systems: – Weighted Methods per Class (WMC): Measure the complexity of a class in terms of the complexity of its operations. – Depth of Inheritance Tree (DIT): Measures the total number of edges in the inheritance tree from its lowest node to its root. – Number of Children (NOC): Measures the number of derived classes associated with a base class. – Response for a Class (RFC): Measures the number of methods in the response set. – Lack of Cohesion in Methods (LCOM): Measures the number of operations that access the same attribute. Ver. 1.0 Slide 21 of 26
  • 22. Object-Oriented Analysis and Design Using UML Measuring the Complexity of Class Diagrams (Contd.) The MOOD metrics suite consists of two metrics that quantitatively measure the characteristics of object-oriented design: – Method Inheritance Factor (MIF): Measures the extent to which a UML class diagram can contain inheritance for accessing operations and attributes of a class. – Coupling Factor (CF): Measures the coupling among classes of a class diagram. Ver. 1.0 Slide 22 of 26
  • 23. Object-Oriented Analysis and Design Using UML Measuring the Complexity of Class Diagrams (Contd.) The Lorenz and Kidd metrics suite consists of three metrics: – Class Size (CS): Measures the size of a class by measuring the total number of operations and attributes encapsulated within the class. – Number of Operations Overridden (NOO): Measures the total number of operations of a base class that a derived class has overridden. – Number of Operations Added (NOA): Measures the total number of operations and attributes that are declared in a derived class and have private visibility. Ver. 1.0 Slide 23 of 26
  • 24. Object-Oriented Analysis and Design Using UML Measuring the Complexity of Component Diagrams Complexity of a component diagram is measured by measuring: Size of the components Processing speed of the components The size of a component diagram depends on: – The number of classes that are realized in the component. – The number of interfaces that share dependency relationship with the component. The processing speed of a component depends on the number of threads supported by the component. Ver. 1.0 Slide 24 of 26
  • 25. Object-Oriented Analysis and Design Using UML Summary In this session, you learned that: To measure all the process-components of a software development process, you need to calculate the total number of roles, activities, output, and tasks involved in the software project. The adjustment factor is used to determine the delay in the software project. The FP estimation technique is the most popular technique used to estimate the size of a project. In the FP technique, the estimation of the total work can be done by counting the total number of: Files Interfaces Inputs Outputs Enquiries Ver. 1.0 Slide 25 of 26
  • 26. Object-Oriented Analysis and Design Using UML Summary (Contd.) To measure the complexity of UML artifacts, you determine the size and complexity of use case, class, and component diagrams. The CK, MOOD, and Lorenz and Kidd metrics suites measure the size and complexity of a class diagram. The complexity of component diagrams is measured by determining the size and processing speed of components. Ver. 1.0 Slide 26 of 26

Notes de l'éditeur

  1. Initiate the session by explaining the session objectives to the students. Tell the students that to ensure the quality of software products, it is important to measure the effectiveness of the software development process at various stages. For this, you need to measure the effectiveness of the process components. In addition, you need to determine the complexity of the design created by using UML artifacts.
  2. Explain how to measure a software development process. Explain the dimensions of a process-component.
  3. Explain how to measure process components by using the example of the library management system given in the student guide.
  4. Explain the concept of weighing factor and then explain how to refine the total unit value.
  5. Explain how to obtain the strength of a process-component dimension. Explain the concept of planned productivity and actual productivity. Explain how to calculate the total expected delay in the project by using the example given in the student guide.
  6. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  7. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  8. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  9. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  10. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  11. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  12. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  13. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  14. Explain the concept of adjustment factor. Next, explain how adjustment factor is calculated. Also explain how to calculate the revised time of completion for a successive iteration of a software project.
  15. Tell the students that to determine the quality of a software project, they need to measure the complexity of UML artifacts. Explain what is meant by complexity and explain how to calculate complexity.
  16. Explain how to measure the complexity of use case diagrams by using the example of the library management system given in the student guide.
  17. Explain how to measure the complexity of use case diagrams by using the example of the library management system given in the student guide.
  18. Tell the students that to determine the quality of a software project, they need to measure the complexity of UML artifacts. Explain what is meant by complexity and explain how to calculate complexity.
  19. Explain how to measure the complexity of use case diagrams by using the example of the library management system given in the student guide.
  20. Explain how to measure the complexity of a class diagram. Also explain the various metrics suites that can be used to measure the complexity of class diagrams.
  21. Explain the metrics included in the CK metrics suite by using the examples given in the student guide. Students can calculate the complexity of operations using the software metrics known as cyclomatic complexity. The discussion about this metrics is beyond the scope of this course. Students may refer to page 446 topic 17.4.2 Cyclomatic Complexity of the book, Software Engineering, A Practioner’s Approach, Fifth Edition, by Roger S. Pressman.
  22. Explain the metrics included in the MOOD metrics suite by using the examples given in the student guide.
  23. Explain the metrics included in the Lorenz and Kidd metrics suite by using the examples given in the student guide.
  24. Explain how to measure the complexity of a component diagram. You may discuss with students the Constructive Cost Model (COCOMO) and LOC-Based Estimation model that enables you to estimate the cost and size of the project. COCOMO You use COCOMO to estimate the total effort required to complete a software project successfully. The total effort is the estimate of the number of people required for performing project management and development tasks during the software project life cycle. The unit for estimating the total effort is Person-Month (PM). The effort estimation for a project depends on the type of the software projects. According to COCOMO, there are three types of software projects: Organic: Refers to the projects that require substantial expertise and have flexible requirements. Such projects can be developed by small teams. For example, projects that develop business systems, inventory management systems, and data processing systems are organic projects. Embedded: Refers to the projects that require less expertise, have rigid requirements for interfacing and reliability, and have external constraints. For example, projects that develop real-time systems and large operating systems are embedded projects. Semidetached: Refers to the projects that require medium expertise and have external constraints that are less rigid as compared to that of embedded projects. For example, projects that develop database management systems (DBMS) and large inventory production control systems are semidetached projects. The steps to estimate cost involved in a software project using COCOMO are: <<<<<<<<<<<<INSERT STEPS>>>>>>>>>>>>>> LOC Based Estimation According to Lines of Code (LOC)-based estimation, you need to determine the total number of lines the code to estimate the size of the software project. The lines of code include the executable instructions of the program and exclude the comments. To facilitate the estimation of the lines of code, you can divide the software into modules, which can be further divided into sub modules. The lines of code estimated for each sub module are added to obtain the lines of code for the complete software.
  25. Summarize the session by using the summary points given on the slide.
  26. Summarize the session by using the summary points given on the slide.