Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

F6S: Software Engineering

Software Tools and Environments


Nasrullah Memon

Wednesday February 08, 2006

http://cs.aaue.dk/contribution/courses/
spring2006/f6s/seng/index.html
Department of Software and Media Technology AAUE Denmark
Slide 1

What is a
Software Tool ?
• Software tools are programs that help us:
– Write
– Analyze and Measure programs
– Test and Verify software documents
– Change
– Manage

Department of Software and Media Technology AAUE Denmark


Slide 2

1
What is a
Software Environment ?

• The collection of software tools:


– Environment
– Software Environment
– Software Development Environment (SDE)

Department of Software and Media Technology AAUE Denmark


Slide 3

What is an
Integrated Environment ?

• Most of the cases, tools of an environment are


integrated by some mechanisms:
– User Interface
– Product
– Software Process

Department of Software and Media Technology AAUE Denmark


Slide 4

2
The theme

• A tool can be used


– for personal productivity and/or
– for teamwork (workgroup, collaborative) productivity Æ Computer-
Supported Collaborative Work (CSCW) or workgroup computing
• Without adequate level of maturity, the use of a tool can hurt more than help
• A generic term for software engineering tools is Computer Assisted
Software Engineering (CASE)
• Tools that comprehensively assist programmers are termed Integrated
Development Environments (IDEs)

Department of Software and Media Technology AAUE Denmark


Slide 5

Software Requirement Tools

Tools for eliciting, recording, analyzing and


validating software requirements

Department of Software and Media Technology AAUE Denmark


Slide 6

3
Analyst Pro Version 5.0

Analyst Pro is a tool for requirements management, tracing and


analysis. It is an affordable, powerful, and easy-to-use
specification, requirements tracking and documentation tool. With
Analyst Pro, requirements can be traced throughout the design and
test process. It also provides integrated configuration management
to simplify your development process. Analyst Pro is a very
versatile tool that can be used for many software, systems and
product development projects. It can be used with any process such
as Agile, Incremental, Waterfall, Spiral, etc. This easy to install
and configure tool allows effective collaboration of dispersed
teams.

Department of Software and Media Technology AAUE Denmark


Slide 7

Software Design Tools

The tools for creating and checking software


design. There is a variety of such tools, with
much of this variety being a consequence of the
diversity notations and methods

Department of Software and Media Technology AAUE Denmark


Slide 8

4
Software Construction Tools

Program editors are tools used for creation and modification of


programs (and possibly associated documents). These tools can be
general purpose text or document editors, or they can be
specialized for a target language. Some environments provides
both interactive editing and compilation via interface. The
compilers topic also covers pre-processors, linkers/loaders, and
code generators. The debugging tools have been made a separate
topic since they support the construction process but are different
from program editors or compilers

Department of Software and Media Technology AAUE Denmark


Slide 9

Software Testing Tools

Testing tools can be categorized according to where in the testing


process they are used. Test generators assist the development of
test cases. Test execution frameworks enable the execution of test
cases in a controlled environment where the behavior of the object
under test is observed. Test evaluation tools support the
assessment of the results of test execution, helping to determine
whether the observed behavior conforms to the expected behavior.
Test management tools provide support for testing process.

Department of Software and Media Technology AAUE Denmark


Slide 10

5
Software Maintenance Tools

• The tools to assist human comprenhension programs. The tools


include visualization tools such as animators and program
slicers.
• The reverse engineering tools that assist the process of working
backwards from an existing product to create artifacts such as
design and specification descriptions.
• Re-engineering tools extend this approach by applying
transformations to generate a new product from an old one.
Such tools allow translation of a program to a new programming
language, or a database to a new format.
• Traceability tools to facilitate maintenance

Department of Software and Media Technology AAUE Denmark


Slide 11

SE Process Tools

• CASE tools or environments that cover multiple phases of


software development life cycle. Such tools perform multiple
functions and hence potentially interact with the software
process that is being enacted.
• Those environments that explicitly incorporate software process
information and that guide and monitor the user according to a
defined process.
• The tools to model and investigate software processes

