ISAAC ONGECHI MOBE
J.K.U.A.T KAREN CAMPUS
HDB212-C002-0027/2022
B.B.I.T YEAR 2.1
SOFTWARE ENGINEERING CAT ONE
1) Explain the two categories of CASE tool technology. (6marks)
Computer Aided Software Engineering tools are often used for method support and are
divided into three:
1. Upper Case Tools – These are used in the planning, analysis, and design stages of
software development life cycle, these tools are more concerned with the planning
and design aspects of software development, they include tools for creating
diagrams like data flow diagrams, and entity relationships. Examples of such tools
are Lucid software and Microsoft Access.
2. Lower Case Tools – These tools are used in implementation, testing, and
maintenance during the later stages of software development, they often include
code generators, and debugging tools to automate coding, help in identifying and
fixing errors and facilitate testing of software components.
3. Integrated Case Tools – Integrated case tools are helpful in all the stages of
software development life cycle, from gathering requirements to testing and
documentation, the primary goal of this tools is to enhance productivity,
collaboration, and consistency in software development projects an example of
such a tool can be the unified environments where all team members like
designers and developers can work together.
2) Define the term feasibility study and elaborate the three types of feasibility study carried out in
software development. (8marks)
A Feasibility Study is an activity that is undertaken to determine the possibility of or probability
of either improving an existing system or developing a new system, it’s a test of system proposal
according to its workability, impact on an organization, its ability to meet user needs and use
resources effectively.
In software development there are four types of feasibility studies carried out, these are:
1. Economic Feasibility – This type of feasibility study determines whether the time and money
resources are available to be able to develop a system, may include purchase of new
equipment, hardware or even software. Simply the evaluation of the financial aspects of the
project, project’s cost.
2. Operational Feasibility – This study assesses whether the proposed system can be integrated
into the organization’s existing processes and whether it will meet end user needs and
expectations, operational feasibility also determines the human resources available to operate
the system once it has been installed, if users do not agree with the new system, then it is not
operationally feasible.
3. Technical Feasibility – This study assesses whether the current technical resources are
sufficient for the new system in development, if the technical resources are not available, they
should be able to be upgraded to provide the level of technology needed for the new system.
This evaluates hardware, software and technical skills that can be acquired to complete the
project successfully.
4. Social Feasibility - Social Feasibility focuses on assessing whether a proposed software
project is socially acceptable and compatible with values, culture, ethics and expectations of
the individuals and groups that will be affected by it. It determines the impact of the system
on the people who will work with the system, this may include retraining, separation of
offices.
3) Explain the attributes of a good software product. (6marks)
A well-engineered and crafted software is expected to have the following attributes:
1. Operational characteristic – This attributes will let us know how well the software
works in operations or when in use by end users, this can be measure on the budget,
usability, functionality of the software, safety and security, efficiency level of the
software.
2. Transitional characteristic – This attributes focus on characteristics related to
installation of the software, deployment, and migration to new versions. Some of the
key attribute include upgradability, interoperability, compatibility.
3. Maintenance characteristic – This focus on how well the software can be managed,
updated, or enhanced throughout its lifecycle, this ensures that the software remains
effective over time and regardless of changes of the environment surrounding the
software. Some key attributes here include maintainability, extensibility, modularity,
adaptability, and scalability.
4) Explain four reasons why we need software engineering. (4marks)
There are several reasons why software engineering is essential:
1. Quality assurance or management – Better practice of software engineering methodologies
help ensure that the software products meet quality standards and reduce errors and defects.
2. Cost Effectiveness – Proper software engineering practices lead to cost-effective
development, reducing risks of project failure, if the cost of hardware is high for example,
then the cost of software development remains high, software engineers can come up with
better hardware or software that may reduce the cost of purchasing thereby reducing the cost
of software development.
3. Complexity – Modern software has become large and sophisticated, software engineering
provide structured and systematic approaches to help in designing, developing, and
maintaining this software.
4. Environment – Due to the ever-changing nature of software upon the environment in which
the user works, there is need for new enhancements and ways of maintaining software to be
compatible with the changing environment, software engineering comes up with new
practices that help software to keep up with the environment.
5) Discuss the following software development software development models giving their
advantages and disadvantages.
(10 marks)
i. V -shape model
Also known as the verification and validation model, it is a sequential model and
phase-based approach to software development that emphasizes the importance
of testing and validation throughout software development life cycle. Its an
extended arm of the waterfall methodology in a visual context that resembles the
letter V, in each phase of development an associated test is carried out.
ADVANTAGES
Clear and structured approach.
Early detection of issues.
Improved documentation.
Enables accurate progress tracking by project management.
Simple and easy to understand and use.
Used for small projects where project requirements are clear.
DISAVANTAGES
Not good for complex, large or object-oriented projects.
Does not support iteration of phases.
Does not easily handle concurrent events.
Inflexibility makes it difficult to adapt to changing requirements or
unexpected events.
Time-consuming due to lots of testing and documentation.
Over-reliance on documentation at the expense of actual development
work.
ii. Spiral model
This model is an iterative and risk driven software development model that
focuses on risk assessment and management, it divides the development process
into multiple cycles or spirals, each representing a phase of the project.
It promotes iterative development where each spiral results in an increment of the
software, and analysis of risks early in the project.
Each phase is sectioned into four quadrants, first quadrant is the objective setting,
second quadrant is the risk assessment and reduction, third quadrant is the
development and validation, the fourth quadrant is the review and planning.
ADVANTAGES
Risk handling due to risk analysis in each phase.
Good for large projects.
Flexibility in requirements changes as development continues.
Its iterative and has an incremental approach.
Emphasizes risk management.
Improved communication between customers and development team due
to regular evaluation and review.
DISADVANTAGES
Complex compared to other models.
Expensive to use and not suitable for small projects.
Too much dependability on risk analysis
Time-consuming as it requires multiple evaluations and reviews.
Resource intensive as it requires significant investment in planning, risk
analysis and evaluation.
iii. RAD
Rapid Application Development is a model that focus on rapid prototyping and
quick iterations, it prioritizes speed and user involvement in the software
development process. This model revolves around building prototypes and
involving users early and frequently, it is often used for small to medium sized
projects with laid out requirements.
ADVANTAGES
Feedback from users is available at the initial stages.
Reduced costs due to less need of developers
Use of powerful development tools resulting in quality products in
shorter time span.
Easier to accommodate changing requirements.
Uses reusable components helping in reducing the development time.
DISADVANTAGES
Use of powerful development tools also require highly skilled
professionals.
Absence of reusable components can lead to failure of the projects.
Systems that cant be modularized cannot use this model.
Customer involvement is required throughout the project life cycle.
Not all applications can be used with this models.
Requires dedicated team members and team leaders to ensure project
completion.