Software Engineering Assignment-2-SE

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

JINNAH UNIVERSITY FOR WOMEN

Department of Computer Science & Software Engineering


Software Engineering (CSS– 2111)

Student Name: Mahnoor Vohra


Section: B
Question No.1

An information system is to be developed to maintain information about assets owned by a utility


company such as buildings, vehicles, and equipment. It is intended that this will be updatable by
staff working in the field using mobile devices as new asset information becomes available. The
company has several existing asset databases that should be integrated through this system.
Discuss and design a layered architecture for this asset management system
ANSWER:
Layered Architecture:
Here, given below layered architecture, there are 4 layers. The very first
layer is of clients, users, stakeholders etc. whomever will use the system to
update information. Second layer is of interface to which user will interact
to update database. Third layer is information system which will hold data
of new assets of company. Fourth layer is of old database.

Clients, Users, Stakeholders

User Interface

Information System For Assets

Old Database

Page 1 of 10
Question No.2

a. Discuss the relationship between the concept of information hiding as an attribute of effective
modularity and the concept of module independence.

ANSWER:
Modularity is attained by breaking down the system into numerous different
unique and addressable components where each module is developed and
modify individually. Modules are developed in such a way like each module
has specific data according to that module's requirement and this data isn't
accessible from other module. They pass only relevant data to other module
and in that way, we achieve information hiding. Module independence is that
a function is atomic in nature so that it performs only a single task of the
software without or with least interaction with other modules. Module
independence is deemed as an indicator of increasing modularity i.e.,
presence of larger module independence results in a software system of good
design and it further increases the quality of the software. As the modules
are independent so they have partial or almost no dependency. As a result,
this technique allows you to make changes to a module without affecting the
entire system. Two main concepts in module independence are COHESION
and COUPLING. COHESION means a module performs only single task
without any interaction of other module and COUPLING means
interdependence between the modules. A good software design requires high
cohesion and low coupling. Module independence is one of the goals of
using information hiding and modularity.

b. Explain why design conflicts might arise when designing an architecture for which both
availability and security requirements are the most important non-functional requirements

ANSWER:
The security and availability are critical requirements. Security is one of the most
important non-functional requirements. Security means system is secure enough
while availability means everyone has access to the system. When designing an
architecture for security we want to build a layered architecture with the most
important components in the inner most layer, on the other hand, to provide
availability, we need to have simulated components in the architecture so in the case
of one component failing, we can switch instantly to a backup component. We also
need to have numerous copies of the data that is being processed. But security
requires minimizing the number of copies of the data and, wherever possible,
approving an architecture where each component only knows as much as it needs to,
Page 2 of 10
to do its job. This reduces the chance of intruders accessing the data. Therefore, there
is a fundamental architectural conflict between availability (replication, several
copies) and security (specialization, minimal copies). The system architect must find
the best settlement between these essentially differing requirements.
Question No.3

a. What is stress testing? How does stress testing work for websites?
ANSWER:
Stress testing is testing how an application, software, or website performs when
under intense pressure to check its robustness, availability, error handling
under heavy load. Stress testing evaluates how an application will behave
beyond normal conditions. Like applications, stress testing checks any website
to find out how it handles aberrant traffic. If any site loads very late so the
visitor of the website, go somewhere else so that’s why your site is demean.

b. Write at least two test cases for your assigned term project
ANSWER:
CASE 1:
Fine calculation;
S. Test Steps Expected Results Actual Result Statu Notes
No s
1 Check if there are any Show previous Show previous Pass None
past charges left amount amount
2 Add past charges and Show “processing” Show Pass None
current charge if there prompt “processing”
are no past charges prompt
show current charges
only
3 Display the total Show total fees Show total fees Pass None
amount
4 Update the total amount Show updated Show updated Pass None
amount after amount after
payment payment
CASE 2:
Borrow books:

S. No Test Steps Expected Results Actual Result Status Notes


1 Enter book name Show search related Show search related Pass None
result list result list
Page 3 of 10
2 Select your book Issue book to the Issue book to the Pass None
respective account respective account

c. What are the benefits of involving users in release testing at an early stage in the testing
process? Are there disadvantages in user involvement?
ANSWER:
In release testing you work in prototyping way, so user engagement can help
you to get user’s review and to understand modifications essential.
Its disadvantages could be:
➢ It may boost efforts of testing because of user’s unsure views.
➢ Confusion can be made because of diverging review from person to
person.

Question No.4

You are working as project manager for a major software company. You have been asked to lead
a team that is developing “next generation” word-processing software. What types of risk
associated with this project? You are also required to do risk analysis (Probability and its effects)
and risk planning for the risk identified for this project.
ANSWER:
Risk analysis:
Risk Description Probabilit Effects
y

Schedule risk The wrong schedule Low Serious


affects the project
development and
delivery. If schedule
risks are not
managed properly, it
gives rise to project
failure and at last it
affects to
organization/compan
y economy very
badly.
Budget risk If improper budget High Catastrophi
estimates of the c
project, it may lead
Page 4 of 10
to project failure. So
proper finance
distribution and
management are
required for the
success of project.
Technical risk Technical risks refer High Catastrophi
to the functional risk c
or performance risk
which means this
technical risk mainly
associated with
functionality of
product or
performance part of
the software product.
It may also occur
due to less skilled
employee, less use of
future technologies
and frequent changes
in requirement.
Staff’s member illness It is probable that a Low Tolerable
member of a staff
isn’t available on a
critical phase of a
project.
Requirements changing Changes in Low Serious
requirement during
development phase is
critical to accept
these changes
because it requires
major rework.