Department of Software and Media Technology AAUE Denmark


Slide 12

6
Software Quality Tools

• The tools to support reviews and inspections


• The tools that analyze software artifacts, such as
syntactic and semantic analyzers, and data, control
flow and dependency analyzers. Such tools are
intended for checking software artifacts for
conformance or for verifying desired properties
• The tools deals with analysis of dynamic behavior or
performance

Department of Software and Media Technology AAUE Denmark


Slide 13

Software Configuration Management Tools

• Tools for configuration management have been


categorized as either related to version
management or to software release and build
management

Department of Software and Media Technology AAUE Denmark


Slide 14

7
SE Management Tools

Management tools have been subdivided in four


categories:
• Project Planning and Tracking
• Risk Analysis
• Risk Management and Measurement
• Tracking defects, enhancements, issues and problems

Department of Software and Media Technology AAUE Denmark


Slide 15

Infrastructure Support Tools

• Tools that provide interpersonal


communication, information retrieval, and
system administration and support

Department of Software and Media Technology AAUE Denmark


Slide 16

8
Classification of SE Tools

SE Tools can be classified into FOUR groups


1. Project Management Tools
2. System Modeling Tools (Traditionally known
as CASE tools)
3. Integrated Development Environments (IDEs)
4. Change and Configuration Management Tools

Department of Software and Media Technology AAUE Denmark


Slide 17

Project management tools


• Project management is about distribution and control of
budgets, time and people
• “if you can’t plan it, you can’t do it”
• “unless you know your past, you cannot properly plan your
future”
• Project management requires tools for effective scheduling and
controlling project activities, for estimating project costs, for
collecting metrics, etc
• Contemporary tools are frequently included in integrated
management support environments that tie together typical
project management with strategic planning, business modeling,
portfolio management, document management, workflows, etc.
• Many of traditional project management tools are available in
web-based versions
Department of Software and Media Technology AAUE Denmark
Slide 18

9
Categories of project management tools

1. Project scheduling and controlling


2. Aligning project and performance management with
strategic objectives
3. Unifying project management with web-based
collaboration and content management
4. Unifying project management with web-based
portfolio management
5. Integrating project management with metrics
6. Integrating project management with risk
management Department of Software and Media Technology AAUE Denmark
Slide 19

Project scheduling and controlling

• Activity network graphs identify events that must occur before


an activity can begin, specify the duration of each activity and
its due date, assign human and other resources to all activities,
etc.
– CPM (Critical Path Method) networks
– Gantt charts
• Project management tools are capable of generating activity
graphs once necessary project information is provided
• Project management tools adjust and rebuild schedules
whenever changes occur to an activity or to a resource
Department of Software and Media Technology AAUE Denmark
Slide 20

10
MS Project® (CPM chart)

Department of Software and Media Technology AAUE Denmark


Slide 21

Aligning project and performance management with


strategic objectives

• Project management is subservient to demands of effectiveness,


efficiency, and performance improvement
• Some project management tools are included in larger
environments to support a wide variety of managerial activities,
such as managing:
– goals
– development plans
– meetings
– e-mail
– documents
– performance reviews including annual reviews
Department of Software and Media Technology AAUE Denmark
Slide 22

11
Manage Pro™

Department of Software and Media Technology AAUE Denmark


Slide 23

Unifying project management with web-based


collaboration and content management

• Many software projects are distributed – they span


multiple people and cross organizational boundaries
• Project management becomes a “component” in a web-
based collaboration of knowledge workers
• Collaboration management includes support for
project stakeholders to lodge issues, define and assign
actions, document outcomes
• Content management for easy access and sharing of
documents and other informational content
Department of Software and Media Technology AAUE Denmark
Slide 24

12
eRoom (Gantt chart)

Department of Software and Media Technology AAUE Denmark


Slide 25

Unifying project management with web-based portfolio


management

• Portfolio management – process of enabling the enterprise to


