SlideShare uma empresa Scribd logo
1 de 15
Object-Oriented Software Engineering
     Using UML, Patterns, and Java
                                 Chapter 1: Introduction
Outline of Today’s Lecture
•   The development challenge
•   Dealing with change
•   Concepts: Abstraction, Modeling, Hierarchy
•   Methodologies
•   Organizational issues
     • Lecture schedule
     • Exercise schedule
     • Associated Project




    Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   2
Can you develop this system?




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   3
Can you develop this system?




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   4
Can you develop this system?




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   5
Can you develop this system?



                                                                                   The impossible
                                                                                        Fork




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   6
Physical Model of the
impossible Fork (Shigeo Fukuda)




    See http://illusionworks.com/mod/movies/fukuda/DisappearingColumn.mov




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   7
Physical Model of the
impossible Fork (Shigeo Fukuda)




                                       Additional material can be found on
                                http://illusionworks.com/mod/movies/fukuda/
                                       Images may be subject to copyright




  Bernd Bruegge & Allen H. Dutoit        Object-Oriented Software Engineering: Using UML, Patterns, and Java   8
Why is software development difficult?
 • The problem domain (also called application
   domain) is difficult
 • The solution domain is difficult
 • The development process is difficult to manage
 • Software offers extreme flexibility
 • Software is a discrete system
    • Continuous systems have no hidden surprises
    • Discrete systems can have hidden surprises! (Parnas)

                         David Lorge Parnas is an early pioneer in
                         software engineering who developed the
                         concepts of modularity and information hiding
                         in systems which are the foundation of
                         object oriented methodologies.
   Bernd Bruegge & Allen H. Dutoit     Object-Oriented Software Engineering: Using UML, Patterns, and Java   9
Software Engineering is more than
writing Code
• Problem solving
    • Creating a solution
    • Engineering a system based on the solution
• Modeling
• Knowledge acquisition
• Rationale management




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   10
Techniques, Methodologies and Tools
• Techniques:
    • 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:
    • Instruments or automated systems to
      accomplish a technique
    • CASE = Computer Aided Software
      Engineering



  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   11
Computer Science vs. Engineering
 • Computer Scientist
     • Assumes techniques and tools have to be developed.
     • Proves theorems about algorithms, designs languages,
       defines knowledge representation schemes
     • Has infinite time…
 • Engineer
     • Develops a solution for a problem formulated by a client
     • Uses computers & languages, techniques and tools
 • Software Engineer
     • Works in multiple application domains
     • Has only 3 months...
     • …while changes occurs in the problem formulation
       (requirements) and also in the available technology.
   Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   12
Software Engineering: A Working
Definition
Software Engineering is a collection of techniques,
methodologies and tools that help with the
production of

    A high quality software system developed with a
      given budget before a given deadline
    while change occurs




  Challenge: Dealing with complexity and
                  change
  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   13
                                                                                                          20
Software Engineering:
 A Problem Solving Activity

• Analysis:
    • Understand the nature of the problem and break the
      problem into pieces
• Synthesis:
    • Put the pieces together into a large structure
For problem solving we use techniques,
  methodologies and tools.




  Bernd Bruegge & Allen H. Dutoit   Object-Oriented Software Engineering: Using UML, Patterns, and Java   14
Course Outline
Dealing with Complexity                                      Dealing with Change
  • Notations (UML, OCL)                                              • Rationale Management
  • Requirements Engineering,                                                  • Knowledge Management
    Analysis and Design                                               • Release Management
         • OOSE, SA/SD, scenario-based                                         • Big Bang vs Continuous
           design, formal specifications                                         Integration
  • Testing                                                           • Software Life Cycle
         • Vertical and horizontal testing                                     • Linear models
                                                                               • Iterative models
                                                                               • Activity-vs Entity-based
                                                                                 views


                                     Patterns

                   Application of these Concepts in the
                                 Exercises
   Bernd Bruegge & Allen H. Dutoit     Object-Oriented Software Engineering: Using UML, Patterns, and Java   15

