Software Engineering Assignment-2-SE
Software Engineering Assignment-2-SE
Software Engineering Assignment-2-SE
User Interface
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:
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
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.
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.
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