000111
000111
It details the steps and chronological order of a process. Since it serves as a foundation
for them, it is utilized in most applications. Task sets, umbrella activities, and process
framework activities all define the characteristics of the software development process.
Software process includes:
• Tasks – focus on a small, specific objective.
• Action – set of tasks that produce a major work product.
• Activities – group of related tasks and actions for a major objective.
The process framework is required for representing common process activities. Five
framework activities are described in a process framework for software engineering.
Communication, planning, modeling, construction, and deployment are all examples of
framework activities. Each engineering action defined by a framework activity comprises
a list of needed work outputs, project milestones, and software quality assurance (SQA)
points.
• Communication: By communication, customer requirement gathering is done.
Communication with consumers and stakeholders to determine the system’s
objectives and the software’s requirements.
• Planning: Establish engineering work plan, describes technical risk, lists
resources requirements, work produced and defines work schedule.
Software myths are false beliefs or interpretations that have caused serious problems for
managers, customers, and developers alike. Here are some of the most common
software myths and the true aspects of these myths:
1. Management Myths: Managers with software responsibility are often under
pressure to maintain budgets, keep schedules from slipping, and improve quality.
Following are the management myths:
• Myth 1: We have all the standards and procedures available for software
development.
• Fact: Software experts do not know all the requirements for software
development, and all existing processes are incomplete as new software
development is based on new and different problems.
• Myth 2: The addition of the latest hardware programs will improve software
development.
• Fact: The role of the latest hardware is not very high on standard software
development; instead, Computer-Aided Software Engineering (CASE) tools
help the computer, and they are more important than hardware to
produce quality and productivity. Hence, the hardware resources are
misused.
• Fact: The customer is not always right. The customer may be wrong about
what is needed, what is possible, or what is affordable.
• Fact: Once we write the program and get it to work, our job is not done.
We must maintain the program, fix bugs, and enhance the program to
meet changing needs.
• Myth: Testing is unnecessary; if we write the program correctly, it will work
correctly.
The Waterfall model is a sequential software development process that divides the
development lifecycle into distinct phases, with each phase being completed before the next
one begins
Waterfall Model Diagram
The Waterfall model consists of the following phases:
1. Requirements Gathering: In this phase, the project's requirements are collected and
documented. The focus is on understanding the client's needs and expectations.
2. Design: The design phase involves creating a detailed plan for the software's
architecture, user interface, and functionality. This phase acts as a blueprint for the
development process.
3. Implementation: The implementation phase is where the actual coding and development
of the software takes place. The design is translated into a working product during this
stage.
4. Testing: In the testing phase, the developed software is thoroughly tested to ensure that
it meets the specified requirements and functions as intended.
5. Deployment: Once the software has been tested and approved, it is deployed to the
end-users or customers.
6. Maintenance: The maintenance phase involves ongoing support, bug fixes, and updates
to the software to ensure its smooth operation and address any issues that may arise.
• Easy to manage: The rigid structure of the Waterfall model, with its specific deliverables
and review processes, makes it easy to manage and track progress
• Well-documented process and results: Each phase of the Waterfall model is well-
documented, making it easier to understand and analyze the development process
• Clear milestones and deadlines: The Waterfall model sets distinct endpoints and goals
for each phase, providing a clear timeline for the project
• Works well for small projects with well-understood requirements: The Waterfall model is
effective for projects where the requirements are clear, fixed, and well-understood
• .No mid-process user or client feedback: The Waterfall model does not
• Delays in testing: Testing is often delayed until the end of the development lifecycle in
the Waterfall model, which can lead to issues being discovered late in the process
• Design flaws require restarting the entire process: If a design flaw is discovered during
the testing phase, the Waterfall model may require the entire process to be restarted,
leading to time and resource wastage
Engineering: The engineering phase involves developing and testing thesoftware.
The focus is on creating a working prototype that can be tested and evaluated.
Risk handling: The Spiral model is best suited for projects that involvea high
degree of risk because of its risk analysis and risk handling at every phase
Flexibility: The Spiral model is more flexible than the Waterfall modelbecause it
allows for changes to be made more easily during the development process
Client involvement: The Spiral model involves the client in each iteration, allowing
for feedback and changes to be made throughout thedevelopment process
Early delivery of working software: The Spiral model delivers working software early
in the development process, allowing for early feedback and testing
Costly: The Spiral model can be more expensive than other models
because of the need for additional planning and management
Complexity: The Spiral model can be more complex than other modelsbecause of the
need to manage multiple iterations simultaneously
Dependency on initial architecture: The success of the Spiral model depends on the
initial architecture being well-designed and scalable
Not suitable for small projects: The Spiral model is not suitable forsmall and low-
risk projects because it could be costly for a smaller project
Transition: The transition phase involves deploying the software to the end-users
or customers. The goal is to ensure that the software is stableand meets the
specified requirements.
The Unified Process model is represented as a cycle, with each cycle consisting of the
four phases mentioned above. Each cycle ends with therelease of a new system
version for the customers
Risk handling: The Unified Process model is best suited for projects that
involve a high degree of risk because of its risk analysis and risk
handling at every phase
Costly: The Unified Process model can be more expensive than other
models because of the need for additional planning and management
Complexity: The Unified Process model can be more complex than other
models because of the need to manage multiple iterations
simultaneously
Not suitable for small projects: The Unified Process model is not
suitable for small and low-risk projects because it could be costly for a
smaller project
Management:
The goal is to ensure that the requirements are tracked, reviewed, and
updated as necessary.
Context models are used to depict the environment in which a business, system, or process
exists
They provide a high-level understanding of how the central object interacts with its
surroundings, such as exchanging data, physical objects, or funds
There are various types of context models, including software system context models,
business context models, and system context models
This model helps determine the boundary between hardware and software blocks in the
system and the number and makeup of hardware devices required by the software system
UML block definition diagrams or standard UML class diagrams can be used to create
software system context models
It helps stakeholders understand the organization's position in the broader context and
identify potential impacts of changes
A system context model illustrates the operational context of a system, showing what lies
outside the system boundaries and how it interacts with other systems
This model is useful for discussing design proposals, documenting the system for
implementation, and understanding the system's role in broader business processes
context models are simple communication tools that help depict the environment in which a
business, system, or process exists
They provide a high-level understanding of how the central object interacts with its
surroundings and are useful for confirming project scope, identifying potential impacts of
changes, and starting requirements discovery
Behavioral models are used to represent the behavior of a system or individual. They
are used in various fields, including software engineering,business, psychology, and
control theory. Two types of behavioral models are data flow models and state
machine models.
Data flow models show how data is processed as it moves through the
system
Data models are used to represent the structure and relationships between data elements
in a system or application. They provide a visual representation of the data and how it
flows through the system
. There are three types of data models: conceptual, logical, and physical
Conceptual Data Model: A conceptual data model provides a high-level view of the data and
the relationships between data entities
It is used to define the scope of the system and identify the main entities and relationships
between them
Logical Data Model: A logical data model provides a more detailed view of the data and the
relationships between data entities
It is used to define the structure of the data and the relationships between the data entities
Physical Data Model: A physical data model provides a detailed view of the data and how it
is stored in the system
It is used to define the physical storage of the data and the relationships between the data
entities
Data models are used to help developers understand the structure and relationships
between data elements in a system or application. They are used to ensure that the data is
organized and stored in a way that is efficient and effective
Data models are also used t o ensure that the data is accurate, consistent, and complete
Inheritance Model:
They are used to understand how the system is distributed and how its
components are deployed in a real-world environment.
It provides a high-level view of the system's design decisions and how they relate to
the system's behavior and functionality
High cohesion means that elements are closely related and focused
on asingle purpose, while low cohesion means that elements are
loosely related and serve multiple purposes