Computing and SE II Chapter 18: Tools and Environments Er-Yu Ding Software Institute, NJU.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Software engineering tools for web development Jim Briggs 1CASE.
Ch. 91 Software Engineering Tools and Environments.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Chapter 2 The Software Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Software Engineering COMP 201
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Requirements Analysis 5. 1 CASE b505.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis CASE Computer.
Lecture 2b: Software Project Management CSCI102 - Introduction to Information Technology B ITCS905 - Fundamentals of Information Technology.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Software Development Life Cycles (SDLC) BY Touseef Tahir.
Computer Software.
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
Chapter 1 The Systems Development Environment
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Your Interactive Guide to the Digital World Discovering Computers 2012.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
UML - Development Process 1 Software Development Process Using UML (2)
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Software Engineering Modern Approaches
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
CHAPTER FOUR COMPUTER SOFTWARE.
Testing Workflow In the Unified Process and Agile/Scrum processes.
1 3. Computing System Fundamentals 3.1 Language Translators.
Aspect Mining Eclipse Plug-in Provide the integrated aspect mining environment in the Eclipse IDE. Consists of the following functional components –Flexible.
Software Quality Assurance
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
Systems Analysis and Design in a Changing World, 3rd Edition
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Computing System Fundamentals 3.1 Language Translators.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Rational Unified Process (RUP)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Chapter – 8 Software Tools.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CASE Tools and their Effect on Software Quality
CIS 375 Bruce R. Maxim UM-Dearborn
Testing Tools & Standards
Software Tools and Environments
Unified Process Source & Courtesy: Jing Zou.
Tools of Software Development
Introduction to Software Testing
Software Engineering with Reusable Components
Chapter 7 –Implementation Issues
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Presentation transcript:

Computing and SE II Chapter 18: Tools and Environments Er-Yu Ding Software Institute, NJU

Why Do You Need Tools*? Software development requires tool support because it... – has to be a highly systematic process due to its complexity, – is done by teams which cooperate on subtasks, and – reuses generic components and services. *tool: an implement, such as a hammer, saw, or spade,... used as a means for performing an operation or achieving an end

Kinds of Tools Development time: CASE tools – support software development and project management – such tools exist only on the developers’ machines Run time: “Libraries, toolkits, frameworks, etc.” – enhance functionality by pre-developed and re-used software – such tools (software artifacts) are used at runtime

CASE Tools CASE: Computer Aided Software Engineering Usually use suite of tools (tool box) to support all aspects of the software development process, e.g. – analysis and design diagrams – source code creation – repository for data management It is important that the tools work together! – CASE tools are computerized applications supporting and partially automating software production activities. [Fugetta]

Goal of using CASE tools Enhance productivity Increase software quality Simplify project management

General Requirements to CASE Tools Support of the software development process and methodology – e.g. be able to create/model classes Supply basic functionality, do routine tasks automatically – e.g. be able to support editing of code in a particular (programming) language, supply refactoring methods Features to enhance efficiency – e.g. generate parts of models and code automatically Features to enhance quality – e.g. support of design patterns Intuitive use Integration with other tools – e.g. code editor works with code repository

Scope of Tool Support

Project Management Tools Tasks and their dependencies – scheduling – milestone definition – critical path analysis Resource planning – time – people – money – machinery and software Monitoring – timely reaching of milestones – controlling cost

Documentation Tools Word processors – write textual descriptions of system model – manage glossaries of used terms Graphics tools – create screenshots, mockups, … for communication with future users – often, model centric tools are used here Report generators – extract documentation from source code

Model Centric Tool Based on a visual language; most often UML – create and develop diagrams – diagrams visualize results of different phases Model verification – offer limited support for model checking – usually weak semantics Transition to implementation phase – generate partial code (signatures, interfaces, …) based on modeling – often, additional information is added (target language, constructs, …) in the form of stereotypes – sometimes, model centric tools create diagrams based on given code

Repository System Team development – distribution of code, documentation, etc. – access control – concurrency: conflict management, e.g., differencing, merging, conflict resolution, change propagation Integrity of artifacts – consistency of code, documentation, … Management of variants – revision management – system versions, e.g., development branches for delivery and development versions

Code Centric Tool Code creation and modification – interactive editing manual editing (code aware: syntax highlighting etc.) code amendments (code completion etc.) refactoring (renaming, shifting methods etc.) limited semantic checks (before actual compiler run) – code generators, e.g., from DDLs, IDLs, MDA Packaging – bundling related classes for distribution General support – code management (consistency checks) – repository integration – tool configuration (compiler paths, external libraries, …)

Test Tools Code level tests – automatic testing: test cases defined by programmer, e.g., by assertions, pre-, post-, and side conditions, … automatic tests for technical aspects; mainly for functional requirements – manual tools that are used by developers, e.g., debuggers System level tests – derived from use cases – test system functionality – test functional as well as non-functional requirements

Test Tools (2) Bugtracker – records issues reported by developers or users – keeps track of state of the issue (assigned support team member, classification, documentation, resolution) Quality Control – (automatic) integration tests before delivery of whole system of system plus bugfixes – manual tests (“beta tests”) – compare ISO 900x standards on quality assurance

Phase Matrix of Development Tools

Role Matrix of Development Tools

Runtime Tools Generic, reusable software artifacts to be used for / included in a software product, e.g., – Libraries – Frameworks – Components

Toolkits A toolkit is a set of related and reusable classes designed to provide useful, general- purpose functionality. They are the object- oriented equivalent of subroutine libraries. – usage is usually determined by API – control-flow has to be managed by the programmer – toolkits emphasize code reuse. – offer isolated functionality only, for example, persistence mathematical functions Examples: – C++ I/O stream library – Java collection classes

Frameworks A framework is a set of cooperating classes that make up a reusable design for a specific class of software. They... – offer prefabricated components as building blocks combined by design patterns, – capture architectural and implementation artifacts that are invariant and – defer the variant parts to application-specific logic, – manage the control-flow. Example of frameworks: – HotDraw / JHotDraw (Drawing Framework in Smalltalk / Java) – Java Swing GUI framework

Components The idea behind software components is to – reuse (pre-fabricated, matured) software (used in many products) – stop the NIH (Not Invented Here) syndrome (buy vs. make) – add structure to design and implementation (design for reuse) The driving force behind component architectures: – programming as an engineering discipline; (analysis and design have already been understood as important tasks for building successful software systems.)

Tool Wordprocessors Model centric: Together, Rational Rose, Poseidon UML IDEs: Eclipse, JBuilder, IntelliJ, Netbeans Build tools: Ant, make, jam Testing: JUnit, Jakarta Cactus, HttpUnit, jWebUnit Profiling: JMeter, Extensible Java Profiler Repositories: CVS, Perforce, subversion, Source Safe Bugtracking: bugzilla, sourceforge Groupware: , News, Lotus Notes, sourceforge Tools for application and SW knowledge management Tools for (computer-based-) training: Ecesis plugins (for Eclipse)

Pressman References: Software Tool Sidebars Pages: 72 process94 process 123 agile160 simulation 171 system181 requirements 196 use cases216 data 233 analysis253 UML 290 mining307 architecture 330 component 347 UML/OCL 352 program380 interface 410 testing415 debugging Pages: 441 test case493 prod metrics 532 web589 web metrics 621 web testing645 project 661 metrics698 estimation 717 schedule741 risk 766 quality788 configuration 793 content795 change 822 formal862 components 872 business882 reverse 883 restructure