answersLogoWhite

0

📱

Software Engineering

Software engineering is the process of applying well-developed techniques and practices in order to create new software products. Questions about everything from design patterns to requirements and specification belong here.

1,663 Questions

Is a structured disciplined rigorous approach to process improvement consisting of five phases?

There are four stages of process improvement, which is an organizational development component. The stages are first looking at a company and setting goals for it, then to meet those goals it increases profits and performance, then reduces costs and setting schedules to keep this all going.

What is the difference between recursion and tail recursion?

The original answer really doesn't explain much, and almost nothing that's relevant to the question. (Sorry!) The part about iterations typically involving some kind of loop is on target, though it doesn't really shed much light.

This might best be explained by giving two pseudo-code examples, a function to calculate the factorial of an input argument. For simplicity's sake, since this is just to show examples, we will assume that we can be sure that the argument is a positive integer.

# This is an iterative function to calculate the factorial

Function I-Factorial(x)

Result = 1

For i = 1 to x

Result = Result * i

Next i

Return Result

End Function

# This is a recursive function to calculate the factorial

Function R-Factorial(x)

If x = 1 then

Return 1

Else

Return x * R-Factorial(x-1)

End If

End Function

Instead of stepping through a loop, the recursive function simply invokes itself, each invocation using an argument that's been reduced by 1 until ultimately it receives an argument of "1". Then the call for "R-Factorial(1)" is returned to the call for "R-Factorial(2)", which passes its result up to the call for "R-Factorial(3)", which passes its result up to the call for "R-Factorial(4)", and so on, until the accumulated result has bubbled its way up to the original call for "R-Factorial(x)".

As noted in the original answer, recursive functions can(but do not have to) incur additional overhead in terms of call stacks, memory allocations, and so on. If you write in assembly language (as I used to) and utilize reentrant coding techniques, the overhead is very close to zero.

=========

1. Recursion:

# When a recursive call is made, the method/process copies or clones itself, making new copy of:

* the code

* the local variables (with their initial values),

* the parameters

2. Iteration : there is no recursive call involved that saves a lot of time and space too as no extra space is needed to store each copy generated in recursion.

Iterative codes usually refers to codes that contain explicit iteration processes, that is, loops.

Which country is best in software engineering education?

In Western World

of Course U.S.A

After That I can mention Canada,Australia,Uk,Scandinavia,Netherlands,Germany,...... In Order

In Eastern World

Of Course Japan

After That India,South Korea,Singapore,China,Taiwan,Hong Kong,...

What are skills for software engineering?

The candidate for a software engineering job should be certified by Software Engineering Institute in the United States. The knowledge of programming is a prerequisite for the software engineering field, as well as a computer science degree. Many companies require an internship in the field before considering a candidate for a position within their companies. Please see: http://en.wikipedia.org/wiki/Software_engineering for further information.

How do you answer 'What motivates you to do this job' in a job interview?

Your best answer will emphasize that the quality of the position and its tasks/responsibilities, along with the quality of the organization have always been your best motivators.

read furthe t the related article..

Information technology vs software engineering?

Software Engineering: Software Engineering has come to mean at least two different things in our industry. First of all the term "software engineer" has generally replaced the term "programmer". So, in that sense there is a tendency to extrapolate in people's minds that Software Engineering is merely the act of programming. Secondly, the term "Software Engineering" has been used to describe "building of software systems which are so large or so complex that they are built by a team or teams of engineers", as was used in Fundamentals of Software Engineering by Ghezzi, Jazayeri, and Mandrioli. Yet, there is increasing evidence that many of the processes we have been developing for large groups of engineers also apply to the best practices of even individual engineers.

Therefore, for the purpose of the Software Engineering Yellow Pages (SEYP), Software Engineering is intended to mean the best-practice processes used to create and/or maintain software, whether for groups or individuals, in attempt to rid ourselves of the usual haphazard methods that have plagued the software industry. This would include subjects like Configuration Management, Project Planning, Project Tracking, Software Quality Assurance, Risk Management, Formal Inspections, etc.

Systems engineeringis an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more difficult when dealing with large, complex projects. Systems engineering deals with work-processes and tools to handle such projects, and it overlaps with both technical and human-centered disciplines such as control engineering and project management.

System engineering deals with all aspects of computer-based system development.

Software engineering is a part of system engineering.

System engineering is to identify the roles of hardware, software, people, database and other system elements involved with that system which is going to be developed.

Software engineering is to tell the practicalities of developing and delivering useful software.

What is a deliverable in software engineering?

A deliverable is one of the items required by the contract to be delivered to the customer.

It may be software, documentation, special equipment needed to load or use other deliverables, etc.

What is the difference between high level and low level programming?

High level languages are easier for humans to read and program in. They are usually machine independent, and most have a wide variety of programming libraries available for common functions.

Low level languages are usually machine specific, such as assembly languages. They lack programming libraries.

Why software process should be represented through models?

Modeling is a central part of all the activities that lead to deployment of a good software. It helps in visualising and controlling the system's architecture.

What is problem with traditional software development?

In traditional software development method there were only two steps that is build code and fix. This was not an efficient method so new life cycle models were introduced.

What are the advantages of dynamic memory allocation over static memory allocation?

Readers who are familiar with the concepts of dynamic memory and pointers may wish to skip to the next section of this chapter. In this one, the general concepts of static and dynamic memory is outlined. How these issues are specifically handled in Modula-2 is not taken up again until after the rest of the preliminary discussions are complete.

The distinction made in this section is based on the timing and manner for the setting aside of memory for the use of a program. Some memory use is predetermined by the compiler and will always be set aside for the program in exactly the same manner at the beginning of every run of a given program. Other memory is obtained by the program at various points during the time it is running. This memory may only be used by the program temporarily and then released for other uses.

What is CASE Computer-Aided Software Engineering?

Case is an application used to help methodize and control the manufacturing of the software, it is mostly used to manage large/challenging projects to ensure the finished project is of high quality. Though you can use it in multiple other ways.

Where iterative model is used?

Iterative model is used when tight market deadlines make completion of a comprehensive software product impossible, but a limited version must be introduced in order to meet competitive or business pressure; a set of core product or system requirements are well understood, but the details of product or system extensions have yet to be defined.

In these and above situations, a process model is required that has been explicitly designed to accommodate a product that evolves over time. Iterative model provides the best help in such situation.

Do software engineers work in a team?

Yes, most software engineers are working as part of a team.

Why software testing is so difficult during software life cycle?

Many IT giants and solution developers are in the market as well small scale IT service providers. Hence it is required for IT industries to live in market where competition is high. Problems like on-line distribution of softwares(piracy) which affects the revenue of company and the growth of rupee value against that of the dollar are crucial. This drives IT companies to think of novel strategies. The biggest thing the IT sector is facing is global recession. Much of the software produced is used in financial sector and global recession has effected the financial sector badly therefore it will effect software industry .

What is inheritance explain with an example?

Inheritance is a feature in Java wherein one class will inherit or use the features of another class.

Ex: public class A extends B {

…

}

Here class A is the child class and B the parent. The child inherits the features/methods of the parent and can use them.

Design and draw a combinational circuit using AND-OR-NOT gates that accepts an input number of three bits?

Any hardware whatsoever satisfies the conditions of this question ... as long as it has

three input lines ... since the question neglects to specify what it wants the circuit to do

with the 3-bit input number.

Is there demand for software engineer?

Yes, there is a great demand for skilled software engineers. You need to keep changing with the technology to remain successful.