Chapter 1 Slide 8 What is software? PC software such as Excel or Word. Chapter 1 Slide 9 What is software engineering? Chapter 1 Slide 10 What is the difference between software engineering and computer science? Chapter 1 Slide 11 What is the difference between software engineering and system engineering? Software engineering is part of this process concerned with developing the software infrastructure, control, applications and databases in the system.
Chapter 1 Slide 12 What is a software process? Chapter 1 Slide 13 What is a software process model? Chapter 1 Slide 14 What are the costs of software engineering? For custom software, evolution costs often exceed development costs. Chapter 1 Slide 15 Activity cost distribution Chapter 1 Slide 16 Product development costs Chapter 1 Slide 17 What are software engineering methods? Chapter 1 Slide 19 What are the attributes of good software?
This means it must be understandable, usable and compatible with other systems. Chapter 1 Slide 20 What are the key challenges facing software engineering? They should not knowingly accept work which is outwith their competence. They should be careful to ensure that the intellectual property of employers and clients is protected. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.
In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: Essential product attributes are maintainability, dependability, efficiency and usability.
Basic activities are software specification, development, validation and evolution. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced and design guidelines. They should not simply be concerned with technical issues. Kim Montgomery Dec. I did and I am more than satisfied. Mehrii Balochh Sep. AdeelAdeel7 Sep.
InduJamwal1 Mar. AmaraAlvi1 Mar. Show More. Total views. You just clipped your first slide! Clipping is a handy way to collect important slides you want to go back to later. Now customize the name of a clipboard to store your clips.
Visibility Others can see my Clipboard. Cancel Save. Exclusive 60 day trial to the world's largest digital library. Activate your free 60 day trial. Increases as software is maintained. Maintenance corrupts the software structure so makes further maintenance more difficult. Ageing software can have high support costs e. Team stability Maintenance costs are reduced if the same staff are involved with them for some time. The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change.
Maintenance staff are often inexperienced and have limited domain knowledge. As programs age, their structure is degraded and they become harder to understand and change. Maintenance prediction is concerned with assessing which parts of the system may cause problems and have high maintenance costs Change acceptance depends on the maintainability of the components affected by the change; Implementing changes degrades the system and reduces its maintainability; Maintenance costs depend on the number of changes and costs of change depend on maintainability.
Predicting the number of changes requires and understanding of the relationships between a system and its environment. Tightly coupled systems require changes whenever the environment is changed. Factors influencing this relationship are Number and complexity of system interfaces; Number of inherently volatile system requirements; The business processes where the system is used.
Predictions of maintainability can be made by assessing the complexity of system components. Studies have shown that most maintenance effort is spent on a relatively small number of system components. Complexity depends on Complexity of control structures; Complexity of data structures; Object, method procedure and module size. Process measurements may be used to assess maintainability Number of requests for corrective maintenance; Average time required for impact analysis; Average time taken to implement a change request; Number of outstanding change requests.
Evolution processes depend on The type of software being maintained; The development processes used; The skills and experience of the people involved.
Proposals for change are the driver for system evolution. Change identification and evolution continue throughout the system lifetime. Urgent changes may have to be implemented without going through all stages of the software engineering process If a serious system fault has to be repaired; If changes to the systems environment e. Re-structuring or re-writing part or all of a legacy system without changing its functionality. Applicable where some but not all sub-systems of a larger system require frequent maintenance.
Re-engineering involves adding effort to make them easier to maintain. The system may be restructured and re-documented. Reduced risk There is a high risk in new software development.
There may be development problems, staffing problems and specification problems. The cost of re-engineering is often significantly less than the costs of developing new software. Source code translation Convert code to a new language. Analyse the program to understand it; Restructure automatically for understandability; Reorganise the program structure; Clean-up and restructure system data. The quality of the software to be reengineered. The tool support available for reengineering.
The extent of the data conversion which is required. The availability of expert staff for reengineering. This can be a problem with old systems based on technology that is no longer widely used. Organisations that rely on legacy systems must choose a strategy for evolving these systems Scrap the system completely and modify business processes so that it is no longer required; Continue maintaining the system; Transform the system by re-engineering to improve its maintainability; Replace the system with a new system.
Low quality, low business value These systems should be scrapped. These make an important business contribution but are expensive to maintain. Should be re-engineered or replaced if a suitable system is available. Replace with COTS, scrap completely or maintain. Continue in operation using normal system maintenance.
Assessment should take different viewpoints into account System end-users; Business customers; Line managers; IT managers; Senior managers. Business process assessment How well does the business process support the current goals of the business? How effective is the systems environment and how expensive is it to maintain? What is the quality of the application software system? Use a viewpoint-oriented approach and seek answers from system stakeholders Is there a defined process model and is it followed?
Do different parts of the organisation use different processes for the 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 of the widespread use of web-based ordering. Chapter 21 Slide Environment assessment 1 Factor Supplier stability Questions 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 the systems? Does the hardware have a high rate of reported failures?
Does the support software crash and force system restarts? 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? Environment assessment 2 Support requirements Maintenance costs 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.
What are the costs of hardware maintenance and support software licences? Older hardware may have higher maintenance 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. Is hardware emulation required? Application assessment 1 Factor Understandability Questions 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 that reflect their function? What system documentation is available?
Is the documentation complete, consistent and up-to-date? 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? Is the performance of the application adequate? Application assessment 2 Programming language Configuration management Are modern compilers available for the programming language used to develop the system? Is the programming language still used for new system development? 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? 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?
Are there people available who have the skills to maintain the application? Are there only a limited number of people who understand the system? You may collect quantitative data to make an assessment of the quality of the application system The number of system change requests; The number of different user interfaces used by the system; The volume of data used by the system.
Software development and evolution should be a single iterative process. Lehmans Laws describe a number of insights into system evolution. Three types of maintenance are bug fixing, modifying software for a new environment and implementing new requirements. For custom systems, maintenance costs usually exceed development costs.
The process of evolution is driven by requests for changes from system stakeholders. Software re-engineering is concerned with restructuring and re-documenting software to make it easier to change. The business value of a legacy system and its quality should determine the evolution strategy that is used.
Open navigation menu. Close suggestions Search Search. User Settings. Skip carousel. Carousel Previous. Carousel Next. What is Scribd? Explore Ebooks. Bestsellers Editors' Picks All Ebooks. Explore Audiobooks.
0コメント