Proj. Mgmt. and OO
Proj. Mgmt. and OO
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
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.
● 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. “
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.
2. ENCAPSULATION
-Hiding data and complexity
-Often referred to as information hiding
Class library-
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.
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.
● 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
2. Macro-environment
a. Basic needs of software (conceptualization)
b. Analysis
c. Design
d. Development
e. Maintenance
b. System design
- High level design
c. Object design
- Objects in details
d. implementation
- Objects are implemented following coding standards and
guidelines
5 MODELS:
1. Requirement model
2. Analysis model
3. Design model
4. Implementation model
5. Test model