FVDF
FVDF
STUDY NOTES
Galileo, in full Galileo Galilei, (born February 15, 1564, Pisa [Italy]—died January 8,
1642, Arcetri, near Florence), Italian natural philosopher, astronomer, and
mathematician who made fundamental contributions to the sciences of motion,
astronomy, and strength of materials and to the development of the scientific method.
Object Oriented Software Design
Software is:
1. complex
2. can be dangerous
3. can be very expensive
4. satisfying new requirements can be difficult.
Your customers' requirements will always evolve in time since few of them know the exact
project and software is exact, it does what we make it for.
Two resources are important for software projects: Time and money (people you can hire.)
Every step can mean restarting all of the process from scratch.
Requirement Analysis
Artifacts
Example: Source Code, Documentation, Tests, Website etc and sometimes it can be an
activity: slide…
Software Design
1. Speed
2. Flexibility
3. Operating vs Building Cost
Components
Separating concerns is also a good strategy: security, data storage, user interface etc.
Not all concerns can be completely separated into components. (communication, security)
Your design must cover every possibility and define all decisions.
1. Waterfall Model
In a waterfall model, each phase must be
completed before the next phase can begin and there is
no overlapping in the phases. Verification is being done
to the customer.
2. Spiral Model
3. Iterative Development
4. Agile Development
a. Scrum
b. Extreme Programming (XP) => iteration
Iteration:
1. Analysis
2. Design
3. Testing
4. Coding
● Each iteration is time boxed. Each iteration will also have the same time.
● At the end of each iteration, we will go to the customer and show what we have done
in the project. Feedback weight in gold, so that we need to get feedback from the
customer at the end of each iteration.
Extreme Programming
Procedural Paradigm:
Procedural Abstraction (Fortran, basic, pascal, c)
● Works as long as data is simple
Data Abstraction
● Groups together the pieces of data that describe some entity
● Help reduce system complexity (Structures, Records)
There is no link between data and procedural abstraction.
An approach to the solution of problems in which all computations are performed in the
context of objects.
The objects are instances of the classes which are data abstractions (variables) and contain
procedural abstractions (methods) operating on the objects.
collaborating: calling the other methods of the objects that are defined in UML Sequence
Diagrams.
Object: A chunk of structured data in a running software system. Has properties and
behaviour.
Behaviour:
1. Acts: methods
2. Reacts: return values