0% found this document useful (0 votes)
14 views98 pages

OOSE Module 1 & 2 Complete Solutions

The document outlines various aspects of software engineering, including communication activities, process models, and project management principles. It discusses the advantages and disadvantages of different software development approaches, such as the incremental model and component-based development. Additionally, it emphasizes the importance of metrics in software engineering for quality assurance and process improvement.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views98 pages

OOSE Module 1 & 2 Complete Solutions

The document outlines various aspects of software engineering, including communication activities, process models, and project management principles. It discusses the advantages and disadvantages of different software development approaches, such as the incremental model and component-based development. Additionally, it emphasizes the importance of metrics in software engineering for quality assurance and process improvement.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 98

OOSE MODULE 1 SOLUTIONS

Part A

1 Develop a set of actions for the communication activity. Select one


action and define a task set for it.

A. Task Set for Communication Activity: A task set would define the actual
work to be done to accomplish the objectives of a software engineering
action. For the communication activity these are:
● Make a list of stakeholders for the project
● Invite all the stakeholders to an informal meeting
● Ask them to make a list of features and functions
● Discuss requirements and build a final list
● Prioritize requirements and note the areas that he is uncertain of
These tasks may be larger for a complex software project, they may then
include
● To conduct a series of specification meetings, build a preliminary list
of functions and features based on stakeholder input.
● To build a revised list of stakeholder requirements.
● Use quality function deployment techniques to prioritize the
requirements.
● Note constraints and restrictions on the system.
● Discuss methods for validating systems.
2 Describe, Is it possible to combine process models? If so, provide an
example

A. Yes, it is possible to combine the software process models.


The process models can be combined because all the processes are about
similar to each other as all the models have these basic phases like:
requirements gathering, planning, designing, implementation and
deployment but each model suggests the different process flow.

Some of the possibilities of combining the software process models are


evolutionary / prototyping process models, the spiral model and the
incremental process model.

We can sometimes combine process models:


e.g.
1. waterfall inside evolutionary – onboard shuttle software.
2. Evolutionary inside waterfall – e.g. GUI prototyping
3. Scrum inside waterfall

We can also evolve the process together with the product to account for
product maturity.
e.g. rapid prototyping waterfall.
Following software:
1. Likewise agile ( combination of both incremental and iterative model)
2. Spiral (combination of waterfall and evolutionary model)
3 List the advantages and disadvantages of developing software in which
quality is —good enough

A. The advantages of developing software in which quality is “good


enough” are:
● Completeness – All the requirements are reflected in the software
● Conciseness – Compactness
● Reliability – No faulty outputs
● Improved user satisfaction.
● Reduced cost of maintenance
● Efficiency – Amount of computing resources and cost required by a
program to perform a function.
● Consistency.

It may however lead to the delivery of software that is low in quality and
requires time to improve the quality.

4 Explain why systems developed as prototypes should not normally be


used as production systems.

A. Prototypes should be discarded after development as they are not a


good basis for a production system:
1. It may be impossible to tune the system to meet non-functional
requirements;
2. Prototypes are normally undocumented;
3. The prototype structure is usually degraded through rapid change;
4. The prototype probably will not meet normal organizational quality
standards.
5. Ignorance of some non-functional requirements like user
management, security, memory management, and performance may
not be fulfilled.
6. The user interface may be minimal and not intuitive.

5 List the prescriptive software development process models. Explain the


incremental process model with neat diagram

A. The name 'prescriptive' is given because the model prescribes a set of


activities, actions, tasks, quality assurance and changes the mechanism for
every project.

There are three types of prescriptive process models. They are:


1. The Waterfall Model
2. Incremental Process model
3. RAD model

Incremental Process model

● The incremental model combines the elements of the waterfall model

and they are applied in an iterative fashion.


● The first increment in this model is generally a core product.

● Each increment builds the product and submits it to the customer for

any suggested modifications.


● The next increment implements the customer's suggestions and adds

additional requirements in the previous increment.


● This process is repeated until the product is finished.

For example, word-processing software is developed using the incremental


model.

Advantages of incremental model

● This model is flexible because the cost of development is low and

initial product delivery is faster.


● It is easier to test and debug during the smaller iteration.

● The working software generates quickly and early during the

software life cycle.


● The customers can respond to its functionalities after every

increment.

Disadvantages of the incremental model


● The cost of the final product may cross the cost estimated initially.

● This model requires very clear and complete planning.

● The planning of design is required before the whole system is broken

into small increments.


● The demands of customers for the additional functionalities after every

increment causes problems during the system architecture.

6 List out any three specialized process models. Explain the component
based development process model with their goals, advantages and
routines.

A. The three specialized process models are:

● Component Based Development


● The Formal Methods Model
● Aspect Oriented Software Development

Component Based Development

The component based development model incorporates many of the


characteristics of the spiral model. It is evolutionary in nature, a specialized
process model demanding an iterative approach to the creation of
software. However, the component based development model constructs
applications from prepackaged software components.
Modeling and construction activities begin with the identification of
candidate components. These components can be designed as either
conventional software modules or object oriented classes or packages of
classes.

Regardless of the technology that is used to create the components, the


component based development specialized process model incorporates the
following steps.

Available component based products are researched and evaluated for the
application domain in question. Component integration issues are
considered. A software architecture is designed to accommodate the
components. Components are integrated into the architecture.
Comprehensive testing is conducted to ensure proper functionality.

The component based development model leads to software reuse, and


reusability provides software engineers with a number of measurable
benefits.

7 Distinguish between process and project metrics. Give examples? What


is defect classification? How can an organization make use of these
metrics for its process improvement?

Software process and project metrics are quantitative measures that enable
software engineers to gain insight into the efficiency of the software
process and the projects conducted using the process framework. In
software project management, we are primarily concerned with productivity
and quality metrics.

Process metrics − These characteristics can be used to improve the


development and maintenance activities of the software.

Project metrics − These metrics describe the project characteristics and


execution. Examples include the number of software developers, the
staffing pattern over the life cycle of the software, cost, schedule, and
productivity.

Process Metrics

• Private process metrics (e.g. defect rates by individual or module) are


known only to the individual or team concerned.

• Public process metrics enable organizations to make strategic changes to


improve the software process.

• Metrics should not be used to evaluate the performance of individuals.

• Statistical software process improvement helps an organization to


discover where they are strong and where they are weak.
Project Metrics

• Software project metrics are used by the software team to adapt project
workflow and technical activities.

• Project metrics are used to avoid development schedule delays, to


mitigate potential risks, and to assess product quality on an on-going basis.

• Every project should measure its inputs (resources), outputs


(deliverables), and results (effectiveness of deliverables).

Defects are classified from the QA team perspective as Priority and from
the development perspective as Severity (complexity of code to fix it).
These are two major classifications that play an important role in the
timeframe and the amount of work that goes in to fix defects.

The only way to know how/where to improve any process is to

● Measure specific attributes of the process.


● Develop a set of meaningful metrics based on these attributes.
● Use the metrics to provide indicators that will lead to a strategy for
improvement.
8 Summarize the necessity of different process models? Describe the
process model you would adopt for the car manufacturing project and
justify your choice with its advantages and disadvantages

A. By using a business process model, everyone within an organization can


reap the upsides. From employees who have their hands on deck to
external stakeholders who have a vested interest in how things run.

This is because the first step in maximizing productivity and reducing waste
is to know how processes currently run. Process models can lead to:

● Increased efficiency: Since the purpose of a process model is to


make the process better, it should ultimately result in increased
efficiency. With better quality outputs, you can boost your bottom
line.
● Standardization: If different teams have to run the same process,
having it visually displayed can aid in standardizing the process.
● Transparency: With process models, everyone becomes aware of
what processes exist and the reasons for them. This not only helps to
hold responsible parties accountable, but it can also boost morale
when employees understand the bigger picture of why they do what
they do.
● Agility: Creating an environment where process improvement is a
norm will help to shift the entire corporate culture. In a business
setting that strives for greatness, it becomes easier to enact change
management and adjust processes to keep up with the times.

There are several process models that could potentially be used for a car manufacturing
project, each with its own advantages and disadvantages. Some potential options might
include the Waterfall model, the Agile model,

9. State the needs for metrics in software engineering. Explain how


software quality is assured through software metrics.

A. Benefits of Software Metrics


The goal of tracking and analyzing software metrics is to determine the
quality of the current product or process, improve that quality and predict
the quality once the software development project is complete. On a more
granular level, software development managers are trying to:

● Increase return on investment (ROI)


● Identify areas of improvement
● Manage workloads
● Reduce overtime

Reduce costs:
The following principles or factors are things that can be measured. Then
use the results to test the quality of your software as it applies to the above
quality aspects trying to be achieved.

The only way to know how/where to improve any process is to

● Measure specific attributes of the process.


