Software Development Engineer Interview Preparation Guide
Download PDF

Software Development Engineer Frequently Asked Questions by expert members with experience in Software Development Engineer. These questions and answers will help you strengthen your technical skills, prepare for the new job test and quickly revise the concepts

59 Software Development Engineer Questions and Answers:

1 :: What is software engineering?

Some basic definitions of software engineering are:
The application of a disciplined engineering approach to the development of software systems.
A body of knowledge and experience in software development practice and process.

2 :: Explain the difference between computer engineering (CE), computer science (CS), and software engineering (SE)?

While computer engineering programs include courses in software, SE programs incorporate much more detail in software development practice and process, including advanced areas of software architecture, requirements management, quality assurance, and process improvement. Software engineering programs do not stress computer hardware and electronics as much as computer engineering programs do.

On the other hand, software engineering is based on computer science, as other engineering disciplines are based on natural or life sciences. However, software engineering adds an emphasis on issues of process, design, measurement, analysis and verification. In general, scientists seek new knowledge, while engineers want to build things, solve problems, and help people. Both roles are important.

3 :: Why software engineers needed?

Computer systems are pervasive and have a major impact on society. Software is a critical component of all computer systems, including the "embedded systems" used in communication networks, vehicles, consumer electronics and medical devices. Software engineers have the knowledge and skills needed to produce high-quality, effective software on which all these computer systems depend.

4 :: If I like computers. Is Software Engineering is for me?

Software Engineering is all about using engineering principles for the production of software. If you like computers, like solving challenging problems and would like to make an impact on the world in which we all live, you should consider software engineering (SE).

Computer systems are an integral part of today's society. Software is a critical component of all computer systems, including the "embedded systems" used in communication networks, vehicles, consumer electronics, and medical devices. Software engineers have the knowledge and skills needed to produce high-quality, effective software on which all these computer systems depend.

BSSE program is one of the first four ABET accredited programs in the United States. Our curriculum provides a strong foundation upon which to build a successful SE career.

5 :: During interview, Why do not obsess over little mistakes that happen?

On more than one occasion, when I gave a star candidate a coding question, he zeroed in on the most optimally performant solution, identified the boundary cases, and began writing well-designed code. Midway through the problem, he makes a little error -- getting the order of operations wrong on the first try, or having an off-by-1 error, or forgetting to declare a variable.

When I point it out, the candidate responds with horror and then becomes so nervous that it impacts his performance during the rest of the interview.

The fear is unfounded. An awesome candidate making a little error is like a concert violinist playing a challenging Brahms concerto and hitting two wrong notes. Sure, the audience could tell that he made mistakes, but they don't get confused as to whether he's actually at Twinkle-Twinkle-Little-Star level.

Even if you completely bomb one question, many interviewers ask you multiple questions and will forgive a single mishap. Even bombing an entire interview is recoverable if the other interviews go well.

6 :: If I have no previous programming experience. Can I still be successful Software Engineer?

Any previous programming experience that you may have is certainly an asset, but it is not a requirement. It is a very common myth that SE is mainly programming. In fact, SE programs put a lot more emphasis on software development practice and process, including advanced areas of software architecture, requirements management, quality assurance and process improvement.

7 :: Described the types of Architectures in Software Engineering?

An architecture expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.
★ Object-Oriented/Abstract Data Style
★ Layered Hierarchies
★ Blackboard architecture
★ involving shared access to data with loosely coupled agents
★ Client/Server
★ Three tier Client/Server architectures
★ Peer-to-Peer Architecture

8 :: Which use cases and class diagrams are in Software Engineering?

Use cases are graphical represenation of system parts and there interaction that is taking place. Normally we depict
the part of the systems who are involved in some activity as actors.
Class Diagrams are a part of designing proess. After coming up with use cases of the system, we take each use case and come up with the
classes that we need to perform that functionality. Each class will have Class Name, Attribues and Operations associate with it.
Some of the features of the classes are -
- Each class should have well defined responsibilities
- These responsibilities should be cohesive i.e. the system as a whole looks sensible and looks together.

9 :: Explain sequence diagram?

Sequence Diagrams are pictorial representation of event happening according to the time line. In sequence Diagrams, we show respective class names by a small box and the event as a arrow.
Sequence Diagrams help in describing the normal course and alternative course of use cases.

10 :: Explain Design patterns?

Design Patterns are simple and elegant solutions of commonly occuring problems in software design. Design Patterns make it easier to reuse successful designs and architectures of expereinced and Professional Designers.
There are three types of Patterns -
1) Creational - Concerned with creation of objects
2) Structural - Concerned with composition of classes or objects
3) Behavioral - characterize the ways in which classes and objects interact and distribute responsibility.