Informatics 43 Introduction to Software Engineering Lecture 3-2
-
Upload
kadeem-cook -
Category
Documents
-
view
24 -
download
2
description
Transcript of Informatics 43 Introduction to Software Engineering Lecture 3-2
![Page 1: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/1.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 1
Informatics 43Introduction to Software Engineering
Lecture 3-2
October 23, 2014Emily Navarro
Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
![Page 2: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/2.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 2
Today’s lecture
• More essential characteristics of software engineering• Software architecture• Software evolution
• Some slides adopted and adopted from “Software Architecture: Foundations, Theory, & Practice” by Taylor, Medvidovic, and Dashofy
![Page 3: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/3.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 3
Today’s lecture
• More essential characteristics of software engineering• Software architecture• Software evolution
![Page 4: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/4.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 4
More Essential Characteristics
• Software engineering concerns the development of large programs
• The central theme is mastering complexity• The efficiency with which software is developed is of crucial
importance• Software evolves• Regular cooperation between people is an integral part of
programming-in-the-large• The software has to support its users effectively• Software engineering is a field in which members of one culture
create artifacts on behalf of members of another culture• Software engineering is a balancing act
![Page 5: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/5.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 5
Three “Essential Ingredients” of Software Engineering
• People– who else would do the work?– range from novice to very experienced
• Processes– to organize and manage the efforts of individuals– range from informal to very formal
• Tools– to support the people and the processes– range from simple to very advanced
![Page 6: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/6.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 6
People
• The single most important factor in the success/failure of a product
• Scarce resource– quality– suitability– cost
• Many different kinds of people– managers– programmers– technical writers
![Page 7: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/7.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 7
Processes
• Essential to achieve a quality product
• Scarce resource– quality– suitability– cost
• Many different kinds of processes– bug tracking– change approval– quality assurance
![Page 8: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/8.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 8
Tools
• Needed to support people and processes
• Scarce resource– quality– suitability– cost
• Many different kinds of tools– drawing– analysis– project management– source code management
![Page 9: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/9.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 9
Programming versus software engineering
Small project Large to huge project
You Teams
Build what you want Build what they want
One product Family of products
Few sequential changes Many parallel changes
Short-lived Long-lived
Cheap Costly
Small consequences Large consequences
Programming Software engineering
![Page 10: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/10.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 10
Today’s lecture
• More essential characteristics of software engineering• Software architecture• Software evolution
![Page 11: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/11.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 11
Software architecture
Requirements
Code
![Page 12: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/12.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 12
Software architecture
Requirements
Code
![Page 13: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/13.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 13
An analogy to building architectures
• We all live in them
• (We think) We know how they are built– requirements– design (blueprints)– construction– use
• This is similar (though not identical) to how we build software
![Page 14: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/14.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 14
Parallels
• Design before build
• Satisfaction of customers’ needs
• Specialization of labor
• Multiple perspectives of the final product
• Intermediate points where plans and progress are reviewed
![Page 15: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/15.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 15
The architect
• A distinctive role and character in a project
• Very broad training
• Amasses and leverages extensive experience
• A keen sense of aesthetics
• Deep understanding of the domain– properties of structures, materials, and environments– needs of customers
![Page 16: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/16.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 16
Limitations of analogy
• Software serves a much broader range of purposes
• We know a lot about buildings, much less about software
• The nature of software is different from that of building architecture
• Software is much more malleable than physical materials
• Software is a machine; a building is not
![Page 17: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/17.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 17
But architecture is still a very powerful tool in software engineering
• Giving preeminence to architecture offers the potential for– intellectual control– conceptual integrity– effective basis for knowledge reuse– effective project communication– management of a set of variant systems
• Limited-term focus on architecture will not yield significant benefits!
![Page 18: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/18.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 18
Defining software architecture
• A software system’s architecture is the set of principal design decisions about the system
• Software architecture is the blueprint for a software system’s construction and evolution
• Design decisions encompass every facet of the system under development– structure– behavior– interaction– non-functional properties
![Page 19: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/19.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 19
“Principal”
• “Principal” implies a degree of importance that grants a design decision “architectural status”– it implies that not all design decisions are architectural– that is, they do not necessarily impact a system’s architecture
• How one defines “principal” will depend on what the stakeholders define as the system goals
![Page 20: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/20.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 20
Other definitions
• Fowler: The highest-level breakdown of a system into its parts; the decisions that are hard to change
• Bass, Clements, and Kazman: The structure or structures of a system, which comprises software elements, the externally visible properties of those elements, and the relationships among them
• Nataren: The clear definition of multiple components that, when working together, form your system and solve your problem
![Page 21: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/21.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 21
Email: functional specification
• Send and receive messages• Get your own messages, not others’
– Addressing scheme
• Store messages• Electronic• Blocks spam
![Page 22: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/22.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 22
Architecture in action: WWW
• This is the Web
![Page 23: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/23.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 23
Architecture in action: WWW
• So is this
![Page 24: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/24.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 24
24
Architecture in action: WWW
• And this
![Page 25: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/25.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 25
WWW in a (Big) Nutshell
• The Web is a collection of resources, each of which has a unique name known as a uniform resource locator, or “URL”
• Each resource denotes, informally, some information
• URI’s can be used to determine the identity of a machine on the Internet, known as an origin server, where the value of the resource may be ascertained
• Communication is initiated by clients, known as user agents, who make requests of servers. – Web browsers are common instances of user agents
![Page 26: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/26.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 26
WWW in a (big) nutshell (continued)
• Resources can be manipulated through their representations – HTML is a very common representation language used on the Web
• All communication between user agents and origin servers must be performed by a simple, generic protocol (HTTP), which offers the command methods GET, POST, etc.
• All communication between user agents and origin servers must be fully self-contained (so-called “stateless interactions”)
![Page 27: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/27.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 27
WWW’s architecture
• Architecture of the Web is wholly separate from the code
• There is no single piece of code that implements the architecture
• There are multiple pieces of code that implement the various components of the architecture– e.g., different Web browsers
![Page 28: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/28.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 28
WWW’s architecture (continued)
• Stylistic constraints of the Web’s architectural style are not apparent in the code– the effects of the constraints are evident in the Web
• One of the world’s most successful applications is only understood adequately from an architectural vantage point
![Page 29: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/29.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 29
Software architecture’s elements
• A software system’s architecture typically is not (and should not be) a uniform monolith
• A software system’s architecture should be a composition and interplay of different elements– processing – data, also referred as information or state– interaction
![Page 30: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/30.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 30
Software architecture’s elements
• A software system’s architecture typically is not (and should not be) a uniform monolith
• A software system’s architecture should be a composition and interplay of different elements– processing – data, also referred as information or state– interaction
components
connectors
![Page 31: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/31.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 31
Components
• Elements that encapsulate processing and data in a system’s architecture are referred to as software components
• A software component is an architectural entity that – encapsulates a subset of the system’s functionality and/or data– restricts access to that subset via an explicitly defined interface– has explicitly defined dependencies on its required execution context
• Components typically provide application-specific services
![Page 32: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/32.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 32
Connectors
• In complex systems interaction may become more important and challenging than the functionality of the individual components
• A software connector is an architectural building block tasked with effecting and regulating interactions among components
• In many software systems connectors are usually simple procedure calls or shared data accesses– much more sophisticated and complex connectors are possible
• Connectors typically provide application-independent interaction facilities
![Page 33: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/33.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 33
Examples of connectors
• Procedure call connectors • Shared memory connectors • Message passing connectors • Streaming connectors • Distribution connectors• Wrapper/adaptor connectors
![Page 34: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/34.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 34
Configuration
• Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective
• An architectural configuration, or topology, is a set of specific associations between the components and connectors of a software system’s architecture
![Page 35: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/35.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 35
Example configuration
ship course
ship radar GPS unit
procedure call procedure call procedure call
![Page 36: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/36.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 36
Prescriptive versus descriptive architecture
• A system’s prescriptive architecture captures the design decisions made prior to the system’s construction– it is the as-conceived or as-intended architecture
• A system’s descriptive architecture describes how the system has been built– it is the as-implemented or as-realized architecture
![Page 37: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/37.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 37
Linux – prescriptive architecture
![Page 38: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/38.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 38
Linux – descriptive architecture
![Page 39: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/39.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 39
iRODS – prescriptive architecture
![Page 40: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/40.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 40
iRODS – descriptive architecture
![Page 41: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/41.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 41
HADOOP – prescriptive architecture
![Page 42: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/42.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 42
HADOOP – descriptive architecture
![Page 43: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/43.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 43
HADOOP + MapReduce
![Page 44: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/44.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 44
HADOOP – complete architecture
![Page 45: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/45.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 45
Gap
• A gap remains between the prescriptive architecture, which concerns decisions, and the descriptive architecture, which concerns programmatic elements
![Page 46: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/46.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 46
Architectural evolution
• When a system evolves, ideally its prescriptive architecture is modified first
• In practice, the system – and thus its descriptive architecture – is often directly modified
• This happens because of– developer sloppiness– perception of short deadlines which prevent thinking through and
documenting – lack of documented prescriptive architecture– need or desire for code optimizations– inadequate techniques or tool support
![Page 47: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/47.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 47
Today’s lecture
• More essential characteristics of software engineering• Software architecture• Software evolution
![Page 48: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/48.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 48
Facebook (2005)
From: http://mashable.com/2011/09/22/facebook-profile-evolution/
![Page 49: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/49.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 49
Facebook (2006)
![Page 50: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/50.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 50
Facebook (2007)
![Page 51: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/51.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 51
Facebook (2008)
![Page 52: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/52.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 52
Facebook (2009)
![Page 53: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/53.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 53
Facebook (2010)
![Page 54: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/54.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 54
Facebook (2011)
![Page 55: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/55.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 55
Facebook (2011)
![Page 56: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/56.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 56
Facebook (2014)
![Page 57: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/57.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 57
Facebook (2014)
![Page 58: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/58.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 58
Facebook evolution
• User interface– http://www.grosocial.com/blogposts/Evolution-Facebook-Features
– http://www.youtube.com/watch?v=Nl7igMfeOvo
• Architecture– http://www.infoq.com/presentations/Facebook-Software-Stack
– http://www.infoq.com/presentations/Evolution-of-Code-Design-at-Facebook
![Page 59: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/59.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 59
Airplane cockpit (Boeing 787)
From: http://www.boeing.com/commercial/aeromagazine/articles/2012_q1/3/
![Page 60: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/60.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 60
Airplane cockpit (Boeing 787)
![Page 61: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/61.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 61
Airline cockpit (Boeing 747)
![Page 62: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/62.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 62
Airline cockpit (Boeing 747)
![Page 63: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/63.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 63
Angry Birds
![Page 64: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/64.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 64
Evolution
• Essential part of software development
• Must be accommodated as much as possible
• Must be planned as much as possible
![Page 65: Informatics 43 Introduction to Software Engineering Lecture 3-2](https://reader030.fdocuments.us/reader030/viewer/2022032313/56812bdd550346895d904de0/html5/thumbnails/65.jpg)
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 65
Next time
• More on software architecture• Homework 1 final draft due Tuesday!