SlideShare a Scribd company logo
Chapter 1
Introduction
1
Requirements for this Class
❖ You are proficient in a programming language,
but you have no or limited experience in analysis
or design of a system
❖ You want to learn more about the technical
aspects of Model-Driven Development in analysis
and design of complex software systems
Objectives of the Class
❖ Appreciate Software Engineering:
▪ Build complex software systems in the context of frequent
change
❖ Understand how to
▪ produce a high quality software system within time
▪ while dealing with complexity and change
❖ Acquire technical knowledge (main emphasis)
❖ Acquire managerial knowledge
Focus: Acquire Technical Knowledge
❖ Understand System Modeling
❖ Learn UML (Unified Modeling Language)
❖ Learn different modeling methods:
• Use Case modeling
• Object Modeling
• Dynamic Modeling
• Issue Modeling
❖ Learn how to use Language and Tool:
▪ OCL (Object Constraint Language)
• Tool: USE
❖ Model-Driven Software Engineering
▪ Learn how to use Design Patterns and Frameworks
Use Case Modeling – Sample UML Diagram
http://conceptdraw.com/en/products/cd5/ap_uml.php
Object Modeling – Sample UML Diagram
http://conceptdraw.com/en/products/cd5/ap_uml.php
Dynamic Modeling – Sample UML Diagram
http://conceptdraw.com/en/products/cd5/ap_uml.php
❖ Learn the basics of software project management
❖ Understand how to manage with a software
lifecycle
❖ Be able to capture software development
knowledge (Rationale Management)
❖ Manage change: Configuration Management
❖ Learn the basic methodologies
▪ Traditional software development
▪ Model-Driven methods.
Acquire Managerial Knowledge
Requirements
Software
Limitations of Non-engineered Software
Software Production has a Poor Track Record
Example: Space Shuttle Software
❖ Cost: $10 Billion, millions of dollars more than
planned
❖ Time: 3 years late
❖ Quality: First launch of Columbia was cancelled
because of a synchronization problem with the
Shuttle's 5 onboard computers.
▪ Error was traced back to a change made 2 years earlier
when a programmer changed a delay factor in an interrupt
handler from 50 to 80 milliseconds.
▪ The likelihood of the error was small enough, that the
error caused no harm during thousands of hours of testing.
❖ Substantial errors still exist.
▪ Astronauts are supplied with a book of known software
problems "Program Notes and Waivers".
Quality of today’s software….
❖ The average software product released on the market is
not error free.
…has major impact on Users
Software Engineering is more than writing code
❖ Problem solving
▪ Creating a solution
▪ Engineering a system based on the solution
❖ Modeling
❖ Knowledge acquisition
❖ Rationale management
Software Engineering: A Problem Solving
Activity
For problem solving we use
❖ Techniques (methods):
▪ Formal procedures for producing results using some well-
defined notation
❖ Methodologies:
▪ Collection of techniques applied across software
development and unified by a philosophical approach
❖ Tools:
▪ Instrument or automated systems to accomplish a
technique
20
Software Engineering: Definition
Software Engineering is a collection of techniques,
methodologies and tools that help
with the production of
❖ a high quality software system
❖ with a given budget
❖ before a given deadline
while change occurs.
Scientist vs Engineer
❖ Computer Scientist
▪ Proves theorems about algorithms, designs languages, defines
knowledge representation schemes
▪ Has infinite time…
❖ Engineer
▪ Develops a solution for an application-specific problem for a
client
▪ Uses computers & languages, tools, techniques and methods
❖ Software Engineer
▪ Works in multiple application domains
▪ Has only 3 months...
▪ …while changes occurs in requirements and available
technology
Factors affecting the quality of a software
system
❖ Complexity:
▪ The system is so complex that no single programmer can
understand it anymore
▪ The introduction of one bug fix causes another bug
❖ Change:
▪ The “Entropy” of a software system increases with each
change: Each implemented change erodes the structure of
the system which makes the next change even more
expensive (“Second Law of Software Dynamics”).
▪ As time goes on, the cost to implement a change will be too
high, and the system will then be unable to support its
intended task. This is true of all systems, independent of
their application domain or technological base.
Why are software systems so complex?
❖ The problem domain is difficult
❖ The development process is very difficult to
manage
❖ Software offers extreme flexibility
❖ Software is a discrete system
Dealing with Complexity
1. Abstraction
2. Decomposition
3. Hierarchy
1. Abstraction
❖ Inherent human limitation to deal with
complexity
▪ The 7 +- 2 phenomena
❖ Chunking: Group collection of objects
❖ Ignore unessential details: => Models
Models are used to provide abstractions
❖ System Model:
▪ Object Model: What is the structure of the system? What
are the objects and how are they related?
▪ Functional model: What are the functions of the system?
How is data flowing through the system?
▪ Dynamic model: How does the system react to external
events? How is the event flow in the system ?
❖ Task Model:
▪ PERT Chart: What are the dependencies between the
tasks?
▪ Schedule: How can this be done within the time limit?
▪ Org Chart: What are the roles in the project or
organization?
❖ Issues Model:
▪ What are the open and closed issues? What constraints
were posed by the client? What resolutions were made?
Interdependencies of the Models
System Model (Structure,
Functionality,
Dynamic Behavior)
Issue Model
(Proposals,
Arguments,
Resolutions)
Task Model
(Organization,
Activities
Schedule)
Model-based Software Engineering:
Code is a derivation of object model
Problem Statement: A stock exchange lists many companies.
Each company is identified by a ticker symbol
public class StockExchange
{
public Vector m_Company = new Vector();
};
public class Company
{
public int m_tickerSymbol
public Vector m_StockExchange = new Vector();
};
Implementation phase results in code
Analysis phase results in cbject model (UML Class Diagram):
StockExchange Company
tickerSymbol
Lists
*
*
A good software engineer writes as little code as possible
❖ A technique used to master complexity (“divide
and conquer”)
❖ Functional decomposition
▪ The system is decomposed into modules
▪ Each module is a major processing step (function) in the
application domain
▪ Modules can be decomposed into smaller modules
❖ Object-oriented decomposition
▪ The system is decomposed into classes (“objects”)
▪ Each class is a major abstraction in the application domain
▪ Classes can be decomposed into smaller classes
Which decomposition is the right one?
2. Decomposition
3. Hierarchy
❖ We got abstractions and decomposition
▪ This leads us to chunks (classes, objects) which we view
with object model
❖ Another way to deal with complexity is to provide
simple relationships between the chunks
❖ One of the most important relationships is
hierarchy
❖ 2 important hierarchies
▪ "Part of" hierarchy
▪ "Is-kind-of" hierarchy
Part of Hierarchy
Computer
I/O Devices CPU Memory
Cache ALU Program
Counter
Is-Kind-of Hierarchy (Taxonomy)
Cell
Muscle Cell Blood Cell Nerve Cell
Striate Smooth Red White Cortical Pyramidal
Software Lifecycle Activities
Subsystems
Structured By
class...
class...
class...
Source
Code
Implemented
By
Solution
Domain
Objects
Realized By
System
Design
Object
Design
Implemen-
tation
Testing
Application
Domain
Objects
Expressed in
Terms Of
Test
Cases
?
Verified
By
class....?
Requirements
Elicitation
Use Case
Model
Analysis
...and their models
Summary
❖ Software engineering is a problem solving activity
▪ Developing quality software for a complex problem within
a limited time while things are changing
❖ There are many ways to deal with complexity
▪ Modeling, decomposition, abstraction, hierarchy
▪ Issue models: Show the negotiation aspects
▪ System models: Show the technical aspects
▪ Task models: Show the project management aspects
▪ Use Patterns: Reduce complexity even further
❖ Many ways to deal with change
▪ Tailor the software lifecycle to deal with changing project
conditions
▪ Use a nonlinear software lifecycle to deal with changing
requirements or changing technology
▪ Provide configuration management to deal with changing
entities
Thank you
for your
attentions!
35

