BSc Course Dr. Katalin Balla - Budapest University of .... Katalin Balla Dept. of Control Eng ......

83
Software technology 1. Introduction BSc Course Dr. Katalin Balla

Transcript of BSc Course Dr. Katalin Balla - Budapest University of .... Katalin Balla Dept. of Control Eng ......

Software technology1. Introduction

BSc CourseDr. Katalin Balla

Introduction / Course Information

� Lecturers: �Dr. Balázs Simon�Dr. Katalin Balla

� Dept. of Control Eng. and Information Technology� Room: IL 415� Tel: 463 1848� E-mail: [email protected]� https://www.iit.bme.hu/targyak/BMEVIIIAB01?language=en

9/30/2017 Balla K. 2

Outline of this part of the course� UML 1-4� Lecture 1: Introduction. About software and software engineering. Actual trends and

problems. Processes and their modelling.� Lecture 2: Popular life cycle models. Traditional and agile approaches to software

engineering. � Lecture 3: Process improvement models. Elements, goals and practices. Process

groups. � Lecture 4: Requirements. Elicitation, analysis, definition, documenting. Managing

requirements changes. � Lecture 5: Design. Translating user requirements to product requirements.

Implementation.� Lecture 6: Testing. Basic concepts, test types, testing process, test documentation.� Lecture 7: Testing techniques. Traditional and agile testing. � Lecture 8: Managerial aspects of software projects. Estimating, planning, monitoring

and control. Risk management. � Lecture 9: Supporting processes: configuration management, version control, change

management.� Lecture 10: Supporting processes: quality assurance, quality management,

measurement. � Lecture 11: RUP and Scrum: comparing a traditional and an agile model. � Lecture 12: Some contemporary problems and approaches.

9/30/2017 Balla K. 3

Sources, references� This set of slides� Essentials of Software Engineering. Fourth Edition. Jones & Bartlett Learning, authors: Frank

Tsui, PhD, Orlando Karam, Barbara Bernalwww.jblearning.com.http://www.jblearning.com/catalog/9781284106008/

� Software Engineering 10th Edition . 2015. Ian Sommerville's book website. http://iansommerville.com/software-engineering-book/about/

� Balla K: Minőségmenedzsment a szoftverfejlesztésben. Budapest: PANEM, 2007� Agile Alliance documents - https://www.agilealliance.org� ISTQB Glossary of Terms used in Software Testing http://glossary.istqb.org� ISTQB Foundation Level Syllabus et.al. http://www.istqb.org/downloads/category/2-foundation-

level-documents.html� A Glossary of Requirements Engineering Terminology Version 1.6 May 2014 � IREB Foundation Level Syllabus, Version 2.2.1 , July 24th 2017 � Requirements Engineering Fundamentals, Klaus Pohl, Chris Rupp, 2nd edition, Rocky Nook Inc. (April

2015)

� Many sources from Internet – for example (all references shown in th electures): � https://theagileadmin.com/what-is-devops/� Kanban boards step by step.htm� https://www.processmodel.com/blog/what-is-a-process/� https://www.computer.org/web/swebok� http://iso25000.com/index.php/en/iso-25000-standards

49/30/2017 Balla K.

Sources, references� Standards, models:

� CMMI-DEV v1.3, www.cmmiinstitute.com� ISO/IEC 12207:2008 / 2015: Systems and software engineering -- Software life

cycle processes� ISO 15504: 2012. Information technology -- Process assessment -- Part 5: An

exemplar software life cycle process assessment model� ISO 9001:2015 Quality management systems -- Requirements� ISO/IEC 25000:2014 . Systems and software engineering -- Systems and

software Quality Requirements and Evaluation (SQuaRE) -- Guide to SQuaRE� Automotive SPICE PAM, V3.0.

http://www.automotivespice.com/fileadmin/software-download/Automotive_SPICE_PAM_30.pdf

� ISO/IEC/IEEE 29119-1, 29119-2, 29119-3 and 29119-4 (2013) IEEE Standard for Software Test Documentation

