Se r23 Unit 5
Se r23 Unit 5
Software Engineering
The CASE tools can help in automatically generating data base tables, forms and
reports and user documentation. Thus, the CASE tools:
support contemporary development of software systems, they may
improve the quality of the software.
help in automating the software development life cycles by use of certain
standard methods
create an organization wide environment that minimized repetitive work
help developers to concentrate more on top level and more creative
problem solving tasks
support and improve the quality of documentation, testing process,
project management and software maintenance.
UNIT-5
Software Engineering
Upper CASE: Upper CASE tools mainly focus on the analysis and design phases
of software development. They include tools for analysis modeling, reports and forms
generation.
Integrated CASE Tools: Integrated CASE tools help in providing linkages between
the lower and upper CASE tools. Thus, creating a cohesive environment for software
development when programming by lower CASE tools may automatically be
generated for the design that has been developed in an upper CASE tool.
components and system structures in a pictorial form. e.g. Flow Chart Maker tool for making
state-of-the-art flowcharts.
2. Computer Display and Report Generators: These help in understanding the data
requirements and the relationships involved.
3. Analysis Tools: 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.
4. Central Repository: It provides a single point of storage for data diagrams, reports and
documents related to project management.
5. Documentation Generators: It helps in generating user and technical documentation as per
standards. It creates documents for technical users and end users.
6. Code Generators: It aids in the auto-generation of code, including definitions, with the help
of designs, documents and diagrams.
Using case tools is very costly. Most firms engaged in software development on a small
scale do not invest in CASE tools because they think that the benefit of CASE is justifiable
only in the development of large systems.
In most cases, programmers’ productivity may fall in the initial phase of implementation,
because users need time to learn the technology.
2. Risk Analysis Tool: It helps in identifying the risks in developing a plan, design and
then implementing the design.
3. Analysis and Design Tool: It enables the software to be created as a set of modules.
Analysis tool helps in analyzing the requirements of the user to determine their feasibility.
The design tool helps to convert the requirements into a detailed and easily manageable
design.
4. Quality Assurance Tool: Quality assurance tools actually consists of the metrics that
audit source code for determining their compliance with standards.
5. Testing Tool: Testing tools are mainly used for making the task of software testing
easier.
Software Maintenance
Software Maintenance is the process of modifying a software product after it has been
delivered to the customer. The main purpose of software maintenance is to modify and
update software application after delivery to correct faults and to improve performance.
Need for Maintenance –
Software Maintenance must be performed in order to:
Correct faults.
Improve the design.
Implement enhancements.
Interface with other systems.
Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
Migrate legacy software.
Retire software.
UNIT-5
Software Engineering
1.Corrective maintenance:
Corrective maintenance of a software product may be essential either to rectify some bugs
observed while the system is in use, or to enhance the performance of the system.
2.Adaptive maintenance:
This includes modifications and updations when the customers need the product to run on new
platforms, on new operating systems, or when they need the product to interface with new
hardware and software.
3.Perfective maintenance:
A software product needs maintenance to support the new features that the users want or to
change different types of functionalities of the system according to the customer demands.
UNIT-5
Software Engineering
4.Preventive maintenance:
This type of maintenance includes modifications and updations to prevent future problems of
the software. It goals to attend problems, which are not significant at this moment but may
cause serious issues in future.
Reverse Engineering –
Reverse Engineering is processes of extracting knowledge or design information from
anything man-made and reproducing it based on extracted information. It is also called
back Engineering. Software Reverse Engineering –
Software Reverse Engineering is the process of recovering the design and the requirements
specification of a product from an analysis of it’s code. Reverse Engineering is becoming
important, since several existing software products, lack proper documentation, are highly
unstructured, or their structure has degraded through a series of maintenance efforts.
Why Reverse Engineering?
Providing proper system documentatiuon.
Recovery of lost information.
Assisting with maintenance.
Facility of software reuse.
Discovering unexpected flaws or faults.
Used of Software Reverse Engineering –
Software Reverse Engineering is used in software design, reverse engineering enables the
developer or programmer to add new features to the existing software with or without
knowing the source code.
Reverse engineering is also useful in software testing, it helps the testers to study the virus
and other malware code .
Cost of Maintenance
Reports suggest that the cost of maintenance is high. A study on estimating software
maintenance found that the cost of maintenance is as high as 67% of the cost of entire
software process cycle.
UNIT-5
Software Engineering
On an average, the cost of software maintenance is more than 50% of all SDLC phases. There
are various factors, which trigger maintenance cost go high, such as:
Real-world factors affecting Maintenance Cost
Maintenance Activities
IEEE provides a framework for sequential maintenance process activities. It can be used in
iterative manner and can be extended so that customized items and processes can be
included.