● Develop a set of meaningful metrics based on these attributes.
● Use the metrics to provide indicators that will lead to a strategy for
improvement.

10 Describe project management? List and explain the principles related


to software project management related to a project.

A. Project management is the process of leading the work of a team to


achieve all project goals within the given constraints. This information is
usually described in project documentation, created at the beginning of the
development process. The primary constraints are scope, time, and budget.
The secondary challenge is to optimize the allocation of necessary inputs
and apply them to meet pre-defined objectives.

Project management is the use of specific knowledge, skills, tools and


techniques to deliver something of value to people.
These project management principles cover the major areas when
managing a project.

1. Define a Project Organization Structure


This is the first thing you’ll have to think about when managing a project.
The project organization structure is the framework that facilitates the
planning, execution and tracking of project activities.
2. Set Clear Project Goals & Objectives
Before you can start the project planning phase, you’ll need to define the
main goals and objectives of your project. The project goals define the
expected benefits of the project while the project objectives are the steps
that you’ll need to take to achieve them. Defining your goals and objectives
will set the stage to plan your project scope, schedule and budget.

3. Create a Communication Plan


While reporting to the various participants in the project is key, there must
be a primary communication plan to regulate communications between
yourself and the project sponsor. This is the only way to ensure those
project decisions are properly implemented.

4. Define Roles & Responsibilities


To move forward, a project must have well-defined roles, policies and
procedures in place. That means everyone must know what they’re
responsible for and to whom they answer. There needs a delegation of
authority for any project to function.

5. Create a Risk Management Plan


Risk is part of life, and it’s certainly a part of any project. Before the project
even starts, figure out the potential risks inherent in the work ahead.
Identifying them is not an exact science, of course, but you can use historic
data and knowledge from your team and sponsors to uncover where the
risk lies.
It’s not enough to know that risk might rise at certain points in a project; you
also should put in place a plan to resolve the issue before it becomes a
problem.

6. Set a Project Performance Baseline


As you progress through your project, you’ll need project performance
metrics to measure success. This is how you can hold your team and
yourself accountable, so you should always have ways to measure the
various aspects of your project and determine if the actual figures reported
are in line with the ones you planned.

7. Create a Change Management Plan


As a project manager, you’ll need to know that project plans will likely
change as your team starts the project execution phase. Delays, issues, and
risks might make it necessary to make changes to your project scope,
budget or schedule.
Keeping track of these changes and establishing an approval process it’s
called change management, a critical facet to project success as it helps to
avoid scope creep and other issues.
8. Focus on Value Delivery
In any project, it’s always important to focus on your clients and
stakeholders expectations and meet their project requirements. As a project
manager, you need to make sure that the project goals and objectives are
realistic and agreed upon by the project team and project stakeholders.

Then once you’ve reached an agreement with clients and stakeholders you
can think about your value chain, supply chain, milestones, deliverables and
quality standards and evaluate whether you’re delivering the expected
value.

PART B
Ad
1)Illustrate about Software Engineering Paradigm in detail

Software Paradigms

Software paradigms refer to the methods and steps, which are taken while
designing the software. There are many methods proposed and are in work
today, but we need to see where in the software engineering these
paradigms stand. These can be combined into various categories, though
each of them is contained in one another:
Programming paradigm is a subset of Software design paradigm which is
further a subset of Software development paradigm.

Software Development Paradigm

This Paradigm is known as software engineering paradigms where all the


engineering concepts pertaining to the development of software are
applied. It includes various researches and requirement gathering which
helps the software product to build. It consists of –

● Requirement gathering

● Software design

● Programming

Software Design Paradigm

This paradigm is a part of Software Development and includes –

● Design

● Maintenance

● Programming
Programming Paradigm

This paradigm is closely related to the programming aspect of software


development. This includes –

● Coding

● Testing

● Integration

2)Explain the Process in Software Engineering.

The software engineering process is a set of activities carried out during a


software product development. These procedures ensure that the final
product meets the client’s requirements specification. These tasks are
typically performed by software engineers and other experts. It’s also
referred to as the software development life cycle.

It also includes the software development process, which ensures that the
software adheres to the blueprint established by the client during the early
stages. Finally, the software must evolve to meet the client’s ever-changing
needs.

What Are Software Engineering Processes Good For?

Software engineering processes save money and time. When the


development team adheres to the client’s requirements and their own
research, the risk of the project being rejected by the client at completion is
reduced. This would be a waste of resources and time. Here are some other
benefits of software engineering processes.

● Provides quick solutions. It identifies the issue and makes it easier to


solve.
● Streamlines the process. When software engineering teams follow the
process, they spend time meeting with the client and developing the
software idea in the early stages. During this time, the team can go
over the entire process and eliminate any steps that do not add value
to the software development process.
● Prevent issues during software development. Following the software
engineering processes can help to prevent problems from arising.
● What Are the five steps of the Software Engineering Processes

Planning

● This phase begins with identifying the problem that the software is
designed to solve and gathering the necessary information to build
it.This is the most important phase because it eliminates potential
problems that may arise later in the project.
● The software engineering team gathers information about what they
need to proceed with and obtains a detailed description of the
software during this stage. It is crucial to obtain this information, so
that project managers do not waste resources on software that the
client does not need.

System Analysis and Design


● The system analysis stage comes next, and it includes a feasibility
study on the client’s ideas to determine its viability. The primary
objective here is to view the software concept through the users’
eyes to avoid developing software that does not adhere to general
standards.

Development

● This stage kicks off the main software development process. The
software engineering team begins by writing code, establishing
infrastructure, and starting the documentation process to
demonstrate how the system operates to others. At this point, the
team collaborates with designers to ensure that the designs are
implemented. If a problem arises, they cooperate to find a solution.

Testing

● The testing stage begins after the development stage to ensure that
the software works properly before being released to the public.
Hence, software quality assurance is performed.
● The quality control department looks for code errors that could
malfunction the software. After that, they check for errors repeatedly.
If it passes the test, the software engineering team will implement it.

Implementation

● After testing, the software will be prepared for release. This is the
implementation stage. The teams collaborate to resolve any issues
that customers may encounter. They collect user feedback to
determine which issues should be addressed in the software. They
are also open to updating ideas that would benefit users.
● If there are errors that were not detected during the testing stage, the
software will be returned for repair. After some time, the software will
run without errors, and it will be ready to be released to the general
public.

3)Discuss about the issues/problems in OOSE

1 Code Complexity

The most important aspect of programming is keeping the code's


complexity as low as possible. Wrong abstraction and shared mutable
states make code very complex in OOP. It fails especially when the
complexity of the program increases. Instead of reducing its complexity, it
encourages promiscuous sharing of mutable states and introduces
additional complexity with its numerous design patterns. This makes it hard
to write good and maintainable object-oriented code. While following this
technique most of the time is spent thinking about ‘abstraction’ and ‘design
patterns’ instead of solving real-world problems. For efficiency's sake,
objects are passed to function not by their values but by reference. If an
object is passed by reference to an object constructor, the constructor can
put that object reference in a private variable which is protected by
encapsulation.

2 Input/Output

Object oriented programming is non-deterministic unlike functional


programming, we’re not guaranteed to get the same output given the same
input. For example if we call get_product(int x,int y) function which takes
two arguments we might get different answers sometimes.

3 Understanding and debugging issues

Understanding Object Oriented code is a big problem for beginners. If an


object-oriented programming code is very complex, it gets very hard to
debug it. This can be caused due to inheritance and polymorphism.

4 Lack of information hiding or modifiability.

Information hiding is a basic concept of OO design. Information hiding is


used in designing the object, in particular when deciding what information
should be visible and what information should be hidden.

● Modifiability
● adaptation
● Evolution
● Modifiability by Info Hiding
● Adaption by using Inheritance and Classes
● Evolution is the one that did not fully solved by OO methods yet.

4)Discuss about any two software process models

V Model

The V model (Verification and Validation model) is an extension of the


waterfall model. All the requirements are gathered at the start and cannot
be changed. Youz have a corresponding testing activity for each stage. For
every phase in the development cycle, there is an associated testing
phase.
The corresponding testing phase of the development phase is planned in
parallel, as you can see above.

The V model is highly disciplined, easy to understand, and makes project


management easier. But it isn’t good for complex projects or projects that
have unclear or changing requirements. This makes the V model a good
choice for software where downtimes and failures are unacceptable.

Waterfall Model

The waterfall model is a sequential, plan driven-process where you must


plan and schedule all your activities before starting the project. Each
activity in the waterfall model is represented as a separate phase arranged
in linear order.
It has the following phases:

● Requirements

● Design

● Dev

● Implementation

● Testing

● Deployment

● Maintenance

Each of these phases produces one or more documents that need to be