� ISO/IEC 25010, System and software engineering – Systems and software Quality Requirements and 6 Evaluation (SQueRE) System and software quality models. 2011

� … and many others59/30/2017 Balla K.

Any Questions?

9/30/2017 Balla K. 6

Lecture 1: Introduction� About software and software engineering

� IT and software. Definitions� Why is software so important? Is it different from other

“goods”? Why or why not?� Principles of software engineering� Examples of software errors and their consequences � Need for some “discipline” in software development� Trials to model “software development” over the past

50 years� Processes, their definitions and their elements� Process models to help software development

9/30/2017 Balla K. 7

Definitions� IT: Information Technology

� It refers to anything related to computing technology, such as networking, hardware, software, the Internet, or the people that work with these technologies. Many companies now have IT departments for managing the computers, networks, and other technical areas of their businesses.

� IT jobs include computer programming, network administration, computer engineering, Web development, technical support, and many other related occupations. Since we live in the "information age," information technology has become a part of our everyday lives.

� ICT: Information and Communication Technology� ICT refers to technologies that provide access to information through

telecommunications. It is similar to Information Technology (IT), but focuses primarily on communication technologies. This includes the Internet, wireless networks, cell phones, and other communication mediums.

� https://techterms.com/definition9/30/2017 Balla K. 8

Is IT / Software important?

� Imagine one day without software / IT…� What would you miss most?

9/30/2017 Balla K. 9

109/30/2017 Balla K.

Software is important…� Software

� „drives” airplanes and cars� „moves” our money� „executes” chirurgical interventions� … interferes with all aspects of our life!

9/30/2017 Balla K. 11

IT / Software is part of our life� This is a list of the leading social networks based on

number of active user accounts as of April 2017.� Facebook: 1,968,000,000 users� WhatsApp: 1,200,000,000 users� YouTube: 1,000,000,000 users� Facebook Messenger: 1,000,000,000 users� WeChat: 889,000,000 users� QQ: 868,000,000 users� Instagram: 600,000,000 users� QZone: 595,000,000 users

9/30/2017 Balla K. 12

• Tumblr: 550,000,000 users• Twitter: 319,000,000 users• Sina Weibo: 313,000,000 users• Baidu Tieba: 300,000,000 users• Snapchat: 300,000,000 users• Skype: 300,000,000 users• Viber: 260,000,000 users• Line: 220,000,000 users• Pinterest 150,000,000 users

From Wikipedia. "Most famous social network sites worldwide as of April 2017, ranked by number of active users (in millions) | Statistic". Statista. Retrieved 14 July 2017. Picture: https://www.aokmarketing.com/social-media-time-waster-waste-time/

IT is useful

9/30/2017 Balla K. 13

Using IT is expensive

2016 Spending 2016 Growth (%) 2017 Spending 2017 Growt h (%)

Data Center Systems

173 1.3 177 2.0

Software 333 6.0 357 7.2

Devices 597 -7.5 600 0.4

IT Services 900 3.9 943 4.8

Communications Services

1,384 -1.1 1,410 1.9

Overall IT 3,387 -0.3 3,486 2.9

9/30/2017 Balla K. 14

Worldwide IT Spending Forecast (Billions of U.S. Do llars)Source: Gartner (October 2016)

Why is software so important?� Driven by growth in software and IT services revenue, worldwide

IT spending is forecast to reach $3.5 trillion in 2017, up 2.9 percent from 2016 estimated spending of $3.4 trillion, according to the latest forecast by Gartner, Inc.

� The bright spot for the IT industry has been the software and IT services segments. Software spending is projected to grow 6 percent in 2016, and it will grow another 7.2 percent in 2017 to total $357 billion (see previous Table ). IT services spending is on pace to grow 3.9 percent in 2016 to reach $900 billion, and increase 4.8 percent in 2017 to reach $943 billion.

� http://www.gartner.com/newsroom/id/3482917� Analysts Discuss Impact of Brexit and Upcoming U.S. Presidential Election on IT Spending

