0% found this document useful (0 votes)
297 views29 pages

S.E Notes

This document provides an overview of software engineering and computer-based system engineering concepts. It discusses what software is, types of software products, and defines software engineering as a systematic approach to software development. The key software process activities of specification, development, validation, and evolution are described. Common software process models like the waterfall model and spiral model are explained. The document also defines a system, outlines the system engineering process including requirements definition, system design, subsystem design, integration, installation, evolution and decommissioning. It briefly describes the system procurement process for acquiring a system to meet organizational needs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
297 views29 pages

S.E Notes

This document provides an overview of software engineering and computer-based system engineering concepts. It discusses what software is, types of software products, and defines software engineering as a systematic approach to software development. The key software process activities of specification, development, validation, and evolution are described. Common software process models like the waterfall model and spiral model are explained. The document also defines a system, outlines the system engineering process including requirements definition, system design, subsystem design, integration, installation, evolution and decommissioning. It briefly describes the system procurement process for acquiring a system to meet organizational needs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Software Engineering

Chapter 1
Introduction to software Engineering
1) What is software and software products? Explain types of software products.
Ans: It is collection programs and associated documentation. Software products may be
developed for a particular customer or may be developed for a general market.

Types of Software products:


1) Generic: - developed to be sold a range of different customers.
2) Custom (Bespoke):- It is developed for a single customer according to their specification.

2) What is Software engineering?


Ans: It is a systematic approach to the development, operation, maintains of software. It is an
application of computer science along with mathematics and science.

3) What is software process? Explain fundamental activities that are common to


software products.
Ans: A set of activities whose goal is to development or evolution of software.
The fundamental activities are:
- Specification: - what the system should do and what its constraints?
- Development: - Production of the software system.
- Validation: - Checking that the software is what the customer wants?
- Evolution: - Changing the software in response to changing the demands.

4) What software process Model?


Ans: - A simplified representation of a software process, presented from a specific
perspective.
Example of software process Model:
- Workflow perspective:- Represents inputs, outputs, and dependencies.
- Data perspective:- represents the roles\activities of the people involve software process.

5) Explain Water-Fall Model for Software development

1
Written By: Mahesh , Nitin, Sunil.
Software Engineering

1) Requirement phase:- The system service, constraints and goals are established by
consultation with system users. Both user and development staff define it in an understandable
manner.
- All possible requirements of the system to be developed are captured in this phase and
documented in a requirement specification doc.

2) Design phase:- The system design is either software or hardware system. It establishes
overall system architecture. Software design represents software functions.
- The requirement specifications from the first phase are studied in this phase and system
design is prepared. System Design helps in specifying hardware and system requirements and
also helps in defining overall system architecture.

3) Implementation:- During this stage, software design realized as a set of the program unit.
Unit testing involves verifying each unit meets its specification.
- With inputs from system design, the system is first developed in small programs called units,
which are integrated into the next phase. Each unit is developed and tested for its functionality
which is referred to as Unit Testing.

4) Integration:- The individual program units are integrated a complete system to ensure that
the software requirements have been meeting.
- All the units developed in the implementation phase are integrated into a system after testing
of each unit. Post integration the entire system is tested for any faults and failures.

5) Validation: - A complete system has to be tested and to ensure that the software
requirements have been meeting.

6) Deployment: - After the test, the software system is delivered to the customer.
- Once the functional and non functional testing is done, the product is deployed in the
customer environment or released into the market.

6) Explain Boehm’s spiral model in details.


Ans:- The spiral model, originally proposed by Boehm‘s(BOE 88). The spiral model is an
evolutionary software process model that couples the iterative nature of prototyping with the
controlled and systematic aspects.

2
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- This model is divided into a number of frameworks activities, also called tasks regions
typically they are between three and six tasks regions.

1) Customer communication:- Task required to established communication between


developer and customer.

2) Planning: - Task required defining resources, timelines, and other projects related
information.
- Requirements are gathered during the planning phase. Requirements like ‗BRS‘ that is
‗Business Requirement Specifications‘ and ‗SRS‘ that is ‗System Requirement specifications‘.

3) Risk analysis: - Task required to access both technical and management risks.
- In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A
prototype is produced at the end of the risk analysis phase. If any risk is found during the risk
analysis then alternate solutions are suggested and implemented.

4) Engineering: - Tasks required to build on or more reorientation of the application.


- In this phase software is developed, along with testing at the end of the phase. Hence in this
phase, the development and testing are done.

5) Construction and realize: - Task required constructing, tasking, installing and providing
user support (e.g documentation and training).

