Introduction to Software Engineering (2+1 SWS)Winter Term 2009 / 2010 Dr. Michael EichbergVertretungsprofessur Software EngineeringDepartment of Computer ScienceTechnische Universität Darmstadt
Introduction to Software Engineering
Dr. Michael EichbergFachgebiet Software EngineeringDepartment of Computer ScienceTechnische Universität Darmstadt
Computer Aided Software Engineering
|Computer-Aided Software Engineering
CASE tools can lead to significant improvements in software quality and productivity.
•CASE Tools support process activities such as requirements engineering, design, program development and testing.•CASE tools include:• compilers, debuggers, build tools,• integrated development environments• design editors• data dictionaries• tools that support the visualization / comprehension of
existing code• ...
3
|Computer-Aided Software Engineering 4A Classification of CASE tools
• Tools support individual process tasks (e.g. compiling a program)• Workbenches support process phases (e.g. requirements
specification or design) • Environments support a substantial part of the software process.
Ian Sommerville - Software Engineering 8; Addison Wesley 2007 CASE
technology
Tools
Editors Compilers ...
Workbenches
Analysis and Design Programming
Language specific
General purpose
Environments
Intergrated environments
Process-centered
environments
|Computer-Aided Software Engineering
Doors is an example of a requirements management tool for systems and IT applications.www.volere.co.uk/tools.htm has a broad overview of requirements management tools.
5
|Computer-Aided Software EngineeringA subversion Client
6
|Computer-Aided Software EngineeringA File Comparison and Merge Tool
7
|Computer-Aided Software EngineeringThe Eclipse IDE
8
|Computer-Aided Software EngineeringThe XCode IDE
9
|Computer-Aided Software EngineeringThe Reengineering Tool CodeCrawler
10
|
“Computer-Aided Software Engineering
The possibilities for improvements of the software process by CASE tools are limited.
11
Limiting factors:
1.Software engineering is a design activity based on creative thought.
2.Software engineering is a team activity and quite a lot of time is spend on interacting with other team members, which is (still) not well-supported by current CASE tools.(However, recent tools and plug-ins start to offer corresponding support.)