22
Informatics 43 – May 21, 2015

Informatics 43 – May 21, 2015. A quote from Piazza “This course is trying to teach you how to be a PM (product manager).”

Embed Size (px)

Citation preview

Informatics 43 – May 21, 2015

A quote from Piazza

“This course is trying to teach you how to be a PM (product manager).”

Software Engineering

“The multi-person creation of multi-version programs.”

What does this mean in practice for co-ordination?

How do we keep multiple developers for interfering with each other?

Software Engineering

“The multi-person creation of multi-version programs.”

What does this mean in practice for co-ordination?

How do we keep multiple developers for interfering with each other?

Version control software!

(aka Revision control and source control)

Version Control Challenges

• Software is typically stored in multiple files.

• A change (bug fix, new feature) often requires changes to several of these files.

• Multiple people are working on the software at the same time.

• It is easy for people to “step on each others’ feet”

• Two or more people editing a file simultaneously.

• Updates need to be synchronized.

• People may wait for others to “release” files.

Version Control Solutions

• Use software to manage a project’s source files.

• git is a popular option and the basis of homework 3

Software Architecture is...

"The set of principal design decisions about a system."-ISR @ UCI (in their opinion)

What do you need to know before you architect some software?

Facebook

What features does Facebook have?

What is a client-server architecture?

What happens on the server side?

What happens on the client side?

3-tier architecture

3-tier architecture

Does Facebook only have one server?

Facebook has over 1 billion users!

Facebook has LOTS and LOTS of servers.

>180,000 servers across multiple data centers.

Non-Functional Requirements

Performance: Scalability: Availability: Security: Privacy: Reliability: Portability:

It's fast.

Uptime.

It's not privacy.

It's fast even with lots of users.

It's not security.

Don't delete my data by accident.

Works on different platforms(operating systems, web browsers, phones, etc.)

What do software architects do?

Figures out non-functional requirements Figures out what the components should be

and how they communicate. Instruct programmers Design tests Code (yes, software architects code)

But wait, there’s more

Pipes-and-filters

But wait, there’s more

Event driven

But wait, there’s more

Database-centric