Slideshow on the notes of software engineering

erickbaldskie 20 views 41 slides Jun 17, 2024
Slide 1
Slide 1 of 41
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41

About This Presentation

SWE notes


Slide Content

CS216 Architectural Design

Architectural Design in Software Engineering Requirements of the software should be transformed into an architecture that describes the software's top-level structure and identifies its components. This is accomplished through architectural design (also called  system design),  which acts as a preliminary 'blueprint' from which software can be developed The architecture of a system describes its major components, their relationships (structures), and how they interact with each other. The architectural design is normally expressed as a block diagram presenting an overview of the system structure The  architecture  of a system describes its major components, their relationships (structures), and how they interact with each other. 

Cont ’   IEEE  defines architectural design as 'the process of defining a collection of hardware and software components and their interfaces to establish the framework for the development of a  computer  system.'   This framework is established by examining the software requirements document and designing a model for providing implementation details.

Cont ’ These details are used to specify the components of the system along with their inputs, outputs, functions, and the interaction between them. An architectural design performs the following functions:

Cont ’ 1. It defines an abstraction level at which the designers can specify the functional and performance behaviour of the system. 2. It acts as a guideline for enhancing the system (when ever required) by describing those features of the system that can be modified easily without affecting the system integrity. 3.  It evaluates all top-level designs. 

Cont ’ 4.  It develops and documents top-level design for the external and internal interfaces. 5.  It develops preliminary versions of user documentation. 6. It defines and documents preliminary test requirements and the schedule for software integration.

Cont ’ Architectural design is of crucial importance in software engineering during which the essential requirements like reliability, cost, and performance are dealt with. This task is cumbersome as the software engineering paradigm is shifting from monolithic, stand-alone, built-from-scratch systems to componentized, evolvable, standards-based, and product line-oriented systems. Also, a key challenge for designers is to know precisely how to proceed from requirements to architectural design.

Cont ’ Though the architectural design is the responsibility of developers, some other people like user representatives, systems engineers, hardware engineers, and operations personnel are also involved. All these stakeholders must also be consulted while reviewing the architectural design in order to minimize the risks and errors.

Architectural Design Representation Architectural design can be represented using the following models. Structural model:  Illustrates architecture as an ordered collection of program components Dynamic model:  Specifies the behavioral aspect of the software architecture and indicates how the structure or system configuration changes as the function changes due to change in the external environment Process model:  Focuses on the design of the business or technical process, which must be implemented in the system

Cont ’ Functional model:  Represents the functional hierarchy of a system Framework model:  Attempts to identify repeatable architectural design patterns encountered in similar types of application. This leads to an increase in the level of abstraction.

Object-oriented Architecture In object-oriented architectural style, components of a system encapsulate data and operations, which are applied to manipulate the data. In this style, components are represented as  objects  and they interact with each other through methods (connectors). This architectural style has two important characteristics, which are listed below.

Cont ’ Objects maintain the integrity of the system. An object is not aware of the representation of other objects. Some of the advantages associated with the object-oriented architecture are listed below. It allows designers to decompose a problem into a collection of independent objects. The implementation detail of objects is hidden from each other and hence, they can be changed without affecting other objects.

UML Class Diagram  UML (Unified Modeling Language) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. UML was created by the Object Management Group (OMG) and UML 1.0 specification draft was proposed to the OMG in January 1997. It was initially started to capture the behavior of complex software and non-software system and now it has become an OMG standard. This tutorial gives a complete understanding on UML

What is Class? A Class is a blueprint that is used to create Object. The Class defines what object can do. A class  is an entity that determines how an object will behave and what the object will contain. A class is a blueprint that defines the variables and the methods common to all objects of a certain kind.

What is Class Diagram? Class Diagram gives the static view of an application. A class diagram describes the types of objects in the system and the different types of relationships that exist among them. This modeling method can run with almost all Object-Oriented Methods. UML Class Diagram gives an overview of a software system by displaying classes, attributes, operations, and their relationships. This Diagram includes the class name, attributes, and operation in separate designated compartments.

Benefits Class Diagram Illustrates data models for even very complex information systems It provides an overview of how the application is structured before studying the actual code. This can easily reduce the maintenance time It helps for better understanding of general schematics of an application. Allows drawing detailed charts which highlights code required to be programmed Helpful for developers and other stakeholders.

Essential elements of A UML class diagram Essential elements of UML class diagram are: Class Name Attributes Operations

Class Name The name of the class is only needed in the graphical representation of the class. It appears in the topmost compartment. A class is the blueprint of an object which can share the same relationships, attributes, operations, & semantics. The class is rendered as a rectangle, including its name, attributes, and operations in sperate compartments.

Class Notation UML  class  is represented by the following figure. The diagram is divided into four parts. The top section is used to name the class. The second one is used to show the attributes of the class. The third section is used to describe the operations performed by the class. The fourth section is optional to show any additional components.

Object Notation The  object  is represented in the same way as the class. The only difference is the  name  which is underlined as shown in the following figure. As the object is an actual implementation of a class, which is known as the instance of a class. Hence, it has the same usage as the class.

Attributes: An attribute is named property of a class which describes the object being modeled . In the class diagram, this component is placed just below the name-compartment.

Cont ’

Cont ’ A derived attribute is computed from other attributes. For example, an age of the student can be easily computed from his/her birth date.

Cont ’

Relationships There are mainly three kinds of relationships in UML: Dependencies Generalizations Associations

Dependency A dependency means the relation between two or more classes in which a change in one may force changes in the other. However, it will always create a weaker relationship. Dependency indicates that one class depends on another. In the following example, Student has a dependency on College

Cont ’

Generalization: A generalization helps to connect a subclass to its superclass. A sub-class is inherited from its superclass. Generalization relationship can't be used to model interface implementation. Class diagram allows inheriting from multiple superclasses . In this example, the class Student is generalized from Person Class.

Cont ’

Association: This kind of relationship represents static relationships between classes A and B. For example; an employee works for an organization. Here are some rules for Association: Association is mostly verb or a verb phrase or noun or noun phrase. It should be named to indicate the role played by the class attached at the end of the association path. Mandatory for reflexive associations

Cont ;

Multiplicity A multiplicity specifies whether the association is mandatory or not. It has some lower bound and upper bound. Let's say that that there are 100 students in one college. The college can have multiple students.

Cont ’

Aggregation Aggregation is a special type of association that models a whole- part relationship between aggregate and its parts. For example, the class college is made up of one or more student. In aggregation, the contained classes are never totally dependent on the lifecycle of the container. Here, the college class will remain even if the student is not available.

Cont ’

Composition: The composition is a special type of aggregation which denotes strong ownership between two classes when one class is a part of another class. For example, if college is composed of classes student. The college could contain many students, while each student belongs to only one college. So, if college is not functioning all the students also removed.

Cont ’

Aggregation vs. Composition Aggregation Composition Aggregation indicates a relationship where the child can exist separately from their parent class. Example: Automobile (Parent) and Car (Child). So, If you delete the Automobile, the child Car still exist. Composition display relationship where the child will never exist independent of the parent. Example: House (parent) and Room (child). Rooms will never separate into a Ho