Curtis H.K. Tsang, Clarence S.W. Lau and Y.K. Leung

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

CS487 Software Engineering Omar Aldawud
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Ch 3 System Development Environment
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Introduction To System Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 SWE Introduction to Software Engineering Lecture 5.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© Copyright Eliyahu Brutman Programming Techniques Course.
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.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 1 The Systems Development Environment
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Chapter 1 The Systems Development Environment
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
Software Development Process
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Chapter 6 View Alignment Techniques and Method Customization (Part II)
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Copyright by Dr. Clarence Lau, IVE(TY)
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 1 The Systems Development Environment
The Rational Unified Process
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Object Oriented Analysis and Design Introduction.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
1 WXGC6102: Object-Oriented Techniques What Is Object-Orientation? References: Chapter 4 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
1 WXGC6102: Object-Oriented Techniques Modelling Concepts References: Chapter 5 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Chapter 7 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Object Oriented Analysis & Design By Rashid Mahmood.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Software Design Lecture : 15.
Presentation transcript:

Curtis H.K. Tsang, Clarence S.W. Lau and Y.K. Leung Chapter 1 Introduction Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence S.W. Lau and Y.K. Leung McGraw-Hill Education (Asia), 2005 Dr. Hussein Al-Zoubi

What You Will Learn Describe the advantages of the object-oriented approach to software development. Discuss the roles of the three key components in software development. Describe at a high level what the Unified Modeling Language, the Unified Process, the View Alignment Techniques, and the Visual Paradigm for UML are.

Software Engineering Approaches The development of reliable software is a labor-intensive and expensive business. Software development is also a high-risk venture, as can be seen by the countless documented reports of software project failures. The rapid growth of the software industry over the past three decades has highlighted the need for disciplined approaches to developing large-scale software systems.

Software Engineering Approaches (cont’d) Difficulties in developing large-scale software systems: Long development time => technology changes, requirement changes Large team => communication problem

Modeling Modeling is a very important activity in software development in that the software engineer usually spends a lot of time developing models with different levels of abstraction before the software system is finally designed and implemented. Models can be an effective communication tool, especially in situations where detailed information is not required.

Modeling (cont’d) Different stakeholders want different level of abstractions. Example – Bus Information System: A model for the passenger. It can be represented by a straight line with circles on it, showing the bus stop names and possibly the associated fares. A model for the bus driver. It may be a simplified map showing the route covered by a bus service. Street names and the actual route will also be included to provide more details to the driver. A model for the planner of bus routes. It may consist of a detailed road map with the actual bus routes. Each bus route is labeled and shown in different colors.

Modeling (cont’d) A model usually provides one or more views, and each view represents a specific aspect of the system. For example, the model for the passenger contains the fare view and the path view. The fare view provides fare information for every stop on a route, while the path view provides the route information, including the associated street names. Models based on different views of a system must be consistent, for example, the three dimensional model of a building must be consistent with the different elevations (models) of the same building.

Modeling (cont’d) Furthermore, a model should be expressed using a suitable notation (language) that can be understood by the stakeholders. In the context of software development, a system can be adequately described by the following three orthogonal views: a functional view, which covers the transformation of data within the software system; a static view, which covers the structure of the system and its associated data; and a dynamic view, which covers the sequence or procedure of a transaction in the software system.

Structured Approach Broadly speaking, there are two general approaches to software development: the structured approach and the object-oriented approach. The structured approach has been very fashionable since the 1970s; it was adequately supported by conventional procedural languages. The structured approach is centered on the system’s functional views and uses different models at various stages of the development process. When development progresses from one stage to the next, the models in the current stage are transformed into the models of the next stage.

Structured Approach (cont’d) There are three major weaknesses with the structured approach: when functions of the system change => the analysis, the design models and the implementation of the system will have to be changed substantially. transformation needs to be carried out whenever the models of the early stages have changed as a result of changes in the requirements or the correction of previous mistakes. the dynamic view is almost non-existent in the structured approach. The above weaknesses of the structured approach have made it less cost-effective when compared with the object-oriented approach.

Object-oriented Approach This approach models a software system as a collection of collaborating objects. An object and its data interact with other objects through messages being sent and received by the object and which manipulate the object’s data in the process. The object-oriented approach allows the software engineer to develop consistent models of a software system much more easily, because the same set of models are used throughout the whole development process.

Object-oriented Approach (cont’d) No effort or time is wasted by transforming and updating models in different stages. Changes to an object-oriented system are localized in the objects themselves. Therefore, the structure of a system developed by the object-oriented approach is more stable than that by the structured approach.

Visual Modeling The human brain is capable of handling and processing only a limited amount of information at any one time. Models can help reduce complexity by creating an abstract hierarchical representation of the real-world system. Visual modeling is the process of representing a system with essential parts from a particular perspective using some standard graphical notations.

