1. Trang chủ
  2. » Công Nghệ Thông Tin

UML và các quá trình phần mềm chất lượng ppt

26 205 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

UML and Quality Software Processes Chapter 11 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. This chapter explains the various dimensions of quality-related processes. It discusses how to apply UML in quality processes. In addition, it explains the extension mechanism of UML, which helps developers to modify the software models without modifying the existing notations. In this chapter, you will learn to:  Identify various dimensions of quality processes  Define extension mechanisms of UML Objectives ¤NIIT UML and Quality Software Processes 11.3 The software development process that software developers typically follow is not always adequate to produce a quality product. Therefore, in addition to the software development process, developers need to implement a quality process. The goal of quality process is to examine the quality of software models and products developed during the software development process. The quality process includes the following:  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. In other words, the activities, responsibilities, and outputs of the quality process. The software development and quality processes are together known as the quality software process, as shown in the following figure. Quality Software Process The quality process is implemented between iterations and increments of the software development process to verify whether or not the developers are following the right process for development. Introducing Quality Process Defining Quality Process 11.4 UML and Quality Software Processes ¤NIIT N ote The quality process describes what the software development process should produce, how it should produce, and people who should produce. The quality process consists of the following three dimensions that need to be considered to produce a quality product:  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. Technology, methodology, and sociology are also known as the what, how, and who dimensions of the quality process, respectively. Each preceding dimension includes a subset of the activities that are within the quality process. The activities of the dimensions occur simultaneously and the activities of one dimension affect the activities of other dimensions. In other words, the three dimensions of quality process are orthogonal to each other, as shown in the following figure. Orthogonal Relationship among Quality Process Dimensions Quality Context Triangle The quality process not only helps developers to produce software products according to customer needs, but also improves productivity by minimizing the cost required to fix errors. This is because the quality process checks the quality of output obtained after each phase of software development process. For example, if you identify an error at the design Identifying Dimensions of Quality Process ¤NIIT UML and Quality Software Processes 11.5 phase, then the cost involved in fixing the error will be less compared to the cost that is required if error is identified after the implementation phase. To ensure the quality of software products, you need to apply the following quality checks to the software development process:  Data quality: Includes verifying and correcting the input data used to test the software system.  Code quality: Includes verifying and validating the compilation, linking, and integration of code for the software system. It also includes ensuring that the logic of the code is correct.  Model or architecture quality: Includes ensuring that the model or architecture of the software system is built according to the pre-defined standards and depicts the customer requirements.  Process quality: Includes ensuring that the series of activities and tasks performed to develop software products are correct.  Management quality: Includes various tasks, such as organizing resources, forming teams, setting objectives, prioritizing scope, and controlling risks.  Quality environment: Includes tasks required to perform management quality check. In other words, the quality environment involves organizing people, planning processes, and providing appropriate implementation environment. The quality checks can be represented as layers in the quality context triangle, as shown in the following figure. Quality Context Triangle 11.6 UML and Quality Software Processes ¤NIIT 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: 2. Process quality Modeling enhances the quality of software products because it enables you to understand the existing software system and create the desired software system. In a software development process, you use UML to visualize, specify, construct, and document the software artifacts of an object-oriented design. Therefore, 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. 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. Quality by UML ¤NIIT UML and Quality Software Processes 11.7 The syntax and semantics of software models depend on each other. Therefore, if either of these changes, the other is affected. To verify the syntax of software models, you only need to have adequate knowledge about UML. In addition, to verify semantics of software models, you need to have knowledge about business. Similarly, to verify aesthetics of software models, you need to have knowledge of CASE tools and the environment in which the models are being used in addition to knowledge about UML and business. To understand the dimensions of a quality process, you need to create a quality process metamodel. A model that defines a language for representing another model is known as metamodel. For example, the metamodel for UML consists of rules that you should follow while creating UML diagrams. The quality process metamodel enables you to understand and describe the elements of a quality process that are applicable to software development process. A quality process metamodel also depicts the rules that describe how the elements of a quality process are connected and related to each other, as shown in the following figure. Quality Process Metamodel Describing Quality Process Metamodels 11.8 UML and Quality Software Processes ¤NIIT N ote The preceding figure depicts that in the quality process metamodel, the Software Engineering Process (SEP) is based on Software Development Life Cycle (SDLC) models, such as waterfall and spiral. The SEP consists of several increments and iterations. Each increment consists of one or more iterations. To create an SEP, you instantiate the process-components, which are the building blocks of the quality process. A process-component consists of activities, roles, and outputs of the quality process. The activities are further associated with tasks of the quality process. The class diagram notations of UML are used to represent the quality process metamodel. UML Notations for Elements of Quality Process The following table lists the notations for the elements of a quality process provided by UML. Notation Quality Process Element Process-component Start of process-component End of process-component Role Activity Flow of activity Task Output ¤NIIT UML and Quality Software Processes 11.9 Notation Quality Process Element Iteration Notations for the Elements of a Quality Process 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-component execute activities and tasks to produce desired output. The examples of process-components in an UML-based project can be requirements modeling, system designing, and testing. The requirements modeling process-component can include the roles of business analyst and domain experts who perform activities and tasks to capture requirements and produce SRS. The system designing process-component can include the roles of system designer and architect who perform activities and tasks to create UML diagrams. The output of the system designing process-component is the design model and document. The testing process-component includes the role of testers who perform testing activities and tasks to produce error-free, quality software product. Role A role describes the responsibilities of the people in a process. Each role should be well defined and documented to ensure that the people who perform the role clearly understand it. A set of activities and tasks are assigned to each role. For example, roles in a UML-based project can be project manager, system designer, and developer. Activity An activity describes the actions that a role performs in a process. The activities are performed in a sequence. Some activities can also be performed by more than one role, simultaneously. The people perform a sequence of tasks to complete the activity that describes their responsibility. The tasks within an activity can be completed in different iterations. For example, the activities in a UML-based project can be use case modeling, operational analysis, and test execution. Task A task is the atomic element involved in the working of a process. Each task belongs to an activity and the function of the task is to complete the activity to which it belongs. Tasks 11.10 UML and Quality Software Processes ¤NIIT Just a minute: are performed in a specific sequence. Two tasks can also be performed simultaneously. For example, the tasks in a UML-based project can be to create a class diagram, execute a prototype, and conduct research. Output The output is the final result obtained after the completion of a process. To produce desired output, people need to perform activities that execute a set of tasks. The final output is also known as a deliverable. In an UML-based project, the final output is obtained after several successive iterations. After the completion of few tasks of an activity, a partial output is obtained. Iteration The iteration element indicates the execution of a sequence of process-components with varying intensity. For example, the process-components related to requirements modeling are performed with high intensity in the first iteration, whereas the process-components related to design are performed with high intensity in the second iteration. In a small project, the duration of iterations can be two to three months, whereas in a large project, the duration can be longer. The output obtained at the end of each iteration is reviewed to produce the final output. 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: 1. Iteration [...]... software system Tailoring UML The process of modifying or extending UML using extension elements is known as tailoring UML You can tailor UML for specific application domains using the following three types of extension elements: Stereotypes: Extend the vocabulary of UML Constraints: Extend the semantics of building blocks of UML Tagged values: Extend the properties of building blocks of UML Stereotypes You... Model NIIT UML and Quality Software Processes 11.13 Understanding Extension Mechanism of UML In a quality software process, the developers may need to modify the software models to improve the quality of the output UML provides several extension mechanisms that enable developers to modify the software models without changing the existing notations In addition to the extension mechanisms, UML also provides... elements of UML diagrams Constraints can be attached to a dependency relationship, appended to a list element, or enclosed within a note in UML diagrams To represent constraints in UML diagrams, the strings are enclosed within braces For example, in a bank, if the customer’s savings account should have a minimum balance of $200, then such condition is represented by constraints in class diagrams of UML, as... designers use comments in UML diagrams to provide additional information to the programmers about a model element or a group of model elements A comment is a text string that is attached to the model element You can depict a comment in UML diagrams using a note 11.20 UML and Quality Software Processes NIIT The note can be attached to the model element using a dashed line For example, in a UML class diagram,... Tagged values: Extend the properties of building blocks of UML Stereotypes You use stereotypes to represent model elements for which UML does not have a specific notation Stereotypes enable you to distinguish between representation of two similar elements in a UML diagram 11.14 UML and Quality Software Processes NIIT For example, in a class diagram, you can use stereotypes to distinguish the representation... relationship between two elements in a UML diagram For example, a stereotype can represent the include relationship between two use cases in a use case diagram, as shown in the following figure Stereotype in Use Case Diagram NIIT UML and Quality Software Processes 11.15 Constraints Constraints represent restrictions and relationships that cannot be represented using UML notations You can use constraints... management requirements can be implemented NIIT UML and Quality Software Processes 11.11 The following table describes the dimensions of the design process component Dimensions of Process Components Name of the Dimensions of Process Components Roles Project Manager System Analyst System Designer Software Engineer Activity Analysis of SRS Create UML Diagram Validate UML Diagram Create Design Document Deliverables... element 11.16 UML and Quality Software Processes NIIT The following figure shows a tagged value that stores project management information Tagged Values in Class Diagram Modeling Additional Constructs In real world, there are several events that occur simultaneously Therefore, while modeling a software system using UML, you need to consider the concurrency and synchronization of the events UML provides... execution of the next state You can model multiple flows of events in UML class and interaction diagrams Both these diagrams allow you to depict active classes and objects and represent communication and synchronization among them 11.18 UML and Quality Software Processes NIIT The steps to model multiple flows of events in these UML diagrams are: 1 Identify the concurrent flow of events in a software... environment for the development of SAS Create UML diagram Create class diagram Create object diagram Create activity diagram Create state machine diagram Create sequence diagram Create communication diagram Create deployment diagram Create component diagram Validate UML diagram Perform walkthrough Perform formal technical review Apply forward and reverse engineering 11.12 UML and Quality Software Processes NIIT . distinguish between representation of two similar elements in a UML diagram. Understanding Extension Mechanism of UML Tailoring UML ¤NIIT UML and Quality Software Processes 11.15 For example, in. semantics of building blocks of UML  Tagged values: Extend the properties of building blocks of UML Stereotypes You use stereotypes to represent model elements for which UML does not have a specific. known as tailoring UML. You can tailor UML for specific application domains using the following three types of extension elements:  Stereotypes: Extend the vocabulary of UML  Constraints:

Ngày đăng: 12/08/2014, 18:22

TỪ KHÓA LIÊN QUAN