align resources and investments with strategic objectives
• Tools in this category foster a web-based work environment for
– project discussions, tracking and work assignment
– team calendars and timesheets
– electronic meetings to reach consensus and take consultative decisions
– sharing project documents and maintaining versioning of them
– workflow automation and tracking of decisions
– conventional planning and scheduling with Gantt and CPM document
templates and patterns to encourage best practices
– aligning projects with strategic plans and business models
– managing individual and shared resources
– allocating skills to human resources and allocating resources to projects
– generation of cross project summaries and status indicators
Department of Software and Media Technology AAUE Denmark
Slide 26

13
eProject Enterprise

Department of Software and Media Technology AAUE Denmark


Slide 27

Integrating project management with metrics

• Metrics is the discipline of measuring software


development processes and products so that collected
information can aid future project planning
• Architectural design must be backed by metrics to
ensure system supportability, i.e. its understandability,
maintainability and scalability
• Metrics collection tools must be easy to use and not
obstructive
• What-If analysis
Department of Software and Media Technology AAUE Denmark
Slide 28

14
Small Worlds (what-if analysis)

Department of Software and Media Technology AAUE Denmark


Slide 29

Small Worlds (class internals analysis)

Department of Software and Media Technology AAUE Denmark


Slide 30

15
Integrating project management with risk management

• Risks – “potentially adverse circumstances that may impair the


development process and the quality of products”
• Risk management is a decision-making activity that assesses
the impact of risks (uncertainties) on decisions
– it weighs distributions of possible project outcomes versus
the probabilities of arriving at these outcomes
– given the acceptable level of tolerance on risk, it estimates
the likelihood with which a desired outcome will happen
• Tools that integrate project management with risk management
are frequently implemented as add-ins to conventional project
management tools (such as Microsoft Project), add-ins to
spreadsheets (such as Microsoft Excel), or as database
applications (e.g. on top of Microsoft Access).

Department of Software and Media Technology AAUE Denmark


Slide 31

Risk Radar™ (Risk data input)

Department of Software and Media Technology AAUE Denmark


Slide 32

16
@Risk (simulation outcomes)

Department of Software and Media Technology AAUE Denmark


Slide 33

System modeling tools

• Characteristics:
– visual
– present models at various level of abstraction
– traditionally known as CASE
– support teamwork (CSCW – computer supported cooperative
work)
• Can be classified into tools for:
– managing requirements
– visual UML modeling
– report generation
– database modeling
Department of Software and Media Technology AAUE Denmark
Slide 34

17
Managing requirements

• Requirements are text statements within a requirements document


– normally, one requirements document per use case
– defined at multiple levels of abstraction
– there is hierarchical arrangement between requirements
• Tool must facilitate team collaboration in:
– writing requirements document,
– identifying various categories of requirements in the documents,
– managing changes to requirements, and
– making requirements accessible to all developers.

Department of Software and Media Technology AAUE Denmark


Slide 35

IBM Rational Requisite Pro (requirements document)

Department of Software and Media Technology AAUE Denmark


Slide 36

18
IBM Rational Requisite Pro (requirements properties)

Department of Software and Media Technology AAUE Denmark


Slide 37

Visual UML modeling


• Tools in this category range from simple graphics-only tools to
repository-based tools supporting teamwork and allowing
customization of graphical representations
• The most sophisticated tools
– have a repository set up on a commercial database,
– provide complete integration of models,
– interface to other software engineering tools,
– support multiple versions of design artifacts and models,
– generate code for a variety of programming languages and
databases, etc.

Department of Software and Media Technology AAUE Denmark


Slide 38

19
IBM Rational Rose

Department of Software and Media Technology AAUE Denmark


Slide 39

Poseidon

Department of Software and Media Technology AAUE Denmark


Slide 40

20
Report generation

• So that visual models and related documentation can be shared


among all project stakeholders, not just developers
• Reports can be generated according to various templates and
various file formats
– templates determine the structure of documents
– users can specify required content
– file formats usually supported by modeling tools include
HTML, Microsoft Word, and/or Acrobat’s pdf
• tool generating HTML files should give an option to
generate HTML reports to one screen, thus allowing for
convenient printing

