Software Engineering Assignment 1
Software Engineering Assignment 1
The design process for software systems often has two levels. At the first level the focus is on
deciding which modules are needed for the system on the basis of SRS (Software Requirement
Specification) and how the modules should be interconnected.
Function Oriented Design is an approach to software design where the design is decomposed
into a set of interacting units where each unit has a clearly defined function.
Learn CS Theory concepts for SDE interviews with the CS Theory Course at a studentfriendly
price and become industry ready.
Generic Procedure:
Start with a high level description of what the software / program does. Refine each part of the
description one by one by specifying in greater details the functionality of each part. These
points lead to Top-Down Structure.
Problem in Top-Down design method:
Mostly each module is used by at most one other module and that module is called its Parent
module.
Solution to the problem:
Designing of reusable module. It means modules use several modules to do their required
functions.
Design Notations are primarily meant to be used during the process of design and are used to
represent design or design decisions. For a function-oriented design, the design can be
represented graphically or mathematically by the following:
Data Flow Diagram
Data-flow design is concerned with designing a series of functional transformations that convert
system inputs into the required outputs. The design is described as data-flow diagrams. These
diagrams show how data flows through a system and how the output is derived from the input
through a series of functional transformations.
Data-flow diagrams are a useful and intuitive way of describing a system. They are generally
understandable without specialized training, notably if control information is excluded. They
show end-to-end processing. That is the flow of processing from when data enters the system to
where it leaves the system can be traced.
17.9M
346
Prime Ministers of India | List of Prime Minister of India (1947-2020)
Data-flow design is an integral part of several design methods, and most CASE tools support
data-flow diagram creation. Different ways may use different icons to represent data-flow
diagram entities, but their meanings are similar.
Data Dictionaries
A data dictionary lists all data elements appearing in the DFD model of a system. The data items
listed contain all data flows and the contents of all data stores looking on the DFDs in the DFD
model of a system.
A data dictionary lists the objective of all data items and the definition of all composite data
elements in terms of their component data items. For example, a data dictionary entry may
contain that the data grossPay consists of the parts regularPay and overtimePay.
For the smallest units of data elements, the data dictionary lists their name and their type.
A data dictionary plays a significant role in any software development process because of the
following reasons:
Structured Charts
It partitions a system into block boxes. A Black box system that functionality is known to the
user without the knowledge of internal design.
Structured Chart is a graphical representation which shows:
Pseudo-code notations can be used in both the preliminary and detailed design phases.
Using pseudo-code, the designer describes system characteristics using short, concise, English
Language phases that are structured by keywords such as If-Then-Else, WhileDo, and End.
• Analysis,
• Design, and
• Implementation.
In object-oriented software engineering, the software developer identifies and organizes the
application in terms of object-oriented concepts, prior to their final representation in any
specific programming language or software tools.
Phases in Object-Oriented Software Development
The major phases of software development using object–oriented methodology are object-
oriented analysis, object-oriented design, and object-oriented implementation.
Object–Oriented Analysis
In this stage, the problem is formulated, user requirements are identified, and then a model is
built based upon real–world objects. The analysis produces models on how the desired system
should function and how it must be developed. The models do not include any implementation
details so that it can be understood and examined by any non– technical application expert.
Object–Oriented Design
Object-oriented design includes two main stages, namely, system design and object design.
System Design
In this stage, the complete architecture of the desired system is designed. The system is
conceived as a set of interacting subsystems that in turn is composed of a hierarchy of
interacting objects, grouped into classes. System design is done according to both the system
analysis model and the proposed system architecture. Here, the emphasis is on the objects
comprising the system rather than the processes in the system.
Object Design
In this phase, a design model is developed based on both the models developed in the system
analysis phase and the architecture designed in the system design phase. All the classes required
are identified. The designer decides whether −
• Object oriented programming has several advantage to the programmer and user.
• Through inheritance redundant code is eliminated and existing class can be extended
according to requirement.
• Data hiding can be achieved with the help of the data abstraction and encapsulation Data
hiding helps the programmers to build secure programs.
• It is easy to partition the work in a project based on a objects.
• Object oriented system can be easily upgraded from small to large system.
• It provides message passing technique for communication between objects.
• It is helpful in reducing complexity of the programs.
• Object Oriented Programming supports re-usability of the code.
• Security is the first main advantage of OOP, the data and functions are combined
together in the form of class.
Software Quality
Software quality product is defined in term of its fitness of purpose. That is, a quality product
does precisely what the users want it to do. For software products, the fitness of use is generally
explained in terms of satisfaction of the requirements laid down in the SRS document. Although
"fitness of purpose" is a satisfactory interpretation of quality for many devices such as a car, a
table fan, a grinding machine, etc.for software products, "fitness of purpose" is not a wholly
satisfactory definition of quality.
Example: Consider a functionally correct software product. That is, it performs all tasks as
specified in the SRS document. But, has an almost unusable user interface. Even though it may
be functionally right, we cannot consider it to be a quality product.
The modern view of a quality associated with a software product several quality methods
such as the following:
Portability: A software device is said to be portable, if it can be freely made to work in various
operating system environments, in multiple machines, with other software products, etc.
Usability: A software product has better usability if various categories of users can easily invoke
the functions of the product.
Reusability: A software product has excellent reusability if different modules of the product can
quickly be reused to develop new products.
Maintainability: A software product is maintainable if bugs can be easily corrected as and when
they show up, new tasks can be easily added to the product, and the functionalities of the product
can be easily modified, etc.
A quality management system is the principal methods used by organizations to provide that the
products they develop have the desired quality.
Quality System Activities: The quality system activities encompass the following:
Auditing of projects
Production of documents for the top management summarizing the effectiveness of the quality
system in the organization.
Quality systems have increasingly evolved over the last five decades. Before World War II, the
usual function to produce quality products was to inspect the finished products to remove
defective devices. Since that time, quality systems of organizations have undergone through four
steps of evolution, as shown in the fig. The first product inspection task gave method to quality
control (QC).
Quality control target not only on detecting the defective devices and removes them but also on
determining the causes behind the defects. Thus, quality control aims at correcting the reasons
for bugs and not just rejecting the products. The next breakthrough in quality methods was the
development of quality assurance methods.
The primary premise of modern quality assurance is that if an organization's processes are proper
and are followed rigorously, then the products are obligated to be of good quality. The new
quality functions include guidance for recognizing, defining, analyzing, and improving the
production process.
Total quality management (TQM) advocates that the procedure followed by an organization must
be continuously improved through process measurements. TQM goes stages further than quality
assurance and aims at frequently process improvement. TQM goes beyond documenting steps to
optimizing them through a redesign. A term linked to TQM is Business Process Reengineering
(BPR).
BPR aims at reengineering the method business is carried out in an organization. From the above
conversation, it can be stated that over the years, the quality paradigm has changed from product
assurance to process assurance, as shown in fig.