SlideShare a Scribd company logo
1
Software Engineering
BT0081 Part-1
By Milan K Antony
2
1.How have the early days affected software development practices
of today?
Software impact on our society and culture continues to be
profound. As its importance grows, the software community
continually attempts to
develop technologies that will make it easier, faster, and less
expensive to build high-quality computer programs Some of
these technologies are targeted at specific application domain
and others focus on a technology domain and still others are
more broad based and focus on operating systems.
Today software takes on a dual role. It is a product and at the
same time, the vehicle for delivering a product. As a product,
it delivers the computing
potential and as a vehicle used to deliver the product, software
acts as the basis for the control of the computer, the networks
and the creation and
3
control of other programs. Software delivers the most important
product of our time – information.
Software transforms personal data so that the data can be made
more useful in a local context. It manages business information
to enhance competitiveness. It provides a gateway to worldwide
information networks
and provides the means for acquiring information in all of its
forms. The role of computer software has undergone
significant change over a time
span of little more than 50 years. Dramatic improvements in
hardware performance, profound changes in computing
architecture, vast increase in
memory and storage capacity, and a wide variety of input and
output options have all made it possible for a significant
contribution of software on our day
to day life.
4
1.Give various definitions of Software Engineering. Software
Engineering is the systematic approach to the development,
operation, maintenance and retirement of software. This is the
definition
as per IEEE According to Bauer, Software Engineering is nothing
but the establishment and use of sound engineering principles in
order to obtain economical
software that is reliable and works efficiently on real machines.
There is yet another definition for software engineering. It is
the application
of science and mathematics by which the capabilities of computer
equipment are made useful to humans via computer programs,
procedures, and associated documentation. This is by Boehm.
An engineering approach to softwar e engineering is
characterized by a practical, orderly, and measured development
of software. The principal aim of this approach is to prod uce
5
satisfactory systems on time and within
budget. There is a good reason for tackling the problem of
planning, developing, evaluating and maintaining software using
the engineering
approach. Quite simply this approach is needed to avoid chaos in
developing software. The engineering approach is practical
because it is based on proven methods and practices in software
development. The
approach is orderly and development can be mapped to fit
customer requirements. Finally, this approach is measured,
during each phase, software metrics are applied to products to
gauge quality, cost and reliability of what has been produced.
2.What is Software Reliability? Explain.
Software reliability is a function of the number of failures
experienced by a particular user of that software. which the
6
software does not deliver the
service expected by the user. Software failures are not the same
as software faults although these terms are often used
interchangeably. Formal specifications and proof do not
guarantee that the software will be
reliable in practical use. The reasons for this are:
(1) The specifications may not reflect the real requirements of
system users many failures experienced by users were a
consequence of specification errors and omissions, which
could not be detected by ormal system specification. It may
even be the case that the opaqueness of formal notations
makes it more difficult for users to
establish whether or not a system meets their real requirements.
(2) The proof may contain errors Program proofs are large and
complex so, like large and complex programs, they usually
7
contain errors.
(3) The Proof may assume a usage pattern, which is incorrect. If
the system is not used as anticipated, the proof may be
invalid. if it is possible to measure if a system is 100% reliable
as this would require an amount of time equal to the lifetime
of the system. However, as reliability
requirements increase, system costs usually rise exponentially. This
is mostly due to the need of redundant hardware and a vast
increase in testing
costs to check that the required reliability has been achieved. As
discussed some specifications, which call for, ultra-reliable
systems are unrealistic.
The number of tests required to validate these specifications
cannot be carried out in a reasonable time.
3.Explain the different stages in software design.
Any software design problem must be tackled in three
8
stages:
I. Study and understand the problem without understanding
effective software design is impossible. The problem should be
examined from
a number of different angles or viewpoints as t hese provide
different insights into the design requirements.
II. Identify gross features of at least one possible solution. It
is often useful to identify a number of solutions and to
evaluate them all. The choice of solution depends on the
designer s experience, the availability of reusable‟
components, and the simplicity of the derived solutions.
Designers usually prefer familiar solutions even if these are
not optimal, as they understand their advantages and
disadvantages.
III. Describe each abstraction used in the solution. Before
creating formal documentation, the designer may write an
9
informal design description. This may be analyzed by
developing it in detail. Errors
and omissions in the high-level design will probably be
discovered during this analysis. These are corrected before the
design is documented.
3. Large systems can be decomposed into sub-system that provide
some related set of services. The initial design process of
identifying this sub-system and establishing a framework for
sub-system control and
communication is called Architectural design
4.Explain Object Oriented Design in detail.
Object–oriented design is a design strategy based on information
hiding. It differs from the functional approach to design in that
it views a software
system as a set of interacting objects, with their private state,
rather than as a set of functions that share a global state.
10
The characteristics of an object-oriented design (OOD) are:
(1) Objects are abstraction of system entities, which are responsible
for managing their own private state and offering services to
other objects.
(2) Objects are independent entities that may readily be changed
because state and representation information is held within the
objects.
Changes to the representation may be made without reference to
other
system objects.
(3) System functionality is expressed in terms of operations or
services associated with each object.
(4) Shared data areas are eliminated. Objects communicate by
calling on services offered by other objects rather than sharing
variables. This reduces overall system coupling. There is
no possibility of unexpected modifications to shared
11
information.
(5) Objects may be distributed and may execute either sequentially
or in parallel. Decisions on parallelism need not be taken at an
early stage of
the design process.
Object-oriented systems are easier to maintain as the objects are
independent. They may be understood and modified as stand-
alone entities. Changing the implementation of an object or
adding services should not affect other system objects. There
is a clear mapping between real-world entities and their
controlling objects in the system. This improves the
understandability and hence maintainability of the design. Object-
oriented analysis, design and programming are all part of
Object-oriented development whereby an object-oriented
strategy is used throughout the development process.
Object-oriented analysis: is concerned with developing an object-
12
oriented model of the application domain. The identified objects
may or
may not map directly into system objects.
Object-oriented design: is concerned with developing an object-
oriented model of a software system to implement the identified
requirements.
These requirements may or may not be structured around
objects in the problem domain. Object-oriented
programming: is concerned with realizing a software design
using an object-oriented programming language. An object-
oriented programming language supports the direct
implementation of
objects and provides object classes and inheritance.
Object-oriented concepts and design activities that are common to
the object-oriented design process which is proposed by all
method. These include:
13
The identification of the objects in the system along with their
attributes and operations.
The organization of objects into an aggregation hierarchy which
shows how objects are „ part-of other objects. The‟
construction of dynamic „object-use diagrams that show which‟
objects services are used by other objects. The specification
of object interfaces.
What do you understand by information determinacy?
Information determinacy refers to the predictability of the
order and timing of information. An engineering analysis
program accepts data that have a predefined order, executes
the analysis algorithm without interruption and produces
resultant data in report or graphical format.
Such applications are determinate
.Software may be applied in any situation for which a prespecified
set of
14
procedural steps has been defined. Information content and
determinacy are important factors in determining the nature of
a software application. Content refers to the meaning and
form of incoming and outgoing
information. Software that controls an a utomated machine accepts
discrete data items with limited structure and produces
individual machine commands in rapid succession A multi-user
operating system, on the other hand, accepts inputs that have
varied content and arbitrary timing, executes algorithms that can
be interrupted by external conditions, and produces output that
varies as a
function of environment and time. Applications with these
characteristics are indeterminate.
5.Explain the Serial or Linear Development Model in detail.
This Model also called as the Classic life cycle or the Waterfall
15
model. The Linear sequential model suggests a systematic
sequential approach to
software development that begins at the system level and
progresses through analysis, design, coding, testing, and
support. Figure shows the
linear sequential model for software engineering. Modeled after a
conventional engineering cycle, the linear sequential model has
the following activities:
he requirement gathering process is intensified and focused
16
specifically on software. To understand the nature of the
program to be built, the software
engineer (analyst) must understand the information domain for the
software, as well as required function, behavior, performance
and interface.
Requirements for the both system and the software are documented
and reviewed with the customer.
Design Software design is actually a multistep process that focuses
on four distinct attributes of a program, data structure,
software architecture, interface representations, and
procedural (algorithmic) detail. The design process
translates requirements into a representation of the software that
can be assessed for quality before coding begins. Like
requirements, the design is
documented and becomes part of the software configuration.
17
Code Generation
The design must be translated into a machine–readable form. The
code generation step performs this task. If design is
performed in a detailed manner, code generation can be
accomplished mechanistically.
Testing
Once code has been generated, program testing begins. The
testing process focuses on the logical internals of the software,
ensuring that all statements have been tested, and on the
functional externals; that is, conducting tests to uncover er rors
and ensure that defined input will produce actual results that
agree with required results.
Support
Software will undergo change after it is delivered to the customer.
Change will occur because errors have been encountered,
because the software must be adopted to accommodate changes
18
in its external environments or because the customer requires
functional or performance enhancements.
Software maintenance re-applies each of the preceding phases to
an existing program rather than a new one.
A successful software product is one that satisfies all the
objectives of the development project. These objectives include
satisfying the requirements
and performing the development within time and cost constraints.
Generally, for any reasonable size projects, all the phases listed
in the
model must be performed explicitly and formally.
The second reason is the one that is now under debate. For many
projects the linear ordering of these phases is clearly the
optimum way to organize
these activities. However some argue that for many projects this
ordering of activity is unfeasible or suboptimal. Still waterfall
19
model is conceptually the simplest process model for software
development that has been used most often.
6.Explain different Software Reliability Metrics.
The choice of which metric should be used
depends on the type of system to which it applies and the
20
requirements of the application domain. For some systems, it
may be appropriate to use different reliability metrics for
different sub-systems.
21
system will fail, perhaps because there is a significant cost in
restarting the system. In those cases, a metric based on a rate
of failure occurrence
(ROCOF) or the mean time to failure should be used.
In other cases, it is essential that a system should always meet a
request for service because there is some cost in failing to
deliver the service. The
number of failures in some time period is less important. In those
cases, a metric based on the probability of failure on demand
(POFOD) should be
used. Finally, users or system operators may be mostly concerned
that the system is available when a request for service is made.
They will incur
some loss if the system is unavailable. Availability (AVAIL) takes
into account the repair or restart time. There are three kinds
22
of measurement, whic h can be made when assessing the
reliability of a system:
1) The number of system failures given a number of systems
inputs. This is used to measure the POFOD.
2) The time (or number of transaction) between system failures.
This is used to measure ROCOF and MTTF.
3) The elapsed repair or restart time when a system failure occurs.
Given that the system must be continuously available, this is
used to measure
AVAIL.
Time is a factor in all of this reliability metrics. It is essential that
the appropriate time units should be chosen if measurements are
to be meaningful. Time units, which may be used, are calendar
time,processor
time or may be some discrete unit such as number of transactions.
23
Explain different system models.
Different types of system models are based on different
approaches to abstraction. A data-flow model concentrates on
the flow of data and the
functional transformations on that data. It gives out details of the
data structures. By contrast, an entity-relation model is
intended to document the
system data and its relationships without concern of the functions
in the system.
Examples of the different types of system model, which might be
produced as part of the analysis process and the notations used
to represent these
models, are:
 A data-processing model: Data flow diagrams may be used to
