1 / 138

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering. Objectives. Define object technology and identify its place in the evolution of software engineering

Download Presentation

Object-Oriented Analysis and Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object-Oriented Analysis and Design

  2. Lesson 1:Introduction toSoftware Engineering

  3. Objectives • Define object technology and identify its place in the evolution of software engineering • Describe the differences between a structured approach and an object-oriented approach to software development • Identify the advantages and disadvantages of an object-oriented approach to software development • Discuss the need for analysis and design

  4. Evolution ofSoftware Engineering • Data flow • Programming languages • Software systems • Analysis and design methodologies

  5. Object Technology • Objects maintain properties about their state

  6. Advantages of anObject-Oriented Approach • Maintainable • Reusable • Scalable

  7. Analysisand Design • Unified Software Development Process • Software crisis

  8. Summary • Define object technology and identify its place in the evolution of software engineering • Describe the differences between a structured approach and an object-oriented approach to software development • Identify the advantages and disadvantages of an object-oriented approach to software development • Discuss the need for analysis and design

  9. Lesson 2:Understanding the Object Paradigm

  10. Objectives • Explain the difference between classes and instances • Identify the benefits of abstraction and encapsulation • Define a simple object model using the “has a” and “uses a” relationships • Describe Jacobson’s application object types

  11. Classes Classes Instantiation Objects

  12. Encapsulation • Methods • Accessors • Mutators

  13. Abstraction • Used to manage complexity

  14. ObjectRelationships • “has a” • “uses a”

  15. Application Objects • Entity objects • Interface objects • Control objects

  16. Summary • Explain the difference between classes and instances • Identify the benefits of abstraction and encapsulation • Define a simple object model using the “has a” and “uses a” relationships • Describe Jacobson’s application object types

  17. Lesson 3:Inheritanceand Polymorphism

  18. Objectives • Identify the benefits of inheritance • Identify the benefits of polymorphism • Define abstract classes • Identify the benefits of multiple inheritance

  19. Inheritance • Inheritance  the “is a” relationship • Superclasses • Inheriting attributes • Subclasses • Inheriting methods • Extending components with inheritance

  20. Polymorphism • The ability of subclasses to override methods defined in classes that are higher in the class hierarchy

  21. Abstract Classes • Declare methods without providing implementation

  22. MultipleInheritance • Inheritance from two or more superclasses

  23. Subtypingvs. Subclassing • Subtyping • Creating a subtype, which is a data type that provides the same interface as a supertype • Subclassing • Process by which a new class is created that shares the implementation of a superclass

  24. Summary • Identify the benefits of inheritance • Identify the benefits of polymorphism • Define abstract classes • Identify the benefits of multiple inheritance

  25. Lesson 4:Software Development Life Cycle

  26. Objectives • Define software development life cycle • Describe the Waterfall life cycle model • Describe the V-Shaped life cycle model • Describe the Incremental life cycle model • Describe the Spiral life cycle model

  27. Software DevelopmentLife Cycle Model • Requirements gathering • Design • Implementation • Testing

  28. WaterfallLife Cycle Model • Classic, or linear-sequential, life cycle model • Characterized by a series of discrete phases that must be completed in a linear sequential order

  29. V-ShapedLife Cycle Model • Adds emphasis to testing

  30. IncrementalLife Cycle Model • Evolutionary • A working version of the software is created by the end of the first iteration, and subsequent iterations build on the work of earlier iterations

  31. SpiralLife Cycle Model • Incorporates risk analysis • Divided into four phases • Planning • Risk analysis • Engineering • Evaluation

  32. Summary • Define software development life cycle • Describe the Waterfall life cycle model • Describe the V-Shaped life cycle model • Describe the Incremental life cycle model • Describe the Spiral life cycle model

  33. Lesson 5:The Unified SoftwareDevelopment Process

  34. Objectives • Describe the Unified Process • Identify the phases of the Unified Process • Identify the core workflows of the Unified Process

  35. The Unified Process • Use-case driven • Architecture-centric • Iterative and incremental

  36. Life Cycle ofthe Unified Process • Cycles • Single cycle

  37. UnifiedProcess Phases • Inception • Elaboration • Architecture baseline • Construction • Beta release • Beta test • Transition

  38. UnifiedProcess Iterations • Increments

  39. Core Workflowsof the Unified Process • Requirements • Analysis • Design • Implementation • Test

  40. Summary • Describe the Unified Process • Identify the phases of the Unified Process • Identify the core workflows of the Unified Process

  41. Lesson 6:UnifiedModeling Language

  42. Objectives • Describe the history of the UML • Describe the purpose of a modeling language • Describe the purpose of models • Identify UML views

  43. UMLModels • Modeling levels • High-level models • Abstract models • Full specification models

  44. Static Use-case Implementation Deployment State machine Activity Interaction Model management UMLViews

  45. Summary • Describe the history of the UML • Describe the purpose of a modeling language • Describe the purpose of models • Identify UML views

  46. Lesson 7:Computer-AidedSoftware Engineering

  47. Objectives • Identify the role of CASE tools in the software development process • Identify the criteria for selecting a CASE tool • Identify the benefits and limitations of CASE tools • Install and use Argo/UML

  48. Selecting a CASE Tool • Methodology • Flexibility • Collaboration • Diagram validation

  49. Summary • Identify the role of CASE tools in the software development process • Identify the criteria for selecting a CASE tool • Identify the benefits and limitations of CASE tools • Install and use Argo/UML

  50. Lesson 8:The Requirements Workflow

More Related