Software Engineering Practices and Issues.pptx

1,006 views 22 slides Apr 13, 2024
Slide 1
Slide 1 of 22
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22

About This Presentation

Software engineering practices


Slide Content

Managerial issues Managerial activities are as important as the technical activities for the success of a software product. Managers control the resources and the environment in which technical activities occur. Managers also have the responsibility for ensuring that software products are delivered on time and within cost estimates and that products exhibit the functional and quality attributes desired by the customer. Other management responsibilities include developing business plans, recruiting the customers, developing marketing strategies and recruiting and training employees.

MANAGEMENT PROBLEMS Planning for software engineering projects. Procedures and techniques for the selection of project managers are poor. The accountability of many software engineering projects is poor leaving some question as to who is responsible for various project functions. The ability to accurately estimate the resources required to accomplish a software development project is poor. Success criterion for software development projects are frequently inappropriate. This results in software products that are unreliable difficult to use and difficult to maintain.

Decision rules to aid in selecting the proper organizational structure are not available.   Decision rules to aid in selecting the correct management techniques for . software engineering projects are not available. Procedures methods and techniques for designing a project control system that will enable project managers to successful control their project are not readily available. Procedures, techniques, strategies and aids that will provide visibility of progress to the project manager are not available.   Standards and techniques for measuring the quality of performance and the quality of production expected from programmers and data processing analysts are not available.

SOLUTION TO THE PROBLEMS  Educate and train top management project managers and software developers.  Enforce the use of standards, procedures and documentation. Analyze data from prior software projects to determine effective methods.  Define objectives in terms of quality desired.  Define quality in terms of deliverable.  Establish success priority criteria.  Allow for contingencies.  Develop truthful, accurate cost and schedule estimates that are accepted by management and customer and manage to them. Select project managers based on ability to manage software projects rather than on technical ability or availability. Make specific work assignments to software developers and apply job performance standards.

Planning a Software Project Defining the problem Goals and Requirements 1

2 Introduct i on Lack of planning : a primary cause of schedule slippage, cost overruns, poor quality, and high maintenance Careful planning : is required for both devlopment process and work products Major purpose of planning : to clarify goals, needs, and constraints Preliminary plans will be modified as the workproducts evolve Planning for change is one of the key aspects of successful planning

3 Defining the problem Every man-made entry is first a concept in someone’s mind. Computing systems, like other products of technology, are developed in response to perceived needs. Sources of software product ideas include : externally generated customer requirements, internal organizational requirements, marketing plans, and organizational mission plans.

Steps in Planning a Software Project 4 Defining the problem Developing a definitive statement of the problem to be solved. Include a description of the present situation , problem constraints , and a statement of the goals to be achieved. Justify a computerized solution strategy for the problem. Identify the functions to be provided by, and the constraints on, the hardware subsystem, the software subsystem, and the people subsystem. Determine the system-level goals and requirements for the development process and the work products. Establish high-level acceptance criteria for the system.

5 Developing a solution strategy Outline several solution strategies, without regard for constraints. Conduct a feasibility study for each strategy. Recommend a solution strategy, indicating why other strategies were rejected. Develop a list of priorities for product characteristics.

Planning the development process 6 Define a life-cycle model and an organizational structure for the project. Plan the configuration management, quality assurance, and validation activities. Determine phase-dependent tools, techniques, and notations to be used. Establish preliminary cost estimates for system development. Establish a preliminary development schedule. Establish preliminary staffing estimates. Develop preliminary estimates of the computing resources required to operate and maintain the system. Prepare a glossary of terms. Identify sources of information, and refer to them throughout the project plan.

7 Goals and Requirements Given a concise statement of the problem and an indication of the constraints that exist for its solution, preliminary goals and requirements can be performed. ¶ Goals Goals are targets for achievement, and serve to establish the framework for a software development project. Goals apply to both development process and work products.

8 Goals can be either : QUALITATIVE OR QUANTITATIVE A qualitative process goal A quantitative process goal A qualitative product goal A quantitative product goal

9 A qualitative process goal o The development process should enhance the professional skills of quality assurance personnel. A quantitative process goal The system should be delivered within 12 months. A qualitative product goal The system should make user’s job more interesting. A quantitative product goal The system should reduce the cost of a transaction by 25 percent

10 Some goals apply to every project and every product . For e.g. Every project and every product should be useful , reliable , understandable , and cost-effective . Every development process should deliver work products on time and within cost estimates . Every development process should provide project personnel with the opportunity to learn new skills . Other goals include : transportability , early delivery of subset capabilities and ease of use by nonprogrammers

11 Re q ui r ements Requirements specify capabilities that a system must provide in order to solve a problem. Requirements include functional requirements, performance requirements, and requirements for the hardware, firmware, software, and user interfaces. Requirements may also specify development standards and quality assurance standards for both project and product.

Requirements should be quantified whenever possible. Quantified requirements such as : Phase accuracy shall be within 0.5 degrees, Response to external interrupts shall be 0.25 second maximum, System shall reside in 50K bytes of primary memory, excluding file buffers, System shall be fully operational 95 percent of each 24- hour period, can be used as the basis for acceptance testing of the delivered system.

Qualitative requirements such as : Accuracy shall be sufficient to support mission, System shall provide real-time response, System shall make efficient use of primary memory, System shall be 99 percent reliable, are often meaningless and can result in misunderstandings and disagreements between developers and customers.

High-level goals and requirements can often be expressed in terms of quality attributes Glossary of Quality Attributes Portability : The ease with which software can be transferred from one computer system to another. Reliability : The ability of a program to perform a required function under stated conditions for a stated period of time.

Efficiency : The extent to which software performs its intended functions with a minimum consumption of computing resources. Accuracy : A qualitative assessment of freedom from error. A quantitative measure of the magnitude of error, preferably expressed as a function of the relative error. Error : A discrepancy between a computed value or condition and the true, specified, or theoretically correct value or condition.

Robustness : The extent to which software can combine to operate correctly despite the introduction of invalid inputs. Correctness : The extent to which software is free from design defects and from coding defects, that is fault-free. The extent to which software meets its specified requirements. The extent to which software meets user expectations. These high-level quality attributes can in turn be expressed in terms of attributes that can be built into the work products.

Plans describe the mechanisms to be used in achieving goals and requirements. For e.g. The goal of delivering work products on time can be expressed in terms of reaching each project milestone on time. A milestone is a significant event in the software product life-cycle. Examples of milestones include completion of requirements analysis, completion of design, and integration and successful testing of all system components.

Thank You
Tags