PowerPoint Presentation: UNIT V SYSTEM AUDIT Software engineering qualities -design, production, service, software specification, software metrics, software quality assurance -systems methodology -objectives -Time and Logic, Knowledge and Human dimension – software life cycle models -verification and validation. Software Engineering: Software Engineering It is a technological and managerial discipline concerned with systematic and development of software projects. Software for personal use is different from software for commercial use. Software for commercial use is termed as a software product Quality and Productivity Factors: Quality and Productivity Factors Individual Ability Team Communication Product Complexity Expectations Change Reliability Efficiency Robustness Individual Ability: Individual Ability Individuals are expected to have two different categories of knowledge. They are 1. General Knowledge 2. Subject Knowledge Software Development involves more programmers Hence the Knowledge factor of individuals is a major criteria to determine productivity and quality Team Communication: Team Communication The project is divided into many modules. A separate team develops each module There is an interaction between the modules. Hence there should be a good communication and coordination path established between various teams. The communication path required is given by the formula n(n-1)/2 where n is number of programmers Product Complexity: Product Complexity System Product It is very difficult to develop when compared to the other two Utility Product It can be produced at the rate of 10 times that of a system product Application Product It can be produced at the rate of 25 times that of a system product Expectations: Expectations The expectation of the user and the development in software should have to be matched The software industry is growing at a tremendous rate The expectation of the people is also very high They need a software product for most of their personal activities. Ex. JINI Technology Change: Change A software product should maintain a balance between hardware and software In some cases hardware deficiencies are supported by software. Reliability: Reliability There should be a balance between quality and productivity Increasing the labor force to increase productivity will result in decrease in quality Increasing the quality of the product by increasing the delivery time will decrease the productivity Reliability refers to how the product functions in the subjected environment Efficiency: Efficiency This refers to how efficiently the software functions with the available resources. Robustness: Robustness Ability of the software product to detect and correct errors PowerPoint Presentation: Design Design in software engineering is transforming the customer’s requirement to a form implementable using The designing activities can be classified in to 2 major parts They are preliminary or high level design detailed design PowerPoint Presentation: Preliminary or high level design Programme structure or system architecture tree diagram, structure chart, Jackson diagrams, warnier orr diagrams Detailed design Module specification document data structure, algorithms, used to design the modules PowerPoint Presentation: Which is good design A good design consist following charters it should capture all the functionalities in the correct manner. easily understandable efficient easily amenable to change PowerPoint Presentation: Software design approaches Function oriented design Development based on functions, starting at high level view of the systems. Object oriented design Development based on objects PowerPoint Presentation: Software Specification It is also called as requirement engineering. It describes about what are the services from the system and the constraints on the systems operation and development. The software specification have 4 phases feasibility study requirements elicitation and analysis requirements specification requirements validation PowerPoint Presentation: Feasibility Study requirements elicitation and analysis requirements specification Requirements validation Requirements documents User system requirements System Models Feasibility Report SOFTWARE METRICS: SOFTWARE METRICS Metrics are management tools which are used to estimate the cost and resource requirements of a project. Software is Measured: Software is Measured Indicate the Quality of the Product Assess the Productivity of the people who produce the product Assess the benefits derived from new software engineering tools and methods Assist Cost Estimation Direct Measurement: Direct Measurement Lines of Code Execution Speed Memory Size Defects Reported Indirect Measurement: Indirect Measurement Functionality Quality Complexity Efficiency Reliability Maintainability Size Oriented Metrics: Size Oriented Metrics Direct Measure of Software and the process by which it was developed. It includes Effort ( Time Spent) Money Spent KLOC (1000s lines of Code) Pages of Documentation Created Errors People on the Project Size Oriented Metrics: Size Oriented Metrics Productivity = KLOC / Person – Month Quality = Defects / KLOC Cost = Cost / KLOC Documentation = Pages of Doc. / KLOC Critics of Size Oriented Metrics: Critics of Size Oriented Metrics Language Independent Well Designed Short Programs are Penalized Do not work well with non – procedural languages Use in Planning is difficult because the planner must estimate LOC before the design is completed Function Oriented Metrics: Function Oriented Metrics Indirect Measures of Software which focus on Functionality and Utility. It is based on Function Point Method Function Point denoted as FP is derived from countable measures and assessment of software complexity Function Oriented Metrics: Function Oriented Metrics Five Characteristics are used to calculate Function Points. The First is Number of User Inputs The Second is Number of User Outputs The Third is Number of User Inquiries The Fourth is Number of Files The Fifth is Number of External Interfaces Function Oriented Metrics: Function Oriented Metrics The Characteristics are Weighed as indicated Characteristics Simple Average Complex Number of User Inputs 3 4 6 Number of User Outputs 4 5 7 Number of User Inquiries 3 4 6 Number of Files 7 10 15 Number of External Interfaces 5 7 10 PowerPoint Presentation: The weighted values are summed and function points are calculated using the following formula FP = counti_total * (0.65 + 0.01 * SUM (Fi)) Where Fi are Complexity adjustment values Complexity Adjustment Values are calculated by rating each of the following questions from 0 to 5 0 is No Influence 1 is Incidental 2 is Moderate 3 is Average 4 is Significant 5 is Essential Critical Questions: Critical Questions Does the system require reliable backup and recovery Are data Communication required? Is Performance Critical? Are there distributed processing functions? Will the system run in an existing, heavily utilized operational environment? Does the system require online data entry? Does online data entry require the input transaction to be built over multiple screens or operations? Critical Questions: Critical Questions Are the master files updated on – line? Are the inputs, outputs, files or inquiries complex? Is the internal processing complex? Is the code designed to be reusable? Are conversions and installation included in the design? Is the system designed for multiple installations in different organisations? Is the application designed to facilitate change and ease of use by the user? Feature Points: Feature Points Number of user inputs * 4 Number of user outputs * 5 Number of user inquiries * 4 Number of Files * 7 Number of External Interfaces * 7 Algorithms * 3 Measuring Quality: Measuring Quality Correctness - degree to which software perform its desired function Maintainability - time taken to analyze, design and implement the change Integrity - ability to withstand attack to its security. It is based on threat and security. It is denoted by the following formulae Integrity = sum((1- threat) * (1 – security)) Usability - user friendliness User Friendliness: User Friendliness Physical and Intellectual skill required to learn the system. Time required to become moderately efficient in the use of the system The net increase in productivity over the system it replaces A subjective assessment of user’s attitude towards the system. Human Dimension: Human Dimension Analyst Designer Programmer Operator Maintenance User Analyst: Analyst Studies the existing System Projects the requirement of a new system Undertakes requirement analysis to gather information from users through Questionnaire, Direct Observation and interview Presents the requirement to the designer Designer: Designer Interacts with the analyst Identifies the modules or subsystems required Plans the interface between modules Creates algorithm to implement his plans based on his rough design Programmer: Programmer Interacts with the designer Develops the source code based on algorithm developed by the designer Ensures data check in the program Ensures error detection mechanism in the program Obeys syntax and semantic rules of the programming language while developing the source code Operator: Operator Ensures day to day operation of the program Ensures security and backup of the program Deducts errors and correct it Maintenance: Maintenance Updates the Program to meet future requirements Implement the modified versions to be accepted by the users User: User Participates with the Analyst to find out the requirement from a software product Makes use of the software for their organisation work Customers who are referred as indirect end users als use the software to get their works done efficiently. Knowledge Dimension or Skills Required: Knowledge Dimension or Skills Required Technical Skill – Competence in the subject under development Managerial Skill – To manage the project personnel and control cost Communication Skill – To interact with users and team members Interpersonal Skill – Interaction with other Teams Documentation Skill – To maintain and provide timely instructions. Software Requirement Specification: Software Requirement Specification Product Overview Maintenance Requirement Functional Requirement Performance Requirement Error Handling Design Guidelines Acceptance Standards Input and Output Formats Displays Report User Manual: User Manual Introduction 1. An overview of the Product 2. An overview of the manual 3. Technology used to develop the Product Getting started 1. Getting Help 2. Getting a Sample Run 3. Commands, Used Reports, Dialogues 4. Special feature of the products such as Error Handling, File Maintenance etc. Syntax for Commands Quality Assurance: Quality Assurance Assigning Responsibilities to promote quality Checks for Adequacy of Documentation Standard Practices and Conventions to be used Reviews and Audits to be conducted Methods and Facilities to be sued Retain Quality Assurance Records Walkthrough and Inspections: Walkthrough and Inspections Material being examined is presented to the reviewers and is evaluated by the reviewers They walkthrough the process and raise questions.