show how data is processed at different stages in the system.
 A composition model: entity-relation diagram may be used to
24
show how some entities in the system are composed of other
entities.
 A classification model: Objects class/inheritance diagrams may be
used to show how entities have common characteristics.
 A stimulus-response model: State transition diagrams may be
used to show how the system reacts to internal and external
events.
 A process model: Process models may be used to show the
principal activities and deliverables involved in carrying out
some process. Among these three, widely used types of system
models are Data-flow
models, Semantic data models, object models, and the Data
dictionaries, which can be used to support all kinds of system
model.
25
7.Explain Object Interface Design with suitable examples.
Object Interface design is concerned with specifying the detail of
the object interfaces. This means defining the types of the
object attributes and the
signatures and the semantics of the object operations. If an
object-oriented programming language is being used for
implementation, it is natural to use
it to express the interface design.
Designers should avoid interfaces representation information in their
interface design. Rather, the representation should be hidden
and object
operations provided to access and update the data. If the
representation is hidden, it can be changed without affecting
the objects that use these
attributes. This leads to a design which is inherently more
26
maintainable. For example, an array representation of a stack
may be changed to a list
representation without affecting other objects, which use the stack.
An important advantage of an object- oriented approach to
design is that it simplifies the problem of making changes to
the design. The reason for this is that object state
representation does not influence the design. Changing the
internal details of an object is unlikely to affect any other
system objects. Furthermore, because objects are loosely
coupled, it is usually straightforward to introduce new objects
without significant effects on the rest of the system.A function-
oriented design strategy relies on decomposing the system into a
set of interacting functions with a centralized system state
shared by these functions as shown in fi gure
27
Function-oriented has been practiced informally since programming
began. Programs were decompo sed into subroutines, which were
functional in nature. In the late 1960s and early 1970s several
books were published which described „top-down functional‟
design. They specifically proposed this as a „structured design‟
strategy. These led to the development of many design
28
methods based on functional decomposition.
The activities of Function-oriented design are:
(1) Data-flow design Model the system design using data-flow
diagrams.
This should show how data passes through the system and is
transformed by each system function. This model may be derived
from data-flow models developed during the analysis process.
(2) Structural decomposition Model how functions are decomposed
into sub-functions using graphical structure charts.
29
(3)
Detailed design description Describe the entities in the design and
30
their interfaces. These descriptions may be recorded in a data
dictionary. Also describe the control structure of the design
using a program description language (PDL) which includes
conditional statements and looping constructs. Data-flow
design is concerned with designing a sequence of functional
transformations that convert system inputs into the required. The
design is represented as data-flow diagrams. These diagrams
illustrate how data
flows through a system and how the output is derived from the
input through a sequence of functional transformations.
(4) Data-flow design is an integral part of a number of
design methods and most CASE tools support data-flow diagram
creation. Different methods
may use different icons to represent data-flow diagram entities
but their meanings are similar. The notation which use is based
31
on the following
symbols:
 Rounded rectangles represent functions, which transform inputs to