More Related Content

Similar to 01_IT4557.pptx

03_IT4557.pptx
03_IT4557.pptx03_IT4557.pptx
03_IT4557.pptx
johnmichael314688
 
1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptx
SumbalIlyas1
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
Mohammed Fazuluddin
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overview
rmk_rrj
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxCOMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
SherinRappai1
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxCOMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
SherinRappai
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
KarumuriJayasri
 
Object oriented programming 1 introduction to oop
Object oriented programming 1 introduction to oopObject oriented programming 1 introduction to oop
Object oriented programming 1 introduction to oop
Vaibhav Khanna
 
Explain the system development process and basics
Explain the system development process and basicsExplain the system development process and basics
Explain the system development process and basics
Edwin Lapat
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overview
rmk_rrj
 
Ch01lect1 ud
Ch01lect1 udCh01lect1 ud
Ch01lect1 ud
Ahmet Balkan
 
No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software Engineering
Aditi Abhang
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
SADEED AMEEN
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
Bisrat Girma
 
Year13_SystemModelsmypresentationTechnology.ppt
Year13_SystemModelsmypresentationTechnology.pptYear13_SystemModelsmypresentationTechnology.ppt
Year13_SystemModelsmypresentationTechnology.ppt
AbhishekaVidyalankar
 
SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
kirtisatpute4
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
AhmedHassanHaji1
 
Sda 1
Sda   1Sda   1
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
Sudarshan Dhondaley
 

Similar to 01_IT4557.pptx (20)

03_IT4557.pptx
03_IT4557.pptx03_IT4557.pptx
03_IT4557.pptx
 
