0% found this document useful (0 votes)
14 views31 pages

WIA2002 Software Modeling: Assoc. Prof. Dr. Siti Hafizah Ab Hamid B-3-12, FCSIT Sitihafizah@um - Edu.my

The document outlines the importance of software modeling and the Unified Modeling Language (UML) in software engineering education. It emphasizes the need for punctuality, respect, and participation in class, while also detailing the distinctions between models and diagrams, and the benefits of UML for data science students. Additionally, it covers various software types and the evolution of software engineering techniques since its inception in the late 1960s.

Uploaded by

Caiting
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views31 pages

WIA2002 Software Modeling: Assoc. Prof. Dr. Siti Hafizah Ab Hamid B-3-12, FCSIT Sitihafizah@um - Edu.my

The document outlines the importance of software modeling and the Unified Modeling Language (UML) in software engineering education. It emphasizes the need for punctuality, respect, and participation in class, while also detailing the distinctions between models and diagrams, and the benefits of UML for data science students. Additionally, it covers various software types and the evolution of software engineering techniques since its inception in the late 1960s.

Uploaded by

Caiting
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

WIA2002

SOFTWARE MODELING
Assoc. Prof. Dr. Siti Hafizah Ab Hamid
B-3-12, FCSIT
[email protected]

www.um.edu.my Prepared by Dr. Hazrina Sofian


Tips and Ethics
• Always be punctual for classes (the overview of the topics usually in
the first 30 minutes of the class can potentially ease you in
understanding the entire lecture)

• Always respect each other

• Please provide full participation and involvement to class activities


and group work.

• Read the tutorial questions before/during lecture as you will be able


to get clearer view on the learning outcome of the lecture.

• Do the tutorial question before each tutorial session.

• Do your group project from week 3. Be bold and be creative in


modelling software to solve problems faced human kind.

• Do not refer to external materials such as youtube,


websites, etc., to answer your tutorial questions, and
assessments. They may have different school of thought
which is a particular way of thinking that not followed by
the lecturers in this faculty.
www.um.edu.my universityofmalaya unimalaya uniofmalaya
Introduction to Software Modeling

At the end of the lecture, you will be able to:


1. Understand what software engineering is and why it is important.
2. Know types of software systems
3. Know what is a model.
4. Understand the distinction between a model and a diagram.

www.um.edu.my
The world we live in..
The economies of ALL developed nations are
dependent on software.

More and more systems are


software controlled.
Software Engineering (SE) – When it is started?
Software engineering is the systematic application of engineering approaches to the
development of software.

‘Software Engineering’ was proposed Why?


in 1968 at a conference held to
discuss about ‘software crisis’ (Naur software development approaches at that
and Randell, 1969). time are: (1) not able to handle large and
complex software systems, (2) not able to
produce good software, (3) cost that were
more than expected, and (4) delay in
delivering software.

Throughout the 1970s and 1980s, a variety of


new software engineering techniques and
methods were developed, such as structured
programming, information hiding and
object-oriented development. Tools and
standard notations were developed and are
now extensively used.
Data science students can benefit from learning software modeling using the Unified
Modeling Language (UML) in several ways:
•Learning UML helps data scientists communicate effectively with software developers,
architects, and other stakeholders. This shared visual language can bridge the gap between
data science and software development teams.
•Data Integration: UML diagrams, such as class diagrams, sequence diagrams, and
component diagrams, offer insights into the architecture of software systems. Data scientists
who understand these diagrams can better grasp the software components they interact with
and make informed decisions about data integration and processing.
•When data scientists can express their requirements and expectations using UML, it
facilitates smoother collaboration and ensures that both data and software components align
with project goals.
•Data scientists can use UML diagrams to model complex data processing workflows, which
can help them identify potential bottlenecks, data transformations, and optimization
opportunities.
•Systematic Thinking: Learning UML encourages systematic thinking and helps students
break down complex software systems into manageable components and relationships. This
skill can be valuable when designing data pipelines and analytics workflows.
•Critical Thinking: UML requires abstract thinking and the ability to represent complex ideas in
a structured manner. These skills can enhance a data scientist's ability to approach data-related
challenges critically and methodically.
In summary, learning UML and software modeling can empower data science students with
valuable skills and perspectives that can benefit their careers, facilitate collaboration with
software development teams, and enhance their problem-solving abilities in the context of data-
intensive applications.
Software Engineering Vs Computer
Science
Computer science focuses on theory and fundamentals.

Computer Science Customer/Human


/Organisation

Theory of Algorithms and Data


Computation Data Structure Communication Problems
& Networking

Software engineering is concerned with


