Object-Oriented Development with Unified Process

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which of the following best describes the primary goal of the Systems Development Life Cycle (SDLC)?

  • To build, deploy, use, and update an information system. (correct)
  • To manage a project's budget and resources.
  • To create documentation for an existing information system.
  • To train users on new software applications.

In the context of SDLC, what is the key difference between a predictive approach and an adaptive approach?

  • Predictive approaches plan the project entirely in advance, while adaptive approaches allow for contingencies. (correct)
  • Predictive approaches use more resources than adaptive approaches.
  • Adaptive approaches are used for smaller projects, while predictive approaches are used for larger projects.
  • Predictive approaches involve more user interaction than adaptive approaches.

What is a key characteristic of the pure waterfall approach to SDLC?

  • It assumes project phases can be executed sequentially with no going back. (correct)
  • It allows for overlapping of project phases to expedite delivery.
  • It involves iterative cycles where phases are revisited based on feedback.
  • It emphasizes continuous user involvement throughout the project.

In the context of the Waterfall model, what does it mean for a phase's specifications to be 'frozen'?

<p>The defined specifications must be followed without modification in subsequent phases. (A)</p> Signup and view all the answers

How does the modified waterfall approach differ from the pure waterfall approach?

<p>It recognizes the potential for phase overlap. (D)</p> Signup and view all the answers

What role do prototypes play in the spiral model?

<p>Prototypes are artifacts of each phase, used for risk assessment and user feedback. (C)</p> Signup and view all the answers

Which of the following is the BEST definition of the Unified Process (UP)?

<p>A system development methodology that combines proven best practices with iterative development. (C)</p> Signup and view all the answers

Which of the following is NOT one of the four phases of the Unified Process (UP) life cycle?

<p>Validation (B)</p> Signup and view all the answers

What is the primary focus of the Elaboration phase in the Unified Process (UP)?

<p>To define requirements and establish the core system architecture. (A)</p> Signup and view all the answers

In the Unified Process, what is meant by the term 'iterations'?

<p>Complete, self-contained mini-projects within each phase. (D)</p> Signup and view all the answers

Which of the following is the most accurate definition of a system development methodology?

<p>A set of guidelines and techniques used to develop and maintain software. (D)</p> Signup and view all the answers

What is the purpose of models in system development?

<p>To abstract and represent different aspects of the real world related to the system. (D)</p> Signup and view all the answers

Which of the following is the best description of a 'tool' in the context of system development?

<p>Software used to create models or components of the system. (D)</p> Signup and view all the answers

What is a 'Technique' in system development?

<p>A collection of guidelines that assists an analyst in completing a task. (D)</p> Signup and view all the answers

How should the Unified Process (UP) be applied in different organizational contexts?

<p>It should be adapted to suit the specific needs of the organization and project. (D)</p> Signup and view all the answers

What is the role of 'Use Cases' in the Unified Process (UP)?

<p>To describe the activities that the system carries out, serving as the basis for defining requirements and designs. (A)</p> Signup and view all the answers

In the context of the Unified Process (UP), what is a 'discipline'?

<p>A set of functionally related activities. (A)</p> Signup and view all the answers

Which of the following activities typically produces models, documents, source code, and executables?

<p>Applying disciplines (D)</p> Signup and view all the answers

In UP, the six core development disciplines include Business Modeling, Requirements, Design, Implementation, Testing and what other?

<p>Deployment (B)</p> Signup and view all the answers

Besides the six core UP development disciplines, what other disciplines exist?

<p>Three additional support disciplines. (B)</p> Signup and view all the answers

Among the support disciplines in UP, which one is considered the most important?

<p>Project Management (C)</p> Signup and view all the answers

Which of the following best describes the focus of the Configuration and Change Management discipline?

<p>Controlling and managing artifacts of the evolving system. (D)</p> Signup and view all the answers

What aspect of system development does the 'Environment' discipline primarily address?

<p>The processes and tools that support the development effort. (C)</p> Signup and view all the answers

What is the central concept in the object-oriented approach?

<p>Objects (A)</p> Signup and view all the answers

What does Object-Oriented Design (OOD) primarily focus on?

<p>Defining how objects communicate and interact to complete tasks. (D)</p> Signup and view all the answers

Which of the following is the focus of Object-Oriented Programming (OOP)?

<p>Object Coding (B)</p> Signup and view all the answers