outputs. The transformation name indicates its function.
 Rectangles represent data stores. Again, they should be given a
descriptive name.
 Circles represent user interactions with the system which provide
input or receive output.
 Arrows show the direction of data flow. Their name describes the
data flowing along that path.
 The keywords ‘and’ and ‘or’. These have their usual meanings as
in Boolean expressions. They are used to link data flows when
more than one data flow may be input or output from a
transformation.

More Related Content

DOCX
Software engg unit 2
DOCX
Software engg unit 3
DOCX
Software engg unit 1
PPTX
PPTX
Ch7 implementation
PPTX
Ch8-Software Engineering 9
PPTX
Ch5 system modeling
PDF
Engineering Software Products: 10. Devops and code management
Software engg unit 2
Software engg unit 3
Software engg unit 1
Ch7 implementation
Ch8-Software Engineering 9
Ch5 system modeling
Engineering Software Products: 10. Devops and code management

What's hot (20)

PPTX
Ch19 systems engineering
PPT
Ian Sommerville, Software Engineering, 9th Edition Ch1
PPTX
Ch6-Software Engineering 9
PPTX
Ch18-Software Engineering 9
PPTX
Software Architecture and Design
PDF
Socio technical system
PPTX
Software Architecture and Design
PDF
RELIABILITY ESTIMATION FRAMEWORK -COMPLEXITY PERSPECTIVE
PPTX
Ch1-Software Engineering 9
PDF
Cm24585587
PPTX
Ch5- Software Engineering 9
PDF
The critical need for software architecture practices in software development...
PDF
Improved Strategy for Distributed Processing and Network Application Developm...
PDF
Design patterns
PPTX
Ch6 architectural design
PDF
Using Fuzzy Clustering and Software Metrics to Predict Faults in large Indust...
PPTX
Instant message
PPTX
Ch10-Software Engineering 9
PPTX
Ch15-Software Engineering 9
PDF
Engineering Software Products: 6. microservices architecture
Ch19 systems engineering
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ch6-Software Engineering 9
Ch18-Software Engineering 9
Software Architecture and Design
Socio technical system
Software Architecture and Design
RELIABILITY ESTIMATION FRAMEWORK -COMPLEXITY PERSPECTIVE
Ch1-Software Engineering 9
Cm24585587
Ch5- Software Engineering 9
The critical need for software architecture practices in software development...
Improved Strategy for Distributed Processing and Network Application Developm...
Design patterns
Ch6 architectural design
Using Fuzzy Clustering and Software Metrics to Predict Faults in large Indust...
Instant message
Ch10-Software Engineering 9
Ch15-Software Engineering 9
Engineering Software Products: 6. microservices architecture
Ad

