0% found this document useful (0 votes)
17 views13 pages

Proj. Mgmt. and OO

The document discusses different project management approaches including waterfall, agile, and hybrid approaches. It then provides details on agile project management such as sprints, backlogs, and scrum. It also covers fundamental concepts of object oriented programming including abstraction, encapsulation, inheritance, and polymorphism.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views13 pages

Proj. Mgmt. and OO

The document discusses different project management approaches including waterfall, agile, and hybrid approaches. It then provides details on agile project management such as sprints, backlogs, and scrum. It also covers fundamental concepts of object oriented programming including abstraction, encapsulation, inheritance, and polymorphism.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Project Management: Waterfall, Agile, &

Hybrid Approaches
WATERFALL/TRADITIONAL/PREDICTIVE
● Developing a plan and following that through the cycle (ex. Building a bridge)
● Used when requirements are all known
● Make sure full plan developed before building something
● Flow one step to another

● Uses traditional work breakdown structure


● Dependencies- in what order this task to be completed

AGILE PROJECT MANAGEMENT


● Team works collaboratively with the customer to determine project needs
● Example: software development
● Collaboration with customer drives the project forward
● There is something called “sprint” - think of a timebox, there is a set amount of time needed
to accomplish specific work and deliver part of project incrementally, then go back and so
forth
● There is one big outcome at the end

● There is something called “backlog”- where we are gathering as many requirements as


possible and prioritizing the must have and listing those in order in the BACKLOGS
● Align the work on “sprint backlogs”- how much of this work can we get completed on the 2
week period
● “Project or product increment” - what did we accomplish last sprint, then review it. If all
agrees, go back and align with sprint backlogs and go on. It can also add requirements and
so on.
● Also talks about “SCRUM”
HYBRID PROJECT MANAGEMENT
● Combined approach
● Project might switch approaches during different phases
● Example; creating a product with hardware and software

WHAT IS AGILE?
● Write you user stories
● Methodology for developing software
● The key to being Agile is meeting
● AGILE MANIFESTO:
Agile is not a:
-methodology
-specific way of developing software
-specific way of developing software
-framework of process
“AGILE IS A SET OF VALUES AND PRINCIPLES”
● Agile > Beliefs > Decisions > Developing Software
● Felxible
● Gives you foundation helping teams to make decisions
● Agile Manifesto: We are uncovering better ways of developing software by doing it and
helping others do it.

● VALUES OF AGILE MANIFESTO:


- INDIVIDUALS AND INTERACTIONS over PROCESSES AND TOOLS
-WORKING SOFTWARE over COMPREHENSIVE DOCUMENTATION
-CUSTOMER COLLABORATION over CONTRACT NEGOTIATION
-RESPONDING TO CHANGE over FOLLOWING A PLAN

● 12 PRINCIPLES OF AGILE
1. Customer satisfaction
2. Embracing change
3. Speed delivery
4. Collaboration
5. Empowerment
6. Effective communication
7. Good metrics
8. Steadiness
9. Operational excellence
10. Simplicity
11. Self organization
12. Continuous improvement

● “Agile’s real utility is giving people a common foundation for making decisions about the
best way to develop software. “
● Teams following agile make hundreds of decisions each week.
● “Making each decision based on the principles and values that the team has decided to
follow. “

Fundamental Concepts of Object Oriented


Programming
4 FUNDAMENTAL CONCEPTS OF O-O PROGRAMMING
● ABSTRACTION
● ENCAPSULATION
● INHERITANCE

What is an object?
- A thing from the real world
- Might not something that you can physically touch like dental appointment, receipt
reservation, or bank account
- A thing that you want to store and process data about
- Anything of interest to the software application that you are building
- Another name for an object is an entity.

1. ABSTRACTION
-to simplify reality
-
(Also related to “INHERITANCE) CLASS- aka “type”
-a template for creating objects
-a code written by a programmer to define attributes and operation of objects
-attributes/ fields/ properties describe the object
-operations/behaviors/methods are actions that can be done to or performed by the
object

Class is often compared to a pastry cutter because once written it can be used to create many
objects of the same type.

Creating an object from a class is called instantiation.


“The state of the object”- property values assigned to an object

Special method called “New” - known as the constructor

2. ENCAPSULATION
-Hiding data and complexity
-Often referred to as information hiding

Class library-

Programmers really need to know about is the interface of the class.


Simplifies the use of objects and makes sure that data and procedure encapsulated within are

safe.