Why is 'naturalness' considered a benefit of using object-oriented approaches?

<p>Because it closely mirrors human perception and organization of the real world. (A)</p> Signup and view all the answers

Which of the following contributes most to the reusability of classes in object-oriented development?

<p>Their adaptability for use in systems where similar objects are needed. (D)</p> Signup and view all the answers

In object-oriented terms, what is an 'object'?

<p>A thing with attributes and behaviors (C)</p> Signup and view all the answers

What is the relationship between a class and an object?

<p>An object is an instance of a class. (A)</p> Signup and view all the answers

Which of the following is NOT one of the core object-oriented concepts?

<p>Decomposition (C)</p> Signup and view all the answers

Which term refers to combining attributes and methods into a single unit?

<p>Encapsulation (C)</p> Signup and view all the answers

Which of these is the best simple explanation of 'Information Hiding' in Object-Oriented programming?

<p>Concealing internal processes from external actions. (B)</p> Signup and view all the answers

Within the context of object-oriented programming, what does the term 'inheritance' refer to?

<p>The ability of a class to derive characteristics from another class. (D)</p> Signup and view all the answers

Which term describes the ability of different objects to respond to the same message in their own specific way?

<p>Polymorphism (B)</p> Signup and view all the answers

In object-oriented programming, association is one kind of what?

<p>Relationship between classes (A)</p> Signup and view all the answers

What is CASE, in software development?

<p>Computer-Aided Software Engineering (D)</p> Signup and view all the answers

What is the primary role of a CASE tool repository?

<p>To store and manage all information about the system. (D)</p> Signup and view all the answers

Which of the following best describes 'round-trip engineering'?

<p>Synchronizing graphical models with generated program code. (A)</p> Signup and view all the answers

Explain the theoretical consequence of using an abstract class within an information system program?

<p>Abstract classes define a structure that must be implemented by child classes, but they can not be directly instantiated. (B)</p> Signup and view all the answers

Flashcards

What is SDLC?

SDLC is the process of building, deploying, using, and updating an information system.

What is Predictive SDLC?

A predictive SDLC approach involves planning the project entirely in advance.

What is Adaptive SDLC?

An adaptive SDLC approach involves planning that leaves room for contingencies.

What is Waterfall Model?

The waterfall model specifies a set of sequential phases for software development where each step needs to be completed and documented before the next step can begin.

Signup and view all the flashcards

What is Spiral Model?

The spiral model is a risk-oriented lifecycle model that breaks a software project up into mini-projects.

Signup and view all the flashcards

What is UP life cycle?

The UP life cycle includes four phases: Inception, Elaboration, Construction, and Transition, which consist of iterations.

Signup and view all the flashcards

What is Inception?

Inception is the initial phase of the UP life cycle, focusing on developing and refining the system vision.

Signup and view all the flashcards

What is Elaboration?

Elaboration is the second phase of the UP life cycle, which defines requirements and core architecture.

Signup and view all the flashcards

What is Construction?

Construction is the the third phase of the UP life cycle, which continues the design and implementation phases.

Signup and view all the flashcards

What is Transition?

Transition is the fourth phase of the UP life cycle which involves moving the system into operational mode.

Signup and view all the flashcards

What is system development methodology?

A system development methodology provides guidelines for every activity in system development and includes specific models, tools, and techniques.

Signup and view all the flashcards

What are Models?

Models abstract (separate) aspects of the real world and can come in many forms such as physical analogs, mathematical, or graphical.

Signup and view all the flashcards

Give some examples of models?

Models used to manage development process include PERT charts, Gantt charts, organization hierarchy charts, and financial analysis models.

Signup and view all the flashcards

What are tools?

Tools are software used to create models or components like project management software, IDEs, code generators or CASE.

Signup and view all the flashcards

What are techniques?

Techniques are a collection of guidelines that enable an analyst to complete an activity or task such as domain-modeling, use case modeling, software testing, or user-interviewing.

Signup and view all the flashcards

What is Use case?

A Use case describes an activity that the system carries out and is the basis for defining requirements and designs.

Signup and view all the flashcards

What is Discipline?

Discipline: set of functionally related activities

Signup and view all the flashcards

What are UP development disciplines?

The six main UP development disciplines are business modeling, requirements, design, implementation, testing, and deployment.

Signup and view all the flashcards

What are UP support disciplines?

The three additional support disciplines are project management, configuration and change management, and environment.