1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptx
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overview
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxCOMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxCOMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
Object oriented programming 1 introduction to oop
Object oriented programming 1 introduction to oopObject oriented programming 1 introduction to oop
Object oriented programming 1 introduction to oop
 
Explain the system development process and basics
Explain the system development process and basicsExplain the system development process and basics
Explain the system development process and basics
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overview
 
Ch01lect1 ud
Ch01lect1 udCh01lect1 ud
Ch01lect1 ud
 
No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software Engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Year13_SystemModelsmypresentationTechnology.ppt
Year13_SystemModelsmypresentationTechnology.pptYear13_SystemModelsmypresentationTechnology.ppt
Year13_SystemModelsmypresentationTechnology.ppt
 
SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Sda 1
Sda   1Sda   1
Sda 1
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 

Recently uploaded

How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
EduSkills OECD
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
haiqairshad
 
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) CurriculumPhilippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
MJDuyan
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
Krassimira Luka
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
สมใจ จันสุกสี
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Leena Ghag-Sakpal
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
How to deliver Powerpoint Presentations.pptx
How to deliver Powerpoint  Presentations.pptxHow to deliver Powerpoint  Presentations.pptx
How to deliver Powerpoint Presentations.pptx
HajraNaeem15
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 

Recently uploaded (20)

How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
 
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) CurriculumPhilippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
Philippine Edukasyong Pantahanan at Pangkabuhayan (EPP) Curriculum
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
How to deliver Powerpoint Presentations.pptx
How to deliver Powerpoint  Presentations.pptxHow to deliver Powerpoint  Presentations.pptx
How to deliver Powerpoint Presentations.pptx
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 

