Software and systems engineering Paulo Borba Informatics Center Federal University of Pernambuco

[email protected] ◈ twitter.com/pauloborba

Introduction to software and systems engineering

Engineering is… the application of science to the design, building and use of machines, construction, etc. The Concise Oxford Dictionary

System = Software + People + Data + Hardware (computers, sensors, phones, watches, drones, etc.)

Our society depends on software systems

Every year, 33 billions lines of code (LOC) are created or modified Grady Booch, 2008.

Software and systems engineering is concerned with…

Quality and Productivity

Serious software and systems development

http://www.home-dzine.co.za/diy/diy-doghouse.htm

http://silviarangel.wix.com/fotografa

It’s not about small versus large

http://transmissionsmedia.com/the-inexplicable-precision-in-the-construction-of-the-great-pyramid-at-giza/

Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.

Alan Kay

http://en.wikipedia.org/wiki/Alan_Kay

So our main goal is… •

Software and systems quality



Software and systems development and operation productivity •

costs and deadlines

Relevance of software quality ■

Availability of important services • home banking • communication



People’s safety • health monitoring • air traffic control • ABS

Practical impact ■

Companies competitiveness



Better products, smaller costs (long term)



Attraction of new companies to local ecosystems • investments, more taxes

Software development issues (crisis?) ■ ■

■ ■

Project cancellation rate of 18-40% • 16-29% are successful development time and cost go well beyond the estimative • in 33-53% of the analyzed projects 75% of the analyzed systems do not work as planned Difficult reuse and maintenance

Cancellations 10240 5120 2560 1280 640 320 Points 160 80 40 20 10 0

0

10

20

30

40

50 %

Delays

Points

10240 5120 2560 1280 640 320 160 80 40 20 10 0

Estimation Real

0

10

20

30

40

50

60 Months

http://cacm.acm.org/magazines/2015/7/188735-an-updatedsoftware-almanac/fulltext

Even worse in common scenarios…

Different clients, different products

http://www.androidauthority.com

Little reuse and agility, high costs Even with Android!

Little modularity and agility, more defects, high costs {GameMenu.MENU_OPTION_ID_PLAY,GameMenu.ME NU_OPTION_ID_C ONFIG_SOUND,GameMenu.MENU_OPTION_ID_ARENA _SHOW_RANKING,GameMenu.MENU_OPTION_ID_HELP }; //#else //#public final int[] mainMenuCommands = {GameMenu.MENU_OPTION_ID_PLAY,GameMenu.MENU _OPTION_ID_CONFIG_SOUND,GameMenu.MENU_OPTI ON_ID_HELP}; //#endif /** Main pause menu options. Shown in the menu when game is paused */ private final int[] mainPauseMenuCommands = { GameMenu.MENU_OPTION_ID_RESUME,GameMenu.ME NU_OPTION_ID_TRACK_11,GameMenu.MENU_OPTIO N_ID_TRACK_12 }private final int[] helpCommands = { GameMenu.MENU_OPTION_ID_HELP_GOAL, GameMenu.MENU_OPTION_ID_HELP_STRAIGHTS, GameMenu.MENU_OPTION_ID_HELP_CURVES, GameMenu.MENU_OPTION_ID_HELP_ABOUT }; /** Pause exit menu options */ private final int[] pauseMenuRestartCommands = {

package com.meantime.j2me.gui; import java.util.Vector; import com.meantime.j2me.util.Screen; import com.meantime.j2me.util.bvg.BVGAnimator; //#if device_graphics_transform_midp2 //# import javax.microedition.lcdui.game.Sprite; //#else import com.meantime.j2me.util.game.Sprite; private static final int PRESENTATION_BACKGROUND_COLOR = 0x000000; //#if device_screen_128x128