6) Customer evaluation:- Task required to obtain customer feedback based on the evolution
of software representation created during the engineering stage.
- Product maintenances
- Product enhancement project
- New product development projects
- Concept development projects.
Advantages of Spiral model:
i) The high amount of risk analysis hence, avoidance of Risk is enhanced.
ii) Good for large and mission-critical projects.
iii) Strong approval and documentation control.
iv) Additional Functionality can be added at a later date.
Disadvantages of Spiral model:
i) Can be a costly model to use.
ii) Risk analysis requires highly specific expertise.
iii) Doesn‘t work well for smaller projects.
When to use Spiral model:
- When costs and risk evaluation is important
- For medium to high-risk project.

3
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter – 2
Computer Based System Engineering

1) What is a system? Explain system engineering process in details.


Ans: A system can be defined as a collection of interrelated components working together
towards some common objective. A system may including software, mechanical, electrical
and electronic hardware and be operated by people.

This process follows a ―waterfall‖ model because of the need for parallel development of
different parts of the system.

1) Requirement Definition:- System Requirement Definition specifies what the system


should do (its functions) and its essential and desirable system properties.
It involved with system customer and end-users.

3 types of Requirements:
a) Abstract functional Requirement:- The basic function that the system must provide are
defined at an abstract level.
b) System properties Requirement:- These are non-functional properties such as
availabilities, performance, and safety. These properties affect the Requirement for sub-
system.
c) Characteristics that the system must not exhibit:- It is imp to specify what the system
must not do as it is to specify would do.

2) System Design:- It is concerned with how the system functionally is to be provided by the
components of the system.

4
Written By: Mahesh , Nitin, Sunil.
Software Engineering

a) Partition Requirement:- We analyze the requirement and organize them into groups.
b) Identify Sub-system:- We should identify sub-system that can individually or collectively
meet the requirements.
c) Assign requirements to subsystem: - We assign the Requirements to the system in
principle, this should be straight forward if the requirement pertaining used to derive the
subsystem identification.
d) Specify sub-system functionality: - you should Specify the specific functions provided by
each subsystem. This may be seen as part of the system design phase.
e) Define sub-system interfaces:- we define the interface that provided & required by each
sub-system once their interface has been agreed upon, it become possible to develop.

3) Subsystem Design:- Typically parallel projects developing the hardware, software, and
communication. May involve some COTS (Commercial off the shelf) systems procurement.

4) System Integration:- The process of putting hardware, software, and people together make
a system. Should be tackled inclemently so that sub-system are integrated one at a time.

5) System Installation: - Environmental assumptions may be incorrect. May be human


resistance to the introduction of a new system. Operator training has to be identified.

6) System Evolution:- the large system has a long lifetime they must evolve to meet
changing requirements. Evolution is inherently costly; changes must be evolved from
technical and business perspective. Subsystems interact so unanticipated problem can arise.
There is rarely a rationale for original design decisions.

7) System decommissioning: - taking the system out of service after its useful lifetime

5
Written By: Mahesh , Nitin, Sunil.
Software Engineering

2) Describe the system procurement process.


Ans: Acquiring a system for an organization to meet some need. Some system specification
and architectural design are usually necessary before procurement. You need a specification to
let a contract for system development. The specification may allow you to buy a commercial
off-the-shelf (COTS) system almost always cheaper than developing a system from scratch.

3) Compare Software Engineering and System Engineering.


Ans: -The proportion of software in the system is increasing software driven general purpose
electronics in replacing special purpose system.
-The problem of systems engineering is similar to problems of software engineering.
-The software is seen as a problem in systems engineering many large projects have been
delayed because of software problems.

6
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter – 3
Requirements and Specifications

1) Explain Requirement Engineering Process.


Ans: -

- The requirement engineering process is carried out such that a requirement Specification
serves as the basis for an agreement to be signed between the clients and the software
developers.

a) Feasibility Study: - In this phase, an estimate is prepared to verify possibilities as user


needs or capabilities as expected by clients can be met using available hardware and software
systems.
- Consequently, a feasibility study would reveal as for whether the proposed software could be
developed well within allocated budget and proven to be a cost—effective software.

b) Requirements Analysis: - Here in this phase, software development ,staff counsel end—
users and customers to find out the services the software system should provide.
- They also gather information such as conditions under which the software must perform,
hardware constraints, required performance of the system etc, through a series of discussions
with potential users, and observing the performance of existing software systems.

c) Requirements Definition: - Here in this phase, the requirements are defined in terms of a
document by translating the necessary information gathered during requirements analysis
phase.
- Requirement document would reflect customer needs and must be understood both by the
end—user and customer of the software system 'being developed.
7
Written By: Mahesh , Nitin, Sunil.
Software Engineering

d) Requirements Specification: - It's an iterative process along with requirements definition