Software the practicalities of developing and
Engineering delivering various software types that
can support customer/business needs.
Software Types
• Stand-alone applications
• application systems that run on a local computer, such as a PC.
• includes all necessary functionality and do not need to be connected to a
network.

• Interactive transaction-based applications


• applications that execute on a remote computer and are accessed by users from
their own PCs or terminals.
• includes web applications such as e-commerce applications.

• Embedded control systems


• software control systems that control and manage hardware devices.
• there are probably more embedded systems than any other type of system.

• Batch processing systems


• business systems that are designed to process data in large batches.
• process large numbers of individual inputs to create corresponding outputs.
Where is Software Modelling in our life?

OSTENWALDER A, PIGNEUR Y. and


TUCCI CL (2005), Clarifying
Business Models: Origins, Present,
and Future of the
Concept . Communications of the
Association for Information Systems
(AIS), volume 15, Las Vegas, NV,
USA.

Systems Development Systems


Project Management Development Software Modelling
https://www.professionaldevelopment. Roles Software Engineering
ie/changes-in-pmbok-guide-sixth-
edition
A: Know what is model

What is Model?
• An abstract representation of something real.
• A useful model has the right level of detail and represents only what is
important for the task in hand.

Map is an
example of a Do you see any
model that street lights in
represents
roads / area
https://www.google.com/maps/search/map/@3.1
233803,101.6409638,14z/data=!3m1!4b1
google map?
of land / city. Why?

• Many other things can be modelled: bridges, buildings, economic policy,


software, and etc.
Example of Model
Bridge Model

https://www.researchgate.net/figure/The-suspension-bridge-model-a-side-view-
of-the-bridge-half-bridge-and-b-front-view_fig9_264148336

1. Is this a real bridge?


2. Who perform the bridge modelling and who implement it
to make a real bridge? 12
Example of Model (continues…)
Building Model

https://www.permagrit.com/model-building/

Who performs the building modelling and


who implements it to make a real house? 13
Software Types (continues)
• Entertainment systems
• systems that are primarily for personal use and which are intended to entertain
the user.

• Systems for modelling and simulation


• systems that are developed by scientists and engineers to model physical
processes or situations, which include many, separate, interacting objects.

• Data collection systems


• systems that collect data from their environment using a set of sensors and
send that data to other systems for processing.

• Systems of systems
• systems that are composed of a number of other software systems.
Example of Model (continues…)
Software Development Methodology Software Model
It is about activities to produce a system It is about representing a system using some
kind of graphical notation
Waterfall
Project Initialization 1. UML Behavioral Modelling
Business Modelling
(Week 2, 3, 6, 7, 8, 9, 10, 11)
shows how the system responds to events in the
Requirements gathering outside world and the passage of time.

Requirements Analysis 2. UML Structural Modelling


(Week 4, 5)
System Design depict the elements of a system that are independent
of time and that convey the concepts of a system and
how they relate to each other.
Implementation

Test
Who performs the
Deployment
software modelling and
Maintenance who implements it to
make a real software?
https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/structuraldiagrams.ht
ml 15
https://www.dreamstime.com/stock-illustration-d-man-holding-magnifying-glass-over-
white-background-image42959312
Why do we want to use Model
for Software Modelling?
Models can describe Different models
requirements present the
accurately, software from
System Analysis completely and Different Perspective different
and Design
unambiguously. Illustration perspective

Models can evolve as Models are


stakeholders understand quicker to build
more about the software and easier to
Evolvable to be developed. change compare
Quick and Easy
to the real
software.

Models can be used to


discuss requirements from Models can
Reference for stakeholders that always illustrate complex
Communication have different views. Complex business needs.
Illustration
Why do we want to use Model
for Software Modelling?

Different models present different views of the


system, for example:
use case view
design view
process view Different Perspective
implementation view Illustration
deployment view
(Booch et al., 1999)
Why do we want to use Model
for Software Modelling?

During the life cycle of a project using an iterative life cycle, models
change along the dimensions of:
abstraction—they become more concrete.
formality—they become more formally specified.
Evolvable level of detail—additional detail is added as understanding
improves.
What is UML Model?
Overview

Software developers elicit user requirements from stakeholders. Then, software


developers analyse and design the software using semantic models such as Unified
Modeling Language (UML).

System analysis using UML diagrams able to eliminate ambiguity in requirements and
automate design verification (Khan, A. M., Mallet, F., & Rashid, M., 2019). Moreover,
UML diagrams are helpful to understand problems, communicate with application
experts and prepare documentation (Joshi, S. D., & Deshpande, D., 2012).
What is UML Model?
Unified Modeling Language is a standardized modeling language consisting of an
integrated set of diagrams. UML uses mostly graphical notations to express the
design of software projects.

SYSTEM ANALYST / BUSINESS


