The document discusses topics related to rapid software development and evolution, including agile methods, extreme programming, rapid application development, and software prototyping. It provides details on characteristics of rapid application development processes like concurrent specification, design, and implementation. Iterative development approaches are covered along with advantages and challenges. Specific agile methods like extreme programming, with practices like test-driven development and pair programming, are also summarized.
Requirements Engineering,
Functional and Non-Functional Requirements,
Engineering Design Process and Process Engineering,
Logistics Management,
Risk management, and
Requirements specification
Requirements Engineering,
Functional and Non-Functional Requirements,
Engineering Design Process and Process Engineering,
Logistics Management,
Risk management, and
Requirements specification
Is your application system process facing problem? With the help of System-level analysis you can save your application from failures at different levels. It analyzes how the components are interacting at multiple layers & technologies. Keep your system efficient and secure.
Agile Development | Agile Process ModelsAhsan Rahim
Agile Development | Agile Process Models
Here you are going to know What is Agile Development & What are Agile Process Models for the development of Software Product.
What are different types of Agile Development, steps involve in Agile Development, XP, Scrum, Traditional Process Models with full text and animated description.
Software Process Models defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software...
For more knowledge watch full video...
Video URL:
https://youtu.be/3Lxnn0O3xaM
YouTube Channel URL:
https://www.youtube.com/channel/UCKVvceV1RGXLz0GeesbQnVg
Google+ Page URL:
https://plus.google.com/113458574960966683976/videos?_ga=1.91477722.157526647.1466331425
My Website Link:
http://appsdisaster.blogspot.com/
If you are interested in learning more about topics like this so Please don't forget to like, share, & Subscribe to us.
Is your application system process facing problem? With the help of System-level analysis you can save your application from failures at different levels. It analyzes how the components are interacting at multiple layers & technologies. Keep your system efficient and secure.
Agile Development | Agile Process ModelsAhsan Rahim
Agile Development | Agile Process Models
Here you are going to know What is Agile Development & What are Agile Process Models for the development of Software Product.
What are different types of Agile Development, steps involve in Agile Development, XP, Scrum, Traditional Process Models with full text and animated description.
Software Process Models defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software...
For more knowledge watch full video...
Video URL:
https://youtu.be/3Lxnn0O3xaM
YouTube Channel URL:
https://www.youtube.com/channel/UCKVvceV1RGXLz0GeesbQnVg
Google+ Page URL:
https://plus.google.com/113458574960966683976/videos?_ga=1.91477722.157526647.1466331425
My Website Link:
http://appsdisaster.blogspot.com/
If you are interested in learning more about topics like this so Please don't forget to like, share, & Subscribe to us.
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfKamal Acharya
The College Bus Management system is completely developed by Visual Basic .NET Version. The application is connect with most secured database language MS SQL Server. The application is develop by using best combination of front-end and back-end languages. The application is totally design like flat user interface. This flat user interface is more attractive user interface in 2017. The application is gives more important to the system functionality. The application is to manage the student’s details, driver’s details, bus details, bus route details, bus fees details and more. The application has only one unit for admin. The admin can manage the entire application. The admin can login into the application by using username and password of the admin. The application is develop for big and small colleges. It is more user friendly for non-computer person. Even they can easily learn how to manage the application within hours. The application is more secure by the admin. The system will give an effective output for the VB.Net and SQL Server given as input to the system. The compiled java program given as input to the system, after scanning the program will generate different reports. The application generates the report for users. The admin can view and download the report of the data. The application deliver the excel format reports. Because, excel formatted reports is very easy to understand the income and expense of the college bus. This application is mainly develop for windows operating system users. In 2017, 73% of people enterprises are using windows operating system. So the application will easily install for all the windows operating system users. The application-developed size is very low. The application consumes very low space in disk. Therefore, the user can allocate very minimum local disk space for this application.
Automobile Management System Project Report.pdfKamal Acharya
The proposed project is developed to manage the automobile in the automobile dealer company. The main module in this project is login, automobile management, customer management, sales, complaints and reports. The first module is the login. The automobile showroom owner should login to the project for usage. The username and password are verified and if it is correct, next form opens. If the username and password are not correct, it shows the error message.
When a customer search for a automobile, if the automobile is available, they will be taken to a page that shows the details of the automobile including automobile name, automobile ID, quantity, price etc. “Automobile Management System” is useful for maintaining automobiles, customers effectively and hence helps for establishing good relation between customer and automobile organization. It contains various customized modules for effectively maintaining automobiles and stock information accurately and safely.
When the automobile is sold to the customer, stock will be reduced automatically. When a new purchase is made, stock will be increased automatically. While selecting automobiles for sale, the proposed software will automatically check for total number of available stock of that particular item, if the total stock of that particular item is less than 5, software will notify the user to purchase the particular item.
Also when the user tries to sale items which are not in stock, the system will prompt the user that the stock is not enough. Customers of this system can search for a automobile; can purchase a automobile easily by selecting fast. On the other hand the stock of automobiles can be maintained perfectly by the automobile shop manager overcoming the drawbacks of existing system.
Vaccine management system project report documentation..pdfKamal Acharya
The Division of Vaccine and Immunization is facing increasing difficulty monitoring vaccines and other commodities distribution once they have been distributed from the national stores. With the introduction of new vaccines, more challenges have been anticipated with this additions posing serious threat to the already over strained vaccine supply chain system in Kenya.
Event Management System Vb Net Project Report.pdfKamal Acharya
In present era, the scopes of information technology growing with a very fast .We do not see any are untouched from this industry. The scope of information technology has become wider includes: Business and industry. Household Business, Communication, Education, Entertainment, Science, Medicine, Engineering, Distance Learning, Weather Forecasting. Carrier Searching and so on.
My project named “Event Management System” is software that store and maintained all events coordinated in college. It also helpful to print related reports. My project will help to record the events coordinated by faculties with their Name, Event subject, date & details in an efficient & effective ways.
In my system we have to make a system by which a user can record all events coordinated by a particular faculty. In our proposed system some more featured are added which differs it from the existing system such as security.
Democratizing Fuzzing at Scale by Abhishek Aryaabh.arya
Presented at NUS: Fuzzing and Software Security Summer School 2024
This keynote talks about the democratization of fuzzing at scale, highlighting the collaboration between open source communities, academia, and industry to advance the field of fuzzing. It delves into the history of fuzzing, the development of scalable fuzzing platforms, and the empowerment of community-driven research. The talk will further discuss recent advancements leveraging AI/ML and offer insights into the future evolution of the fuzzing landscape.
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
CFD analysis is incredibly effective at solving mysteries and improving the performance of complex systems!
Here's a great example: At a large natural gas-fired power plant, where they use waste heat to generate steam and energy, they were puzzled that their boiler wasn't producing as much steam as expected.
R&R and Tetra Engineering Group Inc. were asked to solve the issue with reduced steam production.
An inspection had shown that a significant amount of hot flue gas was bypassing the boiler tubes, where the heat was supposed to be transferred.
R&R Consult conducted a CFD analysis, which revealed that 6.3% of the flue gas was bypassing the boiler tubes without transferring heat. The analysis also showed that the flue gas was instead being directed along the sides of the boiler and between the modules that were supposed to capture the heat. This was the cause of the reduced performance.
Based on our results, Tetra Engineering installed covering plates to reduce the bypass flow. This improved the boiler's performance and increased electricity production.
It is always satisfying when we can help solve complex challenges like this. Do your systems also need a check-up or optimization? Give us a call!
Work done in cooperation with James Malloy and David Moelling from Tetra Engineering.
More examples of our work https://www.r-r-consult.dk/en/cases-en/
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSEDuvanRamosGarzon1
AIRCRAFT GENERAL
The Single Aisle is the most advanced family aircraft in service today, with fly-by-wire flight controls.
The A318, A319, A320 and A321 are twin-engine subsonic medium range aircraft.
The family offers a choice of engines
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
Maintaining high-quality standards in the production of TMT bars is crucial for ensuring structural integrity in construction. Addressing common defects through careful monitoring, standardized processes, and advanced technology can significantly improve the quality of TMT bars. Continuous training and adherence to quality control measures will also play a pivotal role in minimizing these defects.
3. Rapid software developmentp p
• Because of rapidly changing business environments• Because of rapidly changing business environments,
businesses have to respond to new Opportunities and
C i iCompetition.
• Businesses may be willing to accept lower quality
software if rapid delivery of essential functionality is
possible.p
4. RequirementsRequirements
• Because of the changing environment, it is often
impossible to arrive at a stable, consistent set of
system requirements.
• Therefore a waterfallwaterfall modelmodel of development is
impracticalimpractical and an approach to development based onimpracticalimpractical and an approach to development based on
iterative specification and delivery is the only way
fto deliver software quickly.
5. Characteristics of RAD processesCharacteristics of RAD processes
• The processes of specification, design and
implementation are concurrentconcurrent. There is no detailed
specification and design documentation is minimized.
• The system is developed in a seriesseries ofof incrementsincrements. End
users evaluate each increment and make proposals forusers evaluate each increment and make proposals for
later increments.
• System user interfaces are usually developed using an
interactiveinteractive developmentdevelopment systemsystem..
6. An iterative development processAn iterative development process
Define system
deliverables
ValidateBuild systemSpecify systemDesign system
de e ab es
Validate
increment
Build system
increment
Specify system
increment
Design system
architecture
NO
System
complete?
Integrate
increment
Validate
system
Deliver final
system
NO
YES
7. Advantages of incremental developmentg p
• Accelerated delivery of customer services. Each
increment delivers the highest priority functionality to the
customer.
• User engagement with the system. Users have to be
involved in the development which means the system isinvolved in the development which means the system is
more likely to meet their requirements and the users are
more committed to the systemmore committed to the system.
8. Problems with incremental developmentp
• Management problems
– Progress can be hard to judge and problems hard to find
because there is no documentation to demonstrate what hasbecause there is no documentation to demonstrate what has
been done.
• Contractual problems
The normal contract may include a specification; without a– The normal contract may include a specification; without a
specification, different forms of contract have to be used.
• Validation problems
– Without a specification, what is the system being tested ?
• Maintenance problems
– Continual change tends to corrupt software structure making it
more expensive to change and evolve to meet new
requirements.
9. Agile methodsAgile methodsAgile methodsAgile methods
• Dissatisfaction with the overheads involved in design methods led to
the creation of agile methods These methods:the creation of agile methods. These methods:
– Focus on the code rather than the design;
A b d it ti h t ft d l t– Are based on an iterative approach to software development;
– Are intended to deliver working software quickly and evolve this
i kl t t h i i tquickly to meet changing requirements.
• Agile methods are probably best suited to small/medium-sized
b i tbusiness systems.
10. Principles of agile methodsPrinciples of agile methods
Principle Description
C t i l t Th t h ld b l l i l d th h t thCustomer involvement The customer should be closely involved throughout the
development process. Their role is provide and prioritise new
system requirements and to evaluate the iterations of the system.
Incremental delivery The software is developed in increments with the customery p
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognised and
exploited. The team should be left to develop their own ways of
working without prescriptive processesworking without prescriptive processes.
Embrace change Expect the system requirements to change and design the system
so that it can accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and inMaintain simplicity Focus on simplicity in both the software being developed and in
the development process used. Wherever possible, actively work
to eliminate complexity from the system.
11. Problems with agile methodsProblems with agile methods
• Team membersmembers may be unsuitedunsuited to the intense involvement that
characterizes agile methods.
•• PrioritizingPrioritizing changeschanges can be difficult where there are multiplemultiple
k h ldk h ldstakeholdersstakeholders..
• Maintaining simplicity requires extra work.
• Contracts may be a problem as with other approaches to iterative
development.
12. Extreme programmingExtreme programming
• Perhaps the best-known and most widely used agile method.
• Extreme Programming (XP) takes an ‘extreme’ approach to iterative
development.
– New versions may be built several times per day;
– Increments are delivered to customers every 2 weeks;
– All tests must be run for every build and the build is only
accepted if tests run successfully.
14. Extreme programming practices 1p g g p
Incremental planning Requirements are recorded on Story Cards and the Stories to be
included in a release are determined by the time available andy
their relative priority. The developers break these Stories into
development ‘Tasks’.
Small Releases The minimal useful set of functionality that provides business
value is developed first Releases of the system are frequent andvalue is developed first. Releases of the system are frequent and
incrementally add functionality to the first release.
Simple Design Enough design is carried out to meet the current requirements
and no more.
Test first development An automated unit test framework is used to write tests for a new
piece of functionality before that functionality itself is
implemented.
Refactoring All developers are expected to refactor the code continuously asRefactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found. This keeps the
code simple and maintainable.
15. Extreme programming practices 2p g g p
Pair Programming Developers work in pairs, checking each otherÕs work and
providing the support to always do a good job.
Collective Ownership The pairs of developers work on all areas of the system, so that
no islands of expertise develop and all the developers own all the
code. Anyone can change anything.
Continuous Integration As soon as work on a task is complete it is integrated into theContinuous Integration As soon as work on a task is complete it is integrated into the
whole system. After any such integration, all the unit tests in the
system must pass.
Sustainable pace Large amounts of over-time are not considered acceptable as the
net effect is often to reduce code quality and medium termnet effect is often to reduce code quality and medium term
productivity
On-site Customer A representative of the end-user of the system (the Customer)
should be available full time for the use of the XP team. In an
extreme programming process the customer is a member of theextreme programming process, the customer is a member of the
development team and is responsible for bringing system
requirements to the team for implementation.
16. Requirements scenariosRequirements scenarios
• In XP, user requirements are expressed as scenariosscenarios or useruser
storiesstories..
• These are written on cardscards and the development team break them
d i i l i k Th k h b i fdown into implementation tasks. These tasks are the basis of
schedule and cost estimates.
Th t h th t i f i l i i th t l• The customer chooses the stories for inclusion in the next release
based on their priorities and the schedule estimates.
17. Story card for document downloadingStory card for document downloading
Downloading and printing an article
First, you select the article that you want from a displayed list. You
then have to tell the system how you will pay for it - this can either
be through a subscription, through a company account or by credit
cardcard.
After this, you get a copyright form from the system to fill in and,
when you have submitted this, the article you want is downloadedy , y
onto your computer.
You then choose a printer and a copy of the article is printed. You
tell the system if printing has been successfultell the system if printing has been successful.
If the article is a print-only article, you can’t keep the PDF version
so it is automatically deleted from your computer .y y p
18. Testing in XPTesting in XP
• Test-first development.
• Incremental test development from scenarios.
• User involvement in test development and validation• User involvement in test development and validation.
• Automated test harnesses are used to run all component
tests each time that a new release is built.
20. Test case descriptionTest case description
Test 4: Test cr edit card validityTest 4: Test cr edit card validity
Input:
Astring representing the credit card number and two integers representing
the month and year when the card expires
T tTests:
Check that all bytes in the string are digits
Check that the month lies between 1 and 12 and the
year is greater than or equal to the current year .
Using the first 4 digits of the credit card number ,g g ,
check that the card issuer is valid by looking up the
card issuer table. Check credit card validity by submitting the card
number and expiry date information to the card
issuer
Output:Output:
OK or error message indicating that the card is invalid
21. Test-first developmentTest first development
• Writing tests before code clarifies the requirements to be
implemented.
• Tests are written as programs rather than data so that they can be
d i ll Th i l d h k h i hexecuted automatically. The test includes a check that it has
executed correctly.
All i d t t t ti ll h• All previous and new tests are automatically run when new
functionality is added. Thus checking that the new functionality
has not introduced errorshas not introduced errors.
22. Pair programmingPair programming
• In XP, programmers work in pairs, sitting together to develop code.
• This helps develop common ownership of code and spreads
knowledge across the team.
It i f l i h li f d i• It serves as an informal review process as each line of code is
looked at by more than 1 person.
• It encourages refactoring as the whole team can benefit from this• It encourages refactoring as the whole team can benefit from this.
• Measurements suggest that development productivity with pair
programming is similar to that of two people working independentlyprogramming is similar to that of two people working independently.
23. Rapid application developmentRapid application development
• Agile methods have received a lot of attention but other• Agile methods have received a lot of attention but other
approaches to rapid application development have been
d fused for many years.
• These are designed to develop data-intensive business
applications and rely on programming and presenting
information from a database.
24. RAD environment toolsRAD environment tools
• Database programming languageDatabase programming language
• Interface generator
• Links to office applicationsLinks to office applications
• Report generators
26. Interface generationInterface generation
• Many applications are based around complex forms andy pp p
developing these forms manually is a time-consuming
activity.
RAD i t i l d t f ti• RAD environments include support for screen generation
including:
– Interactive form definition using drag and drop techniques;
– Form linking where the sequence of forms to be presented is
specified;
– Form verification where allowed ranges in form fields is defined.g
27. Visual programmingVisual programming
• Scripting languages such as Visual Basic support visual
programming where the prototype is developed by
creating a user interface from standard items and
associating components with these items
• A large library of components exists to support this type
of development
• These may be tailored to suit the specific applicationThese may be tailored to suit the specific application
requirements
29. COTS reuseCOTS reuse
• An effective approach to rapid development is to
configure and link existing off the shelf systems.
• For example, a requirements management system couldp , q g y
be built by using:
– A database to store requirements;– A database to store requirements;
– A word processor to capture requirements and format
treports;
– A spreadsheet for traceability management;
30. Compound documentsCompound documents
• For some applications, a prototype can be created by
developing a compound documentdeveloping a compound document.
• This is a document with active elements (such as a
spreadsheet) that allow user computations.
• Each active element has an associated application which
is invoked when that element is selected.
• The document itself is the integrator for the different• The document itself is the integrator for the different
applications.
32. Software prototypingSoftware prototyping
• A prototype is an initial version of a system used to
demonstrate concepts and try out design options.
• A prototype can be used in:
– The requirements engineering process to help with
requirements elicitation and validation;requirements elicitation and validation;
– In design processes to explore options and develop a
UI design;UI design;
– In the testing process to run back-to-back tests.
33. Benefits of prototypingBenefits of prototyping
• Improved system usability• Improved system usability.
• A closer match to users’ real needs.
• Improved design quality.
• Improved maintainability.Improved maintainability.
• Reduced development effort.
36. Throw-away prototypesThrow away prototypes
• Prototypes should be discarded after development as
they are not a good basis for a production system:
– It may be impossible to tune the system to meet non-
functional requirements;
Prototypes are normally undocumented;– Prototypes are normally undocumented;
– The prototype structure is usually degraded through
rapid change;
– The prototype probably will not meet normal
organisational quality standards.
38. Topics coveredTopics covered
• Program evolution dynamics
• Software maintenance
E l ti• Evolution processes
L t l ti• Legacy system evolution
39. Software changeSoftware change
• Software change is inevitableg
– New requirements emerge when the software is used;
– The business environment changes;
Errors must be repaired;– Errors must be repaired;
– New computers and equipment is added to the system;
– The performance or reliability of the system may have to be
i dimproved.
• A key problem for organisations is implementing and
managing change to their existing software systems.g g g g y
40. Importance of evolutionImportance of evolution
• Organisations have huge investments in their software• Organisations have huge investments in their software
systems - they are critical business assets.
• To maintain the value of these assets to the business,
they must be changed and updated.
• The majority of the software budget in large companies
is devoted to evolving existing software rather thanis devoted to evolving existing software rather than
developing new software.
42. Program evolution dynamics
• Program evolution dynamics is the study of the
Program evolution dynamics
• Program evolution dynamics is the study of the
processes of system change.
• After major empirical studies, Lehman and Belady
proposed that there were a number of ‘laws’ which
applied to all systems as they evolved.
43. Lehman’s lawsLehman s laws
Law Description
Continuing change A program that is used in a real-world environment necessarily
must change or become progressively less useful in that
environment.
Increasing complexity As an evolving program changes, its structure tends to become
more complex. Extra resources must be devoted to preserving
d i lif i th t tand simplifying the structure.
Large program evolution Program evolution is a self-regulating process. System
attributes such as size, time between releases and the number of
reported errors is approximately invariant for each system
release.
Organisational stability Over a programÕs lifetime, its rate of development is
approximately constant and independent of the resources
devoted to system development.
Conservation of
familiarity
Over the lifetime of a system, the incremental change in each
release is approximately constant.
Continuing growth The functionality offered by systems has to continually increase
to maintain user satisfaction.
Declining quality The quality of systems will appear to be declining unless they
are adapted to changes in their operational environment.
Feedback system Evolution processes incorporate multi agent multi loopFeedback system Evolution processes incorporate multi-agent, multi-loop
feedback systems and you have to treat them as feedback
systems to achieve significant product improvement.
44. Software maintenance
• Modifying a program after it has been put into use
Software maintenance
Modifying a program after it has been put into use.
• Changes are implemented by modifying existing components and
adding new components to the systemadding new components to the system.
45. Maintenance is inevitable
• The system requirements are likely to change
while the system is being developed because
Maintenance is inevitable
while the system is being developed because
the environment is changing.
• Systems MUST be maintained therefore if they• Systems MUST be maintained therefore if they
are to remain useful in an environment.
46. Types of maintenance
• Maintenance to repair softwaresoftware faultsfaults
Ch i t t tt d fi i id fi i i i th t it
Types of maintenance
– Changing a system to correctcorrect deficienciesdeficiencies in the way meets its
requirements.
M i t t d t ft t diff t titi i ti t• Maintenance to adapt software to a different operatingoperating environmentenvironment
– Changing a system so that it operates in a different environment
( t OS t ) f it i iti l i l t ti(computer, OS, etc.) from its initial implementation.
• Maintenance to add to or modify the system’s functionality
– Modifying the system to satisfy new requirements.
47. Distribution of maintenance effort
Fault repair
(17%)
Functionality
addition or
Software
addition or
modification
(65%)
Software
adaptation
(18%)
48. Maintenance costs
• Usually greater than development costs
Maintenance costs
• Affected by both technicaltechnical and nonnon--technicaltechnical
factorsfactors..
• Ageing software can have high support costs
(e.g. old languages, compilers etc.).
50. Maintenance cost factors
• Team stability
– Maintenance costs are reduced if the same staff are involved with
Maintenance cost factors
– Maintenance costs are reduced if the same staff are involved with
them for some time.
• Contractual responsibilityp y
– The developers of a system may have no contractual responsibility for
maintenance so there is no incentive to design for future change.
• Staff skills
– Maintenance staff are often inexperienced and have limited domain
knowledge.
• Program age and structure
– As programs age, their structure is degraded and they become harder
to understand and change.
51. Maintenance predictionMaintenance prediction
• Maintenance prediction is concerned with assessing which parts of
the system maymay causecause problemsproblems and have high maintenance costs
52. Maintenance predictiona te a ce p ed ct o
What parts of the system
will be the most expensive
to maintain?What parts of the system are
Predicting
maintainability
to maintain?What parts of the system are
most likely to be affected by
change requests?
y
What will be the lifetime
maintenance costs of this
Predicting system
changes
Predicting
maintenance
costs
maintenance costs of this
system?
What will be the costs of
maintaining this system
over the next year?
How many change
requests can be
expected?
53. Process metricsProcess metrics
• Process measurements may be used to assess maintainabilityProcess measurements may be used to assess maintainability
– Number of requests for corrective maintenance;
Average time required for impact analysis;– Average time required for impact analysis;
– Average time taken to implement a change request;
N b f t t di h t– Number of outstanding change requests.
• If any or all of these is increasing, this may indicate a decline in
i t i bilitmaintainability.
54. Evolution processesEvolution processes
• Evolution processes depend onEvolution processes depend on
– The type of software being maintained;
The development processes used;– The development processes used;
– The skills and experience of the people involved.
P l f h th d i f t l ti Ch• Proposals for change are the driver for system evolution. Change
identification and evolution continue throughout the system lifetime.
55. The system evolution processThe system evolution process
Release
planning
Change
implementa tion
System
release
Impact
analysis
Change
requests
Platform
adaptation
System
enhancement
Fault repair
57. Urgent change requestsUrgent change requests
• Urgent changes may have to be implemented without going through
all stages of the software engineering processall stages of the software engineering process
– If a serious system fault has to be repaired;
If h t th t ’ i t ( OS d )– If changes to the system’s environment (e.g. an OS upgrade)
have unexpected effects;
If th b i h th t i id– If there are business changes that require a very rapid response
(e.g. the release of a competing product).
59. System Re-engineeringSystem Re engineering
• Re-structuring or re-writing part or all of aRe structuring or re writing part or all of a
legacy system without changing its
functionality.y
60. Advantages of reengineeringAdvantages of reengineering
• Reduced risk• Reduced risk
– There is a high risk in new software development.
There may be development problems, staffing
problems and specification problems.
• Reduced cost
The cost of re engineering is often significantly less– The cost of re-engineering is often significantly less
than the costs of developing new software.
61. Reengineering process activitiesReengineering process activities
• Source code translation
C t d t l– Convert code to a new language.
• Reverse engineering
– Analyse the program to understand it;
• Program structure improvement
– Restructure automatically for understandability;
• Program modularisation
– Reorganise the program structure;
• Data reengineering
– Clean-up and restructure system data.
63. Legacy system evolutionLegacy system evolution
• Organisations that rely on legacy systems must choose a strategy
for evolving these systemsfor evolving these systems
– Scrap the system completely and modify business processes so
that it is no longer required;that it is no longer required;
– Continue maintaining the system;
T f th t b i i t i it– Transform the system by re-engineering to improve its
maintainability;
R l th t ith t– Replace the system with a new system.
• The strategy chosen should depend on the system quality and its
b i lbusiness value.
64. Legacy system categoriesLegacy system categories
• Low quality, low business value
– These systems should be scrapped– These systems should be scrapped.
• Low-quality, high-business value
These make an important business contribution but are– These make an important business contribution but are
expensive to maintain. Should be re-engineered or replaced if a
suitable system is availablesuitable system is available.
• High-quality, low-business value
Replace with COTS scrap completely or maintain– Replace with COTS, scrap completely or maintain.
• High-quality, high business value
C ti i ti i l t i t– Continue in operation using normal system maintenance.
66. Business value assessmentBusiness value assessment
• Assessment should take different viewpoints into accountAssessment should take different viewpoints into account
– System end-users;
Business customers;– Business customers;
– Line managers;
IT– IT managers;
– Senior managers.
• Interview different stakeholders and collate results.
67. System quality assessmentSystem quality assessment
• Business process assessmentBusiness process assessment
– How well does the business process support the current goals of
the business?the business?
• Environment assessment
How effective is the system’s environment and how expensive is– How effective is the system s environment and how expensive is
it to maintain?
• Application assessment• Application assessment
– What is the quality of the application software system?
68. Business process assessmentBusiness process assessment
• Use a viewpoint-oriented approach and seek answers from system
stakeholdersstakeholders
– Is there a defined process model and is it followed?
– Do different parts of the organisation use different processes for thep g p
same function?
– How has the process been adapted?
– What are the relationships with other business processes and are these
necessary?
– Is the process effectively supported by the legacy application software?
• Example - a travel ordering system may have a low business value because
f th id d f b b d d iof the widespread use of web-based ordering.
69. Environment assessment 1Environment assessment 1
Factor QuestionsFactor Questions
Supplier
stability
Is the supplier is still in existence? Is the supplier financially
stable and likely to continue in existence? If the supplier is
no longer in business, does someone else maintain theg
systems?
Failure rate Does the hardware have a high rate of reported failures?
Does the support software crash and force system restarts?
Age How old is the hardware and software? The older the
hardware and support software, the more obsolete it will be.
It may still function correctly but there could be significant
economic and business benefits to moving to more modern
systems.
Performance Is the performance of the system adequate? Do performance
problems have a significant effect on system users?
70. Environment assessment 2Environment assessment 2
Support
requirements
What local support is required by the hardware and
software? If there are high costs associated with this support,
it may be worth considering system replacement.
Maintenance
costs
What are the costs of hardware maintenance and suppo rt
software licences? Older hardware may have higher
maintenance costs than modern systems Support softwaremaintenance costs than modern systems. Support software
may have high annual licensing costs.
Interoperability Are there problems interfacing the system to other systems?
Can compilers etc. be used with current versions of theCan compilers etc. be used with current versions of the
operating system? Is hardware emulation required?
71. Application assessment 1Application assessment 1
Factor Questions
Understandability How difficult is it to understand the source code of the
current system? How complex are the control structures
that are used? Do variables have meaningful names thatthat are used? Do variables have meaningful names that
reflect their function?
Documentation What system documentation is available? Is the
documentation complete, consistent and up-to-date?
Data Is there an explicit data model for the system? To what
extent is data duplicated in different files? Is the data used
by the system up-to-date and consistent?
Performance Is the performance of the application adequate? DoPerformance Is the performance of the application adequate? Do
performance problems have a significant effect on system
users?
72. Application assessment 2Application assessment 2
Programming
language
Are modern compilers available for the programming
language used to develop the system? Is the programming
language still used for new system development?
C fi ti A ll i f ll t f th t d bConfiguration
management
Are all versions of all parts of the system managed by a
configuration management system? Is there an explicit
description of the versions of components that are used in
the current system?
Test data Does test data for the system exist? Is there a record of
regression tests carried out when new features have been
added to the system?
P l kill A h l il bl h h h kill i iPersonnel skills Are there people available who have the skills to maintain
the application? Are there only a limited number of people
who understand the system?
73. Chapter Review Questionsp Q
1. Explain Step involved for Rapid Application Development
( )(RAD)in detail.
2. Explain extreme programming process in detail with example.
3. Discuss agile method of software development in detail.
4. Define prototyping? Explain with example.
5. Discuss Lehman’s laws of software evolution.
6. Explain evolution process with illustration.
7. Discuss different types of software maintenance.
8. Explain the Re-engineering process in detail.