Visual Modeling (cont’d) In the software development process, visual modeling can: capture business objects and logic; analyze and design applications; manage complexity; define the software architecture; and model systems independent of the implementation language. The modeling language of choice to software engineers is the Unified Modeling Language (UML)

Software Development Methods

Role of Notation Capture requirements of the system; Analyze the system by developing suitable analysis models - Models are expressed in an appropriate notation so that the developer can easily find the things from which he or she can quickly extract information; Develop the design of the system - Design models are developed and expressed in an appropriate notation that can be understood by the system designer and the programmer. The system designer may need to manipulate the analysis model and make design decisions in the process; and Implement, test and deploy the system - Again, the artifacts of these activities are expressed in a suitable notation that can be understood by the system designer, the programmers and system testers.

Role of Process Ideally, a process should offer the following features: a well-managed iterative and incremental life cycle to provide the necessary control without affecting creativity; embedded methods, procedures and heuristics for developers to carry out analysis, design and implementation for the whole software development life cycle (SDLC); a guide through the iterative and incremental development process for the solution of complex problems; a comprehensive roadmap so that designers can walk through the flexible multiple pathways of the development process depending on the nature of the problem; and identification of less obvious requirements based on what have already been known or modeled.

Role of Techniques The main purpose of the techniques part of a method is to provide a set of guidelines and heuristics to help the developer to systematically develop the required design models and implementation. The techniques part of a method should include the following: a set of guidelines to produce and verify the design against the original requirements and specifications; a set of heuristics for the designer to ensure consistency in the structure of a design and also the design models. The latter requirement is particularly important when the design is produced by a team of designers who will need to ensure that their models are consistent and coherent; a system to capture the essential features of the design so as to supplement the limited designer’s domain knowledge.

Overview of the UML The UML is accepted by the Object Management Group (OMG) as a standard way of representing object-oriented analysis and design models. It has quickly become the de facto standard for building object-oriented software. The OMG specification states: “The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components.” Refer to Appendix B of the book for a more detailed description of the UML.

Overview of the Unified Process The Unified Process is a widely used software development process. In the Unified Process, a system is built incrementally through a number of iterations in which the designer may perform requirements capturing, analysis, design, implementation and testing tasks. Feedback is sought from system users throughout the entire process. In early iterations, the designer often focuses more on requirements capturing and analysis. In later iterations, the designer tends to emphasize implementation and testing. In fact, the iterations are divided into four phases: inception, elaboration, construction and transition, each with a different focus.

Overview of the Unified Process (cont’d)

Overview of the View Alignment Techniques The key concept of the View Alignment Techniques is based on the idea that models for different perspectives must contain some common elements (linked elements). Thus we can simply start off with one model and generate a (partial) model by identifying and using the linked elements. By filling in (elaborating) the missing information in the partially complete model and identifying more linked elements, we can create other models for different perspectives. Through this incremental and iterative process, we can create all the models required. Once we have developed all the models that describe the different perspectives of a system, we should be able to form a complete and consistent picture of the system by consolidating (aligning) these views.

Overview of the View Alignment Techniques (cont’d) Therefore, by using the View Alignment Techniques framework, we not only can ensure the models developed are consistent, we can also systematically identify the sequence in which the models should be developed. In other words, View Alignment Techniques can help designers customize their method as they develop the system.

Overview of Visual Paradigm for UML CASE tools (Computer Aided and Software Engineering) can significantly help developers increase their productivity, particularly if they provide facilities that automate many model building procedures. Indeed, some CASE tools offer sophisticated facilities such as diagram-to-code and code-to-diagram, with real-time synchronization and consistency maintained in both directions. VP-UML, like most leading CASE tools, meets the following requirements: Facilitate convenient model building. Models of the system should be easily developed. Editor and documentation tools should be provided and easy to use; Serve as repository. Models can be saved and retrieved with ease; Support navigation. Linkages between models can be maintained and traversed;

Overview of Visual Paradigm for UML Generate documentation automatically. Documentations can be generated for selected information of the software development project; Facilitate project management. The project activities can be planned and managed with ease; Facilitate configuration management and version control. Documentations and components of different versions of the system can be managed; Check model consistency. Consistency between models of the system can be checked; Support model verification and validation. The correctness of the models of the system can be verified and validated; Provide multi-user support. Multiple developers can work on the project simultaneously and coherently; Generate code. Code can be generated from models;

Overview of Visual Paradigm for UML Reverse engineering. Models can be generated from code; and Provide integration with other tools. The CASE tool can be integrated with domain specific systems or tools so as to accelerate the development process. Appendix A of the book provides more information about how you can get started using the VP-UML CASE tool.