Integration and It may occur during High Catastrophi


interoperability components c
integration because
sometimes some
components work
properly before
integration and works
Page 5 of 10
wrong after
integration.

Risk planning:
Schedule risk: To avoid schedule risk we must manage our schedule properly; our
time estimations should be correct so in that way we achieve our scheduling
goal. Look to minimize the number of critical paths and dependencies to help in
avoiding schedule risk.

Budget risk: The best way to stop over budgeting is to plan against it before
executing a project. The more thorough and accurate your estimates, the more likely
you’ll stay within budget. You must know your vendors and they meet your
requirement.

Technical risk: Make sure project’s functional and non-functional needs meets
accurately to customer’s requirements otherwise it’s difficult to make the project
again. Manage code quality, minimize other risks, and eliminate system
vulnerabilities.

Staff’s member illness: Unfortunately, when a staff’s member is ill during any
phase we must maintain and distribute our tasks to other members to handle it.

Requirements changing: Requirements changing is another important risk.


During construction, if changing occurs in requirement so, it’s difficult to handle.
That’s why to avoid this we must ask our customers to give all the requirements at
once.

Integration and interoperability: These are also an important factor. To avoid


this risk, we must test all the components separately before integrating and after
integrating, check again and if the system provides wrong functionality so, change
coding of the component due to which a defect occurs.

Question No.5

a. Considering each of the four aspects of the cost of quality, which do you think is the most
expensive and why?
ANSWER:
Page 6 of 10
External Failure Cost is the most expensive. Because it arises when a
product is delivered to customers, it can result in warranty claims,
replacements, lost sales, a tarnished reputation, payment of product-related
damages, dissatisfied consumers, damaged goodwill, and a drop in sales and
earnings.
b. It is cheaper and faster to fix known bugs before you write new code. Why?
ANSWER:
• Some of the reasons are:
➢ It would be comparatively hard to find bugs and error later
because you are familiar with code now.
➢ One bug can be the cause of many other bugs, so when we know
the bug before it is easier to us.
➢ Leaving all issues to be fixed later would need a considerable
amount of time, efficiency, and effort.
➢ Fixing a bug today means during coding costs less than tomorrow
means after coding.
c. What are various types of software maintenance? Give example of each type
ANSWER:
• There are 4 types:
➢ Corrective Software Maintenance: It delivers errors within the
software application that can impact design, logic, and code. For
example, if the technician founds the error during repair/inspection
procedure so this can be beneficial maintenance as it will help to
resolve issue before costumers have to face it.
➢ Adaptive Software Maintenance: It is needed when the
environment of your software changes. It can be the change of
operating system, hardware, software dependencies, cloud storage
or even the changes within the OS. For example, Business rules,
government policies, work patterns have significant impact.
➢ Perfective Software Maintenance: It focuses on development of
requirements and existing features on your system. As user interact
with your application there might be some features that they don’t
like or there could be some characteristics they would like you to
add. Is helps you to reach end goals. For example, user may need
another payment method for any enterprise system etc.
➢ Preventive Software Maintenance: It helps you to make changes
to your system so it can work for longer period. It also includes risk
decrease and boosting quality and performance. For example, you
made a software, now you cannot just forget it you have to keep

Page 7 of 10
updating it according to changing environment/ state to keep it
working fine.

d. Give a brief outline of a traditional software-process-improvement (SPI) model used in large


organizations, and discuss the challenges very small software companies might face when
implementing these models
ANSWER:
Software Process Improvement (SPI) methodology is defined as a
sequence of tasks, tools, and techniques to plan and implement
improvement activities to achieve specific goals such as increasing
development speed, achieving higher product quality, or reducing costs.
SPI provides a framework for applying process management and quality
improvement concepts to software development and maintenance
• There are 4 cyclic steps of SPI:
➢ Current Situation Evaluation: This step is the initial phase of
the process, and it is mainly to assess the current situation of the
software process by eliciting the requirements from the
stakeholders, analyzing the current artifacts and deliverables, and
identifying the inefficiencies from the software process.
➢ Improvement Planning: After analyzing the current situation
the findings should be plan, categorize or prioritize which you
have set to achieve to work on it.
➢ Improvement Implementation: In this step activities planned
in previous stage get implemented.
➢ Improvement Evaluation: In this stage you take measurements
of before, after and target improvement. It helps organizations to
work further. Measurement, in general, permits an organization
to compare the rate of actual change against its planned change
and allocate resources based on the gaps between actual and
expected progress.

Small organizations may face following issues:


➢ In small firms, due to the limited number of employees,
individuals assigned to build software for a certain issue
domain become experts, and the project's success is primarily
dependent on that individual's competence.

Page 8 of 10
➢ Individuals may get overburdened by work due to a small
number of employees.
➢ Crisis results when small organizations attempt to start new
projects to support existing ones.
➢ Small organizations can seldom bear the additional cost
incurred by performing SPI, that requires appointment of new
personnel
➢ In Software Development undertaken by small organizations
for known customers, communication with customers
becomes intensive
Question No.6

Suppose you are working as a team lead in ABC software company, and you are working on "Safe
home: An IoT based solution" project. For the given project number of tasks, their durations, and
their dependencies are given below. Draw a bar chart showing the project schedule

ANSWER:

Page 9 of 10
Page 10 of 10

You might also like