3. INHERITANCE
-A class can derive its methods and properties from another class.
-can result in a hierarchy of classes
-Inheritance defines “type of relationships”
-the class at the top of the hierarchy is the “BASE CLASS”
-any class that derive from another class is called “SUBCLASS”
-any class that is derive from is called “SUPERCLASS”
4. POLYMORPHISM
-a class can implement an inherited method in its own way
- the person class at the base of the hierarchy has a method which will save details of
any object created from the person class, polymorphism allows the customer class to
override the workings of any method or property that it inherits with a new version of its
own.
- different forms of the same type of object with the same interface can behave in
different ways.
-Polymorphism literally means “many forms”
Object Oriented Programming - The Four
Pillars of OOP
Think of it like “ A PIE” which stands for:
ABSTRACTION
POLYMORPHISM
INHERITANCE
ENCAPSULATION
(They are the 4 PILLARS OF O-O Programming)

O-OP
-a programming paradigm based on the concept of “objects”
-Objects can contain data in the form of attributes or properties and action in the form of
functions or methods.

For example: COMPUTER


Attributes/ properties: Size, Resolution
Functions/ methods: On and Off, changing brightness

1. ABSTRACTION
● Show only necessary details to the user of the object
● Exposing only necessary details needed to the user
● Ex. when users use on and off feature of a computer, they don't really care about
the inner mechanism of what’s going on.
● We only care about calling a method, we don't care about the underlying
implementation

2. INHERITANCE
● Allows code reusability
● Useful when you have an existing class and you want to build a new class that
uses the stuff from that previous class but you want additional features onto it.
● Classes which are derive from Super Class/ Parent Class/Base Class are called
Subclass/Extended Class, Child Class

3. POLYMORPHISM
-”poly” means many
-”morph” means forms
- it allows you to determine what kind of function to run while the function is running
Example: Hierarchy
Enemy= parent class
Werewolf= child class
Vampire= child class
4. ENCAPSULATION
-built on the idea of data hiding
-encapsulating our properties within the object by setting properties to private to restrict
access.

Object Oriented Analysis in Software


Engineering

● OO Analysis determines the system requirements and recognizes the classes and
relationship between the classes.
● Its main purpose is to recognize application domain and specific requirements of the
system.
● Outcome is requirements identification and primary analysis of the logical structure and
use of the system.

3 techniques of OO Analysis:
1. Object Modeling
- instance of a class and its real time entity
- Develops the static structure of the system regarding objects.
- It recognizes the objects, relationships between objects, and classes in which
objects are grouped.
- For example: (The process of object modeling)
1. Recognize objects and group into classes
2. Recognize relationship between the classes
3. User object model diagram is generated
4. Define attributes of user object
5. Define the operations need to perform on classes

2. Dynamic Modeling
- Explain how single object responds to events
- Main aim is to examine the behavior of the object regarding time and external
changes
- For example: (process of dynamic modeling)
1. State of every object is recognize
2. Recognize the event
3. Generate dynamic modeling diagram enclose with state transition
diagram
4. Communicate with every state regarding object attributes
5. Verify the state transitions diagram

3. Functional Modeling
- It shows the processes executed in an object and how the data change when it
moves between the methods.
- For example: (Process of functional modeling)
1. All inputs and outputs are recognized
2. Create data flow diagram to show functional dependencies
3. Identify the motive of every function.
4. Identify the constraints
5. Describe the optimization criteria

Object Oriented Methodologies in OO


Analysis Design
1. Object Oriented Analysis by Coad and Yourdon
- Discusses about analysis
- Also refer to as “Coad and Yourdon Methodology”
- Identification of classes and objects, involves investigating the application
domain and system environment.
- Identification of structures, is-a relationship or whole-part relationship
- Definition of subjects, attributes, and methods

2. Object Oriented Design by Grady Booch


- Discusses about design
- Also refer to as “Booch Methodology”
- Approaches to software improvement process in two different forms:
1. Micro-improvement
a. Identify the classes
b. Identify the semantics of class and objects
c. Identify the relationship of classes and objects
d. Interfaces and start implementation
(THINK OF THIS PROCESS IN A CYCLE)

2. Macro-environment
a. Basic needs of software (conceptualization)
b. Analysis
c. Design
d. Development
e. Maintenance

3. Object Oriented Modeling Techniques (OOMT) by James Rumbaugh


- Discusses about analysis, design, and modeling
- A technique focusing on analysis, design, and implementation of the system.
- Consists of 4 phases:
a. Analysis
- Problem statement
● Object model- capture the static aspects of the system
● Dynamic model- capture the behavioral aspect of the
system
● Functional model- represents the functional aspect of the
system

b. System design
- High level design

c. Object design
- Objects in details

d. implementation
- Objects are implemented following coding standards and
guidelines

4. Object Oriented Software Engineering (OOSE) by Jacobson 1992


- Combination of everything mentioned above
- Also refer to as “Jacobson Methodology”
- Covers entire life cycle
- “Heart of methodologies is USE CASE CONCEPT”
-scenario for understanding the system requirements

5 MODELS:
1. Requirement model
2. Analysis model
3. Design model
4. Implementation model
5. Test model

You might also like