Sepm Model Qp & Ans(Bcs501)
Sepm Model Qp & Ans(Bcs501)
Sepm Model Qp & Ans(Bcs501)
Process Models: A generic process model, Process assessment and improvement, Prescriptive
process models: Waterfall model, Incremental process models, Evolutionary process models,
Concurrent models, Specialized process models. Unified Process , Personal and Team process models
MODULE-2
Understanding Requirements: Requirements Engineering, Establishing the ground work, Eliciting
Requirements, Developing use cases, Building the requirements model, Negotiating Requirements,
Validating Requirements.
Requirements Modeling Scenarios, Information and Analysis classes: Requirement Analysis,
Scenario based modeling, UML models that supplement the Use Case, Data modeling Concepts,
Class-Based Modeling.
MODULE-3
Agile Development: What is Agility?, Agility and the cost of change. What is an agile Process?,
Extreme Programming (XP), Other Agile Process Models, A tool set for Agile process .
Principles that guide practice: Software Engineering Knowledge, Core principles, Principles that
guide each framework activity.
MODULE-4
Introduction to Project Management: Introduction, Project and Importance of Project
Management,
Contract Management, Activities Covered by Software Project Management, Plans, Methods and
Methodologies, Some ways of categorizing Software Projects, Stakeholders, Setting Objectives,
Business Case, Project Success and Failure, Management and Management Control, Project
Management life cycle, Traditional versus Modern Project Management Practices.
MODULE-5
Software Quality: Introduction, The place of software quality in project planning, Importance of
software quality, Defining software quality, Software quality models, product versus process quality
management.
5. Documentation
Purpose: Provide clear, understandable, and maintainable documentation.
Activities:
• Document code with inline comments.
• Create technical documentation for the system's architecture, design, and
usage.
• Maintain user manuals, API documentation, and system requirements.
6. Project Management
Purpose: Manage resources, timelines, and risks.
Activities:
• Plan sprints or milestones using methodologies like Agile, Scrum, or
Waterfall.
• Track progress, allocate tasks, and address bottlenecks.
• Communicate with stakeholders and ensure project goals are aligned with
business objectives.
A variation in the representation of the waterfall model is called the V-model. Represented in
following figure. The V-model depicts the relationship of quality assurance actions to the
actions associated with communication, modeling, and early construction activities.
As a software team moves down the left side of the V, basic problem
requirements are refined into progressively more detailed and technical representations
of the problem and its solution. Once code has been generated, the team moves up the
right side of the V, essentially performing a series of tests that validate each of the
models created as the team moved down the left side. The V-model provides a way of
visualizing how verification and validation actions are applied to earlier engineering
work.
Software Myths
Software Myths- beliefs about software and the process used to build it - can
be traced to the earliest days of computing. Myths have a number of
attributes that have made them insidious. For instance, myths appear to be
reasonable statements of fact, they have an intuitive feel, and they are often
promulgated by experienced practitioners who “know the score”
1. "We can skip the planning phase and start coding immediately."
Reality: Proper planning ensures the software meets user needs, aligns with
business goals, and avoids costly mistakes. Without planning, projects can
quickly veer off track.
Reality: Adding more people often increases coordination overhead and can
slow progress, especially if the team needs to get up to speed on the project.
Reality: Customers often can't fully articulate their needs upfront. Iterative
feedback, user testing, and collaboration are necessary to refine and clarify
requirements over time.
When an incremental model is used, the first increment is often a core product. That is,
basic requirements are addressed but many supplementary features remain undelivered.
The core product is used by the customer. As a result of use and/or evaluation, a plan is
developed for the next increment. The plan addresses the modification of the core
product to better meet the needs of the customer and the delivery of additional features
and functionality. This process is repeated following the delivery of each increment,
until the complete product is produced.
Incremental development is particularly useful when staffing is unavailable for
a complete implementation by the business deadline that has been established for the
project. Early increments can be implemented with fewer people. If the core product is
well received, then additional staff (if required) can be added to implement the next
increment. In addition, increments can be planned to manage technical risks.
The Spiral Model : Originally proposed by Barry Boehm, the spiral model is an
evolutionary software process model that couples the iterative nature of prototyping
with the controlled and systematic aspects of the waterfall model. It provides the
potential for rapid development of increasingly more complete versions of the software.
Boehm describes the model in the following manner
The spiral development model is a risk-driven process model generator that is used to
guide multi-stakeholder concurrent engineering of software intensive systems. It has
two main distinguishing features. One is a cyclic approach for incrementally growing a
system’s degree of definition and implementation while decreasing its degree of risk. The
other is a set of anchor point milestones for ensuring stakeholder commitment to feasible
and mutually satisfactory system solutions.
Using the spiral model, software is developed in a series of evolutionary releases. During
early iterations, the release might be a model or prototype. During later iterations,
increasingly more complete versions of the engineered system are produced
➢ Network intensiveness. A WebApp resides on a network and must serve the needs
of a diverse community of clients. The network may enable worldwide access and
communication (i.e., the Internet) or more limited access and communication (e.g.,
a corporate Intranet).
➢ Concurrency. A large number of users may access the WebApp at one time. In
many cases, the patterns of usage among end users will vary greatly.
➢ Unpredictable load. The number of users of the WebApp may vary by orders of
magnitude from day to day. One hundred users may show up on Monday; 10,000
may use the system on Thursday.
➢ Performance. If a WebApp user must wait too long, he or she may decide to go
elsewhere.
➢ Availability. Although expectation of 100 percent availability is un reasonable,
users of popular WebApps often demand access on a 24/7/365 basis
➢ Data driven. The primary function of many WebApps is to use hypermedia to
present text, graphics, audio, and video content to the end user. In addition,
WebApps are commonly used to access information that exists on databases that
are not an integral part of the Web-based environment (e.g., e-commerce or
financial applications).
➢ Content sensitive. The quality and aesthetic nature of content remains an important
determinant of the quality of a WebApp.
➢ Continuous evolution. Unlike conventional application software that evolves over
a series of planned, chronologically spaced releases, Web applications evolve
continuously.
➢ Immediacy. Although immediacy—the compelling need to get software to market
quickly—is a characteristic of many application domains, WebApps often exhibit a
time- to-market that can be a matter of a few days or weeks.
NEGOTIATING REQUIREMENTS
VALIDATING REQUIREMENTS
As each element of the requirements model is created, it is examined for
inconsistency, omissions, and ambiguity. The requirements represented by the model
are prioritized by the stakeholders and grouped within requirements packages that will
be implemented as software increments.
A review of the requirements model addresses the following questions:
• Is each requirement consistent with the overall objectives for the system/product?
• Have all requirements been specified at the proper level of abstraction? That
is, do some requirements provide a level of technical detail that is
inappropriate at this stage?
• Is the requirement really necessary or does it represent an add-on feature that
may not be essential to the objective of the system?
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution? That is, is a source (generally,
These and other questions should be asked and answered to ensure that the
requirements model is an accurate reflection of stakeholder needs and that it
provides a solid foundation for design.
3b. Explain key steps are involved in establishing the foundational groundwork
for a successful software engineering project.
ESTABLISHING THE GROUNDWORK
Identifying Stakeholders:
A stakeholder is anyone who has a direct interest in or benefits from the system
that is to be developed. At inception, you should create a list of people who will
contribute input as requirements are elicited..
Recognizing Multiple Viewpoints:
Because many different stakeholders exist, the requirements of the system will
be explored from many different points of view. The information from multiple
viewpoints is collected, emerging requirements may be inconsistent or may conflict
with one another.
Working toward Collaboration:
The job of a requirements engineer is to identify areas of commonality and
areas of conflict or inconsistency. It is, of course, the latter category that presents a challenge.
Collaboration does not necessarily mean that requirements are defined by committee. In
many cases, stakeholders collaborate by providing their view of requirements, but a strong
“project champion”(e.g., a business manager or a senior technologist) may make the final
decision about which requirements make the cut .
Asking the First Questions
Questions asked at the inception of the project should be “context free” . The first set
of context- free questions focuses on the customer and other stakeholders, the overall
project goals and benefits. For example, you might ask:
• Who is behind the request for this work?
• Who will use the solution?
• What will be the economic benefit of a successful solution?
• Is there another source for the solution that you need?
These questions help to identify all stakeholders who will have interest in the
software to be built. In addition, the questions identify the measurable benefit of a
Inception: It establish a basic understanding of the problem, the people who want a
solution, the nature of the solution that is desired, and the effectiveness of preliminary
communication and collaboration between the other stakeholders and the software
team.
requirements. It certainly seems simple enough—ask the customer, the users, and others
what the objectives for the system or product are, what is to be accomplished, how the
system or product fits into the needs of the business, and finally, how the system or
product is to be used on a day- to-day basis.
4b. Explain key steps involved in building a requirement model, and how do
they contribute to the software development process?
Here are the key steps involved in building a requirements model and their contributions to
the software development process:
1. Requirements Elicitation
Contribution: Ensures that all necessary information is gathered from stakeholders to define
the system’s needs, which drives the direction of the entire project.
2. Requirements Analysis
Contribution: Organizes and refines gathered information, resolving any conflicts or
ambiguities, ensuring the requirements are realistic and feasible.
3. Requirements Specification
Contribution: Documents the requirements in a clear, structured way, providing a
formalized blueprint for development and ensuring all stakeholders have a shared
understanding.
4. Requirements Validation
Contribution: Verifies that the documented requirements are correct, complete, and aligned
with the user’s and business's needs, reducing the risk of miscommunication.
CLASS-BASED MODELING
Class-based modeling represents the objects that the system will
manipulate, the operations that will be applied to the objects to effect the
manipulation, relationships between the objects, and the collaborations that occur
between the classes that are defined.
The elements of a class-based model include classes and objects, attributes, operations, class
responsibility collaborator (CRC) models, collaboration diagrams, and packages
Identifying Analysis Classes
• Things (e.g., reports, displays, letters, signals) that are part of the information
domain for the problem.
• Roles (e.g., manager, engineer, salesperson) played by people who interact with the
system.
• Organizational units (e.g., division, group, team) that are relevant to an application.
• Places (e.g., manufacturing floor or loading dock) that establish the context of
the problem and the overall function of the system.
AGILE PROCESS
Any agile software process is characterized in a manner that addresses a number of key
assumptions about the majority of software projects:
1. It is difficult to predict in advance which software requirements will persist and
which will change. It is equally difficult to predict how customer priorities will
change as the project proceeds.
2. For many types of software, design and construction are interleaved. That is, both
activities should be performed in tandem so that design models are proven as they
are created. It is difficult to predict how much design is necessary before
construction is used to prove the design.
3. Analysis, design, construction, and testing are not as predictable
Agility Principles
Agility principles for those who want to achieve agility:
1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
• Coding. After stories are developed and preliminary design work is done, the
team does not move to code, but rather develops a series of unit tests that will
exercise each of the stories that is to be included in the current release Once
the code is complete, it can be unit-tested immediately, thereby providing
instantaneous feedback to the developers.
• Testing. The creation of unit tests before coding commences is a key element
of the XP approach. The unit tests that are created should be implemented using a
framework that enables them to be automated. This encourages a regression testing
strategy whenever code is modified. As the individual unit tests are organized into
a “universal testing suite” integration and validation testing of the system can occur
on a daily basis. This provides the XP team with a continual indication of progress
and also can raise warning flags early if things go awry. Wells states: “Fixing small
problems every few hours takes less time than fixing huge problems just before the
deadline.”
Agile processes require tools that support collaboration, iteration, and continuous
improvement. Below are some key categories and examples of tools commonly used:
5. Testing Tools
By leveraging these tools, Agile teams can enhance transparency, communication, and
adaptability, ensuring successful project delivery.
6a. Explain the principles that guide each framework activity in the software
engineering process
4. Modularity
• Divide software into smaller, manageable, and reusable components.
• Facilitates easier maintenance, testing, and scalability.
5. Iterative Development
• Develop software incrementally, allowing for feedback and continuous improvement.
• Commonly used in Agile and iterative models.
6. Risk Management
• Identify, assess, and mitigate risks throughout the software lifecycle to prevent costly
issues.
7. Maintainability
• Write clean, well-documented code to ensure software can be easily understood and
updated.
8. User-Centric Design
• Focus on user needs and behaviors to create intuitive and functional software.
• Design systems to handle increasing workloads and maintain performance under
stress.
10. Collaboration and Communication
• Encourage teamwork and effective communication among developers, stakeholders,
and end-users.
11. Ethics and Responsibility
• Ensure the software respects privacy, adheres to legal requirements, and aligns with
societal values.
12. Continuous Learning
• Stay updated with new technologies, practices, and tools to adapt to a rapidly
evolving field.
By adhering to these principles, software engineering ensures that software is developed
efficiently, meets user expectations, and remains sustainable over time.
Scrum:
Crystal
Alistair Cockburn and Jim Highsmith created the Crystal family of agile
methods in order to achieve a software development approach that puts a premium on
“maneuverability” during what Cockburn characterizes as “a resource limited,
cooperative game of invention and communication, with a primary goal of delivering
useful, working software and a secondary goal of setting up for the next game”
The Crystal family is actually a set of example agile processes that have been
proven effective for different types of projects. The intent is to allow agile teams to
select the member of the crystal family that is most appropriate for their project and
environment.
In Project Management process, the project manager carries out project initiation,
planning, execution, monitoring, controlling and closing.
1.Project Initiation: The project initiation phase starts with project concept development.
During concept development the different characteristics of the software to be developed
are thoroughly understood, which includes, the scope of the project, the project
constraints, the cost that would be incurred and the benefits that would accrue. Based on
this understanding, a feasibility study is undertaken to determine the project would be
financially and technically feasible.
Based on feasibility study, the business case is developed. Once the top
management agrees to the business case, the project manager is appointed, the
project charter is written and finally project team is formed. This sets the ground
for the manager to start the project planning phase.
W5HH Principle: Barry Boehm, summarized the questions that need to be asked and
answered in order to have an understanding of these project characteristics.
• Project Closure: Project closure involves completing the release of all the
required deliverables to the customer along with the necessary
documentation. All the Project resources are released and supply
agreements with the vendors are terminated and all the pending payments
are completed. Finally, a postimplementation review is undertaken to
analyze the project performance and to list the lessons for use in future
projects.
Project Execution:
The project can now be executed. The execution of a project often contains design
and implementation subphases. The same is illustrated in Figure 1.2 which shows the
typical sequence of software development activities recommended in the international
standard ISO 12207.
Requirements Analysis:
This starts with requirement elicitation or requirement gathering which establishes
what the users require of the system that the project is to implement. Some work along
these lines will almost certainly have been carried out when the project was evaluated,
but now the original information obtained needs to be updated and supplemented.
Request: Identifying the need for a contract and gathering the necessary information to draft it.
Creation: Drafting the contract terms and conditions that align with the requirements and
objectives of all parties involved.
Example: A software company needs to hire a third-party developer to work on a new
project.
The project manager identifies the need for a contract and gathers details about the scope
of work, timelines, payment terms, and other specifics.
1. Negotiation:
Parties involved discuss and negotiate the terms of the contract to reach a mutual
agreement. This stage often involves revisions and adjustments.
Example: The software company and the third-party developer negotiate the terms.
The developer might request more time or a higher payment, while the company might
request milestones for progress checks.
Example: Once the terms are finalized, the contract is reviewed by both parties' legal
teams. After approval, both the software company and the developer sign the contract.
Example: The developer starts working on the project, adhering to the deadlines and
deliverables specified in the contract. The software company provides the necessary
resources and makes payments as per the contract.
Making necessary amendments if any changes occur during the contract period.
Reviewing and renewing contracts as needed.
Example: Midway through the project, the software company requests additional
features not covered in the original contract. An amendment is made to include these
new features and adjust the payment terms accordingly. As the project nears
completion, the company and developer may negotiate a renewal for ongoing
maintenance.
5. Closure:
Completing all contractual obligations, ensuring all parties have met their
requirements, and formally closing the contract.
Example: The developer finishes the project, and the software company conducts a
final review to ensure all deliverables meet the agreed-upon standards. Once
confirmed, the contract is closed, and a final payment is made.
• Description: Calculates the present value of cash inflows and outflows over the
project’s life, considering the time value of money.
• Formula: NPV=∑(Cash In flowt(1+r)t)−Initial Investment\text{NPV} = \sum \left(
\frac{\text{Cash Inflow}_t}{(1 + r)^t} \right) - \text{Initial Investment}
o tt: Time period
o rr: Discount rate
• Cost Benefits:
o Highlights projects that deliver long-term profitability.
o Accounts for inflation and the time value of money.
o Facilitates comparison of projects with varying time horizons.
5. Internal Rate of Return (IRR)
• Description: Determines the discount rate at which the NPV of a project becomes
zero.
• Cost Benefits:
o Helps in evaluating the profitability and efficiency of investments.
o Facilitates comparison of projects with different scales.
o Indicates the breakeven discount rate.
6. Economic Value Added (EVA)
• Description: Measures the project's value creation by comparing net operating profit
after taxes (NOPAT) to the cost of capital.
• Cost Benefits:
o Identifies projects that exceed the cost of capital, ensuring value creation.
o Highlights areas of inefficiency in cost management.
7. Sensitivity Analysis
• Description: Examines how changes in key assumptions (e.g., costs, benefits,
discount rates) affect project outcomes.
• Cost Benefits:
o Identifies risks associated with varying assumptions.
o Helps in making robust decisions under uncertainty.
Changes are frequent and expected; Changes are costly and disruptive;
Change
managed through version control require formal approvals and
Management
and agile practices. redesign efforts.
Specialized tools like IDEs, CI/CD Tools and machinery specific to the
Tools and
pipelines, version control, and domain, such as construction
Techniques
testing frameworks. equipment or event software.
Step 1 : Identifying project scope and objectives Some objective could relate to the
quality of the application to be delivered.
Step 2 : Identifying project infrastructure Within this step activity 2.2 involves identifying
installation standards and procedures. Some of these will almost certainly be about quality
requirements.
Step 4 : Identify the product and activities of the project. It is at that point the entry, exit and
process requirement are identified for each activity.
Step 8: Review and publicize plan. At this stage the overall quality aspects of the project
plan are reviewed.
1) McCall’ Model: McCall defined the quality of a software in terms of three broad
parameters: its operational characteristics, how easy it is to fix defects and how easy it is
to part it to different platforms. These three high-level quality attributes are defined based
on the following eleven attributes of the software:
2. Dromey’s model: Dromey proposed that software product quality depends on four major
high-level properties of the software: Correctness, internal characteristics, contextual
characteristics and certain descriptive properties. Each of these high-level properties of a
software product, in turn depends on several lower-level quality attributes.
3.Boehm’s Model: Boehm’s suggested that the quality of a software can be defined based
on these high-level characteristics that are important for the users of the software. These
three high-level characteristics are the following:
As-is -utility: How well (easily, reliably and efficiently) can it be used?
Maintainability: How easy is to understand, modify and then retest the
software? Portability: How difficult would it be to make the software in a
changed environment?
Boehm’s expressed these high-level product quality attributes in terms of several measurable
product attributes.
The end deliverable and its The methods and procedures used to
Focus Area
features. produce the deliverable.
2. Decomposition by Activities
• Description:
o The project is divided into activities based on the software development
lifecycle (SDLC), such as requirements gathering, design, coding, testing, and
deployment.
• Steps:
1. List all project activities.
2. Break down each activity into smaller tasks.
5. Decomposition by Deliverables
• Description:
o The project is decomposed into deliverables or milestones.
o Each deliverable is estimated separately.
• Steps:
1. Identify all project deliverables.
2. Break down each deliverable into tasks or sub-deliverables.
3. Estimate effort or cost for each task.
4. Aggregate the estimates.
• Advantages:
o Keeps focus on project outcomes.
o Simplifies tracking and progress monitoring.
• Example:
o For a software product, deliverables might include "Prototype," "Beta
Version," and "Final Release."
Challenges
• Overhead: Decomposition can be time-consuming and requires expertise.
• Inaccuracy in Aggregation: Errors in estimating smaller components can add up.
• Scope Creep: If decomposition is not well-managed, it can lead to scope expansion.
Decomposition techniques are foundational in project estimation as they provide a systematic
way to understand, estimate, and manage complex software projects.
An estimation model for computer software uses empirically derived formulas to predict
effort as a function of LOC or FP.11 Values for LOC or FP are estimated using the approach
described in Sections 26.6.3 and 26.6.4. But instead of using the tables described in those
sections, the resultant values for LOC or FP are plugged into the estimation model.
The empirical data that support most estimation models are derived from a limited sample of
projects. For this reason, no estimation model is appropriate for all classes of software and in
all development environments. Therefore, you should use the results obtained from such
models judiciously.
An estimation model should be calibrated to reflect local conditions. The modelshould be
tested by applying data collected from completed projects, plugging the data into the model,
and then comparing actual to predicted results. If agreement is poor, the model must be tuned
and retested before it can be used.