approved before the next phase begins. However, in practice, these phases
are very likely to overlap and may feed information to one another.
The software process isn’t linear, so the documents produced may need
to be modified to reflect changes.

The waterfall model is easy to understand and follow. It doesn’t require a lot
of customer involvement after the specification is done. Since it’s inflexible,
it can’t adapt to changes. There is no way to see or try the software until
the last phase.

The waterfall model has a rigid structure, so it should be used in cases


where the requirements are understood completely and unlikely to radically
change.

For more visit

What is a software process model? Top 7 models explained


(educative.io)

5)Write in detail about Project Management

Project management is the process of leading the work of a team to


achieve all project goals within the given constraints. This information is
usually described in project documentation, created at the beginning of the
development process. The primary constraints are scope, time, and budget.
The secondary challenge is to optimize the allocation of necessary inputs
and apply them to meet pre-defined objectives.

Project management is the use of specific knowledge, skills, tools and


techniques to deliver something of value to people.
Refer part A 10 Q

Project Management

Effective software project management focuses on the four Ps: people,


product, process, and project. The order is not arbitrary. A manager who
fails to encourage comprehensive stakeholder communication early in the
evolution of a product risks building an elegant solution for the wrong
problem. The manager who pays little attention to the process runs the risk
of inserting competent technical methods and tools into a vacuum.

Software Project Management (tutorialspoint.com)

6)Outline the metrics of Project? Explain it with examples

Project management metrics are data sets, formulas and calculations that
give companies the ability to measure the success of a project. They help
managers and organizations review how a project is going, evaluate team
productivity, project completion dates and costs and find, reduce or
alleviate risks.

Project management metrics are important because they prove value and
improve performance, ultimately helping companies gain profits.

Gross profit margin

Gross profit margin is a financial metric that shows how much money a
company makes after subtracting the total costs of doing business.
Essentially, a company performs better when the margin is higher. Project
management goals should align with contributing to the profitability of a
company or organization.
Gross profit margin = (total profit - total costs) / 100

Earned value

Earned value tells you how much money you've earned from the
money invested and spent on a project so far. It compares the value of
work completed already to the total allowed budget for the project.

Earned value (EV) = percentage of completed work / budget at


completion (BAC)

Customer satisfaction

Customer satisfaction metrics measure the quality of the goods or


service you provide based on customer data and results. Within
customer satisfaction scores, companies can select or prioritize
variables like survey results, amount of revenue generated,
percentage of repeat customers compared to lost customers or the
ratio of customer compliments to complaints.

Customer satisfaction score = (total survey point score / total


questions) x 100

Employee satisfaction

Employee satisfaction scoring is like customer satisfaction, though it


looks at elements like employee morale, retention versus turnover
rates, productivity amounts and rates of absenteeism. Depending on
the outcome, companies can change corporate policies
Employee satisfaction score = (total survey point score / total
questions) x 100

Productivity

This project management metric reviews the capabilities of a company


or organization, like how well it uses its resources including labor,
equipment and finances. Productivity shows the correlation between
input and output with the goal of producing more for less.

Productivity = units of input / units of output

A Guide to Project Management Metrics (With Examples) | Indeed.com

7)Outline the metrics of Process? Explain it with example

Process metrics are collected across all projects and over long periods of
time. Their intent is to provide a set of process indicators that lead to long-
term software process improvement. Project metrics enable a software
project manager to

(1) assess the status of an ongoing project,

(2) track potential risks,

(3) uncover problem areas before they go “critical,”

(4) adjust work flow or tasks, and

(5) evaluate the project team’s ability to control the quality of software work
products.
Measures that are collected by a project team and converted into metrics
for use during a project can also be transmitted to those with responsibility
for software process improvement. For this reason, many of the same
metrics are used in both the process and project domains Process Metrics
and software process improvement, it is important to note that process is
only one of a number of “controllable factors in improving software quality
and organizational performance” , process sits at the center of a triangle
connecting three factors that have a profound influence on software quality
and organizational performance. The skill and motivation of people have
been shown to be the most influential factors in quality and performance.
The complexity of the product can have a substantial impact on quality and
team performance. The technology (i.e., the software engineering methods
and tools) that populates the process also has an impact.

process metrics a circle of environmental conditions that include the


development environment (e.g., integrated software tools), business
conditions (e.g., deadlines, business rules), and customer characteristics
(e.g., ease of communication and collaboration). You can only measure the
efficacy of a software process indirectly. That is, you derive a set of metrics
based on the outcomes that can be derived from the process. Outcomes
include measures of errors uncovered before release of the software,
defects delivered to and reported by end users, work products delivered
(productivity), human effort expended, calendar

8)List the principles of OOSE with its concepts

OOSE, or Object-Oriented Software Engineering, is a software development


methodology that is based on the principles of object-oriented
programming (OOP). The main principles of OOSE are:

Encapsulation: Encapsulation is the principle of bundling data and methods


that operate on that data within a single unit, or object. This helps to reduce
complexity and increase reusability by allowing objects to be used as black
boxes that can be easily integrated into other systems.

Abstraction: Abstraction is the process of identifying the essential


characteristics of an object and ignoring non-essential details. This allows
developers to create simplified, high-level models that are easier to work
with and understand.

Inheritance: Inheritance is a way to create new classes that are derived


from existing classes. The derived class, or subclass, inherits the attributes
and behaviors of the base class, or superclass, and can also have additional
attributes and behaviors of its own.

Polymorphism: Polymorphism is the ability of a single interface to support


multiple implementations. This allows objects to be used interchangeably,
regardless of their specific implementation.

Modularity: Modularity is the principle of breaking a large system into


smaller, independent units that can be developed and tested separately.
This helps to reduce complexity and improve maintainability.

Reusability: Reusability is the ability to use existing software components in


new applications. This helps to reduce development time and costs by
allowing developers to reuse proven, tested code rather than starting from
scratch.

9)Discuss how OOSE differs from SE

Object Oriented Software Engineering (OOSE) is generally speaking a


subset of Software Engineering (SE). OOSE includes all the SE Principles
and it just specifies a focus on 'Object Oriented' architecture. It also implies
the use of a programming language that supports object orientation (such
as C++, Java, etc).

10)Explain waterfall model and applications of waterfall model in


software engineering.
Waterfall Model

The waterfall model is a sequential, plan driven-process where you must


plan and schedule all your activities before starting the project. Each
activity in the waterfall model is represented as a separate phase arranged
in linear order.

It has the following phases:

● Requirements

● Design

● Implementation

● Testing

● Deployment

● Maintenance

Each of these phases produces one or more documents that need to be


approved before the next phase begins. However, in practice, these phases
are very likely to overlap and may feed information to one another.

The software process isn’t linear, so the documents produced may need to
be modified to reflect changes.

The waterfall model is easy to understand and follow. It doesn’t require a lot
of customer involvement after the specification is done. Since it’s inflexible,
it can’t adapt to changes. There is no way to see or try the software until
the last phase.
The waterfall model has a rigid structure, so it should be used in cases
where the requirements are understood completely and unlikely to radically
change.

Waterfall Model - Application

Every software developed is different and requires a suitable SDLC


approach to be followed based on the internal and external factors. Some
situations where the use of Waterfall model is most appropriate are −

● Requirements are very well documented, clear and fixed.


● Product definition is stable.
● Technology is understood and is not dynamic.
● There are no ambiguous requirements.
● Ample resources with required expertise are available to support the
product.
● The project is short.

11) Discuss the template for process patterns

• A process pattern describes a process-related problem that is


encountered during software engineering work

• identifies the environment in which the problem has been countered, and

• suggests one or more proven solutions to the problem

• Stated in more general terms, a process pattern provides you with a


template i.e a consistent method for describing problem solutions within the
context of the software process.
Process Pattern Types

•Stage patterns—defines a problem associated with a framework activity


for the process.

It includes multiple task patterns as well. For example, Establishing


Communication

would incorporate the task pattern Requirements Gathering and others

•Task patterns—defines a problem associated with a software engineering


action or work task and relevant to successful software engineering
practice

•Phase patterns—define the sequence of framework activities that occur


with the process, even when the overall flow of activities is iterative in
nature.

12) Explain briefly about the Spiral model with neat sketch

The spiral model, initially proposed by Boehm, is an evolutionary software


process model that couples the iterative feature of prototyping with the
controlled and systematic aspects of the linear sequential model.

It implements the potential for rapid development of new versions of the


software. Using the spiral model, the software is developed in a series of
incremental releases. During the early iterations, the additional release may
be a paper model or prototype. During later iterations, more and more
complete versions of the engineered system are produced.
Each cycle in the spiral is divided into four parts:

Objective setting: Each cycle in the spiral starts with the identification of
purpose for that cycle, the various alternatives that are possible for
achieving the targets, and the constraints that exist.

