OOSE
OOSE
SDLC, or software development life cycle, is a methodology that defines the entire
procedure of software development step-by-step.
1)REQUIREMENT ANALYSIS:-
Once the requirement analysis is done, the next stage is to certainly represent and document
the software requirements and get them accepted from the project stakeholders.
This involves creating a detailed design that outlines the database structure, user
interfaces, and system functionalities. It serves as a guide for the developers during the
coding phase.
The main focus of the design phase it to determine how data will flow and be stored.
3) implementation plan
5)user manual
CODING PHASE
1)In this stage of SDLC the actual development starts and the product is built.
2) The programming code is generated as per DDS during this stage. If the design is performed
in a detailed and organized manner, code generation can be accomplished without much
hassle.
3)Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate the code.
Different high level programming languages such as C, C++, Pascal, Java and PHP are used for
coding. The programming language is chosen with respect to the type of software being
developed.
TESTING PHASE
Unit testing
Unit Testingis a method for evaluating software that targets individual
code units or components in isolation. It aims to validate that each
software unit performs as expected, helping developers identify and fix
potential defects before they become more significant problems.
4. Specification :
The software requirement specification (SRS) which means to
specify the requirement whether it is functional or non-
functional .
5. Review :
After developing the SRS, it must be reviewed to check
whether it can be improved or not .
USE CASE and Scenarios
A use case is a description of the different ways that a user can
interact with an application or product.
They define the various external entities that exist outside the
system, as well as the specific interactions they have with the
system.
What is the Purpose of a Use Case? Benefits & Importance
The major benefits that use cases provide are in the planning
stage of development. Steps like requirements gathering, defining
scope, and roadmap creation are all improved through the clarity
that these use cases bring.
They also allow the team to identify the best possible outcome
scenario, accurately depicting the intended design and use of the
system..
How to Write a Use Case
Writing a use case can be started with three basic steps or
questions:
Who is going to use the software?
For what purpose they use the software for?
How are they going to use it?
SCENARIO
The main difference between a use case and a scenario is
that a use case describes for what purpose a user interacts with a
system while a scenario describes how the system responds to
that interaction
A scenario is a sequenceof steps describing an interaction between a
system and a user.
So if we have a Web-based on-line store, we might have a
Buy a Product scenario that would look like this
The customer browses the catalog and adds desired items to the shopping
basket.When the customer wishes to pay, the customer describes the
shipping and creditcard information and confirms the sale. The system
checks the authorization onthe credit card and confirms the sale both
immediately and with a follow-up email.
This scenario is one thing that can happen. However, the credit card
authorization might fail, and this would be a separate scenario. In another
case, you may havea regular customer for whom you don’t need capture
the shipping and credit cardinformation, and this is a third scenario.
In OOAD, we first understand what the system needs to do, then identify key
objects, and finally decide how these objects will work together. This approach
helps make software easier to manage, reuse, and grow.
Object-Oriented Analysis
During OOA, the goal is to identify the objects, their attributes, behaviors,
and relationships, without focusing on how the system will be implemented.
OOA helps you figure out all the things you need to know about the game
world – the characters, their features, and how they interact.
OOA also helps you understand what your game characters will do. It’s like
writing down a script for each character.
Every program has specific tasks or jobs it needs to do. OOA helps you list
and describe these jobs.
In our game, it could be tasks like moving characters or keeping score. It’s
like making a to-do list for your software.
OOA is smart about breaking things into different parts. It splits the job into
three categories: things your game knows, things your game does, and how
things in your game behave.
2. The Class and Object Layer: It represents the class hierarchies that enable
the system to develop using generalization and specialization. This layer also
represents each object.
3. The Message Layer: This layer deals with how objects interact with each
other. It includes messages sent between objects, method calls, and the flow
of control within the system.
Software engineers can use the same language and method that OOAD
provides to communicate and work together more successfully in groups.
It can assist developers in creating scalable software systems that can adapt
to changing user needs and business demands over time.
Design Patterns
Reusable solutions for typical software design challenges are known as design
patterns. Expert object-oriented software engineers use these best practices to
write more structured, manageable, and scalable code. Design patterns provide a
standard terminology and are specific to particular scenarios and problems. Design
patterns are not finished code but templates or blueprints only.
Efficiency: By using these popular patterns, developers can avoid finding the
solution to same recurring problems, which leads to faster development.
o With the use of this design pattern, objects can be produced without
having to define the exact class of object to be created.
o It guarantees that a class has just one instance and offers a way to
access it globally.
2. Structural Design Patterns
Structural Design Patterns solves problems related to how classes
and objects are composed/assembled to form larger structures which
are efficient and flexible in nature. Structural class patterns use
inheritance to compose interfaces or implementations .
Types of Structural Design Patterns:
o The client code can access only the Abstraction part without being
concerned about the Implementation part.