OOSE Module 1
OOSE Module 1
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
Disadvantage -High Costs. The obvious disadvantage of custom software is the high
upfront cost. ...
Advantages-Optimizes Your Business Processes. Each business has its model and
in-house processes. ...
● 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.
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 − These characteristics can be used to improve the
development and maintenance activities of the software.
Process Metrics
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.
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:
PART B
Ad
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
● 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.
Refer part A 10 Q
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.
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
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 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.
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.
● 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 will it take. Several estimation
procedures have been developed and are having 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.
Ei=a*(KDLOC)b
The value of the constant a and b are depends on the project type.
● Organic
● Semidetached
● Embedded
Refer q 10
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 system.
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
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.