and analysis phase/stages.
- A final description of the user and system requirements are charted out, which serve as a
basis for signing agreement or contract between software development agency and client.
- It is also observed that the system design and requirement analysis phase activities influence
each other as developments.

e) The Software Requirements Document: - From our previous discussions, we know that
requirements of the software system to be developed or in short software specifications are
detailed in a Software Requirements Document.

2) Explain Requirement Validation.


Ans: - Requirements validation is the critical engineering process of checking the
requirements for Validity, Consistency, Completeness, Realism, and Verifiability.
- Requirements validation is of paramount importance since, if validation is inappropriate, the
errors already migrated in requirement document would propagate into the system design and
implementation.
1. Validity Checks: - A user may assume only certain types of the functions that software
system has to perform.
- However, the additional function may require the same system when further analysis and
critical thinking performed.
2. Consistency Checks: - Conflicting requirements lead to inconsistency in a software system
to be developed.
- This happens due to different descriptions the same system function and disagreeing
constraints. So consistency check, have to be exercised as a part of the validation process.
3. Completeness Checks:- The functions (capabilities expected by the system) and
constraints (conditions) imposed by the software system to be developed.
-It must necessary to be complete. Any ignorance by thinking any capability to be imparted on
the system is simple, silly or simply it's understood so simple.
4. Realisms Checks:- Requirements specifications must be acceptable for particular reasons
of implementation with existing technology and well within the budget allocated and
schedules being fixed for a software system to be developed.
5. Verifiability Checks: - Verifiability should emphasise that the software system be
developed must meet the requirements. For which requirements of software system must be
drafted in black and white.
- So that requirements specifications are verifiable and this would minimize possible quarrel
between the customer (client) and the software developer holding the contract software
development.

8
Written By: Mahesh , Nitin, Sunil.
Software Engineering

3) Explain Requirement Evolution in brief.


Ans: - Requirements Evolution: - As we know that the end-user requirements and customer
perception are always changing especially for large business software systems.
- Also and when development of requirement definition is under progress
- If this is so, then clearly understood user requirement's information once again serves as a
good feedback to the same end-users and customers.
- This is nothing but a phenomenon leading to Requirement Evolution and the same is shown
in figure below
a) Initial Understanding of the problem
b) Initial Requirements
c) Possible changes in understanding of problem
d) Changed Requirements

4) What is Data Dictionary? Discuss its advantages.


Ans:- Data Dictionary:- When data flow model interns of DFDs are defined, there could be
many named entities (data objects, data names), relationships etc.
- Also, names chosen for data flows) must be unique and they should convey precise meaning.
Therefore, further description of the data—flows and/or named entities is required to better
understand the data—flow model for requirement analysis and validation.
- For which, the associated Data Dictionary represent a repository of various data flows
defined in a DFD.

- In a data dictionary, you find


a) List of names used by the system arranged alphabetically.
b)The structure of each data flow in the DFD al> Components in the structure of a data flow.
c) The structure of files shown in the DFD.

Advantages of Data Dictionary


- It's a mechanism for name management especially when a large software turn to be
modelled.
- As many people are involved at different levels, 'name clashes be resolved if data dictionary
is maintained properly.
-It serves as a data store for record keeping of organisational information, which turn can
connect symmetrically, the analysis, design, implementation & evaluation.

9
Written By: Mahesh , Nitin, Sunil.
Software Engineering

5) What are Functional and Non-functional Requirements?


Ans:- The functional requirements for a system describe what the system should do.
- These requirements depend on the type of software being developed, the expected user of the
software & general approach taken by the organisation when writing requirements.
- When expressed as user requirements, the requirements are usually described in a fairly
abstract way.
- However, the functional system requirements described the system functions in details in its
input & outputs, expectation & so on…

2. Nonfunctional requirements:- Non-functional requirements, as the name suggests, are


requirements that are not directly concerned with the specific functions delivered by the
system.
- They may relate to emergent, system properties such as reliability, response time and store
occupancy.
- Alternatively, they may define constraints on the system such as the capabilities of I/O
devices and the data representations used in system interfaces.
- This is rarely associated with individually system features. Rather, these requirements are
rarely associated with emergent properties of the system.
- Therefore, They may specify the system performance, security etc…

6) Explain Object model.


Ans: - Object models describe the system in terms of object classes.
- An object class is an abstraction over a set of objects with common attributes and the
services (operations) provided by each object.
- Various object models may be produced.
a) Inheritance models b) Aggregation models c) Interaction models
- Natural ways of reflecting the real-world entities manipulated by the system.
- More abstract entities are more difficult to model using this approach.
- Object class identification is recognized as a difficult process requiring a deep
understanding of the application domain.
- Object classes reflecting domain entities are reusable across systems

7) Explain Data Flow Models


