SlideShare a Scribd company logo
1 of 30
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

1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptxSumbalIlyas1
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overviewrmk_rrj
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxCOMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxSherinRappai1
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxCOMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptxSherinRappai
 
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 oopVaibhav 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 basicsEdwin Lapat
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overviewrmk_rrj
 
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 EngineeringAditi Abhang
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSADEED 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.pdfJayanthi Kannan MK
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
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 5Sudarshan Dhondaley
 
Structured Software Design
Structured Software DesignStructured Software Design
Structured Software DesignGiorgio Zoppi
 

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
 
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
 
Structured Software Design
Structured Software DesignStructured Software Design
Structured Software Design
 

Recently uploaded

Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxAnaBeatriceAblay2
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerunnathinaik
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxsocialsciencegdgrohi
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 

Recently uploaded (20)

Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developer
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 

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