During Gartner Symposium/ITxpo 2016, October 16-20, in Orlando

9/30/2017 Balla K. 15

Definitions� Software:

� Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. [IEEE 610]

� Software can appear as concepts, transactions, procedures, documents. An example for software is the computer program.

� Software product: � set of computer programs, procedures, and possibly associated

documentation and data� [SOURCE: ISO/IEC 12207:1998]

� Note: Products include intermediate products, and products intended for users such as developers and maintainers.

� Other definition: Sequence of instructions that controls theoperation of the hardware.

Balla K. 16 9/30/2017

Software as a career and as a business� You are students interested in a career in science,

technology, engineering, or mathematics (STEM). What is the job market going to be like when you graduate? � https://cs.calvin.edu/documents/computing_careers

� Every two years , the U.S. Bureau of Labor Statistics (US-BLS) produces two sets of employment projections for the coming decade: � New Jobs -- jobs that did not exist before, representing economic growth; and � Total Jobs -- new jobs plus job openings to replace people who have retired.

� By both of these US-BLS projections, computing will be the safest STEM career options for the foreseeable future.

9/30/2017 Balla K. 17

Software as a career and as a business

9/30/2017 Balla K. 18

Software as a career and as a business

9/30/2017 Balla K. 19

Software as a career and asa business

9/30/2017 Balla K. 20

Why will there be so many software development/engineering jobs?

• One reason is the mobile computing market.

• Another reason is that manufacturers are increasingly embedding computers into appliances like refridgerators, ovens, water heaters, and so on; creating the so-called Internet of Things.

• https://cs.calvin.edu/documents/computing_careers

What are the main problems with software?

� Bad software/ software with errors: � can kill people� can cause financial crash� can lead to worldwide disasters…

� And yet…

� Experience shows that software does have errors.� Software projects encounter problems.

9/30/2017 Balla K. 21

Problems with IT projects

9/30/2017 Balla K. 22

Some figures / Standish Group, Chaos Study (2015)

9/30/2017 Balla K. 23

Measures projects against the CHAOS databasefor on time, on budget, with satisfactory results.Challenged projects are projects that were completedbut late, over budget, with unsatisfactory results.Failed projects were cancelled or not used.

Some figures / Standish Group, Chaos Study (2015)

9/30/2017 Balla K. 24

9/30/2017 Balla K. 25

Software should be „good”...

� It is a „normal wish” that the software product should, on the highest level…� Ensure the satisfaction of the user needs� Ensure its proper use

� Earlier: 1 developer, 1 user� „The program should run and produce results similar to those expected „

� Later: more developers, more users � Need to economical use of the storage devices � Understandability, portability � User-friendliness, learnability

� Nowadays:� Efficiency, reliability, no errors, able to restart without loosing data...

…but: software has errors …� Software has errors because…

� It is written by people and “to err is human”

�People make mistakes in complex tasks� Even experienced programmers have average 1 error in

every 10 lines of code� „I've heard it said that since debugging is the process of removing bugs

from the code, then writing the code in the first place should be called bugging, because it is the process in which bugs are added.”

� 50% of these errors are corrected in compilation� During testing further errors may be corrected, but 15% of

errors remain in software after delivery(Watts Humphrey: „What if your life depended on software?” Presentation at EuroSPI2000

conference, Copenhagen, 2000. April)

9/30/2017 Balla K. 26

Errors in software� Because of…

� 1. Human factor� 2. Communication failure� 3. Unrealistic development timeframe� 4. Poor design logic� 5. Poor coding practices� 6. Lack of version control� 7. Buggy third-party tools� 8. Lack of skilled testing� 9. Last minute changes

� http://www.softwaretestingtricks.com/2008/12/why-are-bugsdefects-in-software.html

Balla K. 279/30/2017

Errors in software

� Communication failure� About requirements

� requirement gathering stage, requirement interpretation/documentation stage, requirement-to-implementation translation stage etc.).