Ans: - Data-flow models are an intuitive way of showing how data, is processed by a system.
- The notion used in these models represents functional processing (rounded rectangles), data,
stores (rectangle) and data movements between functions (labeled arrows).
- Data flow models are used to show how data flows through a sequence of processing steps.
For example, data-flow model which shows the steps involved in processing an order for
goods (such as computer equipment in an organization.

10
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- Data flow models are valuable because tracking and documenting how the data associated
with a particular process moves through the system helps analysts understand what is going
on.

Advantages of Data Flow Model


1) Unlike some other modeling notations, they are simple and intuitive.
2) It is usually possible to explain them to potential system users who can then participate in
validating the analysis.

8) Explain View Point Analysis.


Ans: - a) A data source or sink.
b) A representation framework.
c) A receiver of services.

Advantages of viewpoint
1) In interactive to systems, it is quite natural to assume end users as receivers of the system
services.
2) It is external to the system.
3) If there is no interaction then it is not a viewpoint.
4) It is useful for structuring non-functional requirements.

9) Explain Software Requirement specification(SRS).


Ans: - Software Requirement Specification

The 3 basic activities concerning the Requirements phase are


1. Problem Analysis/Requirement Analysis
2. Requirements Specification
3. Requirements Validation

- The requirements specification activity will produce the SRS software Requirements
Specification, a final document based on the problem being analyzed in the first activity i.e.
Requirement Analysis. Also, the SRS is now ready to undergo Validation process.
- Thus, the requirements specification is intended to convey in a precise way the functions
which the software system must provide.
- Therefore, such specifications are sometimes called Functional specifications. The
Requirements specifications may be prepared and finalized (approved) on the basis of a
contract.

Role of Software Requirement Specification(SRS):


- The primary objective of the requirement analysis activity is to understand the problem,
approximate the problem domain of client‘s organization.

11
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- SRS intended to specify the return document of the system to b e developed, fourth software
developers. Indeed SRS should not be ambiguous or informal has such the confusions or
ambiguity would generate a wrong interpretation of the system.

Characteristics of SRS
1) Correct: - Genuine requirements must be part of an SRS.
2) Complete: - Software system must perform each & every function as specified in SRS.
3) Unambiguous: - Non- confusing, if every requirement has specified in SRS carry one
meaning.
4) Verifiable: - Review/cross checking to clarify the SRS is understood & software performs
intended functions.
5) Consistent: - Stable due to Non-conflicting requirements.
6) Modifiable: - The necessary change can be made without affecting completeness.

12
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter- 4
Software Prototyping

1) What is Software Prototyping? Explain its benefits.


Ans:- Prototyping is the Rapid development of a system. In the past, the developed system
was normally thought of as inferior in some way to the required system so further
development was required.
- Prototyping can also be considered as Risk Reduction Technique. Such significant risks in
software development process can be Requirements and omissions.

Benefits of Software Prototyping Process Model


- Misunderstanding among software developer and distributor with their counterpart; i.e.,
end—user or purchaser clients can be clarified readily.
- Missing user services if any or additional user requirements can be detected and! or
appended.
- Feasibility and usefulness of the application could be demonstrated quickly to the
Management with the ad-hoc prototype (pilot package) software system.
- The prototype can be wed for initial end user training well before the final software system
being
delivered.

2) Explain Prototyping in Software Process.


Ans:- There can be two approaches to prototyping in the software processes as shown below

1. Evolutionary Prototyping
- The evolutionary prototyping is intended to deliver a working system to end—users. —
- However, the evolutionary approach begins with a limited understanding of the system
requirements. But the system is updated and modified further as and when new requirements
are discovered.
- Accordingly, whenever it is difficult to establish a detailed system specification and user
requirements are not clear the evolutionary prototyping is recommended.

2) Throw-Away Prototyping.
- The throw-away prototyping is intended to derive (discover) and validate the system
requirements (system specifications).
- Here the function of the prototype is to clarify requirements and supply the necessary
information for managers to validate process risks.
- Accordingly, after evaluation the prototype is thrown away has the name itself indicates &
it's not used as a basis for further development of the system.

13
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- It is used to reduce requirement risk


- The prototype is developed from initial specification, delivered for experiment then
discarded.

2) Explain or List the Prototyping Techniques


Ans:- 1) Executable specification Languages
2) Very high-level languages
3) 4th generation languages
4) Composition of Reusable Components

14
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter- 5
System Design

1) Explain Software Process in detail.


Ans: - Software Design Process: - Software design is an iterative process through which
requirements are translated into a "blueprint" for constructing the software.
- Initially, the blueprint depicts a holistic view of software.
- That is, the design is represented at a high level of abstraction—a level that can be directly
traced to the specific system objective and more detailed data, functional, and behavioral
requirements.