Risk Assessment and reduction: The next phase in the cycle is to calculate
these various alternatives based on the goals and constraints. The focus of
evaluation in this stage is located on the risk perception for the project.

Development and validation: The next phase is to develop strategies that


resolve uncertainties and risks. This process may include activities such as
benchmarking, simulation, and prototyping.
Planning: Finally, the next step is planned. The project is reviewed, and a
choice made whether to continue with a further period of the spiral. If it is
determined to keep, plans are drawn up for the next step of the project.

When to use a Spiral Model?

● When deliverance is required to be frequent.

● When the project is large

● When requirements are unclear and complex

● When changes may require at any time

● Large and high budget projects

Advantages

● High amount of risk analysis

● Useful for large and mission-critical projects.

Disadvantages

● Can be a costly model to use.

● Risk analysis needed highly particular expertise

● Doesn't work well for smaller projects.

13)List different advantages of waterfall model

Advantages of the Waterfall model


● Uses clear structure
● Determines the end goal early.
● Transfers information well.
● Makes changes difficult.
● Excludes the client and/or end user.
● Delays testing until after completion.

14)Discuss different disadvantages of waterfall model

Disadvantages
● High amounts of risk and uncertainty.
● Not a good model for complex and object-oriented projects.
● Poor model for long and ongoing projects.
● Not suitable for the projects where requirements are at a moderate to
high risk of changing

15)Discuss about software Engineering? Explain the layered technology


of software engineering
Layered technology is divided into four parts:

1. A quality focus: It defines the continuous process improvement principles


of software. It provides integrity that means providing security to the
software so that data can be accessed by only an authorized person, no
outsider can access the data. It also focuses on maintainability and
usability.

2. Process: It is the foundation or base layer of software engineering. It is


key that binds all the layers together which enables the development of
software before the deadline or on time.

3. Method: During the process of software development the answers to all


“how-to-do” questions are given by method. It has the information of all the
tasks which includes communication, requirement analysis, design
modeling, program construction, testing, and support.

4. Tools: Software engineering tools provide a self-operating system for


processes and methods. Tools are integrated which means information
created by one tool can be used by another.

16)List out the disadvantages of spiral model

Disadvantages of Spiral Model:


● It is not suitable for small projects as it is expensive.
● It is much more complex than other SDLC models. ...
● Too much dependable on Risk Analysis and requires highly specific
expertise.
● Difficulty in time management. ...
● Spiral may go on indefinitely.
● End of the project may not be known early.
Advantages of Spiral Model:
● In this model, we can easily change requirements at later phases and
can be incorporated accurately.
● Also, additional Functionality can be added at a later date.
● It is good for large and complex projects. It is good for customer
satisfaction.

17)Define how software cost is estimated

For any new software project, it is necessary to know how much it will cost
to develop and how much development time it will take. Several estimation
procedures have been developed and have the following attributes in
common.

1. Project scope must be established in advance.


2. Software metrics are used as a support from which evaluation is
made.
3. The project is broken into small PCs which are estimated individually.
4. To achieve true cost & schedule estimate, several options arise.
5. Delay estimation
6. Used symbol decomposition techniques to generate project cost and
schedule estimates.
7. Acquire one or more automated estimation tools.

Uses of Cost Estimation

1. During the planning stage, one needs to choose how many engineers
are required for the project and to develop a schedule.
2. In monitoring the project's progress, one needs to access whether the
project is progressing according to the procedure and takes
corrective action, if necessary.
Cost Estimation Models
A model may be static or dynamic. In a static model, a single variable is
taken as a key element for calculating cost and time. In a dynamic model, all
variable are interdependent, and there is no basic variable.
18)Elaborate the use of COCOMO model

Boehm proposed COCOMO (Constructive Cost Estimation Model) in


1981.COCOMO is one of the most generally used software estimation
models in the world. COCOMO predicts the efforts and time of a software
product based on the size of the software.

The necessary steps in this model are:

● Get an initial estimate of the development effort from evaluation of


thousands of delivered lines of source code (KDLOC).
● Determine a set of 15 multiplying factors from various attributes of the
project.
● Calculate the effort estimate by multiplying the initial estimate with all
the multiplying factors i.e., multiply the values in step1 and step2.
The initial estimate (also called nominal estimate) is determined by an
equation of the form used in the static single variable models, using KDLOC
as the measure of the size. To determine the initial effort Ei in person-
months the equation used is of the type is shown below

Ei=a*(KDLOC)^b
time=c*(effort)^d

The value of the constant a and b depends on the project type.

In COCOMO, projects are categorized into three types:


● Organic
● Semi Detached
● Embedded

19)Describe with the help of a diagram, explain in detail waterfall model.


Give certain reasons for its failure

Refer q 10

20)Discuss —Software myth? Discuss on various types of software


myths and the true aspects of these myths
Software Myths:

Most experienced experts have seen myths or superstitions (false beliefs or


interpretations) or misleading attitudes which creates major problems for
management and technical people. The types of software-related myths
are listed below.

(i) 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 the


software development.

● Fact:
● The role of the latest hardware is not very high on standard software
development; instead (CASE) Engineering tools help the computer,
they are more important than hardware to produce quality and
productivity.
● Hence, the hardware resources are misused.
● Myth 3:
● With the addition of more people and program planners to Software
development can help meet project deadlines (If lagging behind).
● Fact:
● If software is late, adding more people will merely make the problem
worse. This is because the people already working on the project now
need to spend time educating the newcomers, and are thus taken
away from their work. The newcomers are also far less productive
than the existing software engineers, and so the work put into training
them to work on the software does not immediately meet with an
appropriate reduction in work.
● (ii)Customer Myths:
● The customer can be the direct users of the software, the technical
team, marketing / sales department, or other company. Customer has
myths leading to false expectations (customer) & that’s why you
create dissatisfaction with the developer.
Myth 1:
● A general statement of intent is enough to start writing plans
(software development) and details of objectives can be done over
time.
● Fact:

● Official and detailed description of the database function, ethical


performance, communication, structural issues and the verification
process are important.
● Unambiguous requirements (usually derived iteratively) are developed
only through effective and continuous
● communication between customer and developer.
(iii)Practitioner’s Myths:

Myths 1:

They believe that their work has been completed with the writing of
the plan.

Fact:
It is true that every 60-80% effort goes into the maintenance phase
(as of the latter software release). Efforts are required, where the
product is available first delivered to customers.
Myths 2:

There is no other way to achieve system quality, until it is “running”.

Fact:

Systematic review of project technology is the quality of effective


software verification methods. These updates are quality filters and
more accessible than tests.
Myth 3:

An operating system is the only product that can be successfully


exported project.
Fact:
A working system is not enough, the right document brochures and
booklets are also required to provide guidance & software support.
Brief description about Software Myths - GeeksforGeeks

Part C
Poornoday

1. Define software engineering. Differentiate between process and


project.

Ans. Softwaíe Engineeíing is a systematic, disciplined, quantifiable


study and appíoach to the design, development, opeíation, and
maintenance of a softwaíe synstem.
2.Explain Water-fall model with a neat diagram.

A: ľhe wateífall model is a sequential design píocess, often used in


softwaíe development píocesses, wheíe píogíess is seen as flowing
steadily downwaíds thíough the phases of Conception, Initiation, Analysis,
Design, Constíuction, ľesting, Píoduction/Implementation, and
Maintenance.
3.Outline the importance of spiral model?

A: Each cycle in the spiral starts with the identification of purpose for that
cycle, the various alternatives that are possible for achieving the targets,
and the constraints that exist. Risk Assessment and reduction: The next
phase in the cycle is to calculate these various alternatives based on the
goals and constraints.
o High amount of risk analysis

o Useful for large and mission-critical projects.

4.Distinguish between process and methods


5.Give the importance of software engineering
Reduces complexity
Reduces the software cost
Reduces time
Handling big projects
Reliable software
Effectiveness

6.Discuss about software process


Software is the set of instructions in the form of programs to govern the
computer system and to process the hardware components. To produce a
software product the set of activities is used. This set is called a software
process

7.Explain agile development

Agile development is an iterative software-development methodology


which teams use in projects. Self-organized, cross-functional teams
frequently analyze circumstances and user needs to adapt projects.
Scrum teams constantly improve quality in sprints with short-term
deliverables. They show Agile development in action.

8.Demonstrate all the applications of software

Application Software Programs are developed to execute a large variety of


roles. The functions are not limited to but depend upon the user’s need.
Some of the most common functions of application software are
● Manipulating data

● Managing information

● Calculating figures

● Constructing visuals

● Coordinating resources

● Writing reports
● Creating spreadsheets

9.Define project

A Softwaíe Píoject is the complete píoceduíe of softwaíe development


fíom íequiíement gatheíing to testing and maintenance, caííied out
accoíding to the execution methodologies, in a specified peíiod of time to
achieve intended software product. Software is said to be an intangible
product.