ANALYST TEAM
DEVELOPMENT
- Develop UML Models
TECHNICAL TEAM
TECHNICAL TEAM
- Develop Technical
Design and
programming based
on the UML Models One Real
Software Models Software/Syste
m
https://www.123rf.com/photo_32307356_creative-abstract-computer-web-applications-software-and-
NOTE: The name of the roles varies depending on organization and project size. In some internet-business-communication-technology-.html

organization, software engineer involves in developing UML diagrams and programming. http://www.appsgare.com/computer-application-software-types-and-functioning-of-utility-software/
Please discuss why can’t developers just sit
down and start writing code when they develop
a system.
B: Understand the distinction between a model and a diagram

What is Diagram?
• Abstract symbols/signs/notations are used to represent things or actions
from the real world.
Washing Symbols Road Signs Software Modelling Notations

• Diagrams follow rules or standards.

• The standards make sure that different


Share 1 universal symbol/sign/notation that
most people will interpret it in the same way. people will interpret the diagram in the
same way.
UML Diagrams
UML Diagrams can be categorised into 2 UML Modelling

UML Behavioral Modelling UML Structural Modelling


Next, lets understand
Object-Oriented

how Activity Diagram


and Use Case Diagram
Modelling

which are under UML


Behavioral Modelling
relate to each other.

Data Flow Diagram Entity Relationship Diagram


Non Object-

Modelling
Oriented

Covered in this course


UML Diagrams
UML Diagrams can be categorised into 2 UML Modelling

UML Behavioral Modelling UML Structural Modelling


Next, lets understand
Object-Oriented

how Activity Diagram


and Use Case Diagram
Modelling

which are under UML


Behavioral Modelling
relate to each other.

Data Flow Diagram Entity Relationship Diagram


Non Object-

Modelling
Oriented

Covered in this course


Example of UML Behavioral Modelling
UML Use Case Diagram

This is an UML Use Case Diagram for


Time and Attendance Management
System. It is used to analyse the
system’s high-level requirements.
(Details of this diagram will be discussed
in Week 3 and Week 4).

In this example, there are 8 use cases


(In UML, it is not compulsory to write UC-
1 to UC-8)

Lets understand how UML Use Case


Diagram and UML Activity Diagram
relate to each other.
Example of UML Behavioral Modelling
UML Activity Diagram

This is an UML Activity Diagram for


UC-2 Clock In.
It is used to describe the flow of
different activities and actions.
(Details of this diagram will be discussed
in Week 8).

In this example, there are 4 activities.


2.1 – 2.4. (In UML, it is not compulsory to
write the numbering 2.1 to 2.4)

So this is one example of how UML


Use Case Diagram and UML Activity
Diagram relate to each other.
Please download Tutorial 1 - Re-draw UML
Use Case Diagram and UML Activity Diagram
using *Visual Paradigm, Draw IO, or Lucid
Chart.

* You can download Free Visual Paradigm Community Edition for FREE at:
https://www.visual-paradigm.com/download/community.jsp
What is the different between model and
diagram?
• A diagram illustrates some aspect of a
system while a model provides a
complete view of a system at a
particular stage and from a particular
perspective.

• A model may consist of a single


diagram, but most consist of many
related diagrams and supporting data
(i.e, requirements list, glossary) and
documentation.

Thus, one of the outcome of this course, which is the


UML models for a software should not only has
diagrams.
Relationship between System, Sub-System,
Model, Package and Diagram
UML has notation for showing system, subsystems, models, and packages as a mechanism for
organising models.

Package Diagrams
Model
• A model is an abstraction of a system or subsystem from a particular perspective.
• A model is complete and consistent at the chosen level of abstraction.
• Requirements Model is complete view of requirements.
🡪 may include textual description, other models, package, diagrams, etc.
System / Sub-system
• A system is the overall thing that is being modelled.
• A subsystem is a part of a system consisting of related elements.
References

• Alan Dennis, Barbara Haley Wixom & David Tegarden. 2020.


Systems Analysis and Design with UML, 6th edition, Wiley.
• Khan, A. M., Mallet, F., & Rashid, M. (2019). A framework to specify
system requirements using natural interpretation of UML/MARTE
diagrams. Software & Systems Modeling, 18(1), 11-37.
• Joshi, S. D., & Deshpande, D. (2012). Textual requirement analysis
for UML diagram extraction by using NLP. International journal of
computer applications, 50(8), 42-46.
• Websites, youtube as described in the respective slides.
• Booch, Rumbaugh and Jacobson (1999)
• Bennett, Skelton and Lunn (2005)
• Coad and Yourdon (1990)
• Booch (1994)
• OMG (2009)
Any Question
???
WHAT WHY WHERE WHEN WHO HOW

You might also like