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:

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:

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:

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:

Indirect Measurement:

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:

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

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:

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.

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.