Podcast
Questions and Answers
Which of the following best describes the primary goal of the Systems Development Life Cycle (SDLC)?
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?
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?
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'?
In the context of the Waterfall model, what does it mean for a phase's specifications to be 'frozen'?
How does the modified waterfall approach differ from the pure waterfall approach?
How does the modified waterfall approach differ from the pure waterfall approach?
What role do prototypes play in the spiral model?
What role do prototypes play in the spiral model?
Which of the following is the BEST definition of the Unified Process (UP)?
Which of the following is the BEST definition of the Unified Process (UP)?
Which of the following is NOT one of the four phases of the Unified Process (UP) life cycle?
Which of the following is NOT one of the four phases of the Unified Process (UP) life cycle?
What is the primary focus of the Elaboration phase in the Unified Process (UP)?
What is the primary focus of the Elaboration phase in the Unified Process (UP)?
In the Unified Process, what is meant by the term 'iterations'?
In the Unified Process, what is meant by the term 'iterations'?
Which of the following is the most accurate definition of a system development methodology?
Which of the following is the most accurate definition of a system development methodology?
What is the purpose of models in system development?
What is the purpose of models in system development?
Which of the following is the best description of a 'tool' in the context of system development?
Which of the following is the best description of a 'tool' in the context of system development?
What is a 'Technique' in system development?
What is a 'Technique' in system development?
How should the Unified Process (UP) be applied in different organizational contexts?
How should the Unified Process (UP) be applied in different organizational contexts?
What is the role of 'Use Cases' in the Unified Process (UP)?
What is the role of 'Use Cases' in the Unified Process (UP)?
In the context of the Unified Process (UP), what is a 'discipline'?
In the context of the Unified Process (UP), what is a 'discipline'?
Which of the following activities typically produces models, documents, source code, and executables?
Which of the following activities typically produces models, documents, source code, and executables?
In UP, the six core development disciplines include Business Modeling, Requirements, Design, Implementation, Testing and what other?
In UP, the six core development disciplines include Business Modeling, Requirements, Design, Implementation, Testing and what other?
Besides the six core UP development disciplines, what other disciplines exist?
Besides the six core UP development disciplines, what other disciplines exist?
Among the support disciplines in UP, which one is considered the most important?
Among the support disciplines in UP, which one is considered the most important?
Which of the following best describes the focus of the Configuration and Change Management discipline?
Which of the following best describes the focus of the Configuration and Change Management discipline?
What aspect of system development does the 'Environment' discipline primarily address?
What aspect of system development does the 'Environment' discipline primarily address?
What is the central concept in the object-oriented approach?
What is the central concept in the object-oriented approach?
What does Object-Oriented Design (OOD) primarily focus on?
What does Object-Oriented Design (OOD) primarily focus on?
Which of the following is the focus of Object-Oriented Programming (OOP)?
Which of the following is the focus of Object-Oriented Programming (OOP)?
Why is 'naturalness' considered a benefit of using object-oriented approaches?
Why is 'naturalness' considered a benefit of using object-oriented approaches?
Which of the following contributes most to the reusability of classes in object-oriented development?
Which of the following contributes most to the reusability of classes in object-oriented development?
In object-oriented terms, what is an 'object'?
In object-oriented terms, what is an 'object'?
What is the relationship between a class and an object?
What is the relationship between a class and an object?
Which of the following is NOT one of the core object-oriented concepts?
Which of the following is NOT one of the core object-oriented concepts?
Which term refers to combining attributes and methods into a single unit?
Which term refers to combining attributes and methods into a single unit?
Which of these is the best simple explanation of 'Information Hiding' in Object-Oriented programming?
Which of these is the best simple explanation of 'Information Hiding' in Object-Oriented programming?
Within the context of object-oriented programming, what does the term 'inheritance' refer to?
Within the context of object-oriented programming, what does the term 'inheritance' refer to?
Which term describes the ability of different objects to respond to the same message in their own specific way?
Which term describes the ability of different objects to respond to the same message in their own specific way?
In object-oriented programming, association is one kind of what?
In object-oriented programming, association is one kind of what?
What is CASE, in software development?
What is CASE, in software development?
What is the primary role of a CASE tool repository?
What is the primary role of a CASE tool repository?
Which of the following best describes 'round-trip engineering'?
Which of the following best describes 'round-trip engineering'?
Explain the theoretical consequence of using an abstract class within an information system program?
Explain the theoretical consequence of using an abstract class within an information system program?
Flashcards
What is SDLC?
What is SDLC?
SDLC is the process of building, deploying, using, and updating an information system.
What is Predictive SDLC?
What is Predictive SDLC?
A predictive SDLC approach involves planning the project entirely in advance.
What is Adaptive SDLC?
What is Adaptive SDLC?
An adaptive SDLC approach involves planning that leaves room for contingencies.
What is Waterfall Model?
What is Waterfall Model?
Signup and view all the flashcards
What is Spiral Model?
What is Spiral Model?
Signup and view all the flashcards
What is UP life cycle?
What is UP life cycle?
Signup and view all the flashcards
What is Inception?
What is Inception?
Signup and view all the flashcards
What is Elaboration?
What is Elaboration?
Signup and view all the flashcards
What is Construction?
What is Construction?
Signup and view all the flashcards
What is Transition?
What is Transition?
Signup and view all the flashcards
What is system development methodology?
What is system development methodology?
Signup and view all the flashcards
What are Models?
What are Models?
Signup and view all the flashcards
Give some examples of models?
Give some examples of models?
Signup and view all the flashcards
What are tools?
What are tools?
Signup and view all the flashcards
What are techniques?
What are techniques?
Signup and view all the flashcards
What is Use case?
What is Use case?
Signup and view all the flashcards
What is Discipline?
What is Discipline?
Signup and view all the flashcards
What are UP development disciplines?
What are UP development disciplines?
Signup and view all the flashcards
What are UP support disciplines?
What are UP support disciplines?
Signup and view all the flashcards
What is Project management?
What is Project management?
Signup and view all the flashcards
What is Environment?
What is Environment?
Signup and view all the flashcards
What is OOA?
What is OOA?
Signup and view all the flashcards
What do OOA, OOD, and OOP do?
What do OOA, OOD, and OOP do?
Signup and view all the flashcards
What is OOD?
What is OOD?
Signup and view all the flashcards
What is OOP?
What is OOP?
Signup and view all the flashcards
What is Object?
What is Object?
Signup and view all the flashcards
Advantage of using classes?
Advantage of using classes?
Signup and view all the flashcards
What is Class?
What is Class?
Signup and view all the flashcards
What is Customer object?
What is Customer object?
Signup and view all the flashcards
What is the means for Objects?
What is the means for Objects?
Signup and view all the flashcards
What do objects retain?
What do objects retain?
Signup and view all the flashcards
What are concrete classes?
What are concrete classes?
Signup and view all the flashcards
What is method?
What is method?
Signup and view all the flashcards
What do objects maintain?
What do objects maintain?
Signup and view all the flashcards
What is Encapsulation?
What is Encapsulation?
Signup and view all the flashcards
What is Information Hiding?
What is Information Hiding?
Signup and view all the flashcards
What is Inheritance?
What is Inheritance?
Signup and view all the flashcards
What is Polymorphism?
What is Polymorphism?
Signup and view all the flashcards
What is Computer Aided System Engineering (CASE)?
What is Computer Aided System Engineering (CASE)?
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.