Similar to Bt0081 software engineering (20)

PDF
Software Process and Requirement
PPT
Software engineering introduction
PDF
dynamic and implementation uml diagram.pdf
PDF
PDF
Software design.edited (1)
PDF
44478167 hospital-management-system
PPTX
SE-Lecture-4.pptx
PDF
Intro softwareeng
DOCX
CHAPTER FOUR buugii 2023.docx
DOCX
1. Emergence of Software EngineeringIn the software industry, we.docx
PDF
Full Paper
PPT
Chapter 7 Basic Building of SE Architecture.ppt
DOCX
Mingle box - Online Job seeking System
DOC
term paper for cbd models
PDF
Software Engineering Important Short Question for Exams
PDF
Elements of legacy program complexity
PPTX
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
DOC
Public voice
PDF
Software Evaluation
Software Process and Requirement
Software engineering introduction
dynamic and implementation uml diagram.pdf
Software design.edited (1)
44478167 hospital-management-system
SE-Lecture-4.pptx
Intro softwareeng
CHAPTER FOUR buugii 2023.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
Full Paper
Chapter 7 Basic Building of SE Architecture.ppt
Mingle box - Online Job seeking System
term paper for cbd models
Software Engineering Important Short Question for Exams
Elements of legacy program complexity
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
Public voice
Software Evaluation
Ad

