0% found this document useful (0 votes)
24 views

Unit I - Chapter 1

This document provides an overview of software engineering. It defines software engineering as the systematic development and maintenance of software through a disciplined approach. The document discusses how software engineering addresses problems related to scale, costs, schedules, quality, and consistency in software development. It also outlines the typical phases of the software development process: requirements analysis, design, coding, and testing. Project management is discussed as important for resource allocation and scheduling across these phases. The document concludes by examining some key challenges in modern software engineering like heterogeneity, faster delivery, trust, and maintaining legacy systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Unit I - Chapter 1

This document provides an overview of software engineering. It defines software engineering as the systematic development and maintenance of software through a disciplined approach. The document discusses how software engineering addresses problems related to scale, costs, schedules, quality, and consistency in software development. It also outlines the typical phases of the software development process: requirements analysis, design, coding, and testing. Project management is discussed as important for resource allocation and scheduling across these phases. The document concludes by examining some key challenges in modern software engineering like heterogeneity, faster delivery, trust, and maintaining legacy systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Unit I – Chapter 1 1

6/17/2022
▪ It is a collection of Integrated programs.

▪ It consists of carefully-organized instructions and code written by


programmers in any of various special computer languages.

▪ Computer programs and associated documentation such as


requirements, design models and user manuals.

6/17/2022 2
6/17/2022 3
▪ Generic products
▪ Customized
▪ 1. Generic Product:
• Stand-alone systems that are marketed and sold to any customer who
wishes to buy them.
• Examples – PC software such as graphics programs, project management
tools; CAD software; software for specific markets such as appointments
systems for dentists.
• The specification of what the software should do is owned by the software
developer and decisions on software change are made by the developer.
6/17/2022 4
▪ 2. Customized
• Software that is commissioned by a specific customer to meet
their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
• The specification of what the software should do is owned by
the customer for the software and they make decisions on
software changes that are required.

6/17/2022 5
▪ It is an engineering discipline that is concerned with all aspects
of software production.
▪ According to IEEE’s definition, “ SE can be defined as the
application of a systematic, disciplined, quantifiable approach to
the development, operation and maintenance of software, and the
study of these approaches; that is the application of engineering
to software.

▪ Software engineering is a systematic approach to the analysis,


design, implementation and maintenance of software.

▪ Programming is only a small part of software engineering.


6/17/2022 6
▪ Software is not merely a collection of computer programs.

▪ There is a distinction between a program and programming system’s product.

▪ A program is generally complete in itself and is used usually by the author of the
program.

▪ There is very little documentation or other aids to help other people use the
program.

▪ A programming system’s product is used largely by people other than the


developers of the system.

▪ The users may be from different backgrounds, so a proper user-interface should be


provided
6/17/2022 7
▪ Software is Expensive

▪ Labour intensive

▪ Delivered lines of Code (DLOC)

▪ Late, Costly and Unreliable

▪ Runaway project – budget & schedule out of ctrl

▪ Incomplete project within time – becomes costly

▪ Problem of Change and Rework

▪ Corrective maintenance

▪ Adaptive maintenance

▪ Regression testing – execute old test case to avoid new errors

▪ Additional requirements lead to rework.


6/17/2022 8
▪ Change and rework is a major contributor to s/w crisis.
▪ “Software engineering is an application of science and mathematics by
which the capabilities of computer equipment’s are made useful to man via
computer programs, procedures and associated documentation”.
▪ Some of the problems are:

▪ 1. Problem of scale

▪ 2. Cost, Schedule and Quality


▪ Correctness Portability
▪ Reliability Reusability
▪ Efficiency Inter-operability
▪ Usability Flexibility
▪ Maintainability

▪ 3. The Problem of Consistency 6/17/2022 9


▪ Objectives:

➢ Develop methods and procedures for s/w dvlpt

➢ Consistently produce high quality s/w with low cost and small
cycle time.
➢ High quality, low cost, small cycle time scalability and
consistency.

▪ To achieve these objectives, design a proper software process


and its control becomes the primary goal of software engineering.
This process is called development process. 6/17/2022 10
▪ Divide and conquer the development process.

▪ A phased development process allows proper checking for quality and


progress at some different points during the development.

▪ Different phases can have different activities.