Department of Software and Media Technology AAUE Denmark


Slide 41

MagicDraw™ and IBM Rational Suite

Department of Software and Media Technology AAUE Denmark


Slide 42

21
Database modeling
• Database modeling requires unique set of capabilities
• Although high-level database models can be developed
using UML class diagrams, specific logical/physical
models require referencing tables, not classes
• Database specific concepts, not known to UML,
include also
– referential integrity,
– indexes,
– stored procedures,
– triggers.
• Differences between database management systems
must also be supported
Department of Software and Media Technology AAUE Denmark
Slide 43

Sybase PowerDesigner

Department of Software and Media Technology AAUE Denmark


Slide 44

22
Integrated Development Environments
(IDE)

• Software programming environments


• Standard capabilities of IDEs include
– code completion,
– support for programming standard features (code auditing),
– integration with the build tools such as Ant or make, etc.
• IDEs can be distinguished with regard to:
– integration with software modeling
– support for the scope and nature of application development
and required technologies
– integration with distributed development environments and
with change and configuration
Department of Software and Media Technology AAUE Denmark
Slide 45

Categories of IDE-s

• Routine programming tasks


– writing the program
– executing the program
– debugging the program
• Integration with software modeling
• Enterprise application development
• Integration with business components
• Integration with change and configuration management
Department of Software and Media Technology AAUE Denmark
Slide 46

23
Routine programming tasks (Sun ONE Studio)

Department of Software and Media Technology AAUE Denmark


Slide 47

Writing the program (Sun ONE Studio)

Department of Software and Media Technology AAUE Denmark


Slide 48

24
Writing the program (Sun ONE Studio)

Department of Software and Media Technology AAUE Denmark


Slide 49

Executing the program (Sun ONE Studio)

Department of Software and Media Technology AAUE Denmark


Slide 50

25
Debugging the program (Sun ONE Studio)

Department of Software and Media Technology AAUE Denmark


Slide 51

Integration with software modeling


(Together ControlCenter)

Department of Software and Media Technology AAUE Denmark


Slide 52

26
Enterprise application development
• In Java world, an enterprise IDE implies the support for the design,
development, and deployment of J2EE applications
• Enterprise-strength IDE is expected to support
– various templates to get job done quickly, including templates for JSP,
EJB, Java files, web services, etc.
– multiple GUI types
– immediate visualization in the code of changes in the GUI
– JDBC-compliant database connectivity
– reverse-engineering of preexisting database tables into entity beans ready
to be deployed on an application server

Department of Software and Media Technology AAUE Denmark


Slide 53

Sun ONE Studio for J2EE development

Department of Software and Media Technology AAUE Denmark


Slide 54

27
Integration with Business Components

• Business components constitute the middle-tier of a


multi-tier system architecture
• Business components are best deployed on a separate
server – an application server
• Development of a database back-end application is
usually performed in the following sequence:
– reverse engineer preexisting database schema/tables
– generate a set of GUI “views” that reflect the
database tables
– customize the views to apply business logic
Department of Software and Media Technology AAUE Denmark
Slide 55

BC4J application (Oracle JDeveloper)

Department of Software and Media Technology AAUE Denmark


Slide 56

28
Integration with change and configuration management

• Teamwork capabilities are frequently achieved by linking to


independent change and configuration management tools
• Configuration management tool differs from a version control
system (VCS) by being able to manage all modeling artifacts,
not just programming code
• Version control systems provide graphical “diff” tools to
perform comparisons between various versions of the code
• Configuration management tool allows developer to check-out
artifact objects to his/her workstation (private workspace) and
check-in back to the project repository on completion of the
task

Department of Software and Media Technology AAUE Denmark


Slide 57

Sun ONE Studio (version control


integration)

Department of Software and Media Technology AAUE Denmark


Slide 58

29
Perforce (version comparison)

Department of Software and Media Technology AAUE Denmark


Slide 59

