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

Software Engineering Unit - I Software Engineering

The document provides an overview of software engineering across 5 units: Unit 1 discusses software processes and models like prototyping as well as requirements engineering. Unit 2 covers software design principles and concepts like effective modular design and architecture. Unit 3 is about software testing fundamentals including different types of testing. Unit 4 summarizes software configuration management processes and quality assurance organization. Unit 5 explains estimation methods and phases as well as design and development issues.

Uploaded by

drabdulsamath
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

Software Engineering Unit - I Software Engineering

The document provides an overview of software engineering across 5 units: Unit 1 discusses software processes and models like prototyping as well as requirements engineering. Unit 2 covers software design principles and concepts like effective modular design and architecture. Unit 3 is about software testing fundamentals including different types of testing. Unit 4 summarizes software configuration management processes and quality assurance organization. Unit 5 explains estimation methods and phases as well as design and development issues.

Uploaded by

drabdulsamath
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 8

SOFTWARE ENGINEERING

UNIT - I

SOFTWARE ENGINEERING
Software Engineering: A Layered Technology – Software Process – Software Process Models –
The Prototyping. Requirement Engineering– Software prototyping - Elements of analysis model
– Data modeling – Functional modeling and information flow

UNIT -II

SOFTWARE DESIGN
Software design and Software engineering – The Design process – Design principles – Design
concepts – Effective modular design –Software Architecture

UNIT – III

SOFTWARE TESTING
Software testing fundamentals – Test Case Design - White box testing – Basis path testing –
Control structure testing – Black box testing. Unit testing – Validation testing – System testing.

UNIT – IV

SOFTWARE CONFIGURATION MANAGEMENT


Software Configuration Management: Definitions and terminology – processes and activities.
Software Quality assurance: Definitions – Quality control and Quality assurance – Organization
of Structures. Risk Management: Risk Identification – quantification - Monitoring - Mitigation.
Software requirements gathering: Steps to be followed – Outputs and Quality Records - Skill sets
required – Challenges.

UNIT – V

ESTIMATION
Estimation: What is Estimation? – When and Why? – Three phases of Estimation – Estimation
methodology – Formal models of Size Estimation. Design and Development phases: Reusability
- Technology choices – Standards – Portability -User interface issues – Testability - The Effect
of Internet on Project Management.
SOFTWARE ENGINEERING

UNIT – I

SOFTWARE

A textbook description of software might take the following form:

1. Software is instruction (Computer Programs ) that when executed provide desired function and
Performance.

2. Data structures that enable the programs to adequately manipulate information


3. Documents that describe the operation and use of the programs

Software Characteristics:

Software is a logical rather than a physical system element. Therefore, software has
characteristics that are considerably different than those of hardware:

1. Software is developed or engineered, it is not manufactured in the classical sense.


2. Software doesn't "wear out."
3. Although the industry is moving toward component-based assembly, most software continues
to be custom built.

Software Applications

System software:

System software is a collection of programs written to service other programs. Some system
software (e.g., compilers, editors, and file management utilities) process complex, but
determinate, information structures. Other systems applications (e.g., operating system
components, drivers, telecommunications processors) process largely indeterminate data.

In either case, the system software area is characterized by heavy interaction with computer
hardware; heavy usage by multiple users; concurrent operation that requires scheduling, resource
sharing, and sophisticated process management; complex data structures; and multiple external
interfaces.

Real-time software:

Software that monitors/analyzes/controls real-world events as they occur is called real time.
Elements of real-time software include a data gathering component that collects and formats
information from an external environment, an analysis component that transforms information as
required by the application, a control/output component that responds to the external
environment, and a monitoring component that coordinates all other components so that real-
time response (typically ranging from 1 millisecond to 1 second) can be maintained.
Business software:

Business information processing is the largest single software application area. Discrete
"systems" (e.g., payroll, accounts receivable/payable, inventory) have evolved into management
information system (MIS) software that accesses one or more large databases containing
business information. Applications in this area restructure existing data in a way that facilitates
business operations or management decision making. In addition to conventional data processing
application, business software applications also encompass interactive computing (e.g., pointof-
sale transaction processing).

