1 of 29

Unit 4: Architectural Design And System Modeling

Prepared by

Er. Binod Kumar Rajbhar

Er. Binod Kumar Rajbhar

1

8/17/2023

2 of 29

SYSTEM MODELS

  • System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.
  • System modeling has generally come to mean representing the system using some kind of graphical notation, which is now almost always based on notations in the Unified Modeling Language (UML).
  • However, it is also possible to develop formal (mathematical) models of a system, usually as a detailed system specification.
  • Models are used during the requirements engineering process to help derive the requirements for a system, during the design process to describe the system to engineers implementing the system and after implementation to document the system’s structure and operation.
  • You may develop models of both the existing system and the system to be developed:

Er. Binod Kumar Rajbhar

2

8/17/2023

3 of 29

Importance Of Software Design

1. Modularity Is Of Great Convenience

  • Modularity, the first concept of software design it is.
  • It means cleaving your huge software project into small modules. It simply means splitting the software project into small pieces, small tasks called modules for the simplicity of work.
  • Splitting your critical software project into modules only makes it easier to work on every requirement of the project.

2. Maintainability Is A Plus

  • As software design is performed by creating modules, it makes the task easier to maintain.
  • Tasks like finding bugs, debugging, restructuring, and changing the functionality of specific elements in the software application become quite easy due to software design.
  • A good software design gives you the privilege of changing the appearance, functionality, etc, of the software by working on a specific module.

Er. Binod Kumar Rajbhar

3

8/17/2023

4 of 29

3. The Flow Of Functionality And Performance:

  • Software design is a reflection of the performance of the software application.
  • A good software design effectively displays the flow of functions taking place while the software is running.
  • From input to output, a software design shall show all the steps so that the performance of the software application can be analyzed.

4. Portability And Tractability

  • When it comes to making changes in the software, the elements like portability come in handy.
  • Portability in the software design gives the convenience of transferring functions from a module to another, as it can make a whole lot of changes in the functionality of software applications.

Er. Binod Kumar Rajbhar

4

8/17/2023

5 of 29

  1. Models of the existing system are used during requirements engineering. They help clarify what the existing system does and can be used as a basis for discussing its strengths and weaknesses. These then lead to requirements for the new system.
  2. Models of the new system are used during requirements engineering to help explain the proposed requirements to other system stakeholders. Engineers use these models to discuss design proposals and to document the system for implementation. In a model-driven engineering process, it is possible to generate a complete or partial system implementation from the system model.

Er. Binod Kumar Rajbhar

5

8/17/2023

6 of 29

4.1. Context Models

Er. Binod Kumar Rajbhar

6

8/17/2023

7 of 29

Er. Binod Kumar Rajbhar

7

8/17/2023

8 of 29

Er. Binod Kumar Rajbhar

8

8/17/2023

9 of 29

Er. Binod Kumar Rajbhar

9

8/17/2023

10 of 29

Er. Binod Kumar Rajbhar

10

8/17/2023

11 of 29

Er. Binod Kumar Rajbhar

11

8/17/2023

12 of 29

Er. Binod Kumar Rajbhar

12

8/17/2023

13 of 29

Er. Binod Kumar Rajbhar

13

8/17/2023

14 of 29

Er. Binod Kumar Rajbhar

14

8/17/2023

15 of 29

Er. Binod Kumar Rajbhar

15

8/17/2023

16 of 29