Two characteristics that serve as a guide for the evaluation of a good design
1. The design must implement all of the explicit requirements contained in the analysis model,
and it must accommodate all of the implicit requirements desired by the customer.
2. The design must be a readable, understandable guide for those who generate code and for
those who test and subsequently support the software.

- In order to evaluate the quality of a design representation, we must establish technical


criteria for good design. We present the following guidelines:-

1) A design should exhibit an architectural structure that (1) has been created using
recognizable design patterns, is composed of components that exhibit good design
characteristics.
2). A design should be modular; that is the software should be logically partitioned into
elements that perform specific functions and sub-functions.
3). A design should contain distinct representations of data -architecture, interfaces, and
components (modules).
4). A design should lead to data structures that are appropriate for the objects to be
implemented and are drawn from recognizable data patterns.
5). A design should lead to components that exhibit independent functional characteristics.

2) Define Coupling? Explain Different types.


Ans: - Coupling is a measure that defines the level of inter-dependability among models of a
program. It tells what level the modules interface & interact with other.
- The Lower the coupling, the better the program.

Types of coupling
1) Content coupling: - When module can directly access or modify or refer to the content of
another module.
2) Data coupling: - It is when two modules interact with each other by means of passing data
(parameter).

15
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- If a module passes data structure as a parameter, then the receiving module should use all its
components.
3) Stamp Coupling: - When multiple modules share common data structure & work on
different part of it.
4) Common Coupling: - When multiple modules have read & write access to some global
data, it is called as common or global coupling.
5) Control Coupling: - When two modules are controlled coupled if one of them decides the
function of the other module or changes its flow of execution.

3) Define Cohesion? Explain Different types.


Ans: - Cohesion is a measure of the relative functional strength with which the different
elements within modules are associated or related.
- Cohesion of modules specifies how tightly the internal of a given module are bonded
together or integrated together

Types of Cohesion
1) Coincidental cohesion: - it takes place when different. elements within a module are not
related but joined together to form a single module.

2) Logical cohesion : - It takes place when there exist some logical relationship among
different elements of a module and such elements or components perform similar functions
like only input, only outputs, error handling etc.

3) Temporal cohesion: - It takes place when all of the logically related elements of a module
act upon together at the same time. For instance start up or Shut Down routines.

4) Procedural cohesion: - It takes place when elements of a module form a common


procedural unit. For instance, a looping control sequence or sequence of decision controls
statements.

5) Communicational cohesion: - It takes place when all the elements of a module act upon
the same input data or reference the same output data.

6) Sequential cohesion: - It takes place when the output from one element in a module serves
as input to another element within that module.

7) Functional cohesion: - It takes place when each and every element of a module is essential
to execute a single function. Examples of functionally cohesive modules include "compute the
logarithm of x "compute square root" "sorting and searching procedures" etc.

16
Written By: Mahesh , Nitin, Sunil.
Software Engineering

4) What is Understandability? Explain the characteristics that affect understandability


in the design process.
Ans: - Understandability is an ability to build the model accurately to achieve the goals.

Characteristics
a) Completeness: All necessary components available it means code calls a subroutine from
an external source, it should be provided.
b) Conciseness: minimise the redundant information on processing. This is important where
memory capacity is limited. It is a good practice to keep the limits of code minimum.
c) Probability: Ability to run on multiple computer configurations. It should run on P.C as
well as smartphone & it should run on the different system.
d) Maintainability: The software product that is maintainable should be well documented
should not be compiler & should have space capacity for memory storage.
e) Reliability: Ability to perform its intended functions satisfactorily. We can rely on such
system product is required to perform correctly in whatever the condition it finds itself.
f) Efficiency: Fulfillment if purpose without waste of resources, such as memory space &
process utilisation.

5) Explain System Structuring in detail.


Ans: - Design Methodology - Structural Design :
- The design phase of software Engineering is concerned with the preparation of a design for a
given software system.
- The structured Design method is one such method that can be employed for developing
software system designs.

- The SDM comprises four major steps listed as below:


1) Restate the problem as DFD.
2) Identify the input and output data elements of a software system.

System Structuring
- System structuring activity performs decomposition of a system into a set of interacting
principal sub-systems.
- Where in a principal sub-system is an independent software unit (a decision-making control
module or superordinate or a principal worker module)?
- Further this activity identifies communication between various such sub-systems.
- Architectural design interns of system structuring may be presented as a block diagram that
represents an overview of the system structure.

- There are some of the different Decomposition methods are as follows:-


a) The Repository model.
b) The client-server model.

17
Written By: Mahesh , Nitin, Sunil.
Software Engineering

c) The abstract machine model.

