1.19k likes | 1.34k 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 “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
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
Phases • Inception • Elaboration • Architecture baseline • Construction • Beta release • Beta test • Transition
Iterations • Increments
Core Workflows • 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
Models • Modeling levels • High-level models • Abstract models • Full specification models
Static Use-case Implementation Deployment State machine Activity Interaction Model management Views
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
Objectives • Describe the purpose of the requirements workflow • Describe the activities of the requirements workflow • Describe the deliverables of the requirements workflow • Create a list of candidate requirements • Create a simple domain model