� Another scenario of problem with communication may arise when a programmer tries to modify code developed by another programmer

� Unrealistic development timeframe� More often than not software are developed under crazy release

schedules, with limited/insufficient resources and with unrealistic project deadlines. So it is probable that compromises are made in requirement/design to meet delivery schedules.

Balla K. 289/30/2017

Errors in software� Recently, there was an error (were more errors) in the

software developed by T-Systems Hungary for BKK (Budapest Transport Corporation). A young man reproducing the error and reporting it to BKK got arrested. � Errors made by T-Systems:

� „Monthly pass for 50 HUF”� Plain text passwords� Password sent back in e-mail� User profile data accessible� User registration deleted without a check� SSL DROWN vulnerability

�Reaction of T-Systems and BKK9/30/2017 Balla K. 29

Example 1

� Task:�Write a program to calculate the mean and

standard deviation of a set of n real numbers.

Balla K. 309/30/2017

Example 1� Seems simple, yet:

�Many decisions still need to be made! Many elements need to be understood.

�What would you ask? � Eg:

� Which programming language should I use?� Which is best for the case.

� Where do the numbers come from? � „Your program can read the n real numbers from the keyboard, a file, or some

other source.”

� What approach shall I follow?� Use a linked list to store the n numbers for the calculations. If necessary, a

variable or static array(s), database, or other data structure(s) may be used to hold the data.

Balla K. 319/30/2017

Example 1

� What is „mean” and „standard deviation”?

� The mean is the average of a set of data. The average is the most common measure of location for a set of numbers. The average locates the center of the data.

� Standard deviation is a measure of the spread or dispersion of a set of data. The more widely the values are spread out, the larger the standard deviation. For example, say we have two separate lists of exam results from a class of 30 students; one ranges from 31% to 98%, the other from 82% to 93%. The standard deviation would be larger for the results of the first exam.

Balla K. 329/30/2017

The formula for calculating the mean is

n

xx

n

ii

avg

∑== 1

The formula for calculating the standard deviation is

( )1

1

2

−=∑

=

n

xxn

iavgi

σ

where

• i is an index to then numbers

• x is the data in the set

• n is the number of items in the set

Example 1� How should the process of developing the

program look like? �(At least):

� Read problem statement� Understand the problem� Design the solution

� Use former experience, existing solutions, existing design and programming elements

� Implement the design (coding)� Test the solution

� Correct errors� Retest� (unitil no more errors)

� Deliver solution Balla K. 339/30/2017

Example 1� How will the process of developing the program look

like? What will you not want to spend time on? �(At least):

� Read problem statement� Understand the problem� Design the solution

� Use former experience, existing solutions, existing design and programming elements

� Implement the design (coding)� Test the solution

� Correct errors� Retest

� Deliver solutionBalla K. 349/30/2017

Example 1What will „happen”?

Balla K. 359/30/2017

Read problemstatement

Implementation/ Coding

Testing

Design

Example 1

� Do you know how much time it will take? �Do you have a guess? �Better to have a list of historical data!

� To have it you must produce it!

� How good is your code? � Do you have a guess?

� Why yes or why no?

Balla K. 369/30/2017

Documentation?

Example 1� How should the process of developing the program look like?

� Can look in many ways, helps if it is guided!

Balla K. 379/30/2017

Example 2� You want to start a small business of selling

tickets on the Internet for people who want to try snorkeling near Roatan Island, to see the Great Coral Reef of Central America.

� Can you do just coding?�Why or why not?

Balla K. 389/30/2017

Example 2� You need, for instance:

� To allow possible customers to ask questions� To make it possible to pay by credit card � To be able to accept credit card payment through the

Internet� To have a good web-design� The web-page must be available „all the time”� To discuss with companies that will help you in finding

customers (cruises, travel agencies…)� To have (and display) satisfied customers to keep your

business running� … Balla K. 399/30/2017

Balla K. 409/30/2017

Example 3� You work at Lufthansa Systems Hungary. The task of your team is to add a

