AS - Software Architecture

Similar documents
PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

SAM - Sensors, Actuators and Microcontrollers in Mobile Robots

SSE - Supervision of Electrical Systems

PROCESS USE CASES: USE CASES IDENTIFICATION

Specification of the Verity Learning Companion and Self-Assessment Tool

CONCEPT MAPS AS A DEVICE FOR LEARNING DATABASE CONCEPTS

TOWARDS A PATTERN LANGUAGE FOR ADAPTIVE WEB-BASED EDUCATIONAL SYSTEMS

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

PH.D. IN COMPUTER SCIENCE PROGRAM (POST M.S.)

Answer Key Applied Calculus 4

Deploying Agile Practices in Organizations: A Case Study

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

UML MODELLING OF DIGITAL FORENSIC PROCESS MODELS (DFPMs)

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Economics of Organizations (B)

An Approach for Creating Sentence Patterns for Quality Requirements

Syllabus of the Course Skills for the Tourism Industry

Introduction to Financial Accounting

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Mcgraw Hill Financial Accounting Connect Promo Code

Improving software testing course experience with pair testing pattern. Iyad Alazzam* and Mohammed Akour

Class Responsibility Assignment (CRA) for Use Case Specification to Sequence Diagrams (UC2SD)

ELEC3117 Electrical Engineering Design

A 3D SIMULATION GAME TO PRESENT CURTAIN WALL SYSTEMS IN ARCHITECTURAL EDUCATION

Emma Kushtina ODL organisation system analysis. Szczecin University of Technology

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

Marketing Management

Introduction to Information System

MGMT 479 (Hybrid) Strategic Management

Ph.D. in Behavior Analysis Ph.d. i atferdsanalyse

The Seven Habits of Effective Iterative Development

Georgetown University School of Continuing Studies Master of Professional Studies in Human Resources Management Course Syllabus Summer 2014

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

Instructional Materials Survey For Compliance With Education Code Sections 1240 (i) And Elementary School Level

Available online at ScienceDirect. Procedia Economics and Finance 20 ( 2015 )

Introducing New IT Project Management Practices - a Case Study

Learning Methods for Fuzzy Systems

DBA Program Curriculum

Software Quality Improvement by using an Experience Factory

Firms and Markets Saturdays Summer I 2014

Web-based Learning Systems From HTML To MOODLE A Case Study

ATENEA UPC AND THE NEW "Activity Stream" or "WALL" FEATURE Jesus Alcober 1, Oriol Sánchez 2, Javier Otero 3, Ramon Martí 4

Accounting 543 Taxation of Corporations Fall 2014

Colossians Study Guide Executable Outlines

ATW 202. Business Research Methods

Training materials on RePro methodology

Applying Learn Team Coaching to an Introductory Programming Course

IST 649: Human Interaction with Computers

OPTIMIZATINON OF TRAINING SETS FOR HEBBIAN-LEARNING- BASED CLASSIFIERS

Oakland Unified School District English/ Language Arts Course Syllabus

COURSE TITLE: FOOD & BEVERAGE OPERATIONS AND MANAGEMENT COURSE CODE: HP FB OM DESCRIPTION

Modeling user preferences and norms in context-aware systems

KUTZTOWN UNIVERSITY KUTZTOWN, PENNSYLVANIA DEPARTMENT OF SECONDARY EDUCATION COLLEGE OF EDUCATION

Emergency Management Games and Test Case Utility:

Experiences Using Defect Checklists in Software Engineering Education

Funny Elementary School Skits

A. What is research? B. Types of research

San Marino Unified School District Homework Policy

ACCOUNTING FOR MANAGERS BU-5190-AU7 Syllabus

Disciplinary Literacy in Science

Teaching Tornado. From Communication Models to Releases. Stephan Krusche. Department of Computer Science, Technische Universitaet Muenchen

ECE (Fall 2009) Computer Networking Laboratory

Document number: 2013/ Programs Committee 6/2014 (July) Agenda Item 42.0 Bachelor of Engineering with Honours in Software Engineering

A Model to Detect Problems on Scrum-based Software Development Projects

Note: Principal version Modification Amendment Modification Amendment Modification Complete version from 1 October 2014

Generating Test Cases From Use Cases

ACCOUNTING FOR MANAGERS BU-5190-OL Syllabus

Teaching Agile Addressing the Conflict Between Project Delivery and Application of Agile Methods

Software Maintenance

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

Name of the PhD Program: Urbanism. Academic degree granted/qualification: PhD in Urbanism. Program supervisors: Joseph Salukvadze - Professor

Declaration of competencies

Empirical Software Evolvability Code Smells and Human Evaluations

On the Combined Behavior of Autonomous Resource Management Agents

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS APPLIED STATICS MET 1040

FINS3616 International Business Finance

New Directions on Agile Methods: A Comparative Analysis

The Use of Statistical, Computational and Modelling Tools in Higher Learning Institutions: A Case Study of the University of Dodoma

Evolution of Symbolisation in Chimpanzees and Neural Nets

Curriculum for the Bachelor Programme in Digital Media and Design at the IT University of Copenhagen