Signup and view all the flashcards

What is Project management?

Project Management is the most important support discipline that is involved in managing the project.

Signup and view all the flashcards

What is Environment?

Environment involves supporting the development process with processes and tools.

Signup and view all the flashcards

What is OOA?

Object Oriented Analysis views system as a collection of objects.

Signup and view all the flashcards

What do OOA, OOD, and OOP do?

OOA, OOD, and OOP imitate perceptual processes by modeling classes of objects.

Signup and view all the flashcards

What is OOD?

Object-oriented design (OOD) defines additional types of communication objects, shows how the objects interact to complete tasks and refines definition of objects for implementation

Signup and view all the flashcards

What is OOP?

Object-oriented programming (OOP): object coding

Signup and view all the flashcards

What is Object?

An Object is an entity capable of responding to messages.

Signup and view all the flashcards

Advantage of using classes?

Classes of objects have a long shelflife because they can be reused in systems where customer objects needed, extended through inheritance to a new subclass, or reused during analysis, design, or programming.

Signup and view all the flashcards

What is Class?

A Class defines what all objects of class represent.

Signup and view all the flashcards

What is Customer object?

Customer object is an instance of a customer class

Signup and view all the flashcards

What is the means for Objects?

Objects interact through messages

Signup and view all the flashcards

What do objects retain?

Objects retain memory of transactions

Signup and view all the flashcards

What are concrete classes?

Classes that can be instantiated into actual (real or virtual) objects are called concrete classes.

Signup and view all the flashcards

What is method?

A method is a procedure that implements the operation.

Signup and view all the flashcards

What do objects maintain?

Objects maintain association relationships

Signup and view all the flashcards

What is Encapsulation?

Encapsulation: combining attributes and methods into one unit

Signup and view all the flashcards

What is Information Hiding?

Information Hiding involves data and processes within one single unit.

Signup and view all the flashcards

What is Inheritance?

Inheritance: extending the characteristics of a class

Signup and view all the flashcards

What is Polymorphism?

Polymorphism is the ability for dissimilar objects to respond to the same message

Signup and view all the flashcards

What is Computer Aided System Engineering (CASE)?

CASE (Computer Aided System Engineering) are automation tools that simplify development tasks.

Signup and view all the flashcards

Study Notes

Object-Oriented Development and the Unified Process

  • The chapter introduces object-oriented analysis and design with the Unified Process.

Objectives

  • Understand the traditional systems development life cycle (SDLC) and its phases.
  • Learn when to use an adaptive SDLC approach instead of a predictive one.
  • Explore how the adaptive Unified Process (UP) life cycle uses iterative and incremental development.
  • Understand the differences between models, tools, techniques, and methodologies.
  • See the Unified Process as a comprehensive system development methodology that combines proven best practices with the iterative UP life cycle.
  • Learn the disciplines used in a UP development project.
  • Identify the key features of the object-oriented approach.
  • Learn how automated tools are used in system development.

Overview

  • Traditional Systems Development Life Cycle
  • Unified Process: An iterative, incremental, and adaptive approach to the life cycle.
  • The UP has nine disciplines: six for the system development, and three for support.
  • Object-Oriented concepts are reviewed
  • Computer support tools like CASE are used
  • Application of UP to the development project of RMO

The Systems Development Life Cycle

  • SDLC is a process to build, deploy, and update information systems.
  • The focus is on the initial development project.
  • There are two chief variations of SDLC, predictive and adaptive.
  • Predictive approach involves planning the entire project in advance.
  • Adaptive approach involves planning that will leave room for contingencies.
  • Pure approaches to SDLC are rare, and most projects have predictive and adaptive elements.
  • The appropriate SDLC varies depending on the project.
  • Predictive SDLC is best when requirements are well understood, and there is a low technical risk.
  • Adaptive SDLC is best when requirements and needs are uncertain, and there is a high technical risk.

Traditional Predictive SDLC Approaches

  • Project consists of activities or phases: planning, analysis, design, implementation, and support.
  • Pure waterfall approach (predictive SDLC) is a project where phases are executed sequentially.
  • In the waterfall approach, the project drops over into the next phase and there is no going back.
  • Modified waterfall approach tempers the pure waterfall approach by recognizing phase overlap.
  • The modified waterfall approach informs many current projects and company systems.
  • The Waterfall model specifies sequential phases for software development.
  • The waterfall model is document-driven where each step cannot begin until the previous step has been completed and documented.
  • Design in the waterfall model is conceived as processes and data, not as objects.