Mais conteúdo relacionado

Mais procurados

Mais procurados (6)

Introduction to prototyping
Introduction to prototypingIntroduction to prototyping
Introduction to prototyping
 
Designing and prototyping
Designing and prototypingDesigning and prototyping
Designing and prototyping
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
Basic Engineering Design (Part 2): Researching the Need
Basic Engineering Design (Part 2): Researching the NeedBasic Engineering Design (Part 2): Researching the Need
Basic Engineering Design (Part 2): Researching the Need
 
Introduction to Prototyping: What, Why, How
Introduction to Prototyping: What, Why, HowIntroduction to Prototyping: What, Why, How
Introduction to Prototyping: What, Why, How
 
User Interface Prototyping - Low- and High-Fidelity Prototyping Today
User Interface Prototyping - Low- and High-Fidelity Prototyping TodayUser Interface Prototyping - Low- and High-Fidelity Prototyping Today
User Interface Prototyping - Low- and High-Fidelity Prototyping Today
 

Destaque

Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
Komal Singh
 
Mana3305 final project
Mana3305 final projectMana3305 final project
Mana3305 final project
Benny Chen
 
memory Interleaving and low order interleaving and high interleaving
memory Interleaving and low order interleaving and high interleavingmemory Interleaving and low order interleaving and high interleaving
memory Interleaving and low order interleaving and high interleaving
Jawwad Rafiq
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
koolkampus
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
Robert Sim
 

Destaque (11)

Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
Mana3305 final project
Mana3305 final projectMana3305 final project
Mana3305 final project
 
Soa Eai Ver1 0
Soa Eai Ver1 0Soa Eai Ver1 0
Soa Eai Ver1 0
 
OOMD2015_KSP
OOMD2015_KSPOOMD2015_KSP
OOMD2015_KSP
 
Architecture modeling with UML and Visual Studio 2010 Ultimate
Architecture modeling with UML and Visual Studio 2010 UltimateArchitecture modeling with UML and Visual Studio 2010 Ultimate
Architecture modeling with UML and Visual Studio 2010 Ultimate
 
Increase Chances to Be Hired as Software Developers - 2014
Increase Chances to Be Hired as Software Developers - 2014Increase Chances to Be Hired as Software Developers - 2014
Increase Chances to Be Hired as Software Developers - 2014
 
memory Interleaving and low order interleaving and high interleaving
memory Interleaving and low order interleaving and high interleavingmemory Interleaving and low order interleaving and high interleaving
memory Interleaving and low order interleaving and high interleaving
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 

Semelhante a OOSE Ch1 Introduction

L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.pptL14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
AronBalais1
 
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.pptL14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
AxmedMaxamuud6
 

Semelhante a OOSE Ch1 Introduction (20)

L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.pptL14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
 
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.pptL14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
L14_DesignGoalsSubsystemDecompositionc_ch06lect1.ppt
 
L35_LifecycleModeling_ch15lect1.ppt
L35_LifecycleModeling_ch15lect1.pptL35_LifecycleModeling_ch15lect1.ppt
L35_LifecycleModeling_ch15lect1.ppt
 
L35_LifecycleModeling_ch15lect1.ppt
L35_LifecycleModeling_ch15lect1.pptL35_LifecycleModeling_ch15lect1.ppt
L35_LifecycleModeling_ch15lect1.ppt
 
OOSE-UNIT-1.pptx
OOSE-UNIT-1.pptxOOSE-UNIT-1.pptx
OOSE-UNIT-1.pptx
 
Ch01lect1 ud
Ch01lect1 udCh01lect1 ud
Ch01lect1 ud
 
L30_Project_Organization_ch13lect1.ppt
L30_Project_Organization_ch13lect1.pptL30_Project_Organization_ch13lect1.ppt
L30_Project_Organization_ch13lect1.ppt
 