Change and configuration management tools

• Change management tool records changes that have occurred during the
software lifecycle
• Version control is the domain of configuration management tools
• Steps in change and configuration management
– private workspace Ù public workspace
– configuration (stream) = set of versions
– to-do-list = required changes
– check-out of “change set”Æ check-in Æ marking change set as delivered
(visible to the team)
– creating a new baseline (build)
– promoting a baseline to “recommended baseline” Æ “rebasing” the
development configurations of developers

Department of Software and Media Technology AAUE Denmark


Slide 60

30
Features of change and configuration management tools

• Support for changes

• Support for versions

• Support for system building

• Support for reengineering


Department of Software and Media Technology AAUE Denmark
Slide 61

Support for changes


• Changes to or within a project must be managed, for otherwise
the changes will “manage” the project
• Project management is a form of change management
• Changes can be due to
– external or internal project conditions (budget, resources,
competition, etc.)
– changes in user requirements
– defects in software
– necessary software enhancements (future features)
• The change process should be defined in a workflow
– change management tool can integrate with a workflow
management tool
Department of Software and Media Technology AAUE Denmark
Slide 62

31
IBM Rational Clear Quest (managing defects)

Department of Software and Media Technology AAUE Denmark


Slide 63

IBM Rational Clear Quest (defect chart)

Department of Software and Media Technology AAUE Denmark


Slide 64

32
Support for versions

• A configuration management system has an internal


facility to maintain various version derivation graphs
• The graphs allow
– tracking changes applied to an artifact
– composing versions of various objects to create a
higher-level configuration of versions
• compare-and-merge capabilities – to compare the
differences between the current version of the artifact
and the baselined version
Department of Software and Media Technology AAUE Denmark
Slide 65

Microsoft SourceSafe (merging


versions)

Department of Software and Media Technology AAUE Denmark


Slide 66

33
Support for system building
• “System building is the process of compiling and linking software
components into a program which executes on a particular target
configuration” (Sommerville)
• The ultimate aim of system building is to create a distributable – an
executable version of software that can be distributed to its users
• The main challenge in system building is to
– adhere to all dependencies between software components and their
various versions
– resolve all references to data files
• Favorite Java-based build tool is Apache Ant (Another Neat Tool)
– Ant configuration files (build files) are written in XML and can be
extended using Java classes

Department of Software and Media Technology AAUE Denmark


Slide 67

Sun ONE Studio and Apache Ant

Department of Software and Media Technology AAUE Denmark


Slide 68

34
Support for reengineering
• Software reengineering is a branch of knowledge concerned
with methods, techniques, and tools for examining an altering
legacy systems to recover their designs an re-implement them in
a new form
• Reengineering consists of a range of technologies:
– reverse engineering
– re-documentation from source code
– restructuring of program logic
– re-targeting the system to a modern platform
– source code translation to another language
– data re-engineering (as opposed to process re-engineering)
– forward engineeringDepartment of Software and Media Technology AAUE Denmark
Slide 69

MagicDraw™ (reverse engineering)

Department of Software and Media Technology AAUE Denmark


Slide 70

35
MagicDraw™ (reversed code)

Department of Software and Media Technology AAUE Denmark


Slide 71

Summary
• Software engineering tools can be classified into four groups:
– project management tools,
– system modeling tools (traditionally known as CASE tools)
– Integrated Development Environments (IDEs), and
– change and configuration management tools
• Project management tools are concerned with project scheduling and controlling
– related functions are in the areas of performance management, web-based
collaboration, content management, portfolio management, metrics, and risk
management.
• System modeling tools embrace all tools that assist software engineers in
development tasks – from analysis via design to implementation
• IDEs are sophisticated programming workbenches that provide a friendly
programming environment to assist teams of programmers in all typical
programming tasks
• Change and configuration management tools are really two sides of the same coin
– change management tool records changes that have occurred during the
software lifecycle
– version control is the domain of configuration management tools
Department of Software and Media Technology AAUE Denmark
Slide 72

36

You might also like