Presentation on theme: "Software Tools Lecture 10: Software Tools Dr Valentina Plekhanova University of Sunderland, UK."— Presentation transcript:
Software Tools Lecture 10: Software Tools Dr Valentina Plekhanova University of Sunderland, UK
Lecture 10Valentina Plekhanova 2 Background There is currently a great deal of activity within the software engineering community in efforts to provide automated support for many aspects of the software development process.
Lecture 10Valentina Plekhanova 3 Background Producing complex software systems of high quality, on time, to budget, and with adequate documentation to allow them to be maintained and enhanced is the goal of most organisations producing computer- based systems.
Lecture 10Valentina Plekhanova 4 Background CASE (Computer Aided Software Engineering) has been proposed as one approach that can help to make this happen. However, individual CASE tools that provide “islands of automation” are not sufficient to realise this goal.
Lecture 10Valentina Plekhanova 5 The two CASE cultures The concept of CASE has occasionally been associated with the market of diagramming and graphics editing tools. [Schefsrom and G. van den Broek, 1993]
Lecture 10Valentina Plekhanova 6 The two CASE cultures CASE tool A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process. [Brown, A.W., Carney, D. J., Morris, E.J., Smith, D.B., Zarrella, P.F., 1994.]
Lecture 10Valentina Plekhanova 7 The two CASE cultures The promise of CASE is that automated support for some aspects of software development and maintenance will: increase productivity and reduce the cost of software development; improve the quality (e.g. reliability, usability, performance) of software products; keep documentation in step with software products as they evolve; facilitate maintenance of existing software systems; make the software engineers’ task less odious and more enjoyable.
Lecture 10Valentina Plekhanova 8 CASE Environment CASE environment A CASE environment is a collection of CASE tools and other components together with an integration approach that supports most or all of the interactions that occur among the environment components, and between the users of the environment and the environment itself.
Lecture 10Valentina Plekhanova 9 Categories of Systems Engineering Tools Requirements Definition, Analysis, and Design Tools Construction, Testing and Implementation Tools Management and Project Support Tools
Lecture 10Valentina Plekhanova 10 CASE Tool Integration Problem While individual tools provide useful services assisting in specific activities, tools commonly do not work well together to support the sequences of activities and the multiple of users involved in the software engineering process. [Brown, A.W., Carney, D. J., Morris, E.J., Smith, D.B., Zarrella, P.F., 1994.]
Lecture 10Valentina Plekhanova 11 CASE Tools – Expectations…? and Problems Current interest in CASE tools and environments is based on expectations about productivity, savings, extensibility, and similar features. Current experiences, however, suggest that the technology of CASE tools and environments is as yet insufficient to provide all of those promised benefits. [Brown, A.W., Carney, D. J., Morris, E.J., Smith, D.B., Zarrella, P.F., 1994.]
Lecture 10Valentina Plekhanova 12 CASE Tools – … and Problems Organisations typically experience one or more of the following problems: inability to combine tools easily to cover the complete software development life cycle (e.g. a requirements tool and a design tool with different implementation architectures, supporting incompatible methods); lack of well-defined procedures for moving data from one tool to another and for synchronising the communication between the tools so that one tool can easily be invoked from another;
Lecture 10Valentina Plekhanova 13 CASE Tools – … and Problems few facilities to support tailoring and adaptation of the tools to different organisations’ development needs; no well-proven approaches to the introduction and adoption of collections of tools significant system management and maintenance problems with the installation, operation, and evolution of collection of tools due to the size and complexity of many of the tools and their relative immaturity.
Lecture 10Valentina Plekhanova 14 Agent based Software Engineering Agent based software engineering is a rapidly developing area of research and practical applications. Development of high quality software is getting more difficult as the requirements and problems get more complex. Agent-oriented approaches can build complex systems faster/better.
Lecture 10Valentina Plekhanova 15 Agent based Software Engineering Software agents Software agents are a unique generation of software tools that independently perform various tasks on behalf of human user(s) or other software agents. It is recognised that agent-based approaches is a future of Computer Science; and agents would gradually be evolved into more complicated applications.