Adaptive Approaches to the SDLC

  • The spiral model is an early form of the adaptive SDLC.
  • In the spiral model, activities radiate from the center starting point.
  • Prototypes are artifacts of each phase.
  • Iterative problem solving involves repeating activities.
  • The are several approaches to structuring iterations:
    • Define and implement the key system functions.
    • Focus on one subsystem at a time.
    • Define by complexity or risk of certain components.
    • Complete parts incrementally.

The Unified Process Life Cycle

  • UP life cycle includes 4 phases which consist of iterations.
  • Iterations are considered "mini-projects".
  • The 4 phases are:
    • Inception: develop and refine system vision
    • Elaboration: define requirements and core architecture
    • Construction: continue design and implementation
    • Transition: move the system into operational mode
  • The spiral model is a risk-oriented lifecycle model that breaks a software project up into mini-projects.

Four Phases In The Unified Process

  • Inception (Make the Business Case)
  • Elaboration (Define the system architecture)
  • Construction (Construct the system)
  • Transition (Integrate the system with the using organization)

Methodologies, Models, Tools, and Techniques

  • A system development life cycle is one of many models.
  • Analysts have a wide variety of aids beyond SDLC.
  • System development methodology provides guidelines every activity in system development.
  • System development methodology includes specific models, tools, and techniques.
  • UP is a system development methodology.
  • A process is a synonym for a methodology.
  • Methodologies supported with documentation

Models

  • Models abstract aspects of the real world and come in many forms.
  • Models can be physical analogs, mathematical, or graphical.
  • System development models are highly abstract.
  • Models Depict inputs, outputs, processes, data, objects, interactions, locations, networks, and devices
  • Unified Modeling Language (UML) is a standard notation.
  • PERT or Gantt charts model the project itself.

Models of system components using UML:

  • Use case diagram
  • Class diagram
  • Activity diagram
  • Sequence diagram
  • Communication diagram
  • Package diagram

Models used to manage development process:

  • PERT chart
  • Gantt chart
  • Organization hierarchy chart
  • Financial analysis models (net present value, return on investment)

Tools

  • Tools are software used to create models or components such as:
    • Project management software tools (Microsoft Project)
    • Integrated development environments (IDEs)
    • Code generators
    • Computer-aided system engineering (CASE)

Techniques

  • A technique is a collection of guidelines.
  • They enable an analyst complete an activity or task.
  • Example techniques:
    • Domain-modeling, use case modeling, software-testing
    • User-interviewing techniques
    • Relational database design techniques
  • Proven techniques are embraced as "Best Practices".

The Unified Process as a System Development Methodology

  • UP is an object-oriented system development methodology.
  • UP should be tailored to organizational and project needs.
  • Project will be use case driven
  • Barbara Halifax selects a "lighter" UP variation for RMO's customer support system project
  • Use case is an activity that the system carries out
  • Use cases are the basis for defining requirements and designs
  • UP defines disciplines within each phase
  • Discipline can be defined as a set of functionally related activities
  • Iterations concatenate activities from all disciplines
  • Activities in each discipline produce artifacts; models, documents, source code, and executables

The UP Disciplines

  • There are six main UP development disciplines:
    • Business modeling
    • Requirements
    • Design
    • Implementation
    • Testing
    • Deployment
  • Each iteration is similar to a mini-project.
  • Each iteration results in a completed portion of the system.
  • The three additional support disciplines:
    • Project management
    • Configuration and change management
    • Environment

The Nine Core Disciplines

  • Business Modeling: Re-envision and Re-engineering the Organization
  • Requirements: Define the User Requirements
  • Design: Design the system
  • Implementation: Write the software
  • Test: Test the system
  • Deployment: Integrate the software to the using organization
  • Configuration and Change Management: Manage the artifacts of the evolving system
  • Project Management: Manage the development process
  • Environment: Support the development process with processes and tools

Project Management

  • This is the most important support discipline
  • Project management activities include:
    • Finalize the system and project scope
    • Develop the project and iteration schedule
    • Identify project risks and confirm feasibility
    • Monitor and control the project's plan
    • Monitor and control communications
    • Monitor and control risks and outstanding issues