More from Techglyphs (20)

PDF
Bt9002 Grid computing 2
PDF
Bt9002 grid computing 1
PDF
Bt8901 objective oriented systems2
PDF
Bt0062 fundamentals of it(1)
PDF
Bt0062 fundamentals of it(2)
PDF
Bt0064 logic design1
PDF
Bt0064 logic design2
PDF
Bt0066 database management system1
PDF
Bt0066 database management system2
PDF
Bt0067 c programming and data structures2
PDF
Bt0067 c programming and data structures 1
PDF
Bt0068 computer organization and architecture
PDF
Bt0068 computer organization and architecture 2
PDF
Bt0070 operating systems 1
PDF
Bt0070 operating systems 2
PDF
Bt0072 computer networks 1
PDF
Bt0072 computer networks 2
PDF
Bt0074 oops with java2
PDF
Bt0074 oops with java
PDF
Bt0075 rdbms with mysql 1
Bt9002 Grid computing 2
Bt9002 grid computing 1
Bt8901 objective oriented systems2
Bt0062 fundamentals of it(1)
Bt0062 fundamentals of it(2)
Bt0064 logic design1
Bt0064 logic design2
Bt0066 database management system1
Bt0066 database management system2
Bt0067 c programming and data structures2
Bt0067 c programming and data structures 1
Bt0068 computer organization and architecture
Bt0068 computer organization and architecture 2
Bt0070 operating systems 1
Bt0070 operating systems 2
Bt0072 computer networks 1
Bt0072 computer networks 2
Bt0074 oops with java2
Bt0074 oops with java
Bt0075 rdbms with mysql 1

Recently uploaded (20)

PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Classroom Observation Tools for Teachers
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Cell Structure & Organelles in detailed.
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Module 4: Burden of Disease Tutorial Slides S2 2025
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
human mycosis Human fungal infections are called human mycosis..pptx
O7-L3 Supply Chain Operations - ICLT Program
Classroom Observation Tools for Teachers
Supply Chain Operations Speaking Notes -ICLT Program
Microbial disease of the cardiovascular and lymphatic systems
Basic Mud Logging Guide for educational purpose
Cell Structure & Organelles in detailed.
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
TR - Agricultural Crops Production NC III.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Week 4 Term 3 Study Techniques revisited.pptx
Renaissance Architecture: A Journey from Faith to Humanism
VCE English Exam - Section C Student Revision Booklet
3rd Neelam Sanjeevareddy Memorial Lecture.pdf