GameMenu.MENU_OPTION_ID_PAUSE_RESTART_YES , GameMenu.MENU_OPTION_ID_PAUSE_RESTART_NO }; private final int[] endRaceMenuCommands = { GameMenu.MENU_OPTION_ID_ARENA_POST_SCOR E, GameMenu.MENU_OPTION_ID_END_RACE_RETRY, GameMenu.MENU_OPTION_ID_END_RACE_SELECT_ TRACK, GameMenu.MENU_OPTION_ID_BACK_MAIN_MENU };\ //# private final int[] endRaceMenuCommands = { //# GameMenu.MENU_OPTION_ID_END_RACE_RETRY, //# GameMenu.MENU_OPTION_ID_END_RACE_SELECT_TR ACK, //# GameMenu.MENU_OPTION_ID_BACK_MAIN_MENU //# }; */ private int PREVIOUS_KEY_CODE = MainCanvas.UP_PRESSED; private int NEXT_KEY_CODE = MainCanvas.DOWN_PRESSED; /** Title of the menu*/ private String menuTitle; private Image rewardUserImageMainMenu;public static final int TRACK_SELECTION_MENU = 5; //#if feature_arena_enabled /** * Post ranking menu */ public static final int POST_SCORE_MENU = 10; //#endif

/** Initial car animation position x */ private static final int CAR_LEFT_INITIAL_POS_X = -78; /** Initial car animation position y */ private static final int CAR_LEFT_POS_Y = 31; /** Initial tire animation position y */ //# //#endif /** Used to left tire animatiom position x */ private int currentTireleftPosX; private BVGAnimator presentation_second_bvg; private BVGAnimator arena_bvg; gff //# Dffdsffffffffffffffffffffffffffffff Ghrwds { /** Constants to paint the scroll bar */ private static final int ARENA_SCROLL_HEIGHT = 92; private static final int ARENA_SCROLL_POS_Y = 17; //#elif device_screen_128x117 //# //# /** Constants to paint the scroll bar */ //# private static final int ARENA_SCROLL_HEIGHT = 81; //# private static final int ARENA_SCROLL_POS_Y = 16;

//#if sku_id_se1 //# //#g = originalG; //#g.drawImage(bufferImg, 0, 0, 0); //# //#endif} catch(Exception e){ e.printStackTrace(); } } public void changeScreen (innewScreenIndex; this.nextScreenMode = newScreenMode; this.nextScreenParam = param; /** * Shows the last screen shown. * If there's not a last screen (i.e., the screen index in * the stack is public void goBack() { int[] screenData = this.popSc // avoid mainCanvas to go back to a waiting server screen if (screenData[STACK_SCREEN_MODE_INDEX] == Resources.MAIN_SCREEN_MODE_ARENA_WAITING_ SERVER) { this.goBack(); return;this.changeScreen(screenData[STACK_SCREEN_ INDEX], screenData[STACK_SCREEN_MODE_INDEX], screenData[STACK_PARAM_INDEX]); } this.goBack = true; }//#public void commandAction(Command c, Displayable d) { //#if (c == this.leftCommand) { //#this.keyPressed(LEFT_SOFT_KEY); //#} else if (c == this.rightCommand) { //#this.keyPressed(RIGHT_SOFT_KEY); //#} //#} //# //#endif

Essential causes of software issues •

Increasing systems complexity



Formalization difficulties and costs

Accidental causes of software issues • • •

Lack of proper education Poor quality of languages, tools, techniques, and processes Organizational issues • poor management • conflicts • ethics and business values

Software quality factors, focus on ethics and business value ■

Correctness



Robustness



Extensibility



Reusability



Compatibility



Portability

More factors, internal and external ■

Performance



Scalability



Integrity, privacy and security



Usability



Flexibility



Fault tolerance

Why would those factors be important for a store automation system?

Not only quality, but productivity too ■

Reduced development cost • Consuming company wishes to invest little in software • Producing company should offer “inexpensive software"



Reduced development time • Quick support and attention to market needs

“Inexpensive software” Not only a result of lower development costs, but also of the cost distribution among a number of clients Reuse, extensibility and flexibility are important factors for achieving such distribution

Trade-offs between quality and productivity • Investing too much in quality can reduce productivity in the short term

• Neglecting quality can impact

productivity even in the short term

• Professional ethics should not be part of the trade-off

Course overview

Starting a new job… Tasks • Defining, maintaining and managing requirements • Implementing, maintaining and executing tests • Implementing and maintaining features • Creating or adapting features • Finding and fixing bugs • Refactoring • Finding and fixing reuse and modularity issues • Managing software project • Managing tasks, configurations and changes