➢ Requirement specification for understanding and clearly stating the


problem.
➢ Design for deciding a plan for the solution.

➢ Coding for implementing the planned solution.

➢ Testing for verifying the programs. 6/17/2022 11


▪ 1. Requirement Analysis:

▪ It is done in order to understand the problem to be solved.

▪ The emphasis in requirement analysis is on identifying ‘what’ is

needed from the system, and not ‘how’ the system will achieve the
goals.

▪ Two parties are involved: client and developer.

▪ The developer has to develop the system in-order to satisfy

client’s needs.
6/17/2022 12
▪ The communication gap between the client and the developer which
has to be properly bridged during requirement analysis.

▪ Goal is to produce the software requirement specification document.

▪ The person who is responsible for requirement analysis is called as


analyst.

▪ The analyst has to make the client aware of the new possibilities which
will help both the client and analyst to determine the requirements.

▪ A preliminary user manual that describes all major user-interfaces


can also be given as a part of the requirement document.
6/17/2022 13
▪ 2. Software Design
▪ Purpose - To plan a solution for the problem specified by the requirement
document.

▪ Design phase takes us towards ‘how’ to satisfy the needs.

▪ The output of this phase is the design document which is the blue-pint or
plan for the solution and used later during implementation, testing and
maintenance.

▪ Two phases- System design and detailed design.

▪ System design aims - to identify the module that should be included in the
system.

▪ Detailed design, the internal logic of each of the modules specified during
system design is decided. 6/17/2022 14
▪3. Coding:
▪ Goal - to translate the design of the system into code in a given

programming language.

▪ And implement the design in the best possible manner.

▪ The coding phase affects both testing and maintenance

profoundly.

▪ Well-written code can reduce the testing and maintenance effort.

6/17/2022 15
4. Testing:
▪ Testing not only has to uncover errors introduced during coding,
but also errors introduced during previous phases.

▪ A) Unit Testing

▪ - Each module is tested separately

▪ - Performed by the coder after coding the module.

▪ - Purpose to execute diff parts of the modules to detect coding


errors.

6/17/2022 16
▪ B) Integration Testing:
▪ - Done to detect design errors.

▪ C) System Testing:
▪ - Performed after system is put together.
▪ - The system is tested against the requirements to see whether all
the requirements are met or not.

▪ D) Acceptance Testing:
▪ - Performed by giving user’s real- world data to demonstrate to
the user.
▪ - The final output of this phase is test report and error report.
6/17/2022 17
▪ Development process does not specify how to allocate resources to

different activities in a process.

▪ It also will not specify schedule for each activity,

➢ How to divide work within a phase,

➢ How to ensure that each phase is being done properly etc.

▪ Without properly handling these issues, it is unlikely that cost and

quality objectives can be met.

▪ These types of issues are properly handled by project management.


6/17/2022 18
▪ Software metrics are quantifiable measures that could be used to
measure different characteristics of a software system or the software
development process.

▪ Two types of metrics - Product metrics and Process metrics.

▪ Product metrics are used to quantify characteristics of the product


being developed. i.e. the software.

▪ Process metrics are use to quantify characteristics of the process being


used to develop the software.
➢Aim - to measure such considerations as productivity, cost, and
resource requirements, effectiveness of quality assurance measures,
6/17/2022 19
and the effect of development techniques and tools.
▪ 1. Heterogeneity
▪ Developing techniques for building software that can cope with
heterogenous (different) platforms and execution environments.

▪ 2. Delivery
▪ Developing techniques that lead to faster delivery of software.

▪ 3. Trust
▪ Developing techniques that demonstrate that software can be trusted
by its users.
6/17/2022 20
▪ 4. Shifts in economics of computing

▪ Lower h/w costs and greater development and maintenance costs

▪ 5. Shifts in technology

▪ Extensive networking

▪ Availability and adoption of OO technology

▪ Graphical User Interfaces

▪ 6. Budgets and costs

6/17/2022 21
▪ 7. Maintaining Quality

▪ 8. Legacy Systems

▪ Old, valuable systems must be maintained and updated.

▪ 9. Ethics

▪ Meet the evolving ethical challenges posed by the prevalence of

digital technologies

6/17/2022 22
End of Chapter 1

6/17/2022 23

You might also like