Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Prof. Ajeeta Vrajanadan delivered this lecture at Baddi University of Emerging Sciences and Technologies for Software Engineering course. Its main points are: Software, Processes, Qualities, Intanguble, Malleable, Intensive, Configuration, Management, Tools
Typology: Slides
1 / 38
Lecture 04 - 05
Dr. Mohammad Jaudet, DEE [email protected]
Pakistan Institute of Engineering and Applied Sciences
October, 2010
Outline of the Lecture 04 - 05
Software engineering (SE) is an intellectual activity and thus human-intensive Software is built to meet a certain functional goal and satisfy certain qualities Software processes also must meet certain qualities Software qualities are sometimes referred to as "ilities"
Software product
Different from traditional types of products intangible (can not touched) difficult to describe and evaluate malleable (bendable, shape) human intensive involves only trivial "manufacturing" process
Classification of software qualities
User’s point of view of software product Reliable Efficient Easy to use Producer’s point of view of software product Verifiable Maintainable Portable Extendable
Classification of software qualities ...
Internal vs. external External -> visible to users Internal -> concern developers Product vs. process Our goal is to develop software products The process is how we do it Internal qualities affect external qualities Reliability comes from Verifiability
Classification of software qualities ...
Process quality affects product quality User is concerned with executable code and user manual Producer is concerned with requirement and design documents Intermediate/work products allow delivery of delivery of customized products Sale of object code for embedded design Sale of Design and source code to others, e.g., Tools for integrated environments & Antivirus Configuration management Tools Configuration management is the part of software production process that is concerned with maintaining and controlling the relationship between between all related with work products of various versions of work product
Representative Qualities
Correctness, Reliability & Robustness Performance Usability Maintainability Reusability Portability Understandability Interoperability Productivity Timeliness Visibility
Correctness
Correctness is a Mathematical Property that establishes the equivalence between the software and specification Software is correct if it satisfies the functional requirements specifications assuming that specification exists! More details in Chapter 6
Reliability
Software is reliable if the user can depend on it The probability that the software will operate as expected over a specified time interval If specs are correct, all correct software is reliable, but not vice-versa (in practice, however, specs can be incorrect ...) Software is often taken as granted and used even if containing bugs Software design errors are generally treated as unavoidable Customer receives no guarantee of reliability Reliability depends on correctness More details in Chapter 6
Robustness
Reasonable behavior in circumstances not anticipated in the requirement specification incorrect input hardware failure A software generating unrecoverable runtime error during a sequence of procedures is not robust Code devoted for for robustness depends on application area Embedded systems depends on sensors but still need code for taking care of robustness Robustness also depends on correctness
Performance
Efficient use of resources memory, processing time, communication Can be verified complexity analysis performance evaluation (on a model, via simulation) Performance can affect scalability a solution that works on a small local network may not work on a large intranet Perfomance is evaluated after first initial release of the software
Usability or user-friendliness
Expected users find the system easy to use Rather subjective, difficult to evaluate Affected mostly by user interface e.g., visual vs. textual Consistency and Predictability of user interface
Verifiability
How easy it is to verify properties, e.g. Correctness Performance Verification can be done with formal and informal methods, to be discussed in Chapter 6 Mostly an internal quality but becomes quality when customer require verifiability for services provided by the software system Verifiability is contributed by: Modular design Disciplined coding practices Appropriate programming language
Maintainability
Maintainability is ease of maintenance Maintenance is changes after initial release Not so simple to be called bug fixing only Enhancing the product with features that were not available in original specifications or that were stated incorrectly Maintenance costs exceed 60% of total cost of software
Categories of maintenance
Corrective Removing residual errors put in during development and maintenance period (20%) Adaptive Adjusting to environment changes (20%) Change in operating system Change in data base system Perfective Quality improvements (>50%) Change the functions offered by software system Add new functions Improve the performance software system Make the software system easier to use
Repairability & Evolvability
Maintainability can be considered as: Repairability Evolvability
Repairability
Repairability Ability to correct defects in reasonable time Repairability is a major design goal Modular design helps easier analysis & repair Avoiding complex interfaces Repairability can be improved by using High level languages Source level debuggers
Evolvability
Evolvability Ability to adapt software to environment changes and to improve it in reasonable time Most systems start out being evolvable Evolvability decreases with each new release of the software product Evolvability is reduced by Unanticipated changes (functionality not considered during requirements specifications and design) Applying changes without understanding original requirements specifications and design American Airlines SABRE System has evolved since sixties
Maintainability ...
More on maintainability in Chapter 4
Reusability
Existing product (or components) used (with minor modifications) to build another product (Similar to evolvability) Reusability may be applied from the whole product to a routine but more applicable to software components Unix shell is a reusable product that can be used for certain purpose with a command file Numeric Libraries are first examples of reusable components Use of Modularity enhances Reusability Use of software methodologies is considered as attempt to reuse processes to develop different products
Portability
Software can run on different hardware platforms or software environments Modularity helps is isolation of components associated with environment Internet browsers are one example of software need to run on variety of platforms Linux operating system is other example but needed a lot of effort
Understandability
Ease of understanding software Program modification requires program understanding Understandability depends on abstraction and modularity Understandability helps in Evolvability Verifyability
Interoperability
Ability of a system to coexist and cooperate with other systems Importing input and exporting output Browser plugins Management of devices on the network Achieved by standardizing interfaces between components (open systems & protocols) More in Chapter 4
Qualities of software production process
Productivity Timeliness Visibility
Productivity
Productivity is a quality of software production process and denotes its efficiency and performance Depends on productivity of individual software engineers More in Chapter 8 and Chapter 9