10.Explain project management

Píoject management is the píocess of leading the woík of a team to


achieve all píoject goals within the given constíaints. ľhis infoímation is
usually descíibed in píoject documentation, cíeated at the beginning of the
development píocess.

11.List out the píinciples and methodologies

Some píoject management methodologies simply define píinciples, like


Agile. Otheís define a “full-stack” methodology of themes, píinciples, and
píocesses, such as Píince2. Some aíe an extensive list of standaíds with
some píocesses, like the PMI methodology PMBOK, and some aíe veíy
light and simply define píocesses, like Scíum

12.List out the types of softwaíe myths


13.List out all the umbíella activities in píocess fíamewoík

Ехесutіvе Маnаgеmеnt – Тор mаnаgеmеnt shоuld асt аs thе mаіn drіvеr


fоr ТQМ аnd сrеаtе аn еnvіrоnmеnt thаt еnsurеs іts suссеss.

Тrаіnіng – Еmрlоуееs shоuld rесеіvе rеgulаr trаіnіng оn thе mеthоds аnd


соnсерts оf quаlіtу.

Сustоmеr Fосus – Іmрrоvеmеnts іn quаlіtу shоuld іmрrоvе сustоmеr


sаtіsfасtіоn. Dесіsіоn Маkіng – Quаlіtу dесіsіоns shоuld bе mаdе bаsеd оn
mеаsurеmеnts.
Меthоdоlоgу аnd Тооls – Usе оf аррrорrіаtе mеthоdоlоgу аnd tооls
еnsurеs thаt nоn-соnfоrmаnсеs аrе іdеntіfіеd, mеаsurеd аnd rеsроndеd tо
соnsіstеntlу.

Соntіnuоus Іmрrоvеmеnt – Соmраnіеs shоuld соntіnuоuslу wоrk tоwаrds


іmрrоvіng mаnufасturіng аnd quаlіtу рrосеdurеs.

14.List out the different layers of software engineering


15. Explain the waterfall model and who invented the waterfall model?
The first known presentation describing use of such phases in software
engineering was held by Felix Torres and Herbert D. Benington at the
Symposium on Advanced Programming Methods for Digital Computers on
29 June 1956.

Explanation refer part b q.10

16. List out the advantages of waterfall model

list of advantages to the wateífall model: Suitable for simple or smaller


projects. Requirements aíe well understood. Easy to understand. Easy to
manage. Clear milestones.

17. List out the disadvantages of wateífall model Disadvantages of


wateífall model.
1. ľhe model is not suitable foí complex oí heavy systems.
2. Waterfall model is not suitable foí píojects that last long.
3. Píogíess of systems using these models is not easy to measure.
4. Once system development begins, changing scope duíing the
lifecycle could lead to teímination of the system project.

18.Define the use of incremental process model

An incremental model is the softwaíe development process which is mostly


adopted. ľheíe aíe many models in the softwaíe development which weíe
developed to achieve different objectives. ľhese models specify the way
the software is developed with each stage of iteíation and process to be
carried to out to implement those stages.

19.List out the disadvantages of spiíal model

Disadvantages of Spiíal Model: It is not suitable foí smalthan otheí SDLC


models. Píocess is complex. ľoo much dependable on Risk Analysis and
íequiíes highly specific expeítise.

20.Discuss about component based development

Component-based development (CBD) is a píoceduíe that accentuates the


design and development of computeí-based systems with the help of
íeusable softwaíe components. With CBD, the focus shifts fíom softwaíe
píogíamming to softwaíe system composing.
MOD II PLANNING AND SCHEDULING

PART-A
Syed Ikram

1 Identify various functional and nonfunctional requirements that may be


defined for a library based system?

Requirements analysis is a very critical process that enables the success of


a system or software project to be assessed. Requirements are generally
split into two types: Functional and Non-functional requirements.

Functional Requirements: These are the requirements that the end user
specifically demands as basic facilities that the system should offer. All
these functionalities need to be necessarily incorporated into the system as
a part of the contract. They are basically the requirements stated by the
user which one can see directly in the final product, unlike the non-
functional requirements.

Non-functional requirements: These are basically the quality constraints


that the system must satisfy according to the project contract. The priority
or extent to which these factors are implemented varies from one project to
other. They are also called non-behavioral requirements.
The main function of the library management are listed below :

● Updating stock details : It must enter details regarding new book,


circulars, magazines etc. The stock details are updated each and
every time a new stock arrives or when an item is taken out.
● Providing Identification number: The system provides a unique
identification number to each item separately.
● Manage Periodicals : It means item that comes on a periodical basis,
such as newspapers, journals etc. Its function is to handle the
periodicals in a proper manner.
● Reservation : One of the most important function of a Management
system is that it can help members to reserve a certain item which
they want from anywhere by using their membership number.
● Report generation : One of the most important functionality of a
Library management is that it should generate quick reports on
demand.
● Technological advancement
● Providing a better search option : Providing better ways to search a
particular stock can be said to be one of the most important functions
of a library management.
● Maintaining Records : It must maintain library assets, members and
staff and keep each and every detail that are relevant for running the
library smoothly.
● Audit : The functional requirement of a LMS should be such that
auditing the asset of the entire library should be done in seconds with
ease.
NON FUNCTIONAL
● Usability
● Availability & Reliability
● Backup & Disaster recovery
● Privacy & Security
● Accessibility
● Extensibility (adding features, and carry-forward of customizations at
next major version upgrade)
● Performance
● Platform compatibility
● Reusability
● Operability

2 List out user requirements for the following functions a) Cash


dispensing function in a bank ATM. b) Spelling check and correcting
function in a word processor\
The requirements for the automated teller machine are organized in the
following way: General requirements, requirements for authorization,
requirements for a transaction.

Functional requirements
Refer this doc for complete information atm.dvi (toronto.edu)
b)DFD for Spell Checking and Correcting in Word Processor -
GeeksforGeeks
Word processing simply means the process in which a document is created
or edited using a word processor. Word processor is actually a software or
a device with the help of which a document can be edited, created, or
printed. Nowadays, various word processors are available like Microsoft
Word, OpenOffice Writer, Google Docs, etc. It’s generally responsible for
providing input, editing, formatting, the output of a document, or text with
some additional features. Spell check is a software program in word
processing that first checks the spelling of a word, identifies if there is an
error in spelling and if the word is found misspelled then this spell check
program corrects the spelling in the word processor.

DFD (Data Flow Diagram) is used to describe this spell checking and
correcting function in the word processor. It is usually explained with the
help of different levels of DFD i.e., Level 0 DFD and Level 1 DFD. The
working at these levels is shown below:

Level 0 DFD –
At this level, the submitted document from the user is checked and if found
any error then it’s corrected. The corrected document is ended back to the
user.

3 Write a set of non-functional requirements for the ticket-issuing


system, setting out its expected reliability and response time.
requirements can be broadly classified into two categories- Functional
requirement and Non functional requirement. While the functional
requirement(FR) deals with those aspects which are directly linked to the
various functionalities offered by the application and user of the application
can directly perform those actions, non-functional requirement(NFR) deal
with the aspects which are not actually actions which can be performed by
the user of the application but different quality features which can be
provided, to perform FRs conveniently and comfortably. Usually, fulfilling
NFRs is more challenging task for software architects and developers.
(JUST FOR UNDERSTANDING)

Functional

● Every online booking needs to be associated with an account


● One account cannot be associated with multiple users
● Search results should enable users to find the most recent and
relevant booking options
● System should enable users to book / pay for their tickets only in a
timeboxed manner after tickets being added to the cart
● System should only allow users to move to payment only when
mandatory fields such as date, time, location has been mentioned
● Booking confirmation should be sent to user to the specified contact
details
Non functional
● Use of captcha and encryption to avoid bots from booking tickets
● Search results should populate within acceptable time limits
● User should be helped appropriately to fill in the mandatory fields,
incase of invalid input
● System should accept payments via different payment methods, like
PayPal, wallets, cards, vouchers, etc
● System should visually confirm as well as send booking confirmation
to the user's contact

4 Discuss the functionality of an ATM machine and develop a set of use


cases that could serve as a basis for understanding the requirements for
an ATM system be organized
Automated Teller Machine (ATM) also known as ABM (Automated Banking
Machine) is a banking system. This banking system allows customers or
users to have access to financial transactions. These transactions can be
done in public space without any need for a clerk, cashier, or bank teller.
Working and description of the ATM can be explained with the help of the
Use Case Diagram.

We will understand about designing the use case diagram for the ATM
system. Some scenarios of the system are as follows.