Bt0081 software engineering

  • 2. 2 1.How have the early days affected software development practices of today? Software impact on our society and culture continues to be profound. As its importance grows, the software community continually attempts to develop technologies that will make it easier, faster, and less expensive to build high-quality computer programs Some of these technologies are targeted at specific application domain and others focus on a technology domain and still others are more broad based and focus on operating systems. Today software takes on a dual role. It is a product and at the same time, the vehicle for delivering a product. As a product, it delivers the computing potential and as a vehicle used to deliver the product, software acts as the basis for the control of the computer, the networks and the creation and
  • 3. 3 control of other programs. Software delivers the most important product of our time – information. Software transforms personal data so that the data can be made more useful in a local context. It manages business information to enhance competitiveness. It provides a gateway to worldwide information networks and provides the means for acquiring information in all of its forms. The role of computer software has undergone significant change over a time span of little more than 50 years. Dramatic improvements in hardware performance, profound changes in computing architecture, vast increase in memory and storage capacity, and a wide variety of input and output options have all made it possible for a significant contribution of software on our day to day life.
  • 4. 4 1.Give various definitions of Software Engineering. Software Engineering is the systematic approach to the development, operation, maintenance and retirement of software. This is the definition as per IEEE According to Bauer, Software Engineering is nothing but the establishment and use of sound engineering principles in order to obtain economical software that is reliable and works efficiently on real machines. There is yet another definition for software engineering. It is the application of science and mathematics by which the capabilities of computer equipment are made useful to humans via computer programs, procedures, and associated documentation. This is by Boehm. An engineering approach to softwar e engineering is characterized by a practical, orderly, and measured development of software. The principal aim of this approach is to prod uce
  • 5. 5 satisfactory systems on time and within budget. There is a good reason for tackling the problem of planning, developing, evaluating and maintaining software using the engineering approach. Quite simply this approach is needed to avoid chaos in developing software. The engineering approach is practical because it is based on proven methods and practices in software development. The approach is orderly and development can be mapped to fit customer requirements. Finally, this approach is measured, during each phase, software metrics are applied to products to gauge quality, cost and reliability of what has been produced. 2.What is Software Reliability? Explain. Software reliability is a function of the number of failures experienced by a particular user of that software. which the
  • 6. 6 software does not deliver the service expected by the user. Software failures are not the same as software faults although these terms are often used interchangeably. Formal specifications and proof do not guarantee that the software will be reliable in practical use. The reasons for this are: (1) The specifications may not reflect the real requirements of system users many failures experienced by users were a consequence of specification errors and omissions, which could not be detected by ormal system specification. It may even be the case that the opaqueness of formal notations makes it more difficult for users to establish whether or not a system meets their real requirements. (2) The proof may contain errors Program proofs are large and complex so, like large and complex programs, they usually
  • 7. 7 contain errors. (3) The Proof may assume a usage pattern, which is incorrect. If the system is not used as anticipated, the proof may be invalid. if it is possible to measure if a system is 100% reliable as this would require an amount of time equal to the lifetime of the system. However, as reliability requirements increase, system costs usually rise exponentially. This is mostly due to the need of redundant hardware and a vast increase in testing costs to check that the required reliability has been achieved. As discussed some specifications, which call for, ultra-reliable systems are unrealistic. The number of tests required to validate these specifications cannot be carried out in a reasonable time. 3.Explain the different stages in software design. Any software design problem must be tackled in three
  • 8. 8 stages: I. Study and understand the problem without understanding effective software design is impossible. The problem should be examined from a number of different angles or viewpoints as t hese provide different insights into the design requirements. II. Identify gross features of at least one possible solution. It is often useful to identify a number of solutions and to evaluate them all. The choice of solution depends on the designer s experience, the availability of reusable‟ components, and the simplicity of the derived solutions. Designers usually prefer familiar solutions even if these are not optimal, as they understand their advantages and disadvantages. III. Describe each abstraction used in the solution. Before creating formal documentation, the designer may write an
  • 9. 9 informal design description. This may be analyzed by developing it in detail. Errors and omissions in the high-level design will probably be discovered during this analysis. These are corrected before the design is documented. 3. Large systems can be decomposed into sub-system that provide some related set of services. The initial design process of identifying this sub-system and establishing a framework for sub-system control and communication is called Architectural design 4.Explain Object Oriented Design in detail. Object–oriented design is a design strategy based on information hiding. It differs from the functional approach to design in that it views a software system as a set of interacting objects, with their private state, rather than as a set of functions that share a global state.
  • 10. 10 The characteristics of an object-oriented design (OOD) are: (1) Objects are abstraction of system entities, which are responsible for managing their own private state and offering services to other objects. (2) Objects are independent entities that may readily be changed because state and representation information is held within the objects. Changes to the representation may be made without reference to other system objects. (3) System functionality is expressed in terms of operations or services associated with each object. (4) Shared data areas are eliminated. Objects communicate by calling on services offered by other objects rather than sharing variables. This reduces overall system coupling. There is no possibility of unexpected modifications to shared
  • 11. 11 information. (5) Objects may be distributed and may execute either sequentially or in parallel. Decisions on parallelism need not be taken at an early stage of the design process. Object-oriented systems are easier to maintain as the objects are independent. They may be understood and modified as stand- alone entities. Changing the implementation of an object or adding services should not affect other system objects. There is a clear mapping between real-world entities and their controlling objects in the system. This improves the understandability and hence maintainability of the design. Object- oriented analysis, design and programming are all part of Object-oriented development whereby an object-oriented strategy is used throughout the development process. Object-oriented analysis: is concerned with developing an object-
  • 12. 12 oriented model of the application domain. The identified objects may or may not map directly into system objects. Object-oriented design: is concerned with developing an object- oriented model of a software system to implement the identified requirements. These requirements may or may not be structured around objects in the problem domain. Object-oriented programming: is concerned with realizing a software design using an object-oriented programming language. An object- oriented programming language supports the direct implementation of objects and provides object classes and inheritance. Object-oriented concepts and design activities that are common to the object-oriented design process which is proposed by all method. These include:
  • 13. 13 The identification of the objects in the system along with their attributes and operations. The organization of objects into an aggregation hierarchy which shows how objects are „ part-of other objects. The‟ construction of dynamic „object-use diagrams that show which‟ objects services are used by other objects. The specification of object interfaces. What do you understand by information determinacy? Information determinacy refers to the predictability of the order and timing of information. An engineering analysis program accepts data that have a predefined order, executes the analysis algorithm without interruption and produces resultant data in report or graphical format. Such applications are determinate .Software may be applied in any situation for which a prespecified set of
  • 14. 14 procedural steps has been defined. Information content and determinacy are important factors in determining the nature of a software application. Content refers to the meaning and form of incoming and outgoing information. Software that controls an a utomated machine accepts discrete data items with limited structure and produces individual machine commands in rapid succession A multi-user operating system, on the other hand, accepts inputs that have varied content and arbitrary timing, executes algorithms that can be interrupted by external conditions, and produces output that varies as a function of environment and time. Applications with these characteristics are indeterminate. 5.Explain the Serial or Linear Development Model in detail. This Model also called as the Classic life cycle or the Waterfall
  • 15. 15 model. The Linear sequential model suggests a systematic sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing, and support. Figure shows the linear sequential model for software engineering. Modeled after a conventional engineering cycle, the linear sequential model has the following activities: he requirement gathering process is intensified and focused
  • 16. 16 specifically on software. To understand the nature of the program to be built, the software engineer (analyst) must understand the information domain for the software, as well as required function, behavior, performance and interface. Requirements for the both system and the software are documented and reviewed with the customer. Design Software design is actually a multistep process that focuses on four distinct attributes of a program, data structure, software architecture, interface representations, and procedural (algorithmic) detail. The design process translates requirements into a representation of the software that can be assessed for quality before coding begins. Like requirements, the design is documented and becomes part of the software configuration.
  • 17. 17 Code Generation The design must be translated into a machine–readable form. The code generation step performs this task. If design is performed in a detailed manner, code generation can be accomplished mechanistically. Testing Once code has been generated, program testing begins. The testing process focuses on the logical internals of the software, ensuring that all statements have been tested, and on the functional externals; that is, conducting tests to uncover er rors and ensure that defined input will produce actual results that agree with required results. Support Software will undergo change after it is delivered to the customer. Change will occur because errors have been encountered, because the software must be adopted to accommodate changes
  • 18. 18 in its external environments or because the customer requires functional or performance enhancements. Software maintenance re-applies each of the preceding phases to an existing program rather than a new one. A successful software product is one that satisfies all the objectives of the development project. These objectives include satisfying the requirements and performing the development within time and cost constraints. Generally, for any reasonable size projects, all the phases listed in the model must be performed explicitly and formally. The second reason is the one that is now under debate. For many projects the linear ordering of these phases is clearly the optimum way to organize these activities. However some argue that for many projects this ordering of activity is unfeasible or suboptimal. Still waterfall
  • 19. 19 model is conceptually the simplest process model for software development that has been used most often. 6.Explain different Software Reliability Metrics. The choice of which metric should be used depends on the type of system to which it applies and the
  • 20. 20 requirements of the application domain. For some systems, it may be appropriate to use different reliability metrics for different sub-systems.
  • 21. 21 system will fail, perhaps because there is a significant cost in restarting the system. In those cases, a metric based on a rate of failure occurrence (ROCOF) or the mean time to failure should be used. In other cases, it is essential that a system should always meet a request for service because there is some cost in failing to deliver the service. The number of failures in some time period is less important. In those cases, a metric based on the probability of failure on demand (POFOD) should be used. Finally, users or system operators may be mostly concerned that the system is available when a request for service is made. They will incur some loss if the system is unavailable. Availability (AVAIL) takes into account the repair or restart time. There are three kinds
  • 22. 22 of measurement, whic h can be made when assessing the reliability of a system: 1) The number of system failures given a number of systems inputs. This is used to measure the POFOD. 2) The time (or number of transaction) between system failures. This is used to measure ROCOF and MTTF. 3) The elapsed repair or restart time when a system failure occurs. Given that the system must be continuously available, this is used to measure AVAIL. Time is a factor in all of this reliability metrics. It is essential that the appropriate time units should be chosen if measurements are to be meaningful. Time units, which may be used, are calendar time,processor time or may be some discrete unit such as number of transactions.
  • 23. 23 Explain different system models. Different types of system models are based on different approaches to abstraction. A data-flow model concentrates on the flow of data and the functional transformations on that data. It gives out details of the data structures. By contrast, an entity-relation model is intended to document the system data and its relationships without concern of the functions in the system. Examples of the different types of system model, which might be produced as part of the analysis process and the notations used to represent these models, are:  A data-processing model: Data flow diagrams may be used to show how data is processed at different stages in the system.  A composition model: entity-relation diagram may be used to
  • 24. 24 show how some entities in the system are composed of other entities.  A classification model: Objects class/inheritance diagrams may be used to show how entities have common characteristics.  A stimulus-response model: State transition diagrams may be used to show how the system reacts to internal and external events.  A process model: Process models may be used to show the principal activities and deliverables involved in carrying out some process. Among these three, widely used types of system models are Data-flow models, Semantic data models, object models, and the Data dictionaries, which can be used to support all kinds of system model.
  • 25. 25 7.Explain Object Interface Design with suitable examples. Object Interface design is concerned with specifying the detail of the object interfaces. This means defining the types of the object attributes and the signatures and the semantics of the object operations. If an object-oriented programming language is being used for implementation, it is natural to use it to express the interface design. Designers should avoid interfaces representation information in their interface design. Rather, the representation should be hidden and object operations provided to access and update the data. If the representation is hidden, it can be changed without affecting the objects that use these attributes. This leads to a design which is inherently more
  • 26. 26 maintainable. For example, an array representation of a stack may be changed to a list representation without affecting other objects, which use the stack. An important advantage of an object- oriented approach to design is that it simplifies the problem of making changes to the design. The reason for this is that object state representation does not influence the design. Changing the internal details of an object is unlikely to affect any other system objects. Furthermore, because objects are loosely coupled, it is usually straightforward to introduce new objects without significant effects on the rest of the system.A function- oriented design strategy relies on decomposing the system into a set of interacting functions with a centralized system state shared by these functions as shown in fi gure
  • 27. 27 Function-oriented has been practiced informally since programming began. Programs were decompo sed into subroutines, which were functional in nature. In the late 1960s and early 1970s several books were published which described „top-down functional‟ design. They specifically proposed this as a „structured design‟ strategy. These led to the development of many design
  • 28. 28 methods based on functional decomposition. The activities of Function-oriented design are: (1) Data-flow design Model the system design using data-flow diagrams. This should show how data passes through the system and is transformed by each system function. This model may be derived from data-flow models developed during the analysis process. (2) Structural decomposition Model how functions are decomposed into sub-functions using graphical structure charts.
  • 29. 29 (3) Detailed design description Describe the entities in the design and
  • 30. 30 their interfaces. These descriptions may be recorded in a data dictionary. Also describe the control structure of the design using a program description language (PDL) which includes conditional statements and looping constructs. Data-flow design is concerned with designing a sequence of functional transformations that convert system inputs into the required. The design is represented as data-flow diagrams. These diagrams illustrate how data flows through a system and how the output is derived from the input through a sequence of functional transformations. (4) Data-flow design is an integral part of a number of design methods and most CASE tools support data-flow diagram creation. Different methods may use different icons to represent data-flow diagram entities but their meanings are similar. The notation which use is based
  • 31. 31 on the following symbols:  Rounded rectangles represent functions, which transform inputs to outputs. The transformation name indicates its function.  Rectangles represent data stores. Again, they should be given a descriptive name.  Circles represent user interactions with the system which provide input or receive output.  Arrows show the direction of data flow. Their name describes the data flowing along that path.  The keywords ‘and’ and ‘or’. These have their usual meanings as in Boolean expressions. They are used to link data flows when more than one data flow may be input or output from a transformation.