module to the existing system of „On-line check-in” that will permit customers to check in on-line for flights operated in cooperation with China Airlines.

Balla K. 419/30/2017

Example 3� Can you „just do the coding”, like in Example 1?

�Why or why not?

� What you must consider (as a minimum):�The existing system(s)

� Constraints� Architecture � Interfaces� Data bases� User Interface� …

Balla K. 429/30/2017

Examples – (Kind of) conclusion

� The bigger the task / project, the more items we need to bear in mind

� One easily gets lost among the many things to remember

� Guides, methods, templates … needed!� One simply cannot afford to develop „bad”

software!

Balla K. 439/30/2017

Problem…

� „It is possible to achieve zero defects but it is also costly. NASA was able to achieve zero defects for the Space Shuttle Software, but at a cost of thousands of dollars per line of code. If people will die because there are bugs in the software then that kind of cost makes sense. Most projects simply cannot afford the same level of testing as NASA.”

�Source: http://labs.sogeti.com/how-many-defects-are-too-many/

Balla K. 449/30/2017

Why is software different? Is it different?

� Software…� Does not really have „physical” existence � It is developed within a special life cycle� It changes very rapidly� It always has to be adaptable to the newest hardware and software

environment � The customers faces difficulties when specifying the requirements � The customer has extremely high expectations regarding software� Defining the quality attributes of software is extremely difficult � Measuring the value of the quality attributes is extremely difficult � Copying, packaging is not problematic

� ...9/30/2017 Balla K. 45

Software development…� Is a complex tasks� Is done in projects (that can be multi-national, multi-

continental…)� Needs skills and knowledge related to

� Business domain (data, processes, people, laws etc.)� Communication with different stakeholders� Communication within the team� Project planning, monitoring and control� Software development techniques and tools

9/30/2017 Balla K. 46

What does general wisdom say?

9/30/2017 Balla K. 47

What can we do, as humans developing software?

9/30/2017 Balla K. 48

� Be open-minded! Always learn new things!� Learn from others! Work with others!� Follow existing best practices!

�Make use of methodologies, models , standards- but use them as it is convenient for your business case!

� Share your experience!� Learn from your own experience!� Do software development in a disciplined way!

Do software engineering, not only coding!

9/30/2017 Balla K. 49

9/30/2017 Balla K. 50

� David Parnas – multi-person construction of multi-version software.

� Sommerville – “an engineering discipline whose focus is the cost-effective development of high-quality software system.”

� Pfleeger – application of computing tools to solving problems.

� CMU/SEI-90-TR-003 – “form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.

From: Essentials of Software Engineering, Fourth Edition Frank Tsui, Orlando Karam, and Barbara Bernal Copyright © 2018 by Jones & Bartlett Learning, LLC, an Ascend Learning Company

What is Software Engineering?

What is Software Engineering?

� Application of a systematic, disciplined, quantifiable approach to the development and maintenance of software; that is, the application of engineering to software � [IEEE Std 610.12-1990]

Balla K. 519/30/2017

What is Software Engineering? � A broad field related to software development and

software maintenance / support, that is connected to:� Processes

� Engineering / technical, managerial, supporting, organizational… � Methodologies (collections of processes, based on a certain

viewpoint)

� Products� Characteristics, metrics…

� People� Skills, team work…

� Projects

Balla K. 529/30/2017

IEEE-CS/ACM Version 5.2 Report

� 8 principles ** for ethics and professional practices in software engineering� Software engineers shall act consistently with the public interest.� Software engineers shall act in a manner that is in the best interest of

their client and employer , consistent with the public interest. � Software engineers shall ensure that their products and related

modifications meet the highest professional standards possible.� Software engineers shall maintain integrity and independence in their

professional judgment.� Software engineering managers and leaders shall sub scribe to and

promote an ethical approach to the management of softwaredevelopment and maintenance.

� Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

� Software engineers shall be fair to and supportive of their colleagues.� Software engineers shall participate in lifelong learning regarding the