Step-1:
The user is authenticated when enters the plastic ATM card in a Bank ATM.
Then enters the user name and PIN (Personal Identification Number). For
every ATM transaction, a Customer Authentication use case is required and
essential. So, it is shown as a relationship.
Example of use case diagram for Customer Authentication is shown below:
Step-2:
User checks the bank balance as well as also demands the mini statement
about the bank balance if they want. Then the user withdraws the money as
per their need. If they want to deposit some money, they can do it. After
complete action, the user closes the session.
Example of the use case diagram for Bank ATM system is shown below:

For more refer https://www.geeksforgeeks.org/use-case-diagram-for-


bank-atm-system/
5 Explain who should be involved in requirements review? draw a process
model showing how a requirements review might be organized.
A requirement review is a process where a group of people read and
analyze the requirements, look for problems, meet and discuss the
problems and agree on actions to address these problems from the system
customer and the system developer read the requirements document in
detail and check for errors, anomalies, and inconsistencies.
Once these have been detected and recorded it is then up to the customer
and the developer to negotiate how the identified problem should be
solved. The requirements are analyzed systematically by a team of
reviewers who check for errors and inconsistencies.
A group of people read and analyze the requirements, look for problems,
meet and discuss the problems and agree on action to address problems.

Reviews should involve a number of stakeholders from different


backgrounds.
● - People from different backgrounds bring different skills and
knowledge to the review
● - Stakeholders feel involved in the process and develop an
understanding of the needs of other stakeholders.
● - Review team should always involve at least a domain expert and an
end-user.

Reviewer’s stakehold’[ers driving the system requirements stakeholders in


the supply chain stakeholders within the solution team stakeholders
receiving the solution stakeholders driving the business.
6 Explain software requirements engineering process. Outline the
importance of feasibility study in generating the feasibility report for an
assigned project
Requirements engineering (RE) refers to the process of defining,
documenting, and maintaining requirements in the engineering design
process.
Requirement engineering provides the appropriate mechanism to
understand what the customer desires, analyzing the need, and assessing
feasibility, negotiating a reasonable solution, specifying the solution clearly,
validating the specifications and managing the requirements as they are
transformed into a working system.
Thus, requirement engineering is the disciplined application of proven
principles, methods, tools, and notation to describe a proposed system's
intended behavior and its associated constraints.

Requirement Engineering Process


It is a four-step process, which includes -
Feasibility Study
1. Requirement Elicitation and Analysis
2. Software Requirement Specification
3. Software Requirement Validation
4. Software Requirement Management

Feasibility Study in Software Engineering is a study to evaluate feasibility of


proposed project or system. Feasibility study is one of stage among
important four stages of Software Project Management Process. Feasibility
studies can identify the logistical, financial, and market challenges of a
proposed project by evaluating:

● What the estimate would be to fund the project


● When the potential business will offer a return on investment
● The market for the proposed product or service
● Likely consumers of the product or service
● Likely competitors with a similar product or service
● The price consumers may be willing to pay for the product or service
● How large of a market share a tribal business is likely to capture

Need of Feasibility Study :


Feasibility study is so important stage of Software Project Management
Process as after completion of feasibility study it gives a conclusion of
whether to go ahead with proposed project as it is practically feasible or to
stop proposed project here as it is not right/feasible to develop or to
think/analyze about proposed project again.

Along with this Feasibility study helps in identifying risk factors involved in
developing and deploying system and planning for risk analysis also
narrows the business alternatives and enhance success rate analyzing
different parameters associated with proposed project development.

7 Define risk management. Discuss about various types of Software Risks


identified during software development
Risk Management
Risk management is the process of identifying, analyzing, and addressing
potential risks in a systematic and proactive manner. It involves taking
steps to minimize the likelihood of negative events occurring and to
mitigate their impact if they do occur
, it is essential to classify risks into different classes. The project manager
can then check which risks from each class are relevant to the project.
There are three main classifications of risks which can affect a software
project:
● Project risks
● Technical risks
● Business risks
1. Project risks: Project risks concern differ forms of budgetary, schedule,
personnel, resource, and customer-related problems. A vital project risk is
schedule slippage. Since the software is intangible, it is very tough to
monitor and control a software project. It is very tough to control something
which cannot be identified. For any manufacturing program, such as the
manufacturing of cars, the plan executive can recognize the product taking
shape.

2. Technical risks: Technical risks concern potential method,


implementation, interfacing, testing, and maintenance issue. It also consists
of an ambiguous specification, incomplete specification, changing
specification, technical uncertainty, and technical obsolescence. Most
technical risks appear due to the development team's insufficient
knowledge about the project.

3. Business risks: This type of risks contain risks of building an excellent


product that no one need, losing budgetary or personnel commitments, etc.

Other risk categories


1. Known risks: Those risks that can be uncovered after careful assessment
of the project program, the business and technical environment in which
the plan is being developed, and more reliable data sources (e.g., unrealistic
delivery date)
2. Predictable risks: Those risks that are hypothesized from previous
project experience (e.g., past turnover)
3. Unpredictable risks: Those risks that can and do occur, but are extremely
tough to identify in advance.
Principle of Risk Management
1. Identify risks: First, identify potential risks that could affect the
project.

2. Analyze risks: Next, analyze the identified risks to determine their


likelihood and impact on the project.
3. Evaluate risks: Evaluate the risks to determine which ones are most
important and require the most attention.
4. Treat risks: Develop strategies to address the identified risks, such as
avoiding them, transferring them, mitigating them, or accepting them.
5. Monitor and review risks: Regularly monitor the identified risks to
ensure that they are being effectively managed and that new risks are
being identified and addressed in a timely manner.

8 Compare and contrast between reactive risks and proactive risks with
suitable example. Discuss the need for risk identification.
Reactive risk management is often compared to a firefighting scenario. The
reactive risk management kicks into action once an accident happens, or
problems are identified after the audit. The accident is investigated, and
measures are taken to avoid similar events happening in the future. Further,
measures will be taken to reduce the negative impact the incident could
cause on business profitability and sustainability.

Reactive risk management catalogs all previous accidents and documents


them to find the errors which lead to the accident. Preventive measures are
recommended and implemented via the reactive risk management method.
This is the earlier model of risk management.
Reactive risk management can cause serious delays in a workplace due to
the unpreparedness for new accidents.

What is Proactive Risk Management?


Contrary to reactive risk management, proactive risk management seeks
to identify all relevant risks earlier, before an incident occurs.
Proactive risk management is a risk management approach that involves
actively seeking out and identifying potential risks, rather than waiting for
risks to present themselves. It involves taking a proactive approach to risk
identification, assessment, and response planning, rather than waiting for
risks to occur and then reacting to them.
Overall, proactive risk management helps to ensure that risks are identified
and addressed in a timely manner, reducing the likelihood of negative
events occurring and minimizing their impact if they do occur.
For more (reciprocity.com)

9 Define software requirement. Explain the importance of software


requirements document in a project with suitable example

Software requirements are a set of statements that describe the functions,


capabilities, and constraints of a software system. They specify what the
system should do, how it should do it, and any limitations or constraints that
should be taken into account.
Software requirements are used to define the scope of a software
development project, to guide the development process, and to provide a
basis for testing and evaluating the system. They help to ensure that the
system meets the needs of the users and the stakeholders and that it is
developed in a way that is consistent with the overall goals of the project.

Software requirements may be divided into two categories: functional


requirements, which describe what the system should do, and non-
functional requirements, which describe how the system should behave.

The SRS is a specification for a specific software product, program, or set


of applications that perform particular functions in a specific environment. It
serves several goals depending on who is writing it. First, the SRS could be
written by the client of a system. Second, the SRS could be written by a
developer of the system. The two methods create entirely various
situations and establish different purposes for the document altogether.
The first case, SRS, is used to define the needs and expectation of the
users. The second case, SRS, is written for various purposes and serves as
a contract document between customer and developer.

importance

● The users and the client get a brief idea about the software while in
the initial stages.
● The purposes and the intentions as well as the expected results are
properly defined. It hence lays the outline for software design.
● The desired goals are defined thereby easing off the efforts of the
developers in terms of time and cost.
● It forms a basis for the agreement between the client and the
developer.
● It becomes easier while transferring and using the solution elsewhere
or with new customers as the basis of functioning of the software is
mentioned.
● It acts as a material for reference at a later stage.
● It acts as the basis for reviews.

Since the SRS is an important document and is required right from the initial
stages of the agreement till the final verification and cross checking of the
end product is done, this should be prepared with utmost care after having
a proper understanding of the product to be developed.

10 Define cost estimation. Discuss the importance of constructive cost


estimation model II under project estimation.

Refer COCOMO Model in Software Engineering - ArtOfTesting


Cost estimation simply means a technique that is used to find out the cost
estimates. The cost estimate is the financial spend that is done on the
efforts to develop and test software in Software Engineering. Cost
estimation models are some mathematical algorithms or parametric
equations that are used to estimate the cost of a product or a project.

A cost estimate is the approximation of the cost of a program, project, or


operation. The cost estimate is the product of the cost estimating process.
The cost estimate has a single total value and may have identifiable
component values.
Boehm proposed a model – COCOMO model (Constructive Cost Estimation
model) to estimate the cost and effort required to complete any product
based on its size. This model was not very accurate but still gives a good
rough idea and is still in use.

Cocomo (Constructive Cost Model) is a regression model based on LOC, i.e


number of Lines of Code. It is a procedural cost estimate model for
software projects and is often used as a process of reliably predicting the
various parameters associated with making a project such as size, effort,
cost, time, and quality.The key parameters which define the quality of any
software products, which are also an outcome of the Cocomo are primarily
Effort & Schedule:

Effort: Amount of labor that will be required to complete a task. It is


measured in person-months units.
Schedule: Simply means the amount of time required for the completion of
the job, which is, of course, proportional to the effort put in. It is measured
in the units of time such as weeks, months.

Advantages of COCOMO Model


● COCOMO is transparent, one can see how it works unlike other
models such as SLIM
● Drivers are particularly helpful to the estimator to understand the
impact of different factors that affect project costs.
● COCOMO Provides ideas about historical projects.
● The COCOMO model is easy to estimate the total cost of the project.
● The drivers are very helpful to understand the impact of the different
factors that affect project crises.

PART-B
Abhiram

1A) PART A 9TH QUESTION

