Unit - 10 - Advanced Topics in Software Engineering
Unit - 10 - Advanced Topics in Software Engineering
• Diagrammatic Representation:
• Advantages of Re-engineering:
Reduced Risk: As the software is already existing, the risk is less as compared to new software
development. Development problems, staffing problems and specification problems are the lots of
problems which may arise in new software development.
Reduced Cost: The cost of re-engineering is less than the costs of developing new software.
Revelation of business code: As a system is re-engineered , business rules that are embedded in
the system are rediscovered.
Better use of Existing Staff: Existing staff expertise can be maintained and extended
accommodate new skills during re-engineering.
• Disadvantages of Re-engineering:
Major architectural changes or radical reorganizing of the systems data management has to be done
manually.
Re-engineered system is not likely to be as maintainable as a new system developed using modern
software Re-engineering methods.
Computer aided software engineering (CASE) is the implementation of computer facilitated tools
and methods in software development.
CASE ensures a check-pointed and disciplined approach and helps designers, developers, testers,
managers and others to see the project milestones during development.
CASE can also help as a warehouse for documents related to projects, like business plans,
requirements and design specifications.
One of the major advantages of using CASE is the delivery of the final product, which is more
likely to meet real-world requirements as it ensures that customers remain part of the process.
CASE illustrates a wide set of labor-saving tools that are used in software development. It
generates a framework for organizing projects and to be helpful in enhancing productivity.
There was more interest in the concept of CASE tools years ago, but less so today, as the tools
have morphed into different functions, often in reaction to software developer needs.
The concept of CASE also received a heavy dose of criticism after its release.
• CASE Tools:
The essential idea of CASE tools is that in-built programs can help to analyze developing
systems in order to enhance quality and provide better outcomes.
Throughout the 1990, CASE tool became part of the software lexicon, and big companies like
IBM were using these kinds of tools to help create software.
Various tools are incorporated in CASE and are called CASE tools, which are used to support
different stages and milestones in a software development life cycle.
It helps in diagrammatic and graphical representations of the data and system processes. It
represents system elements, control flow and data flow among different software
components and system structure in a pictorial form.
For example, Flow Chart Maker tool for making state-of-the-art flowcharts.
It focuses on inconsistent, incorrect specifications involved in the diagram and data flow.
It helps in collecting requirements, automatically check for any irregularity, imprecision in
the diagrams, data redundancies or erroneous omissions.
For example,
(i) Accept 360, Accompa, CaseComplete for requirement analysis.
It provides the single point of storage for data diagrams, reports and documents related to
project management.
(5) Documentation Generators:
It aids in the auto generation of code, including definitions, with the help of the designs,
documents and diagrams.
As special emphasis is placed on redesign as well as testing, the servicing cost of a product
over its expected lifetime is considerably reduced.
The overall quality of the product is improved as an organized approach is undertaken during
the process of development.
Chances to meet real-world requirements are more likely and easier with a computer-aided
software engineering approach.
CASE indirectly provides an organization with a competitive advantage by helping ensure the
development of high-quality products.
(1) Cost:
Mostly firms engaged in software development on a small scale do not invest in CASE tools
because they think that the benefit of CASE are justifiable only in the development of large
systems.
In most cases, programmers productivity may fall in the initial phase of implementation ,
because user need time to learn the technology.
Many consultants offer training and on-site services that can be important to accelerate the
learning curve and to the development and use of the CASE tools.
(3) Tool Mix:
It is important to build an appropriate selection tool mix to urge cost advantage CASE
integration and data integration across all platforms is extremely important.
It not only identifies candidate components but also qualifies each component’s interface,
adapts components to remove architectural mismatches, assembles components into a
selected architectural style, and updates components as requirements for the system
change.
• Component-based development:
Using analysis and architectural design methods, the software team refines an architectural
style that is appropriate for the analysis model created for the application to be built.
1. Component Qualification:
This activity ensures that the system architecture defines the requirements of the
components for becoming a reusable components.
Reusable components are generally identified through the traits in their interfaces.
It means “the services that are given and the means by which customers or consumers
access these services ” are defined as a part of the component interface.
2. Component Adaptation:
This activity ensures that the architecture defines the design conditions for all components
and identifies their modes of connection.
In some cases, existing reusable components may not be allowed to get used due to the
architecture’s design rules and conditions.
These components should adapt and meet the requirements of the architecture or be
refused and replaced by other, more suitable components.
3. Component Composition:
This activity ensures that the Architectural style of the system integrates the software
components and forms a working system.
By identifying the connection and coordination mechanisms of the system, the architecture
describes the composition of the end product.
4. Component Update:
This activity ensures the updation of reusable components. Sometimes, updates are
complicated due to the inclusion of third-party (the organization that developed the
reusable component may be outside the immediate control of the software engineering
organization accessing the component currently).