practice of their profession and shall promote an e thical approach to the practice of the profession.

** Under each of these major principles, there are fur ther sub-principles.

9/30/2017 Balla K. 53

A “ Simpler ” Set of Behavioral Rules

� Respect others.

� Strive for fairness.

� Perform to one’s best capability.

� Follow the law.

9/30/2017 Balla K. 54

The „Software Engineering Rule”

� There is no „absolute rule” accepted by everyone!� There are many approaches, each dealing with

different aspects of software engineering� Each approach can be good in certain circumstances

� It is more probable that you will find / build your good approach by combing more existing ones!

� However,� There are some ideas that worth be kept in mind

Balla K. 559/30/2017

Remember!� We are not the pioneers of software development; we

have 50 years of experience to use!� You do not have to re-invent the wheel!� But you have to GET TO KNOW the existing approaches

and use them appropriately!

� Software engineering is MUCH MORE than coding

� Software product quality is MUCH MORE than code quality!!!

� Good-quality product needs a disciplined way of working!� Define your processes� Use your processes� … use your processes even when you are time-pressed!

569/30/2017 Balla K.

Possibilities…� One possible mitigation action to achieve high

quality software is to build models connected to software engineering.

� You might be surprised…

� But…

� It works!

Balla K. 579/30/2017

The beginning and the past� „Software engineering” : born in Garmisch, 1968.

Report on a conference sponsored by the NATO SCIENCE COMMITTEEGarmisch, Germany, 7th to 11th October 1968

� ~ 50 years old.

� Became one of the most important „ingredients” of our life over the past 40-50 years.

� Experienced an extremely rapid growth!� Improvement of software / software development

has important impact on areas different from IT; influences science and art --- the entire human life!

9/30/2017 Balla K. 58

Modeling software development

Balla K. 59

�Started early�Many types of trials…

� ...reflecting actual level of knowledge � ...using available tool set � ...tailored � ...in its whole� ... in detail� ... focusing on elements considered

important at a certain moment� ...detailing some elements� ...and detailing even more…

� …9/30/2017

Modeling software development� Good quality of software was always important –

but it cannot be defined „universally” � Maybe that is why…

�„Everything” has been modelled over the past ~ 50 years that has a connection to software development:� Product� Processes� Resources� Definitions and metrics … and many more things

have been described9/30/2017 Balla K.

60

Modelling software development� „Everything” has been modelled over the past 50 years� Processes mostly!� There is no „universally accepted” model for SE, but

generally it is agreed that software engineers have to deal with more types of processes:

�Project management processes�Support processes�Organizational processes�Development processes�Lifecycle models

9/30/2017 Balla K. 61

Processes in Software Engineering� In our future lectures we will show (some) processes and

process models that are important to SE. � They are grouped around the concepts of:

� Development / engineering processes� Requirement engineering, Design, Coding, Testing, Maintenance

� Project management processes� Project planning, Project monitoring and control, Risk management

� Support processes� Configuration management, Quality assurance, Measurement

� Organizational processes� Strategic planning, Organizational training, Continuous improvement

� The idea of grouping the processes a software development / IT company executes is promoted by the so-called „Software Process Improvement” (SPI) models

9/30/2017 Balla K. 62

Boehm, B. (2006). A view of 20th and 21st century software engineering International conference on Software engineering (ICSE). http://isr.uci.edu/icse-06/program/keynotes/boehm.html

9/30/2017 Balla K. 63

What is a process?� A process is a series of steps and decisions involved

in the way work is completed.� https://www.processmodel.com/blog/what-is-a-process/

� A series of actions or operations conducing to an end; especially : a continuous operation or treatment especially in manufacture.

� https://www.merriam-webster.com/dictionary

� A set of interrelated activities, which transform inputs into outputs, to achieve a given purpose. �This definition of process is consistent with the definition

of process in ISO 9000, ISO 12207, ISO 15504, and EIA 731. � From:

http://cmmiinstitute.com/system/files/models/CMMI_for_Development_v1.3.pdf9/30/2017 Balla K. 64

