Software Engineering: Question Set – 31

Software Engineering: Question Set – 31

Define the following in the context of software development: (i) verification (ii) validation (iii) debugging

  • The verification process entails carrying out a series of tasks with the goal of establishing whether or not the programme is capable of carrying out a particular operation.
  • Validation is the process of ensuring that the programme satisfies the requirements of the customers.
  • The process of testing, which also includes the elimination of defects, includes debugging as one of its steps.

What is the difference between Structured English and Psuedo Code?

  • Structured English is a term that refers to the native English language that is used to write the structure of a programme module. It contains keywords from various programming languages.
  • On the other hand, the Pseudo Code methodology is remarkably similar to the programming language, but it does not require the use of any particular syntax.

How would you ensure that your code is fast and secure?

  • In the event that the execution of the code takes a long time, you will determine the time complexity of the program. It is the number of times a statement is carried out, which can vary depending on a variety of aspects such as the programming language, the operating system, and the amount of processing power available.
  • Your code can be protected in a variety of different ways, and this is true regardless of the programming language that you employ. In this context, having knowledge of secure coding practices is absolutely necessary. You can find vulnerabilities in the open-source packages that are hosted on GitHub, for example, by scanning the code with free tools that are available.

What are some useful project estimation techniques?

Project estimation is an integral part of sound software project planning. Here are some widely-used methods:

  • Decomposition (Software sizing, problem-based, and process-based techniques)
  • Empirical (regression analysis, constructive cost model, and the software equation)

How would you measure project execution?

  • Monitoring of activities, checking off completed milestones, and reporting on current progress would all be part of the review of the software implementation.
  • The tools used for project management make monitoring progress an easy and convenient process. Some additional examples include the Gantt Chart, the Pert Chart, and the Resource Histogram.

Is it a good idea to use catch (exception)?

Catch (exception) should be used when the exception types are known. It is a bad idea as you cannot read the exception when no variable has been defined.

Compare Interface-oriented, Object-oriented, and Aspect-oriented programming.

  • Interface programming is an architectural pattern that is based on contracts and is used for the purpose of attaining modular architecture at the component level.
  • Writing granular objects that each have a specific purpose is the focus of the object-oriented programming paradigm.
  • The goal of aspect-oriented programming is to partition the code in such a way that numerous objects work together to carry out the primary duties, while separate objects handle the subsidiary activities.

When to declare a class as abstract?

A class containing an abstract keyword in its declaration cannot be instantiated. It is best to declare a class as abstract in the situations mentioned below.

  • When at least one of the methods in the class is declared as abstract.
  • When a class inherited from an abstract class still includes abstract methods.

What is a structured design?

The ‘divide and conquer’ strategy is followed in the conceptualization of the problem when using structured design. Taking a methodical approach to solving a problem entails dissecting the matter into its component parts and addressing each of these subproblems on an individual basis. Because of this strategy, some people also refer to it as the solution design method.

Which is preferable between the two: strong-typing or weak-typing?

Strong typing is meant to be superior to weak typing since it examines variables throughout the compilation process. Furthermore, it has the potential to significantly reduce the number of system bugs. Conversions in a language with weak typing are carried out only during the runtime, which can result in unforeseen outcomes.