Software Engineering Lec 2
Software Engineering Lec 2Software Engineering Lec 2
Software Engineering Lec 2
 
Ch10lect1 ud
Ch10lect1 udCh10lect1 ud
Ch10lect1 ud
 
Ch08lect2 ud
Ch08lect2 udCh08lect2 ud
Ch08lect2 ud
 
Ch08lect1 ud
Ch08lect1 udCh08lect1 ud
Ch08lect1 ud
 
Ch06lect1 ud
Ch06lect1 udCh06lect1 ud
Ch06lect1 ud
 
3.pptx
3.pptx3.pptx
3.pptx
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptx
 
Health
HealthHealth
Health
 
Ch14lect4 (1)
Ch14lect4 (1)Ch14lect4 (1)
Ch14lect4 (1)
 
Ch05lect1 ud
Ch05lect1 udCh05lect1 ud
Ch05lect1 ud
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptx
 
Ch07lect1 ud
Ch07lect1 udCh07lect1 ud
Ch07lect1 ud
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 

Último

Último (20)

HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 

OOSE Ch1 Introduction

  • 1. Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 1: Introduction
  • 2. Outline of Today’s Lecture • The development challenge • Dealing with change • Concepts: Abstraction, Modeling, Hierarchy • Methodologies • Organizational issues • Lecture schedule • Exercise schedule • Associated Project Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
  • 3. Can you develop this system? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
  • 4. Can you develop this system? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
  • 5. Can you develop this system? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
  • 6. Can you develop this system? The impossible Fork Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
  • 7. Physical Model of the impossible Fork (Shigeo Fukuda) See http://illusionworks.com/mod/movies/fukuda/DisappearingColumn.mov Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
  • 8. Physical Model of the impossible Fork (Shigeo Fukuda) Additional material can be found on http://illusionworks.com/mod/movies/fukuda/ Images may be subject to copyright Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
  • 9. Why is software development difficult? • The problem domain (also called application domain) is difficult • The solution domain is difficult • The development process is difficult to manage • Software offers extreme flexibility • Software is a discrete system • Continuous systems have no hidden surprises • Discrete systems can have hidden surprises! (Parnas) David Lorge Parnas is an early pioneer in software engineering who developed the concepts of modularity and information hiding in systems which are the foundation of object oriented methodologies. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
  • 10. Software Engineering is more than writing Code • Problem solving • Creating a solution • Engineering a system based on the solution • Modeling • Knowledge acquisition • Rationale management Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
  • 11. Techniques, Methodologies and Tools • Techniques: • 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: • Instruments or automated systems to accomplish a technique • CASE = Computer Aided Software Engineering Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
  • 12. Computer Science vs. Engineering • Computer Scientist • Assumes techniques and tools have to be developed. • Proves theorems about algorithms, designs languages, defines knowledge representation schemes • Has infinite time… • Engineer • Develops a solution for a problem formulated by a client • Uses computers & languages, techniques and tools • Software Engineer • Works in multiple application domains • Has only 3 months... • …while changes occurs in the problem formulation (requirements) and also in the available technology. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
  • 13. Software Engineering: A Working Definition Software Engineering is a collection of techniques, methodologies and tools that help with the production of A high quality software system developed with a given budget before a given deadline while change occurs Challenge: Dealing with complexity and change Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13 20
  • 14. Software Engineering: A Problem Solving Activity • Analysis: • Understand the nature of the problem and break the problem into pieces • Synthesis: • Put the pieces together into a large structure For problem solving we use techniques, methodologies and tools. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
  • 15. Course Outline Dealing with Complexity Dealing with Change • Notations (UML, OCL) • Rationale Management • Requirements Engineering, • Knowledge Management Analysis and Design • Release Management • OOSE, SA/SD, scenario-based • Big Bang vs Continuous design, formal specifications Integration • Testing • Software Life Cycle • Vertical and horizontal testing • Linear models • Iterative models • Activity-vs Entity-based views Patterns Application of these Concepts in the Exercises Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15