a) The Repository Model :

- Sub-systems exchanging up a system must exchange information so that they can work
together effectively.
- There are two fundamental ways in which this can be done:
1) All shared data held in a central database that can be accessed by all sub-systems.
2. Each sub-system maintains its own database. Data is interchanging them to with other sub-
systems by passing messages to them
- The majority of systems that use large amounts of data are organised around a shared
database or repository.
- This model is therefore suited to applications where data is generated by one sub-system and
used by another.

Advantages.
1) The efficient way to share large amounts of data.
2) Sub-systems need not be concerned with how data is produced centralised management e.g.
backup, security, etc.
3) Sharing model is published as the repository schema.

Disadvantages
1) Data evolution is difficult and expensive
2) No space for specific management‘s policies

18
Written By: Mahesh , Nitin, Sunil.
Software Engineering

b) The Client-Server Architectural Model:

- This is multi-user, web based system to provide a film photography library. In this system,
several servers manage & display the different types of media.
- Distributed system model which shows how data and processing are distributed across' a
range of components.
- Set of stand-alone servers, which provide specific services such as printing, data
management etc.
- Set of clients which call on these services.
- Network which allows clients to access servers.

Advantages
1) Distribution of data is straightforward
2) Easy to add new servers.

6) List user system Design principles & explain?


Ans: - Software design is both process & model.
- The design process is a sequence of steps that enables the designer to describe all aspects of
the software to be built.

Consider the following list:


a) The design process should not suffer from "tunnel vision": - A good designer should
consider alternative approaches, judging each based on the requirements of the problem.

b) The design should be traceable to the analysis model:- Because a single element of the
design model often traces to multiple requirements, it is necessary to have a means for
tracking how requirements have been satisfied by the design model.

19
Written By: Mahesh , Nitin, Sunil.
Software Engineering

c) The design should not reinvent the wheel: - Systems are constructed using a set of design
patterns, many of which have likely been encountered before.

d) The design should "minimize the intellectual distance" between the software and the
problem as it exists in the real world: - That is the structure of the software design should
(whenever possible) mimic the structure of the problem domain.

e) The design should exhibit uniformity and integration:- A design is a uniform if it


appears that one person developed the entire thing. Rules of style and format should be
defined for a design team before design work begins.

7) Explain Modularity?
Ans: - Modularity means the software is divided into separately addressable components,
often called ‗Modules‘ that are integrated to satisfy problem requirements.
- It has been stated that "modularity is the single attribute of software that allows a program to
be intellectually manageable".
- Monolithic software (i.e. a large program composed of a single module) cannot be easily
grasped by a reader.
- The number of control paths, a span of reference, the number of variables, and overall
complexity would make understanding close to impossible.
- To illustrate this point, consider the following argument based on observations of human
problem solving.
- Let C(x) be a function that defines the perceived complexity of a problem x, and E(x) be a
function that defines the effort in time) required to solve a problem x. For two problems, p1
and p2, if C(p1) > C(p2) - 5.1 (a) it follows that
E (p1) > E(p2) (13-1b) 5 .1 (b) As a general case, this result is intuitively obvious. It does
take more time to solve a difficult problem. Another interesting characteristic has been
uncovered through experimentation in human problem solving. That is, C (pl + p2) > C(pl) +
C(p2) 5.2
Expression (5.2) implies that the perceived complexity of a problem that combines p1 and p2
are greater than the perceived complexity when each problem is considered separately.

8) Explain Modular Decomposition


Ans: - Another structural level where sub-systems are decomposed into modules.
- Two modular decomposition models covered.
- An object model where the system is decomposed into interacting objects.
- A data-flow model where the system is decomposed into functional modules which
transform inputs to outputs, Also known as the pipeline model.

Object Models
- Structure the system into a set of loosely coupled objects with well-defined interfaces.

20
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- Object-oriented decomposition is concerned with identifying object classes, their attributes,


and operations.
- When implemented, objects are created from these classes and some control model used to
coordinate object operations.

21
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter – 6
Object Oriented and Functional Design

1) Define Object Oriented design? Discuss its characteristics


Ans: - Characteristics of Object-Oriented Design
- An Object-oriented system is made up of interacting objects that maintain their own local
state and provide operations on that state.
- The representation of the state is private and cannot be accessed directly from outside the
object.
Characteristics are:-
1) Objects are abstractions of real-world or system entities and manage themselves.
2) Objects are independent and encapsulate state and representation information.
3) System functionality is expressed in terms of object services.
4) Objects communicate by message passing.
5) Objects may be distributed and may execute sequentially or in parallel.

Advantages of Object-oriented design


1) Easier maintenance.
2) Objects may be understood as stand-alone entities.
3) Objects are appropriate reusable components

