The document discusses quality processes in software development. It defines quality processes as examining the quality of software models, development processes, and products. It identifies dimensions of quality like technology, methodology, and sociology. It also discusses using the Unified Modeling Language (UML) to improve quality, including aspects like visualization, specification, construction, and documentation. Quality assurance techniques like checking syntax, semantics, and aesthetics are also discussed.
IAC 2024 - IA Fast Track to Search Focused AI Solutions
12 ooad uml-16
1. Object-Oriented Analysis and Design Using UML
Objectives
In this session, you will learn to:
Identify various dimensions of quality processes
Define extension mechanisms of UML
Ver. 1.0 Slide 1 of 23
2. Object-Oriented Analysis and Design Using UML
Introducing Quality Process
The purpose of quality processes is to examine the quality
of software models and products developed during the
software development process.
Quality process includes:
Quality of the software development process that is used to
develop the software system.
Quality of the software models that are used for the software
development process.
Quality of the software product obtained at the end of the
software development process.
Quality of the quality process itself.
Ver. 1.0 Slide 2 of 23
3. Object-Oriented Analysis and Design Using UML
Identifying Dimensions of Quality Process
The dimensions that need to be considered to produce a
quality product are:
– Technology: Describes the tools required for the software
development process and the output generated.
– Methodology: Describes the sequence of actions that need to
be performed during the software development process to
generate output.
– Sociology: Describes the human resources, environmental
conditions, and skills required for the software development
process.
Ver. 1.0 Slide 3 of 23
4. Object-Oriented Analysis and Design Using UML
Identifying Dimensions of Quality Process (Contd.)
Quality checks that you need to apply to ensure the quality
of software products are:
Data quality
Code quality
Model or architecture quality
Process quality
Management quality
Quality environment
Ver. 1.0 Slide 4 of 23
5. Object-Oriented Analysis and Design Using UML
Just a minute
• Which of the following quality checks ensures that the
series of activities and tasks performed to develop software
products are correct?
1. Code quality
2. Process quality
3. Management quality
4. Model or architectural quality
Answer:
Process quality
Ver. 1.0 Slide 5 of 23
6. Object-Oriented Analysis and Design Using UML
Quality by UML
Modeling enhances the quality of software products
because it enables you to understand the existing software
system and create the desired software system.
To improve the quality of software products, you need to
analyze the effect of UML on the following quality aspects:
– Quality of visualization: Refers to the quality of visual
representation of the artifacts, diagrams, and models.
– Quality of specification: Refers to the quality of the
specifications that provide detailed description of UML artifacts
and diagrams.
– Quality of construction: Refers to the quality of the code
generated from the UML models.
– Quality of documentation: Refers to the quality of the
document that provides guidelines for creating UML artifacts
and diagrams in software models.
Ver. 1.0 Slide 6 of 23
7. Object-Oriented Analysis and Design Using UML
Quality by UML (Contd.)
To verify and validate the quality of the software models,
you need to apply quality assurance techniques.
The quality assurance techniques check the following:
– Syntax: To ensure that the software models are syntactically
correct.
– Semantics: To ensure that the software models represent their
intended meaning and their representation is consistent across
the project.
– Aesthetics: To ensure that the software models are symmetric
and complete.
Ver. 1.0 Slide 7 of 23
8. Object-Oriented Analysis and Design Using UML
Describing Quality Process Metamodels
Quality process metamodel:
Defines a language for representing another model.
Enables you to understand and describe the elements of a
quality process that are applicable to software development
process.
Depicts the rules that describe how the elements of a quality
process are connected and related to each other.
Ver. 1.0 Slide 8 of 23
9. Object-Oriented Analysis and Design Using UML
Describing Quality Process Metamodels (Contd.)
UML Notations for Elements of Quality Process:
Ver. 1.0 Slide 9 of 23
10. Object-Oriented Analysis and Design Using UML
Describing Quality Process Metamodels (Contd.)
Process-Component:
A process-component is a set of activities, tasks, roles, and
output of the quality process.
The people who perform roles of a process-components
execute activities and tasks to produce desired output.
For example: Requirement modeling, system designing, and
testing can be process-components in an UML-based project.
Ver. 1.0 Slide 10 of 23
11. Object-Oriented Analysis and Design Using UML
Just a minute
• Which of the following process-components indicates the
execution of a sequence of process-components with
varying intensity?
1. Iteration
2. Output
3. Task
4. Activity
Answer:
Iteration
Ver. 1.0 Slide 11 of 23
12. Object-Oriented Analysis and Design Using UML
Demo: Identifying Dimensions of Process-Components
Problem Statement:
The supermarket stocks a set of items. Customers take the
items from different counters in required quantities and deposit
them at the billing counter. The clerk enters the code number
of the items and their respective quantity/units. The manager of
the super market plans to automate the existing system by
implementing Supermarket Automation Software (SAS).
The SAS should provide the following features:
Print the bill containing the serial number of the sales transaction,
the name of each item, code number, quantity, unit price and the
total price at the end of a sales transaction. The bill should indicate
the total amount payable.
Print the sales statistics for items that are sold in the supermarket
for any particular period. The sales statistics should indicate the
quantity of an item sold, the price realized, and the profit.
Ver. 1.0 Slide 12 of 23
13. Object-Oriented Analysis and Design Using UML
Demo: Identifying Dimensions of Process-Components (Contd.)
Maintain the inventory of the various items of the super market.
The manager upon query should be able to see the inventory
details. In order to support inventory management, the inventory of
an item should be updated whenever an item is sold.
Enable an employee to update the inventory when a new supply
arrives.
Which of the SDLC model is best suited for developing SAS?
What are the roles, activities, tasks, and deliverables for the
design process-component of the development process?
Create a quality process metamodel for the design process
component.
Ver. 1.0 Slide 13 of 23
14. Object-Oriented Analysis and Design Using UML
Demo: Identifying Dimensions of Process-Components (Contd.)
Solution:
Microsoft Word
Document
Ver. 1.0 Slide 14 of 23
15. Object-Oriented Analysis and Design Using UML
Understanding Extension Mechanism of UML
UML provides several extension mechanisms that enable
developers to modify the software models without changing
the existing notations.
UML also provides additional modeling constructs that
represent flow of events in a software system.
Ver. 1.0 Slide 15 of 23
16. Object-Oriented Analysis and Design Using UML
Tailoring UML
UML can be tailored according to a particular application
domain.
The three types of extension elements provided by UML
are:
– Stereotypes: Extends the vocabulary of UML
– Constraints: Extends the semantics of building blocks of UML
– Tagged values: Extends the properties of building blocks of
UML
Stereotypes:
Represent model elements for which UML does not have a
specific notation.
Enable you to distinguish between representation of two similar
elements in a UML diagram.
Are represented as a text string enclosed within guillemets
(<< >>).
Ver. 1.0 Slide 16 of 23
17. Object-Oriented Analysis and Design Using UML
Tailoring UML (Contd.)
Constraints:
Represent restrictions and relationships that cannot be
represented using UML notations.
Represent global conditions or conditions that affect several
elements of UML diagrams.
Are enclosed within braces in UML diagrams.
Tagged values:
Store project management related information, such as date of
creating an element and the development and test status of the
element.
Store information about stereotyped model elements.
Can be attached to any model element.
Are represented as a pair of strings within braces.
Ver. 1.0 Slide 17 of 23
18. Object-Oriented Analysis and Design Using UML
Modeling Additional Constructs
While modeling a software system using UML, you need to
consider the concurrency and synchronization of the events.
UML provides two standard stereotypes that apply to active
classes for modeling the concurrent flow of events in a
software system:
– process: Represents that a process can execute concurrently
with other processes.
– thread: Represents that a thread can execute concurrently
with other threads within the same process.
Ver. 1.0 Slide 18 of 23
19. Object-Oriented Analysis and Design Using UML
Modeling Additional Constructs (Contd.)
Steps to model multiple flows of events in UML class and
interaction diagrams are:
1. Identify the concurrent flow of events in a software system.
2. Identify active objects based on the concurrent flow of events.
3. Group the common set of active objects into an active class.
4. Balance the distribution of responsibilities among the active
classes.
5. Ensure that each active class is both tightly cohesive and
loosely coupled.
6. Create class diagrams to represent static semantics of the
system.
7. Create interaction diagrams to represent dynamic semantics
of the system.
Ver. 1.0 Slide 19 of 23
20. Object-Oriented Analysis and Design Using UML
Modeling Additional Constructs (Contd.)
1. Apply the various types of communication methods among
objects.
2. Attach constraints to ensure synchronization among objects.
Ver. 1.0 Slide 20 of 23
21. Object-Oriented Analysis and Design Using UML
Modeling Additional Constructs (Contd.)
History state enables a sequential composite state to
remember the last sub-state that was active before the
composite state.
UML provides two types of history states:
– Shallow: Enables an application to remember and reactivate a
state that is at the same nesting depth as the history state.
– Deep: Enables an application to remember and reactivate a
state that is nested at some depth within the composite state.
System designers use comments in UML diagrams to
provide additional information to the programmers about a
model element or a group of model elements.
You depict a comment in UML diagrams by using a note
symbol.
Ver. 1.0 Slide 21 of 23
22. Object-Oriented Analysis and Design Using UML
Summary
In this session, you learned that:
The quality process is implemented between iterations and
increments of the software development process to ensure the
quality of software products.
The quality process checks the quality of output after each
phase of software development process.
The software development and quality processes are together
known as the quality software process.
The quality process consists of three dimensions:
– Technology: Describes what the software development process
produces.
– Methodology: Describes how the software development process
produces the software.
– Sociology: Describes who produces the software in the software
development process.
Ver. 1.0 Slide 22 of 23
23. Object-Oriented Analysis and Design Using UML
Summary (Contd.)
The activities of each dimension of quality process occur
simultaneously.
UML affects the quality of visualization, specification,
construction, and documentation of software models.
To ensure the quality of software models, you need to check
their syntax, semantics, and aesthetics.
The quality process metamodel depicts the elements of quality
process and their relationships.
The elements of quality process are process-components,
roles, activities, tasks, outputs, and iterations.
To modify UML, you can use the extension elements:
stereotypes, constraints, and tagged values.
UML also provides additional modeling constructs, such as
history states, notes, and comments.
Ver. 1.0 Slide 23 of 23
Hinweis der Redaktion
Initiate the session by explaining the session objectives to the students. Tell the students that the quality of software models and products can be examined by using certain processes called quality processes. These processes involve examining the development process, the software model, the product, and the quality process itself. The quality of a software product depends largely on how well the requirements are modeled and how well the requirements are translated into a design. UML is used to model the requirements and create a design for a software system. Therefore, UML plays an important role in the quality processes of an organization.
Explain the purpose of a quality process. Also explain that a quality process includes the quality of the development process, the software models, the product, and the quality process itself. Also explain quality software process by using the figure given on the slide.
Explain the dimensions that need to be considered to produce a quality product. Also explain the orthogonal relationship among the quality process dimensions.
Tell the students that the quality process helps developers to produce software products according to customer needs. It also improves productivity by minimizing the cost required to fix errors. Also tell the students that the earlier in the software development life cycle a defect is found, the less expensive it is to fix. Next, explain the checks that you need to apply to ensure the quality of software products. Organizing people, also known as team organization, is an important aspect of quality environment. You may discuss about team organization in your session. The following topic provides information on team organization. Team Organization The people who are a part of the development and quality teams are responsible for producing quality software products. Therefore, you need to organize and manage people based on their responsibilities in the software development and quality processes. This is known as team organization. The responsibilities of people can be organized in the following three spaces: Problem space Solution space Background space Problem Space In the problem space, you document and analyze the requirements to understand the problem. The problem space includes business analyst, user, end user and domain expert. A business analyst understands and documents the customer requirements using UML notations and diagrams to provide input to system designers. A user is the person who uses the software system within the business environment. For example, in case of the bank ATM system, the branch managers and cashiers of the bank are users. An end user is the person who interacts with the software system and initiates the operations of the software system. For example, in case of the bank ATM system, the bank customers are the end users. A domain expert provides input to re-factor and correct the requirements of the software system that helps the business analyst to create accurate requirements models. In the problem space, the business analyst needs to interact with the user, end user, and domain expert to understand the customer requirements, as shown in the following figure. <<<<<<<<<<INSERT FIGURE>>>>>>>>> Solution Space In the solution space, you understand and describe the solution for the problem described in the problem space. The solution space includes system designer, database designer, interface designer, programmer, prototype developer, and tester. A system designer creates a model for the solution that is implemented by the programmer. Therefore, the system designer needs to interact with the business analyst to understand the requirements. The system designer also needs to interact with the programmer to explain the design. A database designer creates database schemas with the help of UML class diagrams. An interface designer is concerned with the layout, design, and navigation of the interfaces. A tester controls and checks the quality of the code that is generated by a programmer. A prototype developer is a person who creates a prototype before the actual system is developed. In the solution space, the system designer needs to interact with the database designer, interface designer, programmer, prototype developer, and tester to create a model of the software system, as shown in the following figure. <<<<<<<<<<INSERT FIGURE>>>>>>>>> Background Space In the background space, you control the managerial and architectural aspects of software development process. The managerial aspect includes planning resources, budgeting, and scheduling the project. The architectural aspect includes understanding the architecture of the existing system and creating the architecture of the desired software system or solution. The background space includes system architect, prototype developer, database manager, project manager, business sponsor, and steering committee members. A system architect creates the architecture of the system and verifies whether or not the design developed by the system designer can be implemented in the real world. The system designer and prototype developer together examine the application servers and packages before implementing them. A database manager manages the database created by the database designer in the solution space. A project manager plans and organizes the project, obtains resources, and reports the progress of the project to the steering committee. A project manager also performs risk management. The steering committee members analyze the prototypes and output of the project to check the quality of the software product. The steering committee members include business sponsors and domain experts. A business sponsor initiates the project and tracks the progress of the project. The following figure shows the interaction between the system architect, prototype developer, database manager, project manager, business sponsor, and steering committee members of a project in background space. <<<<<<<<<<INSERT FIGURE>>>>>>>>>
Explain the role of modeling in producing quality software products. Also explain the effect of UML on the various quality aspects.
Explain the elements that are checked to verify and validate the quality of the software models. Students might get confused between quality assurance and testing or quality control. Quality assurance is not the same as quality control or testing. The goal of quality control is to: Measure the software products against pre-defined standards. Identify errors and correct them to obtain an error-free, quality product. On the contrary, quality assurance deals with overall management of quality. Management of quality includes organizing people, processes, and the physical environment. In other words, quality assurance creates and manages quality environment for developing the product. After the product is completely developed, the product is tested where quality control comes into action.
Tell the students that to understand the dimensions of a quality process, they need to create a quality process metamodel. Explain the concept of a quality process metamodel by using the example given in the student guide.
Explain the UML notations for the elements of a quality process.
Explain role, activity, task, output, and iteration.
Tell the students that developers may need to modify the software models to improve the quality of the output. The extension mechanism of UML enables developers to modify the software models without changing the existing notations.
Enumerate the extension elements of UML. Explain the use of stereotypes by using the examples given in the student guide.
Explain the use of constraints and tagged values by using the examples given in the student guide.
Explain the process and thread stereotypes provided by UML by using the examples given in the student guide. Also explain synchronization of the flow of events by using the example given in the student guide.
Explain that UML class and interaction diagrams allow you to depict active classes and objects and represent communication and synchronization among them. Next, explain the steps to model multiple flows of events in UML class and interaction diagrams.
Explain the two types of history states and how they are denoted in a UML diagram. Next, explain comments and notes in a UML diagram by using the example given in the student guide.