01_IT4557.pptx

  • 2. Requirements for this Class ❖ You are proficient in a programming language, but you have no or limited experience in analysis or design of a system ❖ You want to learn more about the technical aspects of Model-Driven Development in analysis and design of complex software systems
  • 3. Objectives of the Class ❖ Appreciate Software Engineering: ▪ Build complex software systems in the context of frequent change ❖ Understand how to ▪ produce a high quality software system within time ▪ while dealing with complexity and change ❖ Acquire technical knowledge (main emphasis) ❖ Acquire managerial knowledge
  • 4. Focus: Acquire Technical Knowledge ❖ Understand System Modeling ❖ Learn UML (Unified Modeling Language) ❖ Learn different modeling methods: • Use Case modeling • Object Modeling • Dynamic Modeling • Issue Modeling ❖ Learn how to use Language and Tool: ▪ OCL (Object Constraint Language) • Tool: USE ❖ Model-Driven Software Engineering ▪ Learn how to use Design Patterns and Frameworks
  • 5. Use Case Modeling – Sample UML Diagram http://conceptdraw.com/en/products/cd5/ap_uml.php
  • 6. Object Modeling – Sample UML Diagram http://conceptdraw.com/en/products/cd5/ap_uml.php
  • 7. Dynamic Modeling – Sample UML Diagram http://conceptdraw.com/en/products/cd5/ap_uml.php
  • 8. ❖ Learn the basics of software project management ❖ Understand how to manage with a software lifecycle ❖ Be able to capture software development knowledge (Rationale Management) ❖ Manage change: Configuration Management ❖ Learn the basic methodologies ▪ Traditional software development ▪ Model-Driven methods. Acquire Managerial Knowledge
  • 10. Software Production has a Poor Track Record Example: Space Shuttle Software ❖ Cost: $10 Billion, millions of dollars more than planned ❖ Time: 3 years late ❖ Quality: First launch of Columbia was cancelled because of a synchronization problem with the Shuttle's 5 onboard computers. ▪ Error was traced back to a change made 2 years earlier when a programmer changed a delay factor in an interrupt handler from 50 to 80 milliseconds. ▪ The likelihood of the error was small enough, that the error caused no harm during thousands of hours of testing. ❖ Substantial errors still exist. ▪ Astronauts are supplied with a book of known software problems "Program Notes and Waivers".
  • 11. Quality of today’s software…. ❖ The average software product released on the market is not error free.
  • 13. Software Engineering is more than writing code ❖ Problem solving ▪ Creating a solution ▪ Engineering a system based on the solution ❖ Modeling ❖ Knowledge acquisition ❖ Rationale management
  • 14. Software Engineering: A Problem Solving Activity For problem solving we use ❖ Techniques (methods): ▪ Formal procedures for producing results using some well- defined notation ❖ Methodologies: ▪ Collection of techniques applied across software development and unified by a philosophical approach ❖ Tools: ▪ Instrument or automated systems to accomplish a technique
  • 15. 20 Software Engineering: Definition Software Engineering is a collection of techniques, methodologies and tools that help with the production of ❖ a high quality software system ❖ with a given budget ❖ before a given deadline while change occurs.
  • 16. Scientist vs Engineer ❖ Computer Scientist ▪ Proves theorems about algorithms, designs languages, defines knowledge representation schemes ▪ Has infinite time… ❖ Engineer ▪ Develops a solution for an application-specific problem for a client ▪ Uses computers & languages, tools, techniques and methods ❖ Software Engineer ▪ Works in multiple application domains ▪ Has only 3 months... ▪ …while changes occurs in requirements and available technology
  • 17. Factors affecting the quality of a software system ❖ Complexity: ▪ The system is so complex that no single programmer can understand it anymore ▪ The introduction of one bug fix causes another bug ❖ Change: ▪ The “Entropy” of a software system increases with each change: Each implemented change erodes the structure of the system which makes the next change even more expensive (“Second Law of Software Dynamics”). ▪ As time goes on, the cost to implement a change will be too high, and the system will then be unable to support its intended task. This is true of all systems, independent of their application domain or technological base.
  • 18. Why are software systems so complex? ❖ The problem domain is difficult ❖ The development process is very difficult to manage ❖ Software offers extreme flexibility ❖ Software is a discrete system
  • 19. Dealing with Complexity 1. Abstraction 2. Decomposition 3. Hierarchy
  • 20. 1. Abstraction ❖ Inherent human limitation to deal with complexity ▪ The 7 +- 2 phenomena ❖ Chunking: Group collection of objects ❖ Ignore unessential details: => Models
  • 21. Models are used to provide abstractions ❖ System Model: ▪ Object Model: What is the structure of the system? What are the objects and how are they related? ▪ Functional model: What are the functions of the system? How is data flowing through the system? ▪ Dynamic model: How does the system react to external events? How is the event flow in the system ? ❖ Task Model: ▪ PERT Chart: What are the dependencies between the tasks? ▪ Schedule: How can this be done within the time limit? ▪ Org Chart: What are the roles in the project or organization? ❖ Issues Model: ▪ What are the open and closed issues? What constraints were posed by the client? What resolutions were made?
  • 22. Interdependencies of the Models System Model (Structure, Functionality, Dynamic Behavior) Issue Model (Proposals, Arguments, Resolutions) Task Model (Organization, Activities Schedule)
  • 23. Model-based Software Engineering: Code is a derivation of object model Problem Statement: A stock exchange lists many companies. Each company is identified by a ticker symbol public class StockExchange { public Vector m_Company = new Vector(); }; public class Company { public int m_tickerSymbol public Vector m_StockExchange = new Vector(); }; Implementation phase results in code Analysis phase results in cbject model (UML Class Diagram): StockExchange Company tickerSymbol Lists * * A good software engineer writes as little code as possible
  • 24. ❖ A technique used to master complexity (“divide and conquer”) ❖ Functional decomposition ▪ The system is decomposed into modules ▪ Each module is a major processing step (function) in the application domain ▪ Modules can be decomposed into smaller modules ❖ Object-oriented decomposition ▪ The system is decomposed into classes (“objects”) ▪ Each class is a major abstraction in the application domain ▪ Classes can be decomposed into smaller classes Which decomposition is the right one? 2. Decomposition
  • 25. 3. Hierarchy ❖ We got abstractions and decomposition ▪ This leads us to chunks (classes, objects) which we view with object model ❖ Another way to deal with complexity is to provide simple relationships between the chunks ❖ One of the most important relationships is hierarchy ❖ 2 important hierarchies ▪ "Part of" hierarchy ▪ "Is-kind-of" hierarchy
  • 26. Part of Hierarchy Computer I/O Devices CPU Memory Cache ALU Program Counter
  • 27. Is-Kind-of Hierarchy (Taxonomy) Cell Muscle Cell Blood Cell Nerve Cell Striate Smooth Red White Cortical Pyramidal
  • 28. Software Lifecycle Activities Subsystems Structured By class... class... class... Source Code Implemented By Solution Domain Objects Realized By System Design Object Design Implemen- tation Testing Application Domain Objects Expressed in Terms Of Test Cases ? Verified By class....? Requirements Elicitation Use Case Model Analysis ...and their models
  • 29. Summary ❖ Software engineering is a problem solving activity ▪ Developing quality software for a complex problem within a limited time while things are changing ❖ There are many ways to deal with complexity ▪ Modeling, decomposition, abstraction, hierarchy ▪ Issue models: Show the negotiation aspects ▪ System models: Show the technical aspects ▪ Task models: Show the project management aspects ▪ Use Patterns: Reduce complexity even further ❖ Many ways to deal with change ▪ Tailor the software lifecycle to deal with changing project conditions ▪ Use a nonlinear software lifecycle to deal with changing requirements or changing technology ▪ Provide configuration management to deal with changing entities