Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages
Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015: Times: 1) on Monday at 9.00 a.m. - 11.00 a.m. (9.00-11.00) 2) on Wednesday at 5.00 p.m. - 7.00 p.m. (17.00-19.00)
Introduction (1) 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 h, and number of ECTS points equals 5. Traditional teaching The lectures and laboratories consist of three parts, leaded by three lecturers: Zofia Kruczkiewicz, phd Tomasz Babczyński, phd Tomasz Kubik, phd
Introduction (2)- subject objectives (http://www.weka.pwr.wroc.pl/files/prv/id4//plany%20i%20programy/2012-2013/iist/pl_kpr_w04_inf_ang_iim_st.pdf) C1 The acquisition of knowledge and skills on the use of techniques based on design patterns used in the analysis, design and programming of information systems C2 Acquiring the ability to define and use model transformations C3 Acquiring knowledge and skills relating to the definition and use of domain-oriented textual languages, XML-based and graphical languages based on XML standards. C4 The acquisition of knowledge and skills relating to the design and implementation of web services
Introduction (3)- subject educational effects (knowledge) (http://www.weka.pwr.wroc.pl/files/prv/id4//plany%20i%20programy/2012-2013/iist/pl_kpr_w04_inf_ang_iim_st.pdf) PEK_W01 He knows properties of design patterns represented by class and sequence diagrams PEK_W02 He knows the responsibilities of business, presentation, client and integration tiers PEK_W03 He knows iterative-incremental process of building and development of information systems PEK_W04 He knows Model-Driven Architecture (MDA) methodology. PEK_W05 He knows ways to define domain-specific languages. PEK_W06 He knows translation methods of textual and graphical languages. PEK_W07 He knows methods for describing Internet resources using RDF and semantics of network by using OWL PEK_W08 He knows ways to define Web services using WSDL and SAWSDL, he knows how to register Web services using UDDI and description of communication of Internet users using WS-CDL
Introduction (4)- subject educational effects (skills) (http://www.weka.pwr.wroc.pl/files/prv/id4//plany%20i%20programy/2012-2013/iist/pl_kpr_w04_inf_ang_iim_st.pdf) PEK_U01 He can detect context of the applying of design patterns and outcomes leading to improved structural complexity, performance and scalability of information systems PEK_U02 He can design and implement the business, presentation, client and integration tiers of information system PEK_U03 He can implement iterative-incremental process of building and development of information systems PEK_U04 He can define domain-oriented textual language. PEK_U05 He can write translator (interpreter / compiler) of the domain-oriented language PEK_U06 He can define and use the model transformation to the textual language PEK_U07 He can describe Internet resources using RDF and semantics of network using OWL PEK_U08 Can define and implement web services using WSDL and SAWSDL, knows how to register Internet services using UDDI and realize the communication process between Internet users using WS-CDL
Introduction (5)- subject educational effects (competences) (http://www.weka.pwr.wroc.pl/files/prv/id4//plany%20i%20programy/2012-2013/iist/pl_kpr_w04_inf_ang_iim_st.pdf) PEK_K01 He has ability to work in a double or triple group, which are preparing the specifications and requirements of the construction of models and their implementation in the framework of the tasks set out in the program texts for laboratory
Introduction (6) Outcome of first five lectures: Knowledge of techniques based on design patterns used in object analysis, design and programming. The language of designing is UML Programming language is Java.
Introduction (7) - Assessment Assessment: laboratory (50%) and lectures (50%). Assessment of laboratory: the rounded value calculated as the sum of three assessments of three parts of laboratory divided by three. Assessment od lectures: the rounded value calculated as the sum of three assessments of three parts of lectures divided by three
Introduction (8) Assessments of first part of laboratory and lectures Laboratory: Implementation of the web-based multi-tier application based on a laboratory instructions similar to the tutorial allows for assessment of 3-4. If the web application will be independently enriched with new services based on original concepts, the evaluation will be increased to 4.5-5.5 Lecture: During the last lecture will be a short test (30 min) on material from the lectures 2, 3 and 4. The final grade is a rounded value of the sum of the assessment of the laboratory and the test assessment divided by 2.
Main web pages of the INEA102 subject
http://www.zsk.ict.pwr.wroc.pl/zsk/dyd/did/sys_modelling/ The Computer and Discrete Systems Group web site the web page of the INEA102 subject
http://www.zsk.ict.pwr.wroc.pl/zsk/dyd/did/sys_modelling/lecture/ - the web page with lectures slides
http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/index.php?id=inea102 - the web page of the INEA102L subject (first five laboratories)
Literature 1. A. Deepak, J. Crupi, D. Malks, Core J2EE Pattrerns: Best Practicies and Design Strategies, 2nd Edition, Prentice Hall Ptr, 2003 2. E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1994. 3. I. Jacobson, G. Booch, J. Rumbaugh: The Unified Software Development Process, Addison-Wesley Professional, 1999 4. J. Nilson: Applying Domain-Driven Design and Patterns,With Examples in C# and.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: Design Patterns Explained: A New Perspective on Object-Oriented Design, Addison- Wesley Professional, 2004 7. Tutorials Java EE 6 and Java EE 7. Available at: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html https://docs.oracle.com/javaee/7/tutorial/index.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 Informal Information system: Human resources - people Formal information system: management procedures knowledge base Technical Information System: Equipment Software Database Knowledge Base Any information system is a collection of interrelated elements informal, formal and technical whose main 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 7 Tutorial Java EE 7)
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? Model of the real system Requirements Analysis (conceptual model) Conceptual model tests Implementation of the structure and dynamics of the system, code generation Perspective of specifications how should I use? Design model (hardware and architecture software; user access; storage ) 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) Core Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis, Design Programming Test Implementation Change Management Business Management Environment 1-a 2-a - - - - - n-1 n Iterations (time )
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 (Change management) to gain control over changes and to ensure coherence of the system components Project management (Business Management) to describe various strategies of an iterative process Determination of the environment (Environment) - to describe a structure necessary to develop a system
Introduction to Information Systems Modelling - UML 1. Multitiered information systems 2. Software Development Model 3. Introduction to modelling of information systems
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 commonality The perspective of the concept Abstract class +Methods() The perspective of specifications Analysis of variability The perspective of implementation Concrete Class1 +Methods() 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) People Template Participants Result Process Project 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 Testers The Project Manager System Designers Analysts
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