Problem and Design Spaces during Object-Oriented Design: An Exploratory Study

Content Teaching Methods: Social Studies. Dr. Melinda Butler

National Collegiate Retention and. Persistence-to-Degree Rates

Implementing Response to Intervention (RTI) National Center on Response to Intervention

A Neural Network GUI Tested on Text-To-Phoneme Mapping

Police Assessment Center Situational Questions

Microeconomics And Behavior

Learning Lesson Study Course

Spring 2015 IET4451 Systems Simulation Course Syllabus for Traditional, Hybrid, and Online Classes

DOES RETELLING TECHNIQUE IMPROVE SPEAKING FLUENCY?

National Collegiate Retention and Persistence to Degree Rates

9TH GRADE HEALTH BOOK ONLINE PDF

College Writing Skills With Readings, 8th Edition By John Langan

TIMSS ADVANCED 2015 USER GUIDE FOR THE INTERNATIONAL DATABASE. Pierre Foy

PHD COURSE INTERMEDIATE STATISTICS USING SPSS, 2018

Transcription:

Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 747 - ESSI - Department of Service and Information System Engineering Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus 2010). (Teaching unit Optional) ECTS credits: 6 Teaching languages: Catalan Teaching staff Coordinator: Others: - Cristina Gómez Seoane (cristina@essi.upc.edu) - Carme Quer Bosor (cquer@essi.upc.edu) - Claudia Patricia Ayala Martinez (cayala@essi.upc.edu) Prior skills Knowing what is a UML/OCL formal specification of functional and nonfunctional requirements of a system. Knowing the context in which the design of a system may be performed and, in particular, what are the previous and following activities. Knowing the object-oriented programming and (at least) an object-oriented programming language. Requirements - Prerequisite IES Degree competences to which the subject contributes Specific: CES1.1. To develop, maintain and evaluate complex and/or critical software systems and services. CES1.4. To develop, mantain and evaluate distributed services and applications with network support. CES2.2. To design adequate solutions in one or more application domains, using software engineering methods which integrate ethical, social, legal and economical aspects. CT2.1. To demonstrate knowledge and capacity to apply the principles, methodologies and life cycles of software engineering. CT2.3. To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative. Generical: G9. PROPER THINKING HABITS: capacity of critical, logical and mathematical reasoning. Capacity to solve problems in her study area. Abstraction capacity: capacity to create and use models that reflect real situations. Capacity to design and perform simple experiments and analyse and interpret its results. Analysis, synthesis and evaluation capacity. 1 / 8

Teaching methodology The teaching of the course is structured in theory, exercises and laboratory sessions. In the theory sessions teachers present the essential content of the course. Typically teachers use slides that students have available before the session. Other contents of the subject will be studied autonomously. In the exercises sessions the contents of the subject are practiced through the exercises. In the exercises sessions proposed exercises will be solved and several solutions will be discussed. At the beginning of the session, the students answer a questionnaire about the contents presented and practiced the week before and/or about the exercises proposed in the previous session. In the laboratory classes the students work in groups of two (pair programming). During the session, the students solve the laboratory exercises proposed by the teacher. At the beginning of the session, the students answer a questionnaire about the contents presented and practiced the week before and/or about the exercises proposed in the previous session. The students must attend to the group sessions where they are enrolled. Learning objectives of the subject 1.To explain what is the logical and physical architecture of a software system and relations between them. 2.To explain the characteristics of a layered architecture and the design principles that govern the construction of software systems with this type of architecture. 3.To explain the characteristics of an object-oriented architecture and the design principles that govern the construction of software systems with this type of architecture. 4.To design software systems using a layered and object-oriented software using software services from the specification of requirements (functional and nonfunctional) using traditional and agile methodologies. 5.To represent the design of software systems using UML. 6.To correctly apply design principles when designing software systems. 7.To design the domain (business) layer of a software system using traditional and agile methodologies. 8.To design the presentation layer of a software system by identifying the design patterns to apply and applying them correctly. 9.To explain the characteristics of the different persistence strategies. 10.To design the data management layer of a software system using access or data mapper patterns. 11.To identify and correctly use existing software services when designing software systems. 12.To evaluate and critique the design of software systems and to propose alternative designs to improve their quality. 13.To explain what is softtware architecture and design and what are the different views of software architecture. 2 / 8

Study load Total learning time: 150h Theory classes: 30h 20.00% Practical classes: 0h 0.00% Laboratory classes: 30h 20.00% Guided activities: 6h 4.00% Self study: 84h 56.00% Content Introduction to the software architecture and design Degree competences to which the content contributes: Software development methodologies. Software architecture and design. Logical Architecture and Physical Architecture. Role of design patterns in software design. Software architecture and design in traditional and agile methodologies. Layered and object oriented architectures Degree competences to which the content contributes: Layered architectural pattern. Application of layered architectural pattern to software systems and services. Layered architecture design principles. Object oriented architectural pattern. Application of object oriented architectural pattern to software systems. Object oriented architecture design principles. Software design using traditional methodologies Degree competences to which the content contributes: Software design using traditional methodologies. Domain layer design. Domain Model and Transaction Script patterns. Domain layer design patterns. Use of software services. Presentation layer design. External design of a software system. Presentation layer internal design. Data layer design. Relational databases technology. Persistence strategies. Automatic generation of persistence. Direct design of persistence. Software design using agile methodologies Degree competences to which the content contributes: Software design using agile methodologies. Extreme Programming. TDD. Tests in TDD. Coding in TDD. Pair Programming. Simple Design and Incremental design and architecture. Code Smells and Refactorings. 3 / 8