Engineering and scientific software:

Engineering and scientific software have been characterized by "number crunching" algorithms.
Applications range from astronomy to volcanology, from automotive stress analysis to space
shuttle orbital dynamics, and from molecular biology to automated manufacturing. However,
modern applications within the engineering/scientific area are moving away from conventional
numerical algorithms. Computer-aided design, system simulation, and other interactive
applications have begun to take on real-time and even system software
characteristics.

Embedded software:

Intelligent products have become commonplace in nearly every consumer and industrial market.
Embedded software resides in read-only memory and is used to control products and systems for
the consumer and industrial markets. Embedded software can perform very limited and esoteric
functions (e.g., keypad control for a microwave oven) or provide significant function and control
capability (e.g., digital functions in an automobile such as fuel control, dashboard displays, and
braking systems).

Personal computer software:

The personal computer software market has burgeoned over the past two decades. Word
processing, spreadsheets, computer graphics, multimedia, entertainment, database management,
personal and business financial applications, external network, and database access are only a
few of hundreds of applications.

Web-based software:

The Web pages retrieved by a browser are software that incorporates executable instructions
(e.g., CGI, HTML, Perl, or Java), and data (e.g., hypertext and a variety of visual and audio
formats). In essence, the network becomes a massive computer providing an almost unlimited
software resource that can be accessed by anyone with a modem.
Artificial intelligence software:

Artificial intelligence (AI) software makes use of nonnumerical algorithms to solve complex
problems that are not amenable to computation or straightforward analysis. Expert systems, also
called knowledge based systems, pattern recognition (image and voice), artificial neural
networks, theorem proving, and game playing are representative of applications within this
category.

SOFTWARE ENGINEERING: A LAYERED TECHNOLOGY

software engineering, a definition proposed by Fritz Bauer

[Software engineering is] the establishment and use of sound engineering principles in order to
obtain economically software that is reliable and works efficiently on real machines.

The IEEE [IEE93] has developed a more comprehensive definition when it states:
Software Engineering:

(1) The application of a systematic, disciplined, quantifiable approach to the development,


operation, and maintenance of software; that is, the application of engineering to software.

(2) The study of approaches as in (1).

PROCESS, METHOD AND TOOLS

Software Engineering Layers

Software engineering is a layered technology. Any engineering approach (including software


engineering) must rest on an organizational commitment to quality.
Process
The foundation for software engineering is the process layer. Process defines a framework for a
set of key process areas (KPAs) that must be established for effective delivery of software
engineering technology. The key process areas form the basis for management control of
software projects and establish the context in which technical methods are applied, work
products (models, documents, data, reports, forms, etc.) are produced, milestones are established,
quality is ensured, and change is properly managed.

Methods
Software engineering methods rely on a set of basic principles that govern each area of the
technology and include modeling activities and other descriptive techniques.

Tools
Software engineering tools provide automated or semi-automated support for the process and the
methods. When tools are integrated so that information created by one tool can be used by
another, a system for the support of software development, called computer-aided software
engineering, is established. CASE combines software, hardware, and a software engineering
database (a repository containing important information about analysis, design, program
construction, and testing) to create a software engineering environment analogous to CAD/CAE
(computer-aided design/engineering) for hardware.

THE SOFTWARE PROCESS

Software process can be characterized as shown in the above figure.


A common process framework is established by defining a small number of framework activities
that are applicable to all software projects, regardless of their size or complexity.

A number of task sets—each a collection of software engineering work tasks, project milestones,
work products, and quality assurance points—enable the framework activities to be adapted to
the characteristics of the software project and the requirements of the project team. Finally,
umbrella activities—such as software quality assurance, software configuration management,
and measurement—overlay the process model. Umbrella activities are independent of any one
framework activity and occur throughout the process.
Incremental Process Model

You might also like