Chapter 1 Software Engineering Tools
Chapter 1 Software Engineering Tools
Practices
1
Chapter one
Introduction to software engineering tools
and practices
Contents
• Introduction
• Basic of CASE tools
2
Definition
Software can be defined as a set of programs and
associated documentations.
which includes
A number of separate programs
Configuration files
System documentation
User documentation
3
What is software engineering?
Software engineering is defined as a process of
analyzing user requirements and then designing,
building, and testing software application which will
satisfy those requirements.
IEEE, in its standard 610.12-1990, defines software
engineering as the application of a systematic,
disciplined, which is a computable approach for the
development, operation, and maintenance of
software.
4
What is software engineering?
Software engineering (SE) is an intellectual
activity and thus human-intensive.
Software is built to meet a certain functional goal and
satisfy certain qualities.
Software processes also must meet certain qualities.
5
software engineering
Fundamental assumptions of software engineering
6
Software Engineering Concepts:
Definitions
Project: set of activities to develop a software
system.
Activity: a phase in which related
tasks are carried out.
Task: effort that uses resources and produces
work product.
Resources: time, equipment, people (participants)
Work Product: a model, system, or artifact.
7
Basics of Software Engineering
8
Software Engineering Activities
Requirements Elicitation
Analysis
Object Design
System Design
Implementation
Validation/testing
9
Software Engineering Tools
A software tool is a program that automates some of the labor
involved in the management, design, coding,
inspection, or maintenance of other programs.
testing,
Tools allow repetitive, well-defined actions to be automated,
thus reducing the cognitive load on the software engineer.
The engineer is then free to concentrate on the creative aspects
of the process.
Tools are often designed to support particular methods,
reducing any administrative load associated with applying
the method manually.
10
CASE Tools
CASE stands for Computer Aided Software Engineering.
It means, development and maintenance of software projects
with help of various automated software tools.
Computer-aided software engineering (CASE) is the
scientific application of a set of tools and methods to a
software system which is meant to result in high-quality,
defect-free, and maintainable software products.
It also refers to methods for the development of
information systems together with automated tools that
can be used in the software development process.
11
CASE Tools…
CASE tools are used by software project
managers, analysts and engineers to develop software
system.
There are number of CASE tools available to simplify various
stages Design
tools, of Software Development
tools, Life Cycle such
Project management tools,as Analysis
Management tools, Documentation tools are to name a few.
Database
Use of CASE tools accelerates the development of project to
produce desired result and helps to uncover flaws before
moving ahead with next stage in software development.
12
CASE Tools…
Therefore, CASE tools include design editors, data
dictionaries, compilers, debuggers, system building tools,
etc.
CASE also refers to the methods dedicated to an
engineering discipline for the development of
information system using automated tools.
CASE is mainly used for the development of quality
software which will perform effectively.
13
CASE Tools…
Characteristics of CASE:
It is a graphic oriented tool.
14
Why CASE Tools?
Architecture management
• Model, design and rapidly build software systems,
and computer applications.
Change and Release Management
• Improve software delivery and life cycle traceability, from
requirements to development.
Software development Management
• Align projects for improved
productivity and predictability
Quality Management
•
Ensure software functionality, reliability and
performance 15
Goals of CASE Tools
Supply basic functionality, do routine tasks automatically.
Enhance productivity
Increase software quality
Integration with other tools
16
Importance of CASE
CASE allows for rapid development of software.
Produce systems with a longer effective operational life.
Produce systems that most closely meet user needs and
requirements.
Produce system with excellent documentation.
Produce systems that needs less systems
support. Produce more flexible systems.
17
Drawbacks of CASE
Very complex
Expensive
Difficult to
customize
Require training of maintenance staff
Not easily maintainable
Fragile
18
Components of CASE Tools
19
CASE Tools
There are upper CASE and Lower CASE tools.
20
CASE Tools
Two types of tools used by software engineers.
1. Analytical tools
Stepwise refinement (top-down design)
Cost-benefit analysis
Software metrics
2. CASE tools
Diagram tools
Process Modeling Tools
Project Management Tools…
21
Symptoms of Software Development Problems
24
Software Engineering Best Practices…
1. Develop software iteratively.
This approach is one of continuous discovery, invention, and
implementation, with each iteration forcing the development team to
drive the project’s artifacts to closure in a predictable and repeatable way.
2. Manage requirements.
The challenge of managing the requirements of a software-intensive
system is that they are dynamic: you must expect them to change during
the life of a software project.
Identifying a system’s true requirements—those that weigh most heavily
on the system’s economic and technical goals—is a continuous process.
25
Software Engineering Best Practices…
3. Use component-based architectures.
Component-based development (CBD) is an important approach to
software architecture because it enables the reuse or customization of
existing components from thousands of commercially available sources.
4. Visually model software.
Modeling is important because it helps the development team visualize,
specify, construct, and document the structure and behavior of a
system’s architecture.
26
Software Engineering Best Practices…
27