4 / 8

Planning of activities C1 Hours: 12h Guided activities: 2h Self study: 10h Test 1 (theory and exercises) where all objectives of chapters from 1 to part of 3 are evaluated 1, 2, 3, 4, 5, 6, 7, 13 C2 Hours: 12h Guided activities: 2h Self study: 10h Test 2 (theory and exercises) where part of the objectives of chapter 3 are evaluated 4, 6, 8, 9, 10, 11 Introduction to software architecture Hours: 3h Theory classes: 2h Practical classes: 0h Laboratory classes: 0h Guided activities: 0h Self study: 1h Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents that the teacher indicates 1, 13 Studying the layered architecture Hours: 3h Theory classes: 0h Practical classes: 1h Laboratory classes: 0h Guided activities: 0h Self study: 2h Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents that the teacher indicates 2 5 / 8

Styding the object-oriented architecture Hours: 14h Theory classes: 0h Practical classes: 6h Laboratory classes: 0h Guided activities: 0h Self study: 8h Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents and does the exercises that the teacher indicates 3, 5, 12 Studying software design using traditional methodologies Hours: 59h Theory classes: 14h Practical classes: 14h Laboratory classes: 0h Guided activities: 3h Self study: 28h Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents and does the exercises that the teacher indicates 4, 5, 6, 7, 8, 9, 10, 11 Studying software design usign agile methodologies Hours: 35h Theory classes: 10h Practical classes: 0h Laboratory classes: 7h Guided activities: 3h Self study: 15h Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents and does the exercises that the teacher indicates 4, 6, 7, 12 C3 Hours: 12h Guided activities: 2h Self study: 10h 6 / 8

Test 3 (laboratory) where all objectives of chapter 4 are evaluated 6, 7, 12 Qualification system The final grade (NF) of the technical skills of the course is the following: NF= 0,3*C1 + 0,3*C2 + 0,3*C3 + 0,1*NQ C1 is the first test mark C2 is the second test mark C3 is the third test mark NQ is the mark of the questionaries done at the beginning of the exercises and laboratory classes. Assesment of NQ: - During the course the students may take 6 questionnaires. - If the student delivers 5 or less questionnaires, NQ will be equal to the sum of the marks of all questionnaires delivered divided by 5. - If the student delivers the 6 questionnaires, NQ will be equal to the sum of the 5 better marks divided by 5. Students will be only marked if they attend to the group sessions where they are enrolled. Final mark of transversal skill is evaluated by one question in two exams (C1 and C3) where the students must demostrate their critical thinking evaluating the proposed designs. Final mark is the average of the marks obtained in these questions and have an assessment of: A is the mark is between 8.5 and 10 B is the mark is between 7 and 8.4 C is the mark is between 5 and 6.9 D is the mark is between 0 and 4.9 7 / 8

Bibliography Basic: Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design patterns: elements of reusable object-oriented software. Addison- Wesley, 1995. ISBN 0201633612. Larman, C. Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development. 3rd ed. Prentice Hall, 2005. ISBN 0131489062. Fowler, M. Patterns of enterprise application architecture. Addison-Wesley, 2003. ISBN 0321127420. Rumbaugh, J.; Jacobson, I.; Booch, G. The unified modeling language reference manual. 2nd ed. Addison-Wesley, 2005. ISBN 0321245628. Shore, J.; Warden, S. The Art of agile development. O'Reilly Media, 20008. ISBN 9780596527679. Christensen, Henrik B. Flexible, reliable software: using patterns and agile development. CRC Press, 2010. ISBN 9781420093629. Meszaros, G. xunit test patterns: refactoring test code. Addison-Wesley, 2007. ISBN 0131495054. Complementary: Pressman, R.S.; Maxim, B.R. Software engineering: a practitioner's approach. 8th ed. McGraw Hill Higher Education, 2015. ISBN 9780078022128. Sommerville, I. Software engineering. 9th ed. Pearson - Addison Wesley, 2011. ISBN 9780137053469. Martin, R.C. Agile software development: principles, patterns, and practices. Prentice Hall, 2003. ISBN 0135974445. Buchmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; Stal, M. Pattern-oriented software architecture: Vol. 1: a system of patterns. Wiley, 1996. ISBN 0471958697 (V. 1). Beck, K. Test-driven development: by example. Addison-Wesley, ISBN 9780321146533. Others resources: Hyperlink http://msdn.microsoft.com/en-us/library/ff650706.aspx http://www.uml.org/ http://refactoring.com/catalog/ https://industriallogic.com/xp/refactoring/catalog.html http://martinfowler.com/eaacatalog/ 8 / 8