Object-oriented Development
1) Object-oriented analysis, design, and programming are related but distinct.
2) Object Oriented Analysis (00A) is concerned with developing an object model of the
application domain.
3) Object Oriented Design (OOD) is concerned with developing an object oriented system,
model to implement requirements
4) Object Oriented Programming (OOP) is concerned with realizing an OOD using a 00
programming language such as Java or C++.

22
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter – 7
User Interface Design

1) Explain User Interface Design principles.


Ans: - System users often judge a system by its interface rather than its functionality.
- A poorly designed interface can cause a user to make catastrophic errors.
- Poor user interface design is the reason why so many software systems are never used.
- Most users of business systems interact with Graphical User interfaces systems through
graphical interfaces although, in some cases, legacy text-based interfaces are still used.

i) User Familiarity: The interface should use terms and concepts, which are drawn from the
experience of the people who will make the most use of the system.
ii) Consistency: The system should display an appropriate level of consistency commands
and menus should have the same format, command punctuation should be similar, etc..
iii) Recoverability: The system should provide some resilience to user errors and allow the
user to recover from errors.
iii) Minimal surplus: Users should never be surprised by the behavior of a system.
iv) User guidance: The interface should include mechanisms to allow users to recover from
errors.
v) User diversity: The interface should provide appropriate interaction facilities for different
types of the system user.

2) Explain GUI Interface characteristics and advantages.


Ans: i) Windows: Multiple windows allow different information to be displayed
simultaneously on the user's screen.
ii) Icons: Icons different types of information. On some systems, icons represent files; on
others, icons represent processes.
iii) Menus: Commands are selected from a menu rather than typed in a command language.
iv) Pointing: A pointing device such as a mouse is used for selecting choices from a menu or
indicating items of interest in a window.
v) Graphics: these elements can be mixed with text on the same Graphics display.

GUI Advantages:
1) They are easy to learn and use - Users without experience can learn to use the system
quickly.
2) The user may switch quickly from one task to another and can interact with several
different applications.
3) Information remains visible in its own window when attention is switched. Fast full screen
interaction is possible with immediate access to anywhere on the screen

23
Written By: Mahesh , Nitin, Sunil.
Software Engineering

3) What are the Advantages and Disadvantages of Direct Manipulation?


Ans: Advantages:
1) Users feel in control of the computer and are less likely to be intimidated by it.
2) It is Easy to learn.
3) Errors can be avoided more easily.

Disadvantages:
1) May be more difficult to program.
2) Not suitable for small graphics.
3) Direct manipulation interfaces can be complex to program and make heavy demands on the
computer system.

4) What is Menu Based Systems? Mention its Advantages and Disadvantages.


Ans: - Users make a selection from a list of possibilities presented to them by the system.
- The selection may be made by pointing and clicking with a mouse, using cursor keys or by
typing the name of the selection.
- May make use of simple-to-use terminals such as touch screens.

Advantages:
i) Users need not remember command names as they are always presented with a list of valid
commands
ii) Typing effort is minimal.
iii) User errors are trapped by the interface.
iv) Context-dependent help can be provided.

Disadvantages:
- Actions which involve logical conjunction (and) or disjunction (or) are awkward to
represent.
- Menu systems are best suited to presenting a small number of choices. If there are many
choices, some menu structuring facility must be used.

5) Explain Information Presentation with a diagram.


Ans: Information presentation is concerned with presenting system information to system
users.
- The information may be presented 'directly (e.g. text in a word processor) or may be
transformed in some way for presentation (e.g. in some graphical form).

24
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- The Model-View-Controller (MVC) approach is an Object-Oriented Concept


- Here User can interact with each presentation in a style that is appropriate to the presentation
- The data to be displayed is encapsulated in a model object.
- Each model object may have a number of separate view objects associated with it where
each view is a different display representation of the model.
- Each view has an associated controller object that handles user input and device interaction.
2 types of information namely:
a) Static Information.
b) Dynamic Information.

a) Static Information: This is fixed and it cannot be changed. It is initialized at the beginning
of a session. It does not change during the session.
- It is may be either numeric or textual.

b) Dynamic information: Changes during a session and the changes must be communicated
to the system user and it may be either numeric or textual.
- This is alterable information. The user can alter the information during Run-Time.

6) Briefly, explain User Guidance and Interface evaluation.


Ans: - User guidance: It covers all system facilities to support users including on-line help,
error messages, manuals etc
- The user guidance system should be integrated with the user interface to help users when
they need information about the system or when they make some kind of error.

Interface evaluation:
- Some evaluation of a user interface design should be carried out to assess its suitability.
- Full-scale evaluation is very expensive and impractical for most systems.
- Ideally, an interface should be evaluated against a usability specification.

