1.47k likes | 1.7k Views
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
E N D
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
Evolution ofSoftware Engineering • Data flow • Programming languages • Software systems • Analysis and design methodologies
Object Technology • Objects maintain properties about their state
Advantages of anObject-Oriented Approach • Maintainable • Reusable • Scalable
Analysisand Design • Unified Software Development Process • Software crisis
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
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
Classes Classes Instantiation Objects
Encapsulation • Methods • Accessors • Mutators
Abstraction • Used to manage complexity
ObjectRelationships • “has a” • “uses a”
Application Objects • Entity objects • Interface objects • Control objects
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
Objectives • Identify the benefits of inheritance • Identify the benefits of polymorphism • Define abstract classes • Identify the benefits of multiple inheritance
Inheritance • Inheritance the “is a” relationship • Superclasses • Inheriting attributes • Subclasses • Inheriting methods • Extending components with inheritance
Polymorphism • The ability of subclasses to override methods defined in classes that are higher in the class hierarchy
Abstract Classes • Declare methods without providing implementation
MultipleInheritance • Inheritance from two or more superclasses
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
Summary • Identify the benefits of inheritance • Identify the benefits of polymorphism • Define abstract classes • Identify the benefits of multiple inheritance
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
Software DevelopmentLife Cycle Model • Requirements gathering • Design • Implementation • Testing
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
V-ShapedLife Cycle Model • Adds emphasis to testing
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
SpiralLife Cycle Model • Incorporates risk analysis • Divided into four phases • Planning • Risk analysis • Engineering • Evaluation
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
Objectives • Describe the Unified Process • Identify the phases of the Unified Process • Identify the core workflows of the Unified Process
The Unified Process • Use-case driven • Architecture-centric • Iterative and incremental
Life Cycle ofthe Unified Process • Cycles • Single cycle
UnifiedProcess Phases • Inception • Elaboration • Architecture baseline • Construction • Beta release • Beta test • Transition
UnifiedProcess Iterations • Increments
Core Workflowsof the Unified Process • Requirements • Analysis • Design • Implementation • Test
Summary • Describe the Unified Process • Identify the phases of the Unified Process • Identify the core workflows of the Unified Process
Objectives • Describe the history of the UML • Describe the purpose of a modeling language • Describe the purpose of models • Identify UML views
UMLModels • Modeling levels • High-level models • Abstract models • Full specification models
Static Use-case Implementation Deployment State machine Activity Interaction Model management UMLViews
Summary • Describe the history of the UML • Describe the purpose of a modeling language • Describe the purpose of models • Identify UML views
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
Selecting a CASE Tool • Methodology • Flexibility • Collaboration • Diagram validation
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