2 Explain about Throw-away Software Prototyping

2A) Throwaway prototypes are developed from the initial requirements but
they are not used for the final product and not an alternative for written
specification of the requirements. It enables quick prototyping and commits
to throwing the prototype away. If the users can get quick feedback on
their requirements, they may be able to refine the requirements early in the
development of the software. Then changes can be done early in the
development life cycle.

Throwaway prototype has a short project timeline and is easier and faster
to develop the interface. This type of prototyping can be used at any time in
a project by any of the project’s personnel. Throwaway prototypes actually
do nothing, it’s just presentation only for a limited purpose. Soon it will be
starting to become a thing of the past. This type of prototyping is not
getting used as much now.
3A)Explain about Evolutionary Software Prototyping

Evolutionary prototyping is a software development approach that involves


the iterative creation and refinement of prototypes, or simplified versions of
the final system. It is a way of developing software by creating a series of
prototypes that evolve over time into the final product.

There are several benefits to using evolutionary prototyping:

● It allows the development team to quickly create and test prototypes,


which helps to gather feedback and make necessary changes early in
the process.
● It helps to reduce the risk of developing the wrong system, as the
prototypes can be tested and refined before the final version is
developed.
● It can help to improve communication between the development team
and the stakeholders, as the prototypes provide a concrete example
of the system that can be used for discussion and feedback.
● It can be more efficient and cost-effective than other development
approaches, as it allows for a more incremental and flexible approach
to development.
Overall, evolutionary prototyping is a useful approach for developing
software in situations where the requirements are not fully understood or
where the system is expected to change significantly over time.

4 Explain the methodologies in Object Oriented Estimation

There are several methodologies that can be used to estimate the cost,
effort, and duration of a software development project that is based on
object-oriented programming (OOP). Some common methodologies include:

Function Point Analysis (FPA): A technique for measuring the functionality


provided by a software system and using that measurement to estimate the
size and effort required to develop it.

Use Case Points (UCP): A technique for estimating the effort required to
develop a system based on the number and complexity of the use cases
(functional requirements) it will support.

Class-Responsibility-Collaboration (CRC) cards: A tool for identifying the


objects and their relationships in an OOP system, and for helping to
estimate the effort required to implement them.

Expert judgment: A technique for estimating the cost and effort of a


software development project based on the expertise and experience of
the project team.

Estimation tools: Software tools that use various factors to help estimate
the cost and effort of a software development project.
5 Discuss the techniques in Rapid Prototyping? Explain them in detail

A)Rapid Prototyping helps designers present new concepts to board


members, clients or investors so that they can understand and approve a
development or product. This visualization can also allow designers to gain
ready feedback from customers and clients based on an actual physical
product rather than a concept.

RP is a very cost effective way to prototype products as it is an automated


process, requiring less staff to operate. This process is also extremely
precise, being able to use computer aided design (CAD) to help reduce the
amount of material wastage and does not require special tools for
prototyping each new product. Being able to act quickly and solve any
problems also reduces the risk of costly errors during the manufacturing
stage.

As rapid prototyping is an iterative process it allows customer requirements


to be incorporated into designs cost-effectively.

The cost depends on a number of factors, including volume or size of the


part or parts being created, the surface finish, the materials used and how
much post manufacture processing is required.

6 Define process? Sketch the process of Incremental development


process

A) A software process is defined as a set of related activities that leads to


the production of a software product. At an abstract level, a software
process involves activities related to specification, design, development,
validation (testing), and evolution (maintenance) of software.

The various phases of incremental model are as follows:

1. Requirement analysis: In the first phase of the incremental model, the


product analysis expertise identifies the requirements. And the system
functional requirements are understood by the requirement analysis team.
To develop the software under the incremental model, this phase performs
a crucial role.

2. Design & Development: In this phase of the Incremental model of SDLC,


the design of the system functionality and the development method are
finished with success. When software develops new practicality, the
incremental model uses style and development phase.

3. Testing: In the incremental model, the testing phase checks the


performance of each existing function as well as additional functionality. In
the testing phase, the various methods are used to test the behavior of
each task.

4. Implementation: Implementation phase enables the coding phase of the


development system. It involves the final coding that design in the
designing and development phase and tests the functionality in the testing
phase. After completion of this phase, the number of the product working is
enhanced and upgraded up to the final system product

Advantage of Incremental Model

o Errors are easy to recognize.


o Easier to test and debug
o More flexible.
o Simple to manage risk because it is handled during its iteration.
o The Client gets important functionality early.

Disadvantage of Incremental Model

o Need for good planning


o Total Cost is high.
o Well defined module interfaces are needed.

7 Write in detail about Object Oriented approach for Scheduling


1. Define the project scope: Clearly define the scope of the project,
including the goals, objectives, deliverables, and constraints.

2. Break the project down into smaller tasks: Divide the project into
smaller, more manageable tasks that can be assigned to individual
team members or groups.
3. Estimate the time required for each task: Estimate the amount of time
that each task will take to complete, taking into account the
complexity of the task, the skills of the team members, and any
dependencies or constraints
4. Create a schedule: Use the estimates to create a schedule that
outlines the tasks and the order in which they should be completed.
5. Assign resources: Assign the necessary resources (e.g., people,
equipment) to each task.
6. Monitor progress: Regularly monitor the progress of the project to
ensure that it is on track and to identify any issues that may arise.
7. Adjust the schedule as needed: Make adjustments to the schedule as
needed based on actual progress and any changes to the project
scope or requirements.

Overall, the principles of project scheduling help to ensure that the project
is completed efficiently and on time, and that the necessary resources are
in place to support the project.

8 Describe the activities associated with project planning. Explain

A) The basic processes of project planning are:

● Scope planning – specifying the in-scope requirements for the project

to facilitate creating the work breakdown structure

● Preparation of the work breakdown structure – spelling out the

breakdown of the project into tasks and sub-tasks

● Project schedule development – listing the entire schedule of the

activities and detailing their sequence of implementation

● Resource planning – indicating who will do what work, at which time,

and if any special skills are needed to accomplish the project tasks

● Budget planning – specifying the budgeted cost to be incurred at the

completion of the project

● Procurement planning – focusing on vendors outside your company

and subcontracting

● Risk management – planning for possible risks and considering

optional contingency plans and mitigation strategies


● Quality planning – assessing quality criteria to be used for the project

● Communication planning – designing the communication strategy with

all project stakeholders

The purpose of the project planning phase is to:

● Establish business requirements

● Establish cost, schedule, list of deliverables, and delivery dates

● Establish resources plans

● Obtain management approval and proceed to the next phase

9 Differentiate Problem-based estimation and Process-based estimation

9A)

Problem-based estimation is a software development estimation technique


that is based on the specific problems or challenges that are expected to
be encountered during the project. It involves identifying the key problems
that are likely to arise and estimating the effort required to solve them.

Process-based estimation, on the other hand, is a technique that is based


on the processes and activities that will be required to complete the
project. It involves breaking the project down into smaller tasks or activities,
and estimating the effort required to complete each one.
Here are some key differences between problem-based estimation and
process-based estimation:

Focus: Problem-based estimation focuses on specific problems or


challenges that are expected to arise during the project, while process-
based estimation focuses on the tasks and activities that will be required to
complete the project.

Granularity: Problem-based estimation tends to be more high-level,


focusing on the overall effort required to solve the identified problems,
while process-based estimation is more detailed, breaking the project down
into smaller tasks or activities.

