OOSE Module 1 & 2 Complete Solutions
OOSE Module 1 & 2 Complete Solutions
Part A
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
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
It may however lead to the delivery of software that is low in quality and
requires time to improve the quality.
● Each increment builds the product and submits it to the customer for
increment.
6 List out any three specialized process models. Explain the component
based development process model with their goals, advantages and
routines.
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.
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
• Software project metrics are used by the software team to adapt project
workflow and technical activities.
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.
This is because the first step in maximizing productivity and reducing waste
is to know how processes currently run. Process models can lead to:
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,
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.
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.
● Requirement gathering
● Software design
● Programming
● Design
● Maintenance
● Programming
Programming Paradigm
● Coding
● Testing
● Integration
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.
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.
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.
1 Code Complexity
2 Input/Output
● 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.
V Model
Waterfall Model
● Requirements
● Design
● Dev
● Implementation
● Testing
● Deployment
● Maintenance
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.
Project Management
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 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.
Customer satisfaction
Employee satisfaction
Productivity
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
(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.
● Requirements
● Design
● Implementation
● Testing
● Deployment
● Maintenance
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.
• identifies the environment in which the problem has been countered, and
12) Explain briefly about the Spiral model with neat sketch
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.
Advantages
Disadvantages
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
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. 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
Ei=a*(KDLOC)^b
time=c*(effort)^d
Refer q 10
● 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:
● 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:
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:
Fact:
Part C
Poornoday
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
● Managing information
● Calculating figures
● Constructing visuals
● Coordinating resources
● Writing reports
● Creating spreadsheets
9.Define project
PART-A
Syed Ikram
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.
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.
Functional
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:
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.
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.
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.
PART-B
Abhiram
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
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:
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.
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
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.
and if any special skills are needed to accomplish the project tasks
and subcontracting
9A)
Estimation determines how much money, effort, resources, and time it will
take to build a specific system or product. Estimation is based on −
● Available Documents/Knowledge
● Assumptions
● Identified Risks
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.
A)
15 What are the Eight Reasons for Late Software Delivery? Discus
15A)
8)Coding errors.
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.
● 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.
18A)
● Inconsistent software.
● Time and cost overrun to fix the software which was prepared
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
● They ensure the software system follows legal and adherence rules.
software subsystems.
19A)
● How they interact with one another, and with their social and cultural
environment
their world
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.
21,22,23,24) REPEATED