oBJECT-ORIENTED SOFTWARE DEVELOPMENT LIFE CYCLE
SDLC in OO
Component Based Development
SOFTWARE DEVELOPMENT LIFE CYCLE IN OO
- Includes the following activities:
1. Object-Oriented Analysis-use case driven
2. Object-Oriented Design
3. Prototyping
4. Component-Based Development
5. Incremental Testing
- Encourages you to view the problem as a
system cooperative objects.
- Advocate Incremental Development
- industrialized approach to the software development process.
- concern with the implementation and system integration aspects of software development.
SDLC in OO
Component-Based Development
- Consists of three(3) macros Processes:
1. Object-Oriented Analysis- translates the user's
needs into system requirements and
responsibilities .
2. Object-Oriented Design- the process of planning
a system of interacting objects for the purpose
of solving a software problem.
3. Object-Oriented Implementation- refines the
detailed design into the system deployment that
will satisfy the user's needs.
*Two basic ideas underlie component-based development:
- the application development can be improved significantly if application can be assembled quickly from prefabricated software components.
- increasingly large collection of interpretable software components could be made available to developers in both general and specialist catalogs
- It is the process of verifying the interfaces and interaction between modules.
- a method of testing the interfaces between unit-tested programs as well as between system components.
Rapid Application Development (RAD)
Object-Oriented Design
Object-Oriented Analysis Use-Case Driven
- its goal is to design the classes identified during the
analysis phase and the user interface.
- build the object model based on objects and their
relationships, then iterate and refine the model:
-Design and refine classes
-Design and refine attributes
-Design and refine methods
-Design and refine structures
-Design and refine association
- requires building a use-case model interaction diagrams to identify user's needs.
- it is a scenario that examines the interactions among objects and what role they play.
intersection among object's
role to achieve a given goal.
- Use case is a typical inter-
action between user and system
that captures user's goals.
Use-case Driven
Scenario
- enables you to fully understand how easy or difficult it will be to implement some of the features of the system.
- can further define the use cases, and it actually makes use-case modeling much easier.
*Guidelines to use in Object-Oriented Design
- Reuse, rather than build, a new class. Know the existing classes.
- Design a large number of simple classes, rather than a small number of complex classes.
- Critique what you have proposed. If possible, go back and refine the classes.
- set of tools and techniques used to build an application faster than traditional methods.
- often used in conjunction with software prototyping.
- its main objective is to build a version of an application rapidly to see whether we actually have understood the problem(analysis) and it determines whether the system does what it is supposed to do(design).
- the functional unit of the program, building blocks offering a collection of reusable services
- can request a service from another component or deliver its own services on request.
- components may depend on one another without interfering with each other.
*Categories of Prototyping:
- Horizontal Prototype- simulation of the interface but not contains no functionality
- Vertical Prototype- subset of the system features with complete functionality.
- Analysis Prototype- used to inform the user and demonstrate the proof of the concept.
- Domain Prototype- used as a tool for the stage delivery of subsystem to the users.
- major benefit of object-oriented system development.
- the most difficult promise to deliver.
- to develop reusable objects, you must spend time up front to design reusability in the objects.
*The reuse strategy can be based on the
following:
- Information hiding(encapsulation).
- Conformance to naming standards.
- Creation and administration of an object repository.
- Encouragement by strategic management of reuse as oppesed to constant redevelopment.
- Establishing targets for the percentage of the objects in the project to be reused.