Group Assignment
Group Assignment
Group Assignment
1. Logical data modeling. A logical data model depicts the logical data
structure of the system and deals with documenting the data requirements
of the system. The model describes: entities that are objects in the system
and have information recorded about them;
attributes that are descriptors of the entities; and
relationships that are the associations between the entities.
2. Data flow modeling. Data flows are identified, modeled and
documented. Data flow diagrams consist of the following: processes that
transform data;
external entities that send data from a system and receive data from
another system; data stores that hold data at rest; and data flows to move
data among entities.
3. Entity behavior modeling. This technique focuses on identifying,
modeling and documenting the events that occur in the system. It looks at
how events affect the entity and the sequence in which they occur.
Uses of UML
UML is quite useful for the following purposes −
Modeling the business process
Describing the system architecture
Showing the application structure
Capturing the system behavior
Modeling the data structure
Building the detailed specifications of the system
Sketching the ideas
Generating the program code
Static Models
Static models show the structural characteristics of a system, describe its system
structure, and emphasize on the parts that make up the system.
They are used to define class names, attributes, methods, signature, and
packages.
UML diagrams that represent static model include class diagram, object
diagram, and use case diagram.
Dynamic Models
Dynamic models show the behavioral characteristics of a system, i.e., how the
system behaves in response to external events.
Dynamic models identify the object needed and how they work together
through methods and messages.
They are used to design the logic and behavior of system.
UML diagrams represent dynamic model include sequence diagram,
communication diagram, state diagram, activity diagram.
Object Oriented System Development Life Cycle
It consists of three macro processes −
Object Oriented Analysis (OOA)
Object oriented design (OOD)
Object oriented Implementation (OOI)
Object-oriented systems development includes the following stages −
Object-oriented analysis
Object-oriented design
Prototyping
Implementation
Incremental testing
Object-Oriented Analysis
This phase concerns with determining the system requirements and to understand
the system requirements build a use-case model. A use-case is a scenario to
describe the interaction between user and computer system. This model
represents the user needs or user view of system.
It also includes identifying the classes and their relationships to the other classes
in the problem domain, that make up an application.
Object-Oriented Design
The objective of this phase is to design and refine the classes, attributes, methods,
and structures that are identified during the analysis phase, user interface, and
data access. This phase also identifies and defines the additional classes or objects
that support implementation of the requirement.
Prototyping
Prototyping enables to fully understand how easy or difficult it will be to
implement some of the features of the system.
It can also give users a chance to comment on the usability and usefulness of the
design. It can further define a use-case and make use-case modeling much easier.
Implementation
It uses either Component-Based Development (CBD) or Rapid Application
Development (RAD).
Component-based development (CBD)
CODD is an industrialized approach to the software development process using
various range of technologies like CASE tools. Application development moves
from custom development to assembly of pre-built, pre-tested, reusable software
components that operate with each other. A CBD developer can assemble
components to construct a complete software system.
Rapid Application Development (RAD)
RAD is a set of tools and techniques that can be used to build an application faster
than typically possible with traditional methods. It does not replace SDLC but
complements it, since it focuses more on process description and can be
combined perfectly with the object-oriented approach.
Its task is to build the application quickly and incrementally implement the user
requirements design through tools such as visual basic, power builder, etc.
Incremental Testing
Software development and all of its activities including testing are an iterative
process. Therefore, it can be a costly affair if we wait to test a product only after
its complete development. Here incremental testing comes into picture wherein
the product is tested during various stages of its development.
Agile Methods
Agile is an approach to software development that seeks the continuous delivery
of working software created in rapid iterations.
In practical terms, agile software development methodologies are all about
delivering small pieces of working software quickly to improve customer
satisfaction. These methodologies use adaptive approaches and teamwork to
focus on continuous improvement. Usually, agile software development consists
of small, self-organizing teams of software developers and business
representatives regularly meeting in-person throughout the software
development life cycle. Agile favors a lightweight approach to software
documentation and embraces rather than resists changes at any stage of the life
cycle.
6. Face-to-Face Communication:
- Agile encourages in-person or direct communication as it is often more
effective in conveying information and resolving issues.
1. Scrum:
- Description: Scrum is one of the most widely used Agile frameworks. It divides
the development process into short, fixed-length iterations called "sprints,"
typically lasting 2-4 weeks. Scrum teams follow a defined set of roles, including
Product Owner, Scrum Master, and Development Team. Daily stand-up meetings,
sprint planning, and sprint reviews are key Scrum ceremonies.
- Key Features: Sprint planning, daily stand-ups, sprint reviews, and
retrospectives. Roles include Product Owner, Scrum Master, and Development
Team.
2. Kanban:
- Description: Kanban is a visual workflow management system that emphasizes
a continuous flow of work items, with no predefined timeboxes like sprints in
Scrum. Work items move through a Kanban board, progressing from "to-do" to "in
progress" to "done." It provides real-time visibility into work, helping teams
manage and optimize their processes.
- Key Features: Visual boards, work-in-progress (WIP) limits, and continuous flow
of work.
5. Crystal:
- Description: Crystal is a family of Agile methodologies that vary in terms of
complexity and practices based on the project's specific needs. Crystal
methodologies adapt to the team's size, criticality, and experience. They
emphasize communication, collaboration, and the importance of people over
processes.
Each of these Agile methods has its own unique characteristics, benefits, and
areas of applicability. The choice of which method to use depends on the specific
project, organization, and team dynamics. Many organizations also adapt and
combine elements from different Agile methods to create a customized approach
that suits their needs.
1. Waterfall Model:
- Description: The Waterfall model is a linear, sequential approach where each
phase must be completed before the next one begins. The phases typically include
requirements, design, implementation, testing, deployment, and maintenance.
- Evaluation:
- Advantages:
- Clear and well-defined phases.
- Easy to understand and manage.
- Well-suited for small projects with stable requirements.
- Disadvantages:
- Inflexible to changing requirements.
- High risk of project failure if requirements are not well-defined.
- Long delivery times, with no working software until the end.
2. Iterative Model:
- Description: The Iterative model breaks the project into small, manageable
iterations. Each iteration goes through the phases of the Waterfall model, but the
process is repeated with feedback from each iteration.
- Evaluation:
- Advantages:
- Provides the flexibility to adapt to changing requirements.
- Delivers a working product incrementally.
- Early identification of issues.
- Disadvantages:
- Continuous iterations can lead to scope creep.
- Requires good project management and communication.
3. Spiral Model:
- Description: The Spiral model combines iterative development with elements
of the Waterfall model. It emphasizes risk assessment and management
throughout the project.
- Evaluation:
- Advantages
- Strong focus on risk management.
- Allows for progressive development and prototyping.
- Well-suited for large, complex projects.
- Disadvantages:
- Requires a high level of expertise to manage.
- Can be time-consuming and expensive due to its comprehensive risk
assessment.
9. DevOps:
- Description: DevOps is a culture and set of practices that emphasize
collaboration and communication between development and operations teams. It
includes automation, continuous integration, and continuous delivery to
streamline software development and deployment.
- Evaluation:
- Advantages:
- Accelerates software delivery.
- Enhances collaboration and communication.
- Improves deployment and operational efficiency.
- Disadvantages:
- Cultural changes may be challenging to implement.
- Requires significant automation and infrastructure changes.
Each of these process models has its strengths and weaknesses, making them
more suitable for different types of projects and organizations. The choice of a
process model depends on factors such as project size, complexity, requirements,
and the organization's culture and priorities. It's also common for organizations to
combine elements from multiple process models to create a hybrid approach
tailored to their specific needs.