Starting a new job… Background • Process and collaboration technologies • git, github, modular development • Software architecture concepts • web architecture, patterns • Programming and testing technologies for SaaS (software as a service)

• groovy, grails, HTML, Javascript, cucumber, refactoring

• Modularity and reuse tools • code clone detection, quality metrics analysis

Systems

(up to 10 people per system)

• ResS (https://frozen-earth-8120.herokuapp.com/) • TA (https://ancient-refuge-7019.herokuapp.com/) • RGMS (https://stormy-brushlands-1894.herokuapp.com/) • other (existing) systems written in Grails (or any other platform with support for cucumber, code cloning and metrics tools)

Course structure Study and analysis of book and site material

Requirements

Class discussion and evaluation

Testing Implementation Refactoring Management

Project activities, discussion and evaluation

Project results presentation and evaluation

https://sites.google.com/a/ cin.ufpe.br/engenharia-de-softwaree-sistemas-2015-segundosemestre http://is.gd/EayYep

Principles and goals teoria e prática

pesquisa e cooperação

qualidade com relevância ética

competência mundial

técnica e aprendizado inovação

diferencial diferença

espírito crítico

agente transformador

Expectations • Ethical behavior • Basic knowledge and skills of all topics

• basic conformance with all evaluation itens

• Attendance to all classes and evaluation sessions • Punctuality • Good time management and minimum

dedication of 12 hours a week (including classes)

Evaluation items

Evaluation formula • No MANAs and 90% MA is 10 • No MANAs and 70% MA is 9 • No MANAs and 50% MA is 8 • No MANAs is 7 • 90% MA or MPA is 6 •…

Problemas para alunos do CIn Outro problema que alguns parecem ignorar é que o CIn exige total dedicação do aluno ao curso. Enquanto é verdade que o aluno precisa se esforçar e, afinal, o CIn é da UFPE, não de uma instituição qualquer, com o perdão da palavra, fica difícil de manter o estudo, a própria dedicação e a motivação em alta com a montanha de exercícios, listas e miniprovas dados ao aluno. Os professores, em geral, tendem a pensar que apenas a disciplina deles existe e os alunos se vêem frequentemente inundados de coisas para fazer…

Problemas para alunos do CIn Acho que uma das grandes dificuldades dos cursos do CIn é a questão que quando você comete um deslize a grande tendência é esse deslize se agravar. Reprova uma cadeira, perde acesso a benefícios, fica triste por achar que não é bom o suficiente, reprova mais uma, acha que agora lascou tudo de vez e sente agonia só de ir pra faculdade. Acho que uma solução é mostrar que mesmo falhando, há solução e há espaço pros alunos e indicaria um acompanhamento para alunos que estejam com problemas…

Introduce yourself... • Name • What do you expect from this course? • What questions do you have about the course?

Choose your system and join you team now!

Textbook Engineering Software as a Service: An Agile Approach Using Cloud Computing by David Patterson and Armando Fox http://www.saasbook.info
 (Portuguese version is available)

You should primarily study by reading the textbook! Studying by reading the slides and wikipedia is a very bad idea!

Team work • Choose a time-keeper – and for each discussion point, write down what you talk about and agree on:

• Team members: who are you? Name, background, study profile, etc.

• Contact information: exchange phone, e-mail, skype, etc.

• Meeting time: Next meeting and weekly meeting times?

• Roles: who has which competences? • Time plan: what is the initial time plan for the project?

More team work • Collaboration management: How do you plan

to manage the collaboration within your team and with stakeholders? (e.g. write a collaboration plan)

• Conflict resolution: write a list of work-norms

and a list of social norms. How do you plan to sanction team members not following the norms? How do you plan to deal with conflicts?

• The project: what are your initial thoughts and ideas?

Software and systems engineering Paulo Borba Informatics Center Federal University of Pernambuco

[email protected] ◈ twitter.com/pauloborba

Paulo Borba Informatics Center Federal University of ...

Little reuse and agility, high costs. Even with. Android! ... import java.util.Vector; import com.meantime.j2me.util.Screen; import com.meantime.j2me.util.bvg.BVGAnimator;. //#if device_graphics_transform_midp2. //# import javax.microedition.lcdui.game.Sprite;. //#else import com.meantime.j2me.util.game.Sprite; private static ...

2MB Sizes 1 Downloads 121 Views

Recommend Documents

Paulo Borba Informatics Center Federal University of ...
Software as a Service. (SaaS). • Delivers software and data as a service over the Internet. • No need to install applications. • No need to backup or share data. • Easier to improve the service ...

Paulo Borba Informatics Center Federal University of ...
Code cloning tool, packages. 8. Wednesday, August 18, 2010 ... Minimum TKS (kinds of tokens) int x = 0; int y = 0; int z = 0; int a = 0; int b = 0; int c = 0;. 18. Wednesday, August 18, 2010 ... POP (population): Count of code fragments of the code c

Paulo Borba Informatics Center Federal University of ...
Code cloning tool, file. Page 8. Code cloning tool, packages. Page 9 ... P-match... maps different variables and function names to different tokens if (x>0). {y=1; x=2; x=w;} else. {y=1; x=2; x=z;}. Page 17. Minimum TKS (kinds of tokens) int x = 0; i

Paulo Borba Informatics Center Federal University of ...
Check previous activities. • Log into google with your CIn account. • Access and answer today's questions (…) • Discuss class material. • what haven't you understood? what don't you agree? what haven't you liked? what are you missing to per

Paulo Borba Informatics Center Federal University of ...
PDC, bridge variation... class AccountRecord { private AccountRepository accounts;... public void register(Account a) { if (a != null) {. String n = a.getNumero(); if (!accounts.exists(n)) { ... Account search(String number); boolean exists(String nu

Paulo Borba Informatics Center Federal University of ...
Software development issues. (crisis?) □ Project cancellation rate of 25%. • 31% in another study, 16% are successful. □ development time and cost go well beyond the estimative. • in 53% of the analyzed projects. □ 75% of the analyzed syste

Denver Federal Center (2).pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Denver Federal ...

Federal University of Amazonas, Manaus, BRAZIL ...
RESULTS. Two evaluation metrics were used: • RMSE: adequate to evaluate the floating point results ... host city of all teams). • The problem of prediction of goal difference was interpreted as a temporal regression task. • We searched for a se

[PDF BOOK] Fundamentals of Federal Income Taxation (University ...
We would like to show you a description here but the site won’t allow us. Online PDF Fundamentals of Federal Income Taxation (University Casebook ...

Federal University of Technology, Owerri, Imo State ... ...
on Computational Sciences, Information Assurance, Big Data, and STEM. Education .... Room rates 2012/2014. ROOM. RATES. DEPOSIT. SUPERIOR DOUBLE.

The City University of New York - The Graduate Center, CUNY
Jul 6, 2011 - Act as a First Responder to alarms and calls for service. Observe campus activities, reporting suspicious behavior and other incidents to Central ...

National Survey - Public Policy Center - University of Iowa
Additionally, the project team brought in Knowledge Networks, a nationally .... Upon receiving the responses, the UI compiled all the expert responses into a single ..... 'social media (Facebook, twitter)' (4.7%) and 'brochures, pamphlets' (5.2%).

National Survey - Public Policy Center - University of Iowa
component of the National Driver Safety Education Campaign. ... Additionally, the project team brought in Knowledge Networks, a nationally ..... Respondents were asked to report (to the best of their knowledge) which vehicle safety ... Table 10: Tech

University of Texas Health Science Center at San Antonio.pdf
University of Texas Health Science Center at San Antonio.pdf. University of Texas Health Science Center at San Antonio.pdf. Open. Extract. Open with. Sign In.

The University of Arizona Center for Environmental Physics and ...
collaborative soil science research focused on the application of geospatial, ... for an individual that can assist in project management, including data analysis.

The University of Arizona Center for Environmental Physics and ...
The University of Arizona Center for Environmental Physics and Mineralogy and Environmental. Pedology ... immediate need for an individual that can assist in project management, including data analysis ... Please feel free to contact Craig.