softwareenggUTans
softwareenggUTans
Software quality attributes are characteristics or properties that indicate the quality and
effectiveness of a software product. Here are some key quality attributes:
1. Functionality:
o Refers to the ability of the software to perform the tasks it was designed for,
meeting the needs of the users. It ensures the software works as expected.
2. Reliability:
3. Usability:
o Refers to the ease with which users can interact with the software. This
includes intuitive design, user-friendly interfaces, and the efficiency with
which users can complete tasks.
4. Efficiency:
o This measures the software’s resource usage (like memory, processing power,
or bandwidth) while still delivering its functions. Efficient software uses
minimal resources for optimal performance.
5. Maintainability:
6. Portability:
7. Scalability:
o The ability of the software to handle increased loads or larger volumes of
data without compromising performance. Scalable software can grow in
functionality or size without significant changes to its architecture.
8. Security:
o The software's ability to protect itself and its data from unauthorized access,
breaches, or attacks. Security is critical for protecting user privacy and
preventing malicious activities.
9. Interoperability:
o The ability of the software to interact and work with other systems or
software products. Interoperable software can exchange data and functions
across different platforms or applications.
1. Requirements Gathering: This is the first stage where the business owners and
developers meet to discuss the goals and requirements of the website.
2. Design: In this stage, the developers create a preliminary design of the website based
on the requirements gathered in stage 1.
3. Implementation: In this stage, the developers begin to build the website based on
the design created in stage 2.
4. Testing: Once the website has been built, it is tested to ensure that it meets the
requirements and functions properly.
5. Deployment: The website is then deployed and made live to the public.
6. Review and Improvement: After the website has been live for a while, the business
owners and developers review its performance and make any necessary
improvements.
2. Requirement Analysis: Once gathered, the requirements are analyzed for clarity,
feasibility, and completeness. Conflicts between requirements are identified, and
ambiguities are resolved.
• Functional Requirements: These describe the specific behavior, actions, or tasks the
software must perform.
1. Correctness:
2. Unambiguity:
3. Completeness:
o The document should include all the functional and non-functional
requirements necessary for the software system to operate effectively. This
includes edge cases, exception handling, and any limitations or constraints.
4. Consistency:
o The requirements in the SRS must not contradict each other. If one
requirement says the system should support a certain feature, no other
requirement should say otherwise.
5. Verifiability:
o The requirements should be written in such a way that they can be tested or
verified. This ensures that once the system is developed, it can be checked to
see if it meets the stated requirements.
6. Modifiability:
o The SRS should be easy to maintain and update. Software requirements often
evolve during development, so the document should be organized in a way
that changes can be made easily without affecting other parts of the
specification.
7. Traceability:
o Every requirement in the SRS should be traceable to its origin, whether it's
from a user need, business goal, or regulation. This helps in tracking the
requirements throughout the software development lifecycle.
8. Understandability:
o The SRS must be written in simple and clear language, understandable by all
stakeholders, including developers, testers, business analysts, and end-users. It
should not be overly technical unless it is intended for a technical audience.
9. Feasibility:
10. Reusability:
• Introduction: Overview of the system, its purpose, scope, and intended audience.
• Functional Requirements: Specific actions, tasks, and behaviors the system must
perform.
• System Interfaces: Descriptions of how the system interacts with other systems,
hardware, or software.
• Assumptions and Dependencies: Any external factors that the system depends on.
A well-written SRS document must satisfy several important properties to ensure its
effectiveness:
1. Correctness:
2. Unambiguity:
3. Completeness:
o The requirements in the document should not conflict with each other. There
should be no contradictions between different sections of the SRS.
5. Verifiability:
o The requirements should be stated in a way that they can be tested or verified.
For instance, the document should specify measurable criteria so that once the
software is developed, it can be checked against the stated requirements.
6. Modifiability:
o The SRS should be easy to update. As project requirements may evolve, the
document should be organized in a way that changes can be incorporated
without affecting other parts unnecessarily.
7. Traceability:
o Each requirement should be traceable to its origin (e.g., user needs, business
goals, or regulatory standards). This helps ensure that all requirements have
been considered and fulfilled.
8. Understandability:
10. Reusability:
o The requirements should be written in a way that they can be reused in other
similar projects or versions of the system. This helps reduce redundancy and
the time spent writing new specifications for similar systems.
Scheduling in project management refers to the process of planning and organizing tasks,
activities, and milestones to ensure that a project is completed within its defined time frame.
It involves determining the sequence of tasks, allocating resources, estimating the time
required for each task, and establishing deadlines for the project. Scheduling is essential for
tracking progress, ensuring that the project remains on track, and managing resources
efficiently.
Skills of a Project Manager:
A Project Manager (PM) is responsible for leading a project from start to finish, ensuring its
success by managing resources, time, scope, and stakeholders. Effective project management
requires a blend of technical, leadership, and interpersonal skills. Here are key skills that a
project manager should possess:
1. Leadership Skills:
o Description: A project manager must be able to lead a team, set a clear vision,
and motivate team members to achieve the project goals. They need to manage
conflicts, foster collaboration, and ensure that the team stays focused on the
project's objectives.
2. Communication Skills:
3. Time Management:
5. Problem-Solving Skills:
6. Budget Management:
o Importance: Budget management ensures that the project does not exceed
financial limits and that resources are used effectively.
7. Negotiation Skills:
9. Quality Management:
The model is structured into five maturity levels, each representing a stage of
process improvement. However, the principles of CMM are not limited to just the maturity
levels but are broader in scope. These principles guide the implementation and growth of a
software process improvement program.
• Explanation: CMM emphasizes the importance of using data and metrics to make
informed decisions. Organizations should gather data on their processes, analyze it,
and use the insights to drive decisions on process improvements and optimizations.
• Importance: Using metrics for decision-making ensures that improvements are based
on objective evidence rather than assumptions or intuition.
7. Process Institutionalization:
• Explanation: CMM highlights the need for making improved processes an integral
part of the organization’s culture and operations. Process improvements must be
institutionalized, meaning they should become standard practice and part of the day-
to-day activities.
• Importance: Institutionalizing processes ensures that improvements are sustainable
and continuously applied, not just temporary fixes.
8. Organizational Commitment:
• Importance: Feedback and refinement ensure that the improvements made are
effective, efficient, and aligned with organizational needs.
• Importance: Managing and mitigating risks helps prevent costly mistakes and project
failures, ensuring more predictable and successful outcomes.
A Project Monitoring Plan (PMP) is a structured approach to tracking and assessing the
progress of a project throughout its lifecycle. The goal of a monitoring plan is to ensure that
the project stays on track, meets its objectives, adheres to its budget and timeline, and
produces the desired quality of work. It involves continuous oversight and control over
various project parameters, such as scope, schedule, cost, resources, and risks.
1. Risk Identification:
• Explanation: This activity involves identifying potential risks that could affect the
project. Risks can be internal (e.g., resource shortages, technical challenges) or
external (e.g., market changes, regulatory impacts). The goal is to create a
comprehensive list of potential threats and opportunities.
• Tools/Techniques:
o Expert judgment
• Explanation: Once risks are identified, they need to be assessed in terms of their
likelihood of occurrence and potential impact on the project. Risks are often
classified as high, medium, or low in terms of severity and likelihood.
• Types of Analysis:
• Tools/Techniques:
o Risk matrices (probability vs. impact)
3. Risk Prioritization:
• Explanation: After risks are assessed, they need to be prioritized based on their
potential impact. This ensures that resources are allocated to manage the most
significant risks first. Risks that are high probability and high impact should be
addressed immediately.
• Tools/Techniques:
o Avoidance: Altering the project plan to eliminate the risk or its impact.
o Transference: Shifting the impact of the risk to a third party (e.g., outsourcing
or insurance).
• Tools/Techniques:
o Contingency planning
o Workaround strategies
• Tools/Techniques:
o Risk registers
o Issue logs
6. Risk Communication:
• Tools/Techniques: