Software Engineering: Software Engineering Class Notes

Updated: Aug 18

Mobiprep has created last-minute notes for all topics of Software Engineering to help you with the revision of concepts for your university examinations. So let’s get started with the lecture notes on Software Engineering.


1. Coding and Testing

2. Function-Oriented Software Design

3. (a)Requirements analysis and specification (b) Software Design

4. Software Development Life Cycle Models

5. Software Engineering

6. Software Project Management

7. UML


Our team has curated a list of the most important questions asked in universities such as DU, DTU, VIT, SRM, IP, Pune University, Manipal University, and many more. The questions are created from the previous year's question papers of colleges and universities.

  1. What is the principle aim of software engineering discipline?

  2. Why do you think systematic software development using the software engineering principle is any different than art or craft?

  3. What is a software product line?

  4. What are the symptoms of the present software crisis?

  5. What do you understand by the principles of abstraction and decomposition?

  6. What do you understand about control flow structure of a program?

  7. Explain how the software design techniques have evolved in the past.

  8. What is computer systems engineering? How is it different from software engineering?

Software Engineering


Question 1) What is the principle aim of software engineering discipline?

Answer) Software engineering is the systematic approach to the development, operation, maintenance and retirement of software. The principle aim of software engineering is to develop methods and procedures for software development that can scale up for large systems and that can be used consistently to produce high quality software at low cost and within a short time.

 

Question 2) Why do you think systematic software development using the software engineering principle is any different than art or craft?

Answer) In art or craft, the product would be meaningful only in invoking thought or providing a comforting sense of beauty. The product could be replicated over and over again by others in other organizations and come up with the exact same result. But Software development is not that way; its experiments i.e., the development of individual projects or products don’t yield a similar result when done over a series of time and in different locations.

 

Question 3) What is a software product line?

Answer) A software product line is a set of software intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or a mission and that are developed from a common set of core assets in a prescribed way.

Early generation software product line techniques and case studies have provided an invaluable view into the pros, cons and potential benefits of these approaches, establishing a solid foundation for the evolution of the field into a more repeatable, mature, well-defined discipline called Product Line Engineering (PLE).

 

Question 4)What are the symptoms of the present software crisis?

Answer) Symptoms of the present software crisis are:

  • The cost of owning and maintaining software was as expensive as developing the software

  • Software projects running over-budget

  • Software projects running over-time

  • Software was very inefficient

  • Software was of low quality

  • Software often did not meet requirements

  • Projects were unmanageable and the code is difficult to maintain

  • Software was never delivered on time

  • The average software project overshoots its schedule by half

  • Lack of adequate training in software engineering

 

Question 5) What do you understand by the principles of abstraction and decomposition?

Answer) Abstraction in general is a process of consciously ignoring some aspects of a subject under analysis in order to better understand other aspects of it. In other words, it's a kind of simplification of a subject. In software in particular, analysis & design are all about abstraction. It allows us to name objects that are not directly instantiated but serve as a basis for creating objects with some common attributes or properties. So, abstraction is used to generalize objects into one category in the design phase.

Decomposition is an application of the old good principle "divide and conquer" to software development. It is a technique of classifying, structuring and grouping complex elements in order to end up with more atomic ones, organized in a certain fashion and easier to manage. It is a way to break down your systems into modules in such a way that each module provides different functionality, but may affect other modules also.

 

Question 6) What do you understand about control flow structure of a program?

Answer) Control flow structure of a program specifies the flow of control in programs.

Any algorithm or program can be clearer and more understood if they use self-contained modules called as logic or control structures. There are three basic types:

  1. Sequential flow

  2. Conditional flow

  3. Repetitive flow

Sequential flow as the name suggests follows a serial or sequential flow in which the flow depends on the series of instructions given to the computer. Unless new instructions are given, the modules are executed in the obvious sequence.

Conditional flow simply involves a number of conditions or parameters which decides one out of several written modules. The structures which use these types of logic are known as Conditional Structures. There are three types:

  • Single Alternative

  • Double Alternative

  • Multiple Alternative

Repetitive flow employs a loop which involves a repeat statement followed by a module known as the body of a loop. There classified into two types:

  • Repeat- For structure

  • Repeat- While structure

 

Question 7) Explain how the software design techniques have evolved in the past.

Answer) Today, software takes on dual roles, it is a product and vehicle for delivering product.

  • As a product, it delivers the computing potential embodied by computer hardware as by a network of computers accessed by local hardware.

  • As a vehicle for delivering the product, the software acts as the basis for the control of the computer (O.S), the communication of information (networks), and the creation and control of the programs (software tools and environment).

  • Software delivers the most important product of any time-information

  • It transfers personal data

  • It manages business information

  • It provides a gateway to worldwide information networks.

  • It provides acquiring information of its forms

  • Computer has given significant change

  • Improvement in hardware performance

  • Changes in computing architecture

  • Vast increase in memory and storage capacity

  • Sophistication and complexity can produce dazzling results when a system succeeds, but they can also pose huge problems for those with a base complex system.

  • 1990 began, Toffler described a “power shift” in which old power structures (Government, Educational, Industrial, Economics & Military) disintegrate as computers and software lead to a “democratic of knowledge”.

  • During the later 1990s, Youdon re-evaluated the prospects of software professionals and suggested the “the rise and resumption” of the American programmer.

  • Twentieth century closed, focus shifted once more, this time to the impact of “time bomb”.

  • Today, a huge software industry has become a dominant factor in the economics of the industrialized world.


 

Question 8) What is computer systems engineering? How is it different from software engineering?

Answer) System Engineering is the sub discipline of engineering which deals with the overall management of engineering projects during their life cycle, it focuses more on physical aspects. It deals with logistics, team coordination, automatic machinery control, work processes and similar tools. Most of the time, System Engineering overlaps with the concepts of industrial engineering, control engineering, organizational and project management and even software engineering. System Engineering is identified as an interdisciplinary engineering field due to this reason. System Engineer may carry out system designing, developing requirements, verifying requirements, system testing and other engineering studies.

The difference between System Engineering and Software Engineering can be said that the System Engineers focus more on users and domains, while Software Engineering focuses more on implementing quality software. System Engineers may deal with a substantial amount of hardware engineering, but typically software engineers will focus solely on software components. System Engineers may have a broader education (including Engineering, Mathematics and Computer science), while Software Engineers will come from a Computer Science or Computer Engineering background.









22 views0 comments