0% found this document useful (0 votes)
3 views

Software_development_test_LC

The document outlines key principles of well-engineered software, emphasizing maintainability, dependability, and thorough documentation. It discusses various software engineering processes, including the waterfall and evolutionary models, highlighting their advantages and disadvantages in terms of user involvement and project management. Additionally, it covers the use of CASE tools to enhance software development efficiency while noting potential challenges with integration and documentation in evolutionary approaches.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Software_development_test_LC

The document outlines key principles of well-engineered software, emphasizing maintainability, dependability, and thorough documentation. It discusses various software engineering processes, including the waterfall and evolutionary models, highlighting their advantages and disadvantages in terms of user involvement and project management. Additionally, it covers the use of CASE tools to enhance software development efficiency while noting potential challenges with integration and documentation in evolutionary approaches.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

1.

a. Well-Engineered Software should be 1) maintainable as in built in such away


that it can be edited or updated by the same developers or other developers.
It should also be 2) dependable or software that has been tested thoroughly
using the most extreme data ensuring that there is no room for error.
Thirdly well engineered software should be 3) documented having both internal
and external documentation clearly stating the codes functions and relevant
variables.
b. For all four approaches to the software engineering process the activities of
analysing or coming to an understanding of the tasks the software must be able
to do, designing or combining of code to create intermediate products that
achieve the system’s requirements, implementing the code in a user
environment and adjusting code based on the feedback received from users or
costumers who used the software or if no issues are found simply maintaining
the system.*
2.
a. The main features of the waterfall model in software development is its
structured or fixed steps, carried out through a sequential approach, it also
allows developers to create software in smaller projects where requirements
can be well understood and all milestones within the process of creating the
software are well understood.
b. In the process of implementing, testing and deployment a user or costumer is
most involved in the software engineering process.
c. In the evolutionary approach for software engineering, a developer can easily
add in any arising requirements for the software whilst with the waterfall
approach adjustments in scope can lead to a project being omitted and
restarted as it is a critical step within the life cycle to identify all possible
requirements of a system.
However in cases of maintaining software when using evolutionary, developers
may have a tendency to overlook said exercise possibly due to issues
surrounding the software’s code while with waterfall approach a very accurate
and maintainable software is produced.
3.
a. Techniques such as interviews, where users are to answer open ended
questions as to processes they would like the software to carry out,
questionnaires, similar to interviews but with closed questions, and
observations, where the system is directly observed.
b.
i. The feasibility report would contain costs, budget, time, skills, hardware
needed, software needed, and all other things required for the process of
creating the software.
ii. This report is produced so that the developer or team of developers know
if it is possible to carry out this project or if other equipment, funds or Ss
are needed to attempt it.

2006
1.
a. The software development process is the set of activities whose goal is the
development or evolution of software.
b. 1) Requirement Analysis – in this step all possible requirements of the system to
be developed are gathered and documented in a document known as the
requirement specification document
2) System Design – in this step the system design is prepared using tools to
breakdown the system requirements and make a framework or layout to move
forward.
3) Deployment – once the functional and non-functional testing is done; the
software Is opened to the costumer environment to be used.
c. In the waterfall approach no working software is produced until the later stages
of the life cycle
2.
3.
a. A CASE (computer assisted software engineering) tool is the application of
computer-assisted tools and methods in software development to ensure a
faultless and high-quality product.
b. A CASE tool can be used to create quality documentation, to create
maintainable systems and provide standardization, reuse code and minimize
repetition to increase productivity.
c. One advantage of using a CASE tool is that it produces systems with longer
effective operational life spans, a disadvantage, though, is that an excessive use
of CASE tools may lead to systems being quite costly to maintain and build.
4.
a.
b.
i. One advantage of the Evolutionary Development Model is that this
model allows end users or costumers to visualize the system
requirements in the prototype, one disadvantage, however, is that there
is no clear end point when using this development model as the project
can be prolonged indefinitely at either the developer or costumer’s
requests.
ii. Two key faults with the Evolutionary approach are issues relating to
integration and documentation. A project being developed using the
Evolutionary approach may in most cases have features being added
regularly, this can cause issues as the integrating of these new features
with pre-existing features may render the program or software unusable.
Another key weakness relating to this approach arises as the software is
continuously being developed and adjusted which leads to outdated or
incomplete documentation. This can hinder further development as
proper documentation is left out leading to discrepancies in the software
as well as maintenance issues.
c.
i. Reuse approach, or reuse oriented development is an important area is
Software Engineering related to the reuse of the information produced
during previous software development projects, to decrease the effort
needed to produce a new project.
ii. Two advantages of reuse- oriented approach is that it reduces cost and
efforts coding new projects.
2009

1.
a.
i. Evolutionary process is based on the idea of developing an initial
implementation, exposing this to the user for feedback and refining it
through many versions until all system requirements are achieved.
Specification, development and validation activities are interleaved
rather than separate, with rapid feedback across activities which in turn
increases productivity over time.
ii. Two key faults with the Evolutionary approach are issues relating to
integration and documentation. A project being developed using the
Evolutionary approach may in most cases have features being added
regularly, this can cause issues as the integrating of these new features
with pre-existing features may render the program or software unusable.
Another key weakness relating to this approach arises as the software is
continuously being developed and adjusted which leads to outdated or
incomplete documentation. This can hinder further development as
proper documentation is left out leading to discrepancies in the software
as well as maintenance issues.
b.
c.
i. CASE tools are used to reduce costs as they automate many repetitive
tasks and to provide greater consistency and coordination for complex
projects.
ii. An advantage of using CASE tools is that is produces systems that
require less system support and one disadvantage of using CASE tools is
that it can be difficult to learn to use in the interface.

You might also like