Process elements

9/30/2017 Balla K. 65

Zádor Dániel Kelemen: Process based unification for multi-model softwareprocess improvement. PhD thesis. 2013. https://pure.tue.nl/ws/files/3583930/741509.pdf

Modelling processes is a „best practice”

� “Essentially, all models are wrong, but some are useful.”

George E.P. Box� Models have three important properties:

�Representation property: models map reality �Reduction property: models reduce the represented

reality �Pragmatic property: models are constructed for a

special purpose

9/30/2017 Balla K. 66

What Is a Process Model? � A framework wherein processes of the same

nature are classified into a overall model, e.g., a test improvement model.

http://www.astqb.org/glossary/

� Is a description of what tasks need to be performed, in what sequence under what conditions by whom to achieve the “desired results.”

Essentials of Software Engineering. Fourth Edition. Jones & Bartlett Learning, www.jblearning.com

9/30/2017 Balla K. 67

Describing a process model� The „description” can be in many different

forms. �Textual, using diagrams, using specific notations,

combinations of these� There are many process modelling languages, tools,

standards…� They aid process modelling for different purposes (business,

requirement, design, test…)� At different levels of granularity (system level… component

level…function level…)� Showing different elements considered important (people,

roles, tasks, direction of communication etc. )9/30/2017 Balla K. 68

A textual process description

9/30/2017 Balla K. 69

A “Simple and Familiar” Process

Essentials of Software Engineering. Fourth Edition. Jones & Bartlett Learning, www.jblearning.com

9/30/2017 Balla K. 70

Possibilities to model processesElements of UML activity diagrams

9/30/2017 Balla K. 71

Possibilities to model processesEPC diagram symbols(Event Drivent Process Chain)

9/30/2017 Balla K. 72

Process models (examples). EPC model.

Balla K. 739/30/2017

Process models (examples)

9/30/2017 Balla K. 74

http://www.ariscommunity.com/users/rbaureis/2010-03-22-basic-rules-epc-modelling

Rules for EPC (Event Drivent Process Chain) modeling

Possibilities to model processesBPMN

9/30/2017 Balla K. 75

Process models (examples)BPMN, BPML

Balla K. 769/30/2017

http://www.conceptdraw.com/How-To-Guide/process-flowcharts

Process models (examples)

9/30/2017 Balla K. 77

A simple transformational process model, with organizational roles and information resources.https://activeknowledgemodeling.com/2009/03/31/12-different-ways-to-model-business-processes/

Elements of a process�Input and output�Goal / scope of the process�Activities of the process�Roles and responsibilities�Checkpoints�Process measures�Performance requirements�Competencies needed

Balla K. 78

Process

9/30/2017

Based on CMMI-DEV V1.3. Continuous representation

Further process characteristics� Are the activities connected to individual

processes performed (at least informally)?� Is the process properly planned? � Are the activities executed conform to the plan?� Is process execution controlled? � Is process execution monitored, are corrective

actions being taken? � Is the process standardised? � Is the process understood quantitatively also? � Is the process continuously improved?

Balla K. 79

9/30/2017

Process modeling possibilities

9/30/2017 Balla K. 80

Process description possibilities

9/30/2017 Balla K. 81

Mature / high CL process

�A mature software process is:Defined, documented, planned, monitored, measured, controlled, efficient, institutionalised / applied, trained, standardised and able to improve.

� The more attributes in place, the higher the capability of the process!

Balla K. 82 9/30/2017

What we talked about…

� About software and software engineering.� IT and software. Definitions. � Why is software so important? Is it different from other “goods”? Why or

why not?� Principles of software engineering. � Examples of software errors and their consequences.

� Stating one simple and one more complex problem to solve by developing a software program or system; showing the decisions we have to make even for the simplest case.

� Need for some “discipline” in software development. � Trials to model “software development” over the past 50 years. � Processes, their definitions and their elements.� Process models to help software development.

9/30/2017 Balla K. 83