Configuration and Change Management

  • Configuration and change discipline pertains to:
    • Requirements
    • Design
    • Source code
    • Executables
  • The two activities in this discipline:
    • Develop change control procedures
    • Manage models and software components

Environment

  • The Development environment includes:
    • Available facilities
    • Design of the workspace
    • Forums for team communication and interaction
  • Environment discipline activities:
    • Select and configure the development tools
    • Tailor the UP development process
    • Provide technical support services

Overview of Object-Oriented Concepts

  • OOA views system as a collection of objects
  • An Object is an entity capable of responding to messages
  • Languages: Simula, C++, Java, C#, Visual Basic .NET
  • Object-oriented design (OOD) defines additional types of communication objects
  • OOD shows how the objects interact to complete tasks
  • OOD refines definition of objects for implementation
  • Object-oriented programming (OOP) is object coding

Recognizing the Benefits of OO Development

  • Original application of object-oriented technology:
    • Computer simulations
    • Graphical user interfaces
  • Rationale for use in information systems:
    • Benefits of naturalness
    • Reusability

Objects Are More Natural

  • OO approach mirrors human perception: objects moving through space
  • OOA, OOD, and OOP imitate perceptual processes by modeling classes of objects
  • Some system developers resist OO development
  • New programmers are more receptive to OO approach
  • System users appreciate object-orientation
    • They discuss the objects involved in their work
    • Hierarchies are common tools for organizing knowledge

Classes of Objects Can Be Reused

  • Classes of objects have a long shelflife
  • Example: Customer class adaptability
    • Reused in systems where customer objects needed
    • Extended through inheritance to a new subclass
    • Reused during analysis, design, or programming
  • Classes may be stored, with implementation hidden, in class libraries

Understanding Object-Oriented Concepts

  • Object: thing with attributes and behaviors
  • Types of objects:
    • User interface
    • Problem domain objects
  • Attributes are associated with data
  • Behaviors are associated with methods, functions, and procedures
  • Class: defines what all objects of class represent
  • Objects are instances of a class
  • Customer object is an instance of a customer class
  • Objects interact through messages
  • Objects retain memory of transactions

Abstract and Concrete Classes

  • Classes that can be instantiated into actual (real or virtual) objects are called concrete classes.
  • Classes that cannot be instantiated into actual (real or virtual) objects are abstract classes.

Key Object-Oriented Concepts:

  • Objects maintain association relationships
  • Encapsulation: combining attributes and methods into one unit
  • Information hiding: separating specification from implementation
  • Inheritance: extending the characteristics of a class
  • Polymorphism: ability for dissimilar objects to respond to the same message
  • Association provides a linkage between objects of given classes
  • Inheritance is a generalization relationship between a more generic class (superclass or parent) and a more specialized kind of that class (subclass or child)

Tools to Support System Development

  • CASE (Computer Aided System Engineering) is one of them
  • CASE includes a Database repository for information system + a set of tools that help analysts complete activities + sample artifacts: models, automatically generated code
  • Variations on CASE:
    • Visual modeling tools
    • Integrated application development tools
    • Round-trip engineering tools
  • Microsoft Visio: emphasizes technical drawing
  • Rational Rose: CASE tool supporting object-oriented approach, and strongly identified with UP methodology
  • Together pioneers round-trip engineering, synchronizes graphical models with generated program code, and leverages UML diagrams
  • Embarcadero Describe: Visual Modeling and Round-trip engineering
  • Rational XDE Professional integrates Microsoft Visual Studio.NET IDE + Also provides visual modeling and round-trip

Summary

  • SDLC: set of activities required to complete system development project
  • Predictive SDLC: executes project in sequential phases (waterfall approach)
  • Adaptive SDLC: accommodates change and phase overlap
  • Spiral SDLC model introduces iterations (cycles)
  • UP is an adaptive system development methodology
  • UP life cycle includes four phases-inception, elaboration, construction, and transition
  • UP Phases are decomposed into one or more iterations
  • Iterations involve work in nine UP disciplines
  • UP itself is object-oriented
  • Object-oriented concepts: object, class, methods, encapsulation, associations, inheritance, polymorphism
  • CASE: automation tools simplify development tasks

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Systems Analysis and Unified Process Quiz
6 questions

Systems Analysis and Unified Process Quiz

LargeCapacityGreenTourmaline avatar
LargeCapacityGreenTourmaline
Software Engineering Process Models Quiz
5 questions
Use Quizgecko on...
Browser
Browser