NET, Addison-Wesley Professional, 2006. 5. R.C. Martin, M. Martin: AGILE
principles, patterns and practices in C#,. Prentice Hall, 2006. 6. A. Shalloway, J.
Trott: ...
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik
Information systems modelling – UML and service description languages
Introduction • INFORMATION SYSTEMS MODELLING, UML AND SERVICE DESCRIPTION LANGUAGES - INEA 102 • The language of the course is advanced English. • Students enrol obligatorily for the course on the second term of the first year, during which 30h of lectures as well as 30h of laboratories take place. Workload is 150, and number of ECTS points equals 5. • Traditional teaching • Outcome: Knowledge of techniques based on design patterns used in object analysis, design and programming. Web Services architecture design and implementation. • Assessment: laboratory (50%) and the two-hour test (50%). The test take place in May during the last lecture.
Literature 1. 2. 3. 4. 5. 6. 7.
A. Deepak, J. Crupi, D. Malks, Core J2EE Pattrerns: Best Practicies and Design Strategies, 2nd Edition, Prentice Hall Ptr, 2003 E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1994. I. Jacobson, G. Booch, J. Rumbaugh: The Unified Software Development Process, Addison-Wesley Professional, 1999 J. Nilson: Applying Domain-Driven Design and Patterns,With Examples in C# and .NET, Addison-Wesley Professional, 2006 R.C. Martin, M. Martin: AGILE principles, patterns and practices in C#, Prentice Hall, 2006 A. Shalloway, J. Trott: Design Patterns Explained: A New Perspective on Object-Oriented Design, Addison- Wesley Professional, 2004 Tutorial Java EE 6.0. Available at: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html
Introduction to Information Systems Modelling - UML 1. Multitiered information systems 2. Software Development Model 3. Introduction to modelling of information systems 4. Software Development Environment 5. The role of the Unified Modelling Language UML
Introduction to Information Systems Modelling - UML 1. Multitiered information systems
Definition of information system Infor mal Inform ation system: Hum an resources - people For mal information syste m: • management procedures • k nowledge base
Technical Information System: • Equipment • Software • Database Knowledge Base
Any information system is a collection of interrelated elements informal, formal and technical whose m ain function is data processing using the computer technique
Technical Information System • an organized team of technical resources (computers, software, hardware teletransmission etc.) • used for collecting, processing and transmitting information
Multitiered Information System by D.Alur, J.Crupi, D. Malks, Core J2EE. Desin Patterns Client Tier Customer applications, applets, elements of the graphical user interface
Presentation Tier JSP Pages, servlets, and other user interface elements
Business Tier EJB components and other business objects
Integration Tier JMS, JDBC, connectors and connections with external systems
Resource Tier Databases, external systems and other resources
Interacting with users, device and user interface presentation Login, session management, content creation, formatting, validation and content delivery Business logic, transactions, data and services
Resource adapters, external systems, mechanisms for resource, control flow Resources, data and external services
Examplary multitiered Information System (Java EE 5 – Tutorial Java EE 5) Java EE Application 1
Java EE Application 2 Client Client Tier Machine
JavaServer Faces Pages Enterprise Beens Database
Web Tier Java EE Server
Enterprise Beens
Business Tier
Database EIS Tier
Database Server
Introduction to Information Systems Modelling - UML 1. Multitiered information systems 2. Software Development Model
The process model of software development (software life cycle model) Creating a technical information system is related to: - construction of software: what and how to do? - software development process management: when to perform? - deployment Modelling the structure and dynamics of the system Perspective of the concept what to do?
Implementation of the structure and dynamics of the system, code generation Perspective of specifications how should I use?
• Model of the real system • Design model • Requirements (hardware and • Analysis (conceptual model) architecture software; user access; storage ) • Conceptual model tests • Design model tests
Perspective of implementation how to perform? • Programming (specification of the program: declarations, definitions; additional data structures: structure of containers, files, databases) • Software tests • Implementation • Deployment tests
Unified iterational and incremental software development processwhen? (by Jacobson I., Booch G, Rumbaugh J. The unified software development process) C ore W or kfl ow s
Ince ption
Elaboration
Constructi on
Transition
Business M odeling Requ ireme nts Analysis, D esign Program ming Test Impl em en tation Change M anage ment Business M anage ment E nvironm ent 1-a
2-a
-
-
-
-
Iter ations (time
-
n-1 )
n
Introduction to Information Systems Modelling - UML 1. Multitiered information systems 2. Software Development Model 3. Introduction to modelling of information systems
Workflows (by G.Booch, J. Rumbaugh, I.Jacobson)
• Business modelling – a description of dynamics and structures • Requirements - requirements specification by means of use cases • Analysis and design - architectural development of different perspectives • Programming - software development, unit testing, system integration • Testing – to describe test data, procedures and correctness metrics • Implementation - to determine the final configuration of the system • Configuration management – to gain control over changes and to ensure coherence of the system components • Project management – to describe various strategies of an iterative process • Determination of the environment - to describe a structure necessary to develop a system
What and how to perform? (by Alan Shalloway, James R.Trott) Perspectives on the development of object oriented information systems: • concept (model analysis) • interface specification (design model) • implementation (implementation) • creating and managing objects (implementation) • use of objects (implementation)
Perspectives on understanding objects - object identification (1) • The perspective on concepts (conceptual model) (What objects need to do?) Objects are collections of various types of liability
• The perspective on specification (design model) (How to use objects?) Object are collections of methods (behaviours) that may be caused by its methods or other objects
• The perspective on implementation (implementation) (How to implement an interface?) Object code consists of methods and data as well as interactions
Methods of identifying objects and classes (2) Analysis of com m onality
The perspective o f the concept
Abstract class +M ethods()
The perspective of specification s
An alysis o f variability
The perspective of imp lementatio n
Concrete Class1 +M ethods()
Concrete Class2 +Methods()
Relationship between the prospect of the specification, design and implementation
Relationship between analysis, design and implementation (3) Relationship between the perspectives on the specification and the concept • The prospect of the specification defines interfaces required to handle all cases of the problem (ie the common part of data and their behaviours from the view point of the perspective of the concept)
Relationship between perspectives on the specification and the implementation • Taking into account the specification, we understand how to implement the individual cases (ie. variable part of data and their behaviours )
Perspectives on scaling a system - creation, management and use of objects • The perspective on creating and managing objects (Separation of individual subsystems to create objects and facility management ) Changes in the implementation of the objects relate to the factories of objects (creating the objects) and should not affect the management of these objects)
• The perspective on using objects (The A object only uses the B object – The A object cannot simultaneously create the B object) Any change of the implementation of an object should not require implementations of objects to be altered
Summary of the principles of objectivity • Objects are defined through the prism of their responsibility • Encapsulation means any kind of concealment: data, implementation, class (using abstract classes, or interface), the project, the object • The use of commonality and variability analysis in order to create abstractions representing the variability in the data and behaviour • The use of inheritance as a way of the implementation of the variability in the data and their behaviour • Striving for a low degree of relationships • Striving for a high degree of consistency • Separating code which uses objects from the code that creates them • The principle of a single rule - only one implementation of the operation of a single rule • The use of names clearly describing the purpose of objects
Introduction to Information Systems Modelling - UML 1. Multitiered information systems 2. Software Development Model 3. Introduction to modelling of information systems 4. Software Development Environment
The Four Ps: People, Project, Product, and Process in Software Development (1) (by Jacobson I., Booch G, Rumbaugh J. The unified software development process)
Process Template Participants
People
Project Result
Product
Automation
Tools
The Four Ps: People, Project, Product, and Process in Software Development (2) The importance issues of the software development are as follows: • People: Architects, developers, testers, users, customers etc • Project: The organizational element through which software development is managed • Product: Artifacts that are created during the life of the project such as models, source code, executables and documentation • Proces: A software engineering process is a definition of the complete set of activities needed to transform users’ requirements into a product • Tools: Software that is used to automate the activities defined in the process.
The Four Ps: People, Project, Product, and Process in Software Development (3) - Product The products are: • Subsystems as the collection of models • Diagrams: class, interaction, cooperation, states • Requirements, tests, manufacture, instalation • System composed with artifacts representing programming tools, compilers, computers programmers architects testing facilities traders administrators An artifact is a general term to name anything created, produced, changed, or used by workers in developing the system. There are artifacts related software creation (requirements, analysis, project, programming, tests) and artifacts of the project management process
The Four Ps: People, Project, Product, and Process in Software Development (4) - Project Basic concepts related to the project: • Feasibility of the project • Risk Management • Organization structure of designers • Scheduling project tasks • Understanding of the project • Rational of the project activities Project Features: • Sequence changes in the project • Iteration series • Organizational Pattern
The Four Ps: People, Project, Product, and Process in Software Development (5) - Proces Software development process is a definition of a complete set of activities needed to map user requirements into a set of artifacts that present software development factors: • organizational • domain • life-cycle • technical.
The Four Ps: People, Project, Product, and Process in Software Development (6) - Tools Software tools allow to: • Automate the process • Standardize of process and product • Support the entire software lifecycle: defining of requirements, visual modelling and design, programming, testing.
The Four Ps: People, Project, Product, and Process in Software Development (7) -People Users Architect
The Project Manager
Testers System
Analysts
Designers
The Four Ps: People, Project, Product, and Process in Software Development (8) - Models Models provide: • system abstraction, • different perspectives on the system, • relationships to other models.
Use-Case Model
Analysis Model
Design Model
Deployment Model
Implementation Model
Test Model
Introduction to Information Systems Modelling - UML 1. Multitiered information systems 2. Software Development Model 3. Introduction to modelling of information systems 4. Software Development Environment 5. The role of the Unified Modelling Language UML
UML - the language supporting the iterative incremental unified process of the software development (1) UML Diagrams - modelling structure – Package Diagrams – Class diagrams – Object Diagrams – Mixed Diagrams – Component diagrams – Deployment diagrams
UML - the language supporting the iterative incremental unified process of the software development (2) Diagrams of modelling behaviour – Use - case diagrams – Activity Diagrams – State diagrams – Communication Diagrams – Sequence Diagrams – Timing Diagrams – Interaction Diagrams
UML - the language supporting the iterative incremental unified process of the software development (3) Benefits of using UML 2: • teamwork • overcome the complexity of the project • a formal, precise presentation of the project • creating a standard project • opportunity to test the software in an early stage in its development