Basics of Software Engineering PDF

Document Details

SleekPennywhistle9069

Uploaded by SleekPennywhistle9069

SASTRA

2023

CAP207R01

R. Bala Krishnan

Tags

software engineering component-level design software basics

Summary

This document is a course handout and details the basics of software engineering and component-level design. The document is for a course titled Basics of Software Engineering offered by SASTRA.

Full Transcript

CAP207R01 Basics of Software Engineering Course : III BCA Course Contents UNIT IV (15 Hours) Design Engineering: Design Concepts Architectural Design: Software Architecture Architectural Genres, Styles, Considerations, Decisions a...

CAP207R01 Basics of Software Engineering Course : III BCA Course Contents UNIT IV (15 Hours) Design Engineering: Design Concepts Architectural Design: Software Architecture Architectural Genres, Styles, Considerations, Decisions and Design. Component-Level Design: Traditional, Object-oriented and Process related View of Components – Designing Class-based Components - Conducting Component-Level Design - Component-based Development. User Interface Design: The Golden Rules - User Interface Analysis and Design - Interface Analysis & Design Steps Design Evaluation Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 1 / 42 Basics of Software Engineering COMPONENT-LEVEL DESIGN Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 2 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 3 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 4 / 42 Basics of Software Engineering In the context of traditional software engineering, a component is a functional element of a program that incorporates processing logic, the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it. A traditional component, also called a module, resides within the software architecture and serves one of three important roles: (1) a control component that coordinates the invocation of all other problem domain components, (2) a problem domain component that implements a complete or partial function that is required by the customer, or (3) an infrastructure component that is responsible for functions that support the processing required in the problem domain. Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 5 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 6 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 7 / 42 Basics of Software Engineering When an object-oriented software engineering approach is chosen, component-level design focuses on the elaboration of problem domain specific classes and the definition and refinement of infrastructure classes contained in the requirements model. The detailed description of the attributes, operations, and interfaces used by these classes is the design detail required as a precursor to the construction activity. Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 8 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 9 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 10 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 11 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 12 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 13 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 14 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 15 / 42 Basics of Software Engineering Ambler [Amb02c] recommends that (1) lollipop representation of an interface should be used in lieu of the more formal UML box and dashed arrow approach, when diagrams grow complex; (2) for consistency, interfaces should flow from the left-hand side of the component box; (3) only those interfaces that are relevant to the component under consideration should be shown, even if other interfaces are available. Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 16 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 17 / 42 Basics of Software Engineering cohesion implies that a component or class encapsulates only attributes and operations that are closely related to one another and to the class or component itself. Lethbridge and Laganiére [Let01] define a number of different types of cohesion (listed in order of the level of the cohesion): Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 18 / 42 Basics of Software Engineering Layer cohesion Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 19 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 20 / 42 Basics of Software Engineering Class coupling can manifest itself in a variety of ways. Lethbridge and Laganiére [Let01] define a spectrum of coupling categories. For example, content coupling occurs when one component “surreptitiously modifies data that is internal to another component” [Let01]. This violates information hiding—a basic design concept. Control coupling occurs when operation A() invokes operation B() and passes a control fl ag to B. The control fl ag then “directs” logical fl ow within B. The problem with this form of coupling is that an unrelated change in B can result in the necessity to change the meaning of the control fl ag that A passes. If this is overlooked, an error will result. External coupling occurs when a component communicates or collaborates with infrastructure components (e.g., operating system functions, database capability, telecommunication functions). Although this type of coupling is necessary, it should be limited to a small number of components or classes within a system. Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 21 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 22 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 23 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 24 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 25 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 26 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 27 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 28 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 29 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 30 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 31 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 32 / 42 Basics of Software Engineering The overall approach to domain analysis is often characterized within the context of object-oriented software engineering. The steps in the process are: (1) define the domain to be investigated, (2) categorize the items extracted from the domain, (3) collect a representative sample of applications in the domain, (4) analyze each application in the sample and define analysis classes, and (5) develop a requirements model for the classes. It is important to note that domain analysis is applicable to any software engineering paradigm and may be applied for conventional as well as object-oriented development. Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 33 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 34 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 35 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 36 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 37 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 38 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 39 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 40 / 42 Basics of Software Engineering Presented by: R. Bala Krishnan; 9/28/2023 7:09:29 PM Course Code : CAP207R01; Course Name : Basics of Software Engineering; 41 / 42 Thank You 42 / 42

Use Quizgecko on...
Browser
Browser