Usability attributes, as shown in below table:


i) Learnability  How long does it take a new user to become productive with the system?
ii) The speed of operation  How well does the system response match the user's work
practice?
iii) Robustness  How tolerant is the system of user error?
iv) Recoverability  How good is the system at recovering from user errors?
25
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter – 8
Software Reliability & Reusability

1) What is mean by Software Reliability?


Ans: Probability of failure free of the software of anytime & any environment is known as
Software Reliability.
Important Reasons: i) Safety critical
ii) Business critical
iii) System software.

2) Explain Software Reliability Matrices.


Ans: - Reliability metrics are units of measurement of system reliability.
- System reliability is measured by counting the number of operational failures.

Matrices are:
a) POFOD- Probability of failure on demand:- The system will fail when a service request
is made. For example, a POFOD of 0.001 means that 1 out of a thousand service requests may
result in failure.
- This is the probability that the system will fail when a service request is made.
- Appropriate for protection systems where services are demanded & where there are serious
consequences if the service is not available.

b) ROCOF – Rate of Failure occurrence: Rate of failure occurrence is 0.002 (i.e 2/100).
- an ROCOF of 2/100 means that 2 failures are likely me to occur in each 100 operational
time units.
- This metric is sometimes called the failure intensity.
- ROCOF of 0.002 means 2 failures are likely in each 1000 operational time units.
Ex: Credit cards processing system, airline booking system.

c) MTTF – Mean time to failure: MTTF of 500 means that 1 failure can be expected every
500-time units. It is reciprocal of ROCOF for stable systems.
- Relevant for systems with long transactions.

d) AVIL – Availability: The probability that the system is available for use at given time.
For ex: an availability of 0.998 means that in every 1000 time units, the systems is likely to be
available for 998 units.
- Relevant for Non-stop, continuously running system.

3) Explain Fault Tolerance & it’s actions.


Ans: Even though if there are a fault in the software, it works properly or it should work
correctly.

26
Written By: Mahesh , Nitin, Sunil.
Software Engineering

- Fault Tolerance is required where there are high availability requirements or where failure
costs are very high.
- Fault Tolerance means that the system can continue in operation in spite of software failure.

Fault Tolerance Actions:


1) Fault detection: The system must detect that fault has occurred.
2) Damage assessment: The parts of the system state affected by fault must be detected.
3) Fault recovery: System must restore its state to a known safe state.
4) Fault repair: The system may be modified to prevent recurrence of the fault. As many
software faults are transitory, this is often unnecessary.

Software Reusability

1) What Software Reusability? Explain Benefits.


Ans: Using the existing software in our applications for developing new software.
- In most of the engineering disciplines, systems are designed by composing existing
components that have been used in other system.

Benefits of Re-usability:
i) Increased reliability & dependability.
ii) Reduced process risk.
iii) Effective use of specialists.
iv) Standard compliances.
v) Accelerated development
vi) Reliability & safety

Disadvantages of Re-use:
1) Increased maintenance cost
2) Lack of tool support.
3) Finding & adapting of reusable components is difficult.

27
Written By: Mahesh , Nitin, Sunil.
Software Engineering

Chapter – 9
Software Verification & Validation

1) Explain Black Box Testing.


Ans: Black box testing is test case design method designed to detect the errors in functional
requirements irrespective of internal logic of program code being tested.
- Otherwords, test cases are derived on the basis of requirements or program specification of
the system/ or module. This form of testing technique also called Functional testing or
Behavioral Testing.
- Test planning can begin early in the software process.

- The above figure illustrates the model of system that is assumed in the black-box testing.
- The tester presents inputs to the components or the system & examines the corresponding
outputs.

- Black box testing method can be applied to detect error in the following types:
i) Initialization & termination errors
ii) Performance error.
iii) Interface errors in modules.

28
Written By: Mahesh , Nitin, Sunil.
Software Engineering

2) Explain Clean Room process characteristics.


Ans:-

- The name is derived from the ‗Clean-Room‘ processing semiconductor fabrication.


- The philosophy is defect avoidance rather than defect removal.
Software development process based on following:
i) Incremental development: The software is potential into increments that are developed &
validate separately using clean-room process.
ii) Formal specification: The software to be developed a formally specified.
iii) Static verification:- The developed software is statically verified using rigorous software
inspection. There is no unit or module testing process for code components.
iv) Structured programming: only limited numbers of control & data abstraction are used.

Characteristics of Clean-room Process:


i) Formal specification using state transition model.
ii) Incremental development.
iii) Structured programming – limited control & abstractions constructs are used.
iv) Static verification using rigorous inspections.

29
Written By: Mahesh , Nitin, Sunil.

You might also like