Answer 1: Four Important Attributes of Professional Software Are

Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 3

Name : Danyal Ahmad

Id : 13838
Class: BSSE
Course Code: 102007052 Course Title: Software Engineering
Instructor: Engr. Ghassan Husnain
Program: BS CS (Software Engineering)
Online Mid – Term Examination

Q.1: What are the four important attributes that all professional software should have? Suggest four
other attributes that may sometimes be significant.

Answer 1:

Four important attributes of professional software are:


1. Maintainability
2. Dependability and security
3. Efficiency
4. Acceptability/Usability

Other attributes that are also significant are:


1. Response time (non-functional attribute)
2. Interactivity
3. Reliable
4. Evolution

Q.2: Explain why professional software is not just the programs that are developed for a customer.

Professional software is not just the programs that are developed for a customer but it consist of
executable code and is associated with documentation and configuration of data that is required to
make these programs operate correctly .A professionally developed software system is often more
than a single program. The system usually consists of a number of separate programs and
configuration files that are used to set up these programs. It may include system documentation,
which describes the structure of the system; user documentation, which explains how to use the
system, and web sites for users to download recent product information. Example a word processing
system consist of executable program, user manual and the document such as requirements and the
design needed to produce the executable program.

Q.3: Giving reasons for your answer based on the type of system being developed, suggest the most
appropriate generic software process model that might be used as a basis for managing the
development of the following systems:

 A system to control anti-lock braking in a car


 A virtual reality system to support software maintenance
 A university accounting system that replaces an existing system
 An interactive travel planning system that helps users plan journeys with the lowest
environmental impact

Answer(3):

1. Anti-Lock Braking System:

This is a safety-critical system so it requires a lot of up-front analysis before implementation. It


certainly needs a plan-driven approach to development with the requirements carefully analysed. A
waterfall model is therefore the most appropriate approach to use, perhaps with formal
transformations between the different development stages.

2. Virtual Reality System:

This is a system where the requirements will change and there will be an extensive user interface
components. Incremental development with, perhaps, some UI prototyping is the most appropriate
model. An agile process may be used.

3. University Accounting System:

This is a system whose requirements are fairly well-known and which will be used in an environment
in conjunction with lots of other systems such as a research grant management system. Therefore, a
reuse-based approach is likely to be appropriate for this.

4. Interactive Travel Planning System:

This is a system with a complex user interface. An incremental development approach is the most
appropriate as the system requirements will change as real user experience with the system is gained.

Q.4: Explain why incremental development is the most effective approach for developing business
software systems. Why is this model less appropriate for real-time systems engineering?

Answer(4):
Incremental model is the most effective model in designing a software system. Below are the reasons
justifying it.
• The software system will be delivered quickly to the user.
• The cost for each iteration is very less.
• The testing efforts for each iteration will be less because only few additional functions need to
be-added in each iteration.
• The final product produced will be perfect without any defects or issues since we get feedback
of the customer during each iteration and developers will resolve these defects/issues.
• This model allows user to modify/change the requirements according to his convenience at
any phase of iteration.

This model is less appropriate to the real-time systems. The following are the reasons justifying it.

• The overall cost will be more compared to the waterfall model.


• Same resources may not be available for the next iterations. Hence, new resources should be
trained again for working on the application.
• Concerns regarding the system architecture may arise as all the requirements are not gathered
for the software lifecycle at the initial phase.

Q.5: Suggest why it is important to make a distinction between developing the user requirements and
developing system requirements in the requirements engineering process.

Answer(5):

There is a fundamental difference between the user and the system requirements that mean they
should be considered separately.

a) The user requirements are intended to describe the system’s functions and features from a user
perspective and it is essential that users understand these requirements. They should be expressed in
natural language and may not be expressed in great detail, to allow some implementation flexibility.
The people involved in the process must be able to understand the user’s environment and
application domain.

b) The system requirements are much more detailed than the user requirements and are intended to
be a precise specification of the system that may be part of a system contract. They may also be used
in situations where development is outsourced and the development team need a complete
specification of what should be developed. The system requirements are developed after user
requirements have been established.

THE END

You might also like