Accuracy: Problem-based estimation can be less accurate than process-


based estimation, as it relies on estimates of the effort required to solve
specific problems, which may be difficult to predict accurately. Process-
based estimation, on the other hand, is generally more accurate, as it is
based on more concrete tasks and activities.

Suitability: Problem-based estimation is more suitable for projects where


the specific problems or challenges are not fully understood, while process-
based estimation is more suitable for projects where the tasks and activities
are well-defined.

10 Explain in detail about Estimation for Software Projects


A) Estimation is the process of finding an estimate, or approximation, which
is a value that can be used for some purpose even if input data may be
incomplete, uncertain, or unstable.

Estimation determines how much money, effort, resources, and time it will
take to build a specific system or product. Estimation is based on −

● Past Data/Past Experience

● Available Documents/Knowledge

● Assumptions

● Identified Risks

The four basic steps in Software Project Estimation are −

● Estimate the size of the development product.

● Estimate the effort in person-months or person-hours.

● Estimate the schedule in calendar months.

● Estimate the project cost in agreed currency

11 Process-Based Estimation Vs Tool-Based Estimation. Explain

A)Process-based estimation is a software development estimation


technique that is based on the processes and activities that will be required
to complete the project. It involves breaking the project down into smaller
tasks or activities, and estimating the effort required to complete each one.

Tool-based estimation, on the other hand, is a technique that uses software


tools to help estimate the cost and effort of a software development
project. These tools may use a variety of factors, such as the complexity of
the system, the skill level of the team, and the size of the project, to
calculate an estimate.

Here are some key differences between process-based estimation and


tool-based estimation:

Inputs: Process-based estimation is based on the specific processes and


activities that will be required to complete the project, while tool-based
estimation uses various factors as inputs to calculate an estimate.

Accuracy: Process-based estimation can be more accurate than tool-based


estimation, as it is based on more concrete tasks and activities, rather than
on abstract factors. However, the accuracy of tool-based estimation can
vary depending on the quality of the data and algorithms being used.

Suitability: Process-based estimation is more suitable for projects where


the tasks and activities are well-defined, while tool-based estimation may
be more suitable for projects where the requirements are less clear or
where it is difficult to estimate the effort required using other techniques.

12 List out the Scope and Resources on Software Estimation

A) Software Cost Estimation


For any new software project, it is necessary to know how much it will cost
to develop and how much development time it will take. These estimates
are needed before development is initiated, but how is this done? Several
estimation procedures have been developed and have the following
attributes in common.

1. Project scope must be established in advance.


2. Software metrics are used as a support from which evaluation is
made.
3. The project is broken into small pieces which are estimated
individually.
To achieve true cost & schedule estimate, several option arise.
4. Delay estimation
5. Used symbol decomposition techniques to generate project cost and
schedule estimates.
6. Acquire one or more automated estimation tools.

Uses of Cost Estimation

1. During the planning stage, one needs to choose how many engineers
are required for the project and to develop a schedule.
2. In monitoring the project's progress, one needs to access whether the
project is progressing according to the procedure and takes
corrective action, if necessary.
Static, Multivariable Models: These models are based on method (1), they
depend on several variables describing various aspects of the software
development environment. In some models, several variables are needed to
describe the software development process, and selected equations
combine these variables to give the estimate of time & cost. These models
are called multivariable models.

13 List different kinds of nonfunctional requirements.

14 List and explain the steps in Risk Management Process

A)
15 What are the Eight Reasons for Late Software Delivery? Discus

15A)

1)Poor Requirements Definition or Sudden Change in Specification. ...

2)Insufficient Time and Efforts in Planning. ...

3)Over Optimistic Time Estimates. ...

4)Losing Key Development Team Members. ...

5)Working on Too Many Projects Simultaneously. ...

6)Making Decisions and Giving Approvals.

7)Logical design errors.

8)Coding errors.

16 List out the principles of Project Scheduling and discuss about it in


brief

16A)

8. Define the project scope: Clearly define the scope of the project,
including the goals, objectives, deliverables, and constraints.

9. Break the project down into smaller tasks: Divide the project into
smaller, more manageable tasks that can be assigned to individual
team members or groups.
10.Estimate the time required for each task: Estimate the amount of time
that each task will take to complete, taking into account the
complexity of the task, the skills of the team members, and any
dependencies or constraints
11. Create a schedule: Use the estimates to create a schedule that
outlines the tasks and the order in which they should be completed.
12.Assign resources: Assign the necessary resources (e.g., people,
equipment) to each task.
13.Monitor progress: Regularly monitor the progress of the project to
ensure that it is on track and to identify any issues that may arise.
14. Adjust the schedule as needed: Make adjustments to the
schedule as needed based on actual progress and any changes to the
project scope or requirements.

Overall, the principles of project scheduling help to ensure that the project
is completed efficiently and on time, and that the necessary resources are
in place to support the project.

17 Write short notes on requirement specification with an example

17A) A requirement specification is a document that outlines the


requirements for a software system. It describes what the system should
do, how it should do it, and any limitations or constraints that should be
taken into account.

An example of a requirement specification for a simple online shopping


system might include the following requirements:

● The system must allow users to browse and search for products.
● The system must allow users to add items to their shopping cart and
place an order.
● The system must provide a secure payment gateway for processing
orders.
● The system must send confirmation emails to users after an order is
placed.
● The system must allow users to track the status of their orders.

These requirements provide a clear and detailed description of the


functionality that the online shopping system should provide. They help to
define the scope of the project, guide the development process, and
provide a basis for testing and evaluating the system.

18 Explain nonfunctional requirements

18A)

Non-Functional Requirements are the constraints or the requirements


imposed on the system. They specify the quality attribute of the software.
Non-Functional Requirements deal with issues like scalability,
maintainability, performance, portability, security, reliability, and many
more. Non-Functional Requirements address vital issues of quality for
software systems. If NFRs not addressed properly, the results can include:

● Users, clients, and developers are unsatisfied.

● Inconsistent software.

● Time and cost overrun to fix the software which was prepared

without keeping NFRs in mind.

Types of Non-functional Requirement :


1. Scalability

2. Reliability

3. Regulatory

4. Maintainability

5. Serviceability

6. Utility

7. Security

8. Manageability

9. Data integrity

10.Capacity

11. Availability

12.Usability

13.Interoperability

14. Environmental

Advantages of Non-Functional Requirement :

● They ensure the software system follows legal and adherence rules.

● They specify the quality attribute of the software.

● They ensure the reliability, availability, performance, and scalability of

the software system

● They help in constructing the security policy of the software system.


● They ensure good user experience, ease of operating the software,

and minimize the cost factor.

Disadvantages of Non-functional requirement :

● The nonfunctional requirement may affect the various high-level

software subsystems.

● They generally increase the cost as they require special consideration

during the software architecture/high-level design phase.

● It is difficult to change or alter non-functional requirements once you

pass them to the architecture phase.

19 Demonstrate the use of Ethnography technique

19A)

What are ethnographic methods?

Ethnographic methods are a research approach where you look at people in


their cultural setting, with the goal of producing a narrative account of that
particular culture, against a theoretical backdrop. As part of this you will
look at:

● Deeds done as well as words used

● How they interact with one another, and with their social and cultural

environment

● What is not said as much as what is said


● Language, and symbols, rituals and shared meanings that populate

their world

Ethnography is a common approach in various social science fields, not just


anthropology. It is used not only to study distant or unfamiliar cultures, but
also to study specific communities within the researcher's own society.

A classic example of ethnographic research would be an anthropologist


traveling to an island, living within the society on said island for years, and
researching its people and culture through a process of sustained
observation and participation.

20 Explain the need for system requirement

20A)System requirements are a set of specifications that define the


functionality, performance, and other characteristics of a software system.
They are used to ensure that the system meets the needs of the users and
the stakeholders, and that it is developed in a way that is consistent with
the overall goals of the project.

There are several reasons why system requirements are important:

To define the scope of the project: System requirements help to define the
boundaries of the project by outlining the specific features and functionality
that the system will or will not include. This helps to ensure that the project
stays focused and on track, and that resources are not wasted on
unnecessary or unrelated tasks.
To guide development: System requirements provide a roadmap for the
development process by outlining the steps that need to be taken in order
to build the system. This helps to ensure that the system is developed in a
logical, consistent manner and that all necessary features are included.

To establish a baseline for testing: System requirements provide a basis for


testing the system to ensure that it meets the specified criteria. This helps
to ensure that the system is of high quality and that it performs as
expected.

To facilitate communication: System requirements help to ensure that all


stakeholders are on the same page with regard to the goals and
expectations of the project. This can help to reduce misunderstandings and
conflicts, and to improve the overall efficiency of the development process.

PART 1 REFER KARR

21,22,23,24) REPEATED

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy