Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

DEDAN KIMATHI UNIVERSITY OF TECHNOLOGY

DIPLOMA IN INFORMATION TECHNOLOGY


DIT 0401: SOFTWARE ENGINEERING STAGE IV.
ASSIGNMENT 2.
DATE: APRIL 2023 DEADLINE: APRIL 2023

Instructions: Answer All Questions.

a) Explain why testing can only detect the presence of errors, not their absence.[3 Marks]
Assume that exhaustive testing of a program, where every possible valid input is checked, is impossible
(true for all but trivial programs). Test cases either do not reveal a fault in the program or reveal a program
fault. If they reveal a program fault then they demonstrate the presence of an error. If they do not reveal a
fault, however, this simply means that they have executed a code sequence that – for the inputs chosen – is
not faulty. The next test of the same code sequence – with different inputs – could reveal a fault.

b) What do you understand by the term ‘stress testing’? Suggest how you might stress test
the MHC-PMS. [4 Marks]
Stress testing is where you deliberately increase the load on a system beyond its design limit to see how it
copes with high loads. The system should degrade gracefully rather than collapse.

The MHC-PMS has been designed as a client-server system with the possibility of downloading to a
client. To stress test the system, you need to arrange for
(a) many different clinics to try and access the system at the same time and
(b) Large numbers of records to be added to the system.
This may involve using a simulation system to simulate multiple users.

Stress testing emphasizes availability and error handling under extremely heavy loads to ensure software
does not crash due to insufficient resources. Software stress testing focuses on identified transactions to
break transactions, which are heavily stressed during testing, even when a database has no load. The stress
testing process loads concurrent users beyond normal system levels to find the system's weakest link.

The processes become slower and slower as they wait for the required data from other processes. Stress
testing helps you discover when the degradation begins so that you can add checks to the system to rejects
transactions beyond this point

Stress testing can be conducted through load testing tools, by defining a test case with a very high number
of concurrent virtual users.

To stress test the Mentcare system, you need to arrange for as many different clinics to try and access the
system at the same time and for large numbers of records to be added to the system. This may involve using
a simulation system to simulate multiple users.
When testing the transaction processing capabilities of the Mentcare system, that is designed to process a
certain amount of transactions per second, you may start the testing with fewer than the designed
transactions per second. You then gradually increase the load on the system beyond the designed amount of
transactions per second until it is well beyond the maximum design load of the system and the system fails.

c) Briefly describe the three main types of software maintenance. [3 Marks]


Why is it sometimes difficult to distinguish between them? [2 Marks]

The three main types of software maintenance are:


1. Corrective maintenance or fault repair. The changes made to the system are to repair reported faults
which may be program bugs or specification errors or omissions.
2. Adaptive maintenance or environmental adaptation. Changing the software to adapt it to changes in its
environment e.g., changes to other software systems.
3. Perfective maintenance or functionality addition. This involves adding new functionality or features to
the system.
They are sometimes difficult to distinguish because the same set of changes may cover all three types of
maintenance. For example, a reported fault in the system may be repaired by upgrading some other
software and then adapting the system to use this new version (corrective + adaptive). The new software
may have additional functionality and as part of the adaptive maintenance, new features may be added to
take advantage of this.

d) Under what circumstances might an organization decide to scrap a system when the
system assessment suggests that it is of high quality and high business value? [3 Marks]

Examples of where software might be scrapped and rewritten are:


1. When the cost of maintenance is high and the organization has decided to invest in new hardware. This
will involve significant conversion costs anyway so the opportunity might be taken to rewrite the
software.
2. When a business process is changed and new software is required to support the process.
3. When support for the tools and language used to develop the software is unavailable. This is a particular
problem with early 4GLs where, in many cases, the vendors are no longer in business.

There are other reasons why software may be scrapped, depending on local circumstances.

e) What are the strategic options for legacy system evolution? When would you normally
replace all or part of a system rather than continue maintenance of the software?
[6 Marks]
The strategic options for legacy system evolution are:
1. Abandon maintenance of the system and replace it with a new system.
2. Continue maintaining the system as it is.
3. Perform some re-engineering (system improvement) that makes the system
easier to maintain and continue maintenance.
4. Encapsulate the existing functionality of the system in a wrapper and add
new functionality by writing new code which calls on the existing system as
a component.
5. Decompose the system into separate units and wrap them as components.
This is similar to the solution above but gives more flexibility in how the system is used.
You would normally choose the replacement option in situations where the hardware platform for the
system is being replaced, where the company wishes to standardize on some approach to development that
is not consistent with the current system, where some major sub-system is being replaced (e.g. a database
system) or where the technical quality of the existing system is low and there are no current
tools for re-engineering.

f) Discuss the main problems associated with software project management. [8 marks]

 Unclear and undefined expectations: Defining goals is crucial for a successful project.
However, sometimes the project managers might fail to gather requirements clearly from
the clients, which further complicates the progress. The expectations and objectives
become ambiguous, and the output deviates from the actual results. The time and
resources you spent will be for nothing. More than that, it will affect your image and
reputation in the market.
Moreover, if the goals are unclear and unrealistic, project delay is one thing, but it will
double your cost, clients’ quality and expectations will not meet, demotivate your whole
team, etc.
Solution
It is the responsibility of the project managers to gather information from the clients,
know their needs and requirements, and let the team understand what needs to be done
and how to do it. Regular meetings with clients and team members, documentation, and
the use of software project management tools will solve this problem.
At Truemark, we use different tools like Slack, Asana, Microsoft Teams, etc., to
communicate with the clients and ensure that the projects’ needs and requirements are
conveyed clearly to the team members (in-house and remote).
 Time constraint: “Less time, more work.” is typical in the software development
process. But what makes this a common challenge is the unrealistic deadlines from the
clients sometimes, which leads to a race against time. As a result, it affects the quality of
the software. Because of high competition and changing technology, it has become even
more challenging for the development team and the project managers to cope with tight
deadlines.
Moreover, unrealistic deadlines create pressure, which leads to more problems during the
development process.
Solution
Communicating about the deadlines and the expectation with the clients is the best option
here. Sometimes, they fail to understand the complexity of the project. So, the project
managers have to step up to clarify everything to them.
Moreover, the project managers have to cope with the challenge with proper planning.
At Truemark, to meet the deadlines, we set milestones, making it easier for us to
complete each task on time. For this, we prioritize what work needs to be done at a
particular time, also known as Sprint. We list all the activities that need to be completed
within a week and plan for the next week.
 Changing project requirements and priorities: One of the substantial challenges in
software project management is changing requirements and priorities. The needs of the
clients may change as the project progresses. And when that happens, extra time, cost,
and resources need to be allocated, which further impacts the project.
Moreover, planning, reviewing, and implementing the new requirements into the existing
ones take a toll on the development team and the project manager.
Solution
The project managers need to adopt the agile methodology. Even if the requirements
change, this approach helps the team manage the project efficiently and implement the
new priorities quickly and easily.
At Truemark, we use the agile methodology to divide work into smaller sprints that are
easy to manage. Moreover, it provides flexibility, allowing the development team to
implement changes even on short notice. Plus, it helps the team to improve continuously.
Poor communication: Poor communication with clients, other stakeholders, and the
development team affects the overall project.
First, miscommunication with clients will prevent getting the requirements, which will
complicate the working process.
Second, it will create conflicts within the team. If members don’t communicate with each
other, then the roles and responsibilities will overlap with each other.
Moreover, it is important to communicate and coordinate with each other for smooth
operation.
Solution
The information flows through the project managers. So, they need to communicate with
every team member and client to make a project successful.
At Truemark, we use different communication and project management tools like Asana,
Slack, etc., so that every member knows their roles and responsibilities and the project’s
progress.
 Skills management: One of the biggest challenges of a project manager is finding the
right team with the skills and experience to finish the job. If the members are not skilled
enough, then the chances of failure increases. It puts the project managers in a risky
situation.
Solution
The project managers should assess the team’s skills and knowledge before committing.
They need to train the development team before such a situation arises. Also, they can
hire people who are capable of handling specific projects.
At Truemark, we hire people with the right skills and experience who deliver on time.
Plus, we work with freelancers to get the job done. Besides these, we train our in-house
team to upgrade their skills and make them competitive.
 Changing technologies: The IT industry is one of the fastest-growing industries. So,
rapid change in technologies isn’t a new thing. Today’s technology may not work
tomorrow. So, it is essential to get acquainted with the latest ones.
Moreover, the market is now full of hundreds of software management tools with tons of
features. So, the project managers are responsible for selecting the best ones that are right
for their company and the team.
Solution
The project managers need to be aware of the latest technology to make the development
process faster and efficient. They need to set up the proper equipment to increase the
success of the projects.
At Truemark, we constantly share when a new technology emerges in the market. This
helps every team member to know about them and implement them in their project. Plus,
we are readily available to adopt the new technology.
 Keeping everyone on the same page: Keeping everyone together is crucial for a
successful project. However, it becomes very challenging for the project managers to do
it since each individual is from a different background and has distinct skills. So, it is the
responsibility to find ways to keep them on the same track.
If everyone shares the same goal and is on the same page, it will make things go
smoothly. Everybody will know their roles and responsibilities.
Solution
The project managers can use different project management tools to keep them up-to-date
and motivated.
At Truemark, we use Slack, Trello, Asana, etc., to keep everyone on the same page. Also,
regular meetings are a part of our success.
 Motivating team members: Sometimes, unrealistic expectations and tight deadlines
make the team demotivated. Plus, conflict among the members and the problems faced by
them affects the project. So, the project managers have to keep them motivated and
resolve the dispute.
Solution
The project managers can talk to the clients and set realistic deadlines and expectations.
Plus, they have to ensure that every team member is prepared for the project.
At Truemark, we make sure that everyone is ready before committing to the project. Plus,
we organize different outings and other activities occasionally to keep the team motivated
and refreshed.
 Steep learning curve: It isn’t always the case that every project and the technology to be
integrated will be the same. There are times when the development team and the project
managers have to use a tool for the first time.
Moreover, they have to use new technologies. And in the process, they have to learn to
use them from scratch. As a result, it slows down the project’s progress.
Solution
The project managers have to ensure that the team members do thorough research about
the tools and technology before beginning the development process.
At Truemark, we research tools and technology that needs to be integrated into the
project priorly.
 Project cancellation: One of the most significant challenges the project managers have
to face is the cancellation of the project mid-way. This is the worst phase they have to
face. And there can be various reasons.
Solution
There is nothing the project managers can do in this situation. However, the company has
to choose the project wisely before signing the contract, like whether the client is in a
condition of bankruptcy or not.
At Truemark, we choose the projects wisely.
 Estimation: It plays a crucial role in the success of the project. However, unrealistic
estimation affects the overall project as well as the performance of the team.
Solution
The project managers have to estimate by accounting the teams’ skills and experience.
Moreover, it should be acknowledged by every stakeholder involved in the project.
At Truemark, we estimate based on team skills and delegate the roles and responsibilities
accordingly.
 High competition: If you have a great idea, there might be a chance another company
has the same plan too. They might have already developed the software. As project
managers, they should consider this.
Moreover, due to globalization, the competition between the organizations is very high,
either local or global.
Solution
The project managers have to identify and target the potential market segment. Also, they
should work closely with business owners for better opportunities.
At Truemark, we communicate regularly with the clients and research market trends and
changes closely.
 Upgrade to a new system: Software companies invest in different systems and
technologies. However, as time passes, they become old, unable to compete with the
latest technologies. They become obsolete. However, the company hesitates to replace
them.
Solution
Latest technologies are necessary for developing top-notch software. So the project
managers have to convince the company to replace them for the betterment of the
business.
At Truemark, we lookout for the latest technologies to make our work easier, faster, and
better.
 Quality testing: Meeting quality is another challenge for project managers. Bugs and
errors are part of the development process. It is almost impossible not to get issues when
developing software. And to get high-quality software requires various iterations of
testing.
Solution
The project managers must ensure that every bug and error is eliminated before the
launch of the software.
At Truemark, we create several test cases and acceptance criteria to fix the bugs and
errors.
 Managing risks:
Sometimes, the project may not go smoothly as expected. Sometimes, there might be the
risk of lack of resources, time, budget, etc. Other times, changes in the technology and
market can affect the project.
Solution
It is the responsibility of the project managers to track the issues and resolve them as
quickly as possible. Although it might be impossible to predict every risk, the project
managers have to speculate what risks may arise during the development process and
plan different control measures.
At Truemark, we document everything about the risks to prevent them from affecting
the projects in the future. Moreover, we organize a regular meeting for follow-up. This
helps us to know the risk in advance and plan accordingly.
g) In order to manager a successful software project, we must understand what can go
wrong so that the problem can be avoided. Explain Eight signs that indicate an
Information Systems Project is in Jeopardy. [8 marks]
 Milestones Aren’t Met: When you first plan out your project, you set milestones. If the milestones aren’t
being met, it’s obvious that your project is falling behind. You need to figure out ways to get your project
back on track without causing more bugs.
 Team Disinterest: Unfortunately, due to conflicting goals, a significant portion of the management/team is
oftentimes uncommitted to the project at hand. This lack of commitment (signaled by little attention and
participation at meetings) ensures that the project lacks the proper resources, resources that will allow the
project to meet goals and ultimately succeed.

In order to combat team disinterest, you need to make sure that everybody is on board with the direction of
the project as well as the long-term goals it supports. Sometimes, this can be cleared up by voicing the
goals and priorities and their correlating strengths and weaknesses.

 Poor Communication: There’s a saying that goes, “If they’re communicating, they’re collaborating.” With
this logic, it’s no surprise that a project is likely to fail without proper communication.

When upper-level managers are kept in the dark about deadlines that weren’t met, and the low-men-and-
women on the totem pole aren’t sure what’s expected of them, a project will fail. It won’t be on time, and it
will fail to meet management’s expectations.

If the people in your project aren’t communicating, it’s a sign that your project may be on its way to failure.
Communicate with everyone who is involved with the project. Only by clearly stating expectations and
sharing bad news will a project be able to stay on track.

 Inconsistent Management: If those leading the projects keep changing their tune, odds are a project is
going to fail. If it keeps changing course, how can it possibly meet its goals? It can’t.

If you’re in a leadership position, remain as consistent as possible. Otherwise, your project is likely to fail.

 Lots of Overtime: Is your team suddenly working a lot of overtime? If so, this could be a sign that the
project is running behind. Oftentimes, Project Managers will have the teamwork overtime, as it is a fast fix
that draws less attention than if they were to say that there is a problem.
 Your Team Gets Pulled On To Other Projects: In this case, this isn’t a sign that your project is failing –
though your project will start failing if people continue to steal your resources. While loaning your team
members out once in a while doesn’t seem like a big deal, the time and resources diverted can add up. If
your resources continue to get diverted your project will shortly be in trouble, so be aware of this.
 Lack of Metrics: If your team doesn’t have any clear metrics, your project could be in trouble. You need
these analytics to keep your project on schedule, which ultimately keeps it on its path to success.

If you don’t have metrics, you have no way of knowing whether or not the project is failing. You’ll just
have to take people’s word for it. You know that you don’t want to do that.

 Disjointed Team: Not every team is a big old happy family. Loyalties or differences in techniques/beliefs
can cause your team to break down into competing factions, or even worse, into a free-for-all. If this
happens, your project will be in trouble as competition and a lack of communication will keep the project
from being on time.
 More Issues Added Than Resolved: With any project, there are going to be issues. However, if you are
adding issues to the list faster than they are being resolved, your project is on the fast track to going
nowhere. While stopping a project completely to resolve the issues may not be the direction you want to
go, it may be the only way to get the project back on track.
h) Explain why the process of project planning is iterative and why a plan must be
continually reviewed during a software project. [3 marks]
Project planning can only be based on available information. At the beginning of a project, there
are many uncertainties in the available information and some information about the project and
the product may not be available. As the project develops, more and more information becomes
available and uncertainties are resolved. The project plan therefore must be reviewed and
updated regularly to reflect this changing information environment.

You might also like