Figure 1: The context of the Menal Health Care-Patient Management System (MHC-PMS) [

Er. Binod Kumar Rajbhar

16

8/17/2023

17 of 29

Structural models

  • Structural models of software display the organization of a system in terms of the components that make up that system and their relationships.
  • Structural models may be static models, which show the organization of the system design, or dynamic models, which show the organization of the system when it is executing.
  • These are not the same things—the dynamic organization of a system as a set of interacting threads may be very different from a static model of the system components.
  • You create structural models of a system when you are discussing and designing the system architecture.
  • These can be models of the overall system architecture or more detailed models of the objects in the system and their relationships.

Er. Binod Kumar Rajbhar

17

8/17/2023

18 of 29

Behavioral Model

  • Overall behavior of a system can be fully understood by Behavioral model.
  • Behavioral Model is specially designed to make us understand behavior and factors that influence behavior of a System.
  • Behavior of a system is explained and represented with the help of a diagram. This diagram is known as State Transition Diagram.
  • It is a collection of states and events. It usually describes overall states that a system can have and events which are responsible for a change in state of a system.
  • So, on some occurrence of a particular event, an action is taken and what action needs to be taken is represented by State Transition Diagram.

Er. Binod Kumar Rajbhar

18

8/17/2023

19 of 29

Example :Consider an Elevator. This elevator is for n number of floors and has n number of buttons one for each floor.

  • Elevator’s working can be explained as follows :
  • Elevator buttons are type of set of buttons which is there on elevator. For reaching a particular floor you want to visit, “elevator buttons” for that particular floor is pressed. Pressing, will cause illumination and elevator will start moving towards that particular floor for which you pressed “elevator buttons”. As soon as elevator reaches that particular floor,�illumination gets canceled.
  • Floor buttons are another type of set of buttons on elevator. If a person is on a particular floor and he wants to go on another floor, then elevator button for that floor is pressed. Then, process will be same as given above. Pressing, will cause illumination and elevator to start moving, and when it reaches on desired floor, illumination gets canceled.
  • When there is no request for elevator, it remains closed on current floor.

Er. Binod Kumar Rajbhar

19

8/17/2023

20 of 29

State Transition Diagram for an elevator system is shown below –��

Er. Binod Kumar Rajbhar

20

8/17/2023

21 of 29

Advantages :

  • Behavior and working of a system can easily be understood without any effort.
  • Results are more accurate by using this model.
  • This model requires less cost for development as cost of resources can be minimal.
  • It focuses on behavior of a system rather than theories.

Disadvantages :

  • This model does not have any theory, so trainee is not able to fully understand basic principle and major concept of modeling.
  • This modeling cannot be fully automated.
  • Sometimes, it’s not easy to understand overall result.
  • Does not achieve maximum productivity due to some technical issues or any errors.

Er. Binod Kumar Rajbhar

21

8/17/2023

22 of 29

4.5 Architectural Design Decisions

Er. Binod Kumar Rajbhar

22

8/17/2023

23 of 29

Er. Binod Kumar Rajbhar

23

8/17/2023

24 of 29

Er. Binod Kumar Rajbhar

24

8/17/2023

25 of 29

Er. Binod Kumar Rajbhar

25

8/17/2023

26 of 29

  • As part of an application architecture, there will be both front-end and back-end services. Front-end development is concerned with the user experience of the app, while back-end development focuses on providing access to the data, services, and other existing systems that make the app work.
  • The architecture is a starting point or roadmap for building an application, but you’ll need to make implementation choices not captured in an architecture.
  • For example, a first step is to choose a programming language in which to write the application.
  • There are many programming languages used for software development. Certain languages may be used to build certain types of applications, such as Swift for mobile apps or JavaScript for front-end development. 

Er. Binod Kumar Rajbhar

26

8/17/2023

27 of 29

Er. Binod Kumar Rajbhar

27

8/17/2023

28 of 29

4.6 Application Architectures

  • An application architecture describes the patterns and techniques used to design and build an application.
  • The architecture gives you a roadmap and best practices to follow when building an application, so that you end up with a well-structured app.
  • Software design patterns can help you to build an application. A pattern describes a repeatable solution to a problem.
  • Patterns can be linked together to create more generic application architectures.
  • Instead of completely creating the architecture yourself, you can use existing design patterns, which also ensure that things will work the way they’re supposed to.

Er. Binod Kumar Rajbhar

28

8/17/2023

29 of 29

Service-oriented architecture

  • The service-oriented architecture (SOA) is a well-established style of software design, that is similar to the micro-services architecture style. 
  • SOA structures apps into discrete, reusable services that communicate through an enterprise service bus (ESB). 

Event-driven architecture

  • With an event-driven system, the capture, communication, processing, and persistence of events are the core structure of the solution. This differs from a traditional request-driven model.
  • An event is any significant occurrence or change in state for system hardware or software. The source of an event can be from internal or external inputs.

Er. Binod Kumar Rajbhar

29

8/17/2023