You are on page 1of 5

Software Engineering

ASSIGNMENT QUESTIONS

from CO-1

1. Discuss the term software? List out the characteristics of software in comparison with
hardware characteristics.
2. Construct Water-fall model and write the advantages and disadvantages of the model
with a neat diagram.
3. Discuss about prescriptive process models.
4. Illustrate the prototype paradigm in process models and list out various merits and
demerits of prototyping.
5. Unified process is represented by communication, planning, modeling, construction and
deployment phases and Explain what is happening in these five phases.
6. Write a short note on Reverse Engineering and Explain about User Interfaces Reverse
Engineering.

1) “Software Engineering is part of System Engineering Process”. Do you agree with the
above statement? Justify your answer.
Yes,
Software engineering is concerned with all aspects of software production from the early
stages of system specification through to maintaining the system after it has gone into use.
When System engineering is concerned with all aspects of computer-based systems
development including hardware, software and process engineering. Combined with the
Evolution of complex systems where software plays a Major Role.
Therefore, we can clearly conclude that the Software engineering is part of this more
general System Engineering Process.
2) What is “Software Crisis”?
“Software Crisis” is a term used in the field of Computer Science. In addition, the term
“Software Engineering” suggested at the conferences organized by NATO in 1968 and 1969
to discuss the “Software Crisis”.
During the period of 1960’s and 1970’s, due to the rapid increment in Software demand,
Complexity of software and Software challenges. There were many difficulties of writing
useful and efficient Software’s within the required time. Due to that, so many difficulties
regarding the development of large software systems arisen.
Many project failures resulted from the inability to apply the techniques used to develop
small Software Systems to the development of larger and more complex systems. This
failure leads to : Frequent cost overruns, Late or Never delivered projects, Incomplete
system functionality, Lower quality inefficient Software with errors, Software often did not
meet requirements, Projects were unmanageable and Codes difficult to maintain.
The negative consequences of failures in software range from simple user inconvenience to
huge economic losses like incorrectly recorded transactions. Ultimately, software errors
pose dangers to human lives and cause mission failures. Correction of errors were
expensive and often results in skyrocketing software costs. Hardware costs got low while
the software costs were skyrocketed rapidly. New techniques and methods needed to
control the complexity in large software systems.
Therefore, “Software Crisis” was the name given to the difficulties encountered in
developing large, complex systems in the 1960s. The Conference organized by NATO
proposed that the adoption of an engineering approach to software development would
reduce the costs of software development and lead to software that is more reliable.
3) What are the professional responsibilities of a Software Engineer?
Software Engineering obviously bound by local, national and international laws. Most
importantly, Software engineers must behave in an ethical and honest responsible way if
they want to be respected as professionals.
Major professional responsibilities As a Software Engineer are,
1. Confidentiality
You should normally respect the confidentiality of your employers or clients irrespective of
whether or not a formal confidentiality agreement has been signed.
2. Competence
You should not misrepresent your level of competence. You should not knowingly accept
work that is outside your competence.
3. Intellectual property rights
You should be aware of local laws governing the use of intellectual property such as
patents and copyright. You should be careful to ensure that the intellectual property of
employers and clients is protected.
4. Computer misuse
You should not use your technical skills to misuse other people's computers. Computer
misuse ranges from relatively trivial (game playing on an employer's machine) to
extremely serious (dissemination of viruses or other malware).
4) “Component-based Software Engineering allows faster delivery”. State whether this
statement is true or false. Justify your answer.
True,
Component-based Software Engineering allows to develop faster and more reliable system
by Reusing previously tested components.
With the use of “Reuse oriented components”, the major advantage is reducing the amount
of software to be developed. Usually, smaller codebases are easier to maintain since the
services are separate. Therefore reduced cost and risks, and usually leads to faster delivery.
In addition, it's easy to test specific “inputs for outputs” and “outputs for inputs”. So, no
longer have to write endless lines of code to build an application with the help of
Component based Engineering.
5) Propose the most appropriate generic software process model that might be used as a
basis for the development of following systems. Give reasons for your answers.
a) A complex real-time system whose requirements can be relatively easily identified and
are stable.
 • Water Fall Model
It should be the appropriate choice here. This model is the best choice when the
requirement and predictability of project's process and completion is already known.
As there will not much changes in requirement, so the sequential steps involved in the
model will not be disturbed and the completion time will be optimized.
b) A web-site for a local library. Requirements are vague and are likely to change in the
future.
 • Incremental Development Model
It should be the appropriate choice here. Because of Higher Customer interaction and
Requirements are Vague but unstable. So need to have Rapid Prototyping.
It says it likely to change in future. Therefore, model could be able to easily handle changes.
By various ways such as feedback from client over a regular time. Whenever the
requirement is known to be changed in any way, it is always better to avoid waterfall
model
c) An order processing system with a web-site for a local business. Requirements are vague
but stable (i.e. unlikely to change in the near future).
 • Throw away prototyping ‘merged’ with Incremental Development model
It should be the appropriate choice here. Requirements are Vague and stable. And also
There’s a need for Prototyping.
As the project is a shopping site, it would need new design and upgraded technologies over
time in future, so Incremental Development will keep providing the updates and keeping
the client friendly with time.
6) Describe the software process model that you have proposed in question 5(a)
highlighting its strengths and weaknesses.
Waterfall Model
The waterfall model is the earliest SDLC approach that was used for software development.
Also It’s a classical model used to create a system with a linear and sequential approach.
It is termed as waterfall because the model develops systematically from one phase to
another in downwards. This model divided into different phases and the output of one
phase acts as the input of the next phase sequentially. Each phase must be completed
before the next phase can begin. Due to that, there is no overlapping of the phases.
There are so many advantages so called Strengths in Waterfall Model
It is Easy to use, simple and understandable. It is really easy to manage as well because
each phase has specific outputs and review process. The one of the best strength can be
identify is clearly defined stages. It is well suited for smaller projects where requirements
are very clear. Process and output of each phase are clearly mentioned in the document.
The disadvantage so called Weaknesses in Waterfall Model
When considering the main weakness, it does not allow much reflection or revision. Once
an application is in the testing stage, it is very difficult to go back and change something
which is left during the requirement analysis phase. The Risk and uncertainty are higher
than other models. It is not advisable for complex and object-oriented projects. If needed to
make changing requirements cannot be accommodated in any phase. If testing is done at a
later phase, there is a chance that challenges and risks at earlier phases are not identified.
The sequential phases in the Waterfall model
• Requirement Gathering and analysis
During this phase, detailed requirements of the software system to be developed are
gathered from client and documented in a requirement specification document.
• System Design
Requirement specifications from first phase are studied in this phase and the system design
is prepared. This system design helps in specifying hardware and system requirements and
helps in defining the overall system architecture (Planing the programming language, for
Example Java, PHP, .net or database like Oracle, MySQL, etc. or other high-level technical
details of the project)
• Implementation
With the inputs from System Design phase, in this phase system is implemented, that is
nothing but coding the software. System is implemented in small programs called units.
• Integration and Testing
All the units developed in the implementation phase are integrated into a system after
testing of each unit. After integration the entire system is tested to verify that it is built as
per the specifications given by the client. Also for any faults and failures.
• Deployment of system
Deploy the application in the respective environment or released into the market.
• Maintenance
Once your system is ready to use, you may later require change the code as per customer
request

You might also like