• No results found

Software architecture and project management

N/A
N/A
Protected

Academic year: 2021

Share "Software architecture and project management"

Copied!
29
0
0

Loading.... (view fulltext now)

Full text

(1)

Software architecture and project

management

Lotfi ben Othmane

(2)

• Can software architecture be useful for managing projects?

• Are there conflicts between software architecture and project management?

Why Should We Care?

(3)

Stakeholder Questions

(4)

“It is a very humbling experience to

make a multimillion-dollar mistake,

but it is also very memorable….”

(Fred Brooks - “Mythical Man-Month” p.47)

(5)

What is Software Architecture?

Software architecture is the

fundamental

organization

of a system, embodied in its

components

, their

relationships

to each other

and the environment, and the

principles

governing its design and evolution. (IEEE

1471-2000)

(6)

• The architecture is an abstract model of the software

Ø Architecture defines major components

Ø Architecture defines component relationships

(structures) and interactions

• Architecture is the first design artifact where a system’s

quality attributes are addressed

What is Software Architecture?

(7)

Includes:

• Architecture represents the set of earliest design decisions • It defines the rationale behind the components and the

structure

What is Software Architecture?

(8)

Architecture Requirements

• Architectures exist to build systems that satisfy requirements • An architecturally significant requirement (ASR) is a

requirement that drive the architecture

• ASR imply a decision on how the components of system must or should behave

(9)

• Requirements documents

• Interviewing stakeholders

• Understanding business goals

Sources of Architecture Significant Requirements

(10)

Interviewing stakeholders

• Whiteboard Your Architecture - Show the major constraints

and decisions in order to frame and start conversations

(11)

A software component

is a piece of software

offering a predefined service and is able to

communicate with other components.

What is a Software Component

(12)

Smart Home IoT Device

12 light PIR Temp & hum controllerAC unit cameras interfaceNetwork

driver driver driver

Light

sensor Motion sensor

Temp, hum sensor

hardware

driver driver driver

Network stack Client application cloud AC

controller controllerCamera

Sensor framework Controller manager

da ta m ana ge r Smart

(13)

“Non Standard” - Block Diagrams

EAI Human Workflow ECM DW OLTP E-Publish DAL Service Agents Business Rules Activity Workflow A ut hor iz at ion Moni tor ing Service Interface Controls L og & T ra ce E xc ept ion M ana ge m ent C onf igur ati on A ut he nt ic at ion S igni ng Rich UI Web UI 13

(14)

• The architecture is an abstract model of the software

Ø Architecture defines major components

Ø Architecture defines component relationships

(structures) and interactions

• Architecture is the first design artifact where a system’s

quality attributes are addressed

What is Software Architecture?

(15)

• Allocation of responsibilities, which involves

o Identification of the main functions of the software o Deciding on how these functions are allocated at

non-runtime and non-runtime • Strategies

o Functional decomposition o Modeling real-word objects

o Group functionalities based on specific logic

How Do We Get the Components?

(16)

Assume that you are asked to design a home security system that uses cameras and motion sensors to detect movements and distress button to send alters to a central system.

Design an architecture sketch for a home security system.

Example

(17)

17

Architecture Components

(18)

Architecture Components

(19)

• Elements

• Relationships between these elements

Is it enough to know the components?

19

Architecture Structures?

(20)

• The architecture is an abstract model of the software

• Architecture defines major components

• Architecture defines component relationships (structures)

and interactions

• Architecture is the first design artifact where a system’s quality attributes are addressed

What is Software Architecture?

(21)

• Quality attributes (QAs) are the factors that affect the run-time behavior, the system design, and the user experience • QAs represent areas of concern that have the potential for

application wide impact across layers and tiers • The common ones are:

1. Availability 2. Interoperability 3. Modifiability 4. Performance 5. Security 6. Testability 7. usability

What Is Quality Attributes?

(22)

Performance scenario for submitting applications

1. Stimulus: Regular application (event) 2. Stimulus source: User

3. Response: Save the application, process the payment,

return a confirmation to the user

4. Response measure: < 5 sec

5. Environment: normal and overload conditions

6. Artifact: submission, payment, save file, save database

How to Formulate QAs?

(23)

• Performance -- The goal is to generate a response to an event arriving at the system within given time.

• Example of tactics for performance requirements

1. Increase resources

2. Maintain multiple copies of computations 3. Maintain multiple copies of data

23

(24)

• Each software shall solve a problem - The solution lays in the architecture of the software

• Stakeholders need to agree on the vision supported by the architecture

• It helps to believe that the solution can be achieved with a predictable cost and schedule

Use of Architecture for Proposal

(25)

• The modules could be used for the breakdown structure

• The breakdown

structure is used for the project estimation

Use of Architecture for Estimation

(26)

• Recall that quality attributes are the factors that affect the run-time behavior, system design, and user experience

• The major technical risks are often related to the architecture

• Risks related to choice of technologies

• Risks related to the satisfaction of quality attributes • Think about performance, security, etc.

• Project success is often dependent upon the architectural approach

Architecture and Project Risks

(27)

• PM and architect have different concerns, so developers… • PM wants

• Balance cost, time, and quality • “efficient” architecture

• Architect wants

• Solution that addresses the functional and non functional requirements

• Could be extended easily • Example of conflicts

• PMs are often reserved to new technologies and ideas (source of RISK)

• Architects often embrace new technologies and ideas (opportunities)

Are There Conflicts Between PM and

Architect?

(28)

• What is software architecture?

• How can software architecture be useful for managing projects?

• Are there conflicts between software architecture and project management?

Self Check

(29)

Any Question?

Next lecture topic: Time and cost planning

References

Related documents

Inflammatory Infiltrates in mPanIN Lesions and mPDAC in K- Ras G12V Expressing Adult Mice Treated with Caerulein for Three Months (A) K-Ras +/G12V.. ;Elas-tTA/tetO-Cre mice were

Train operation adjustment problem is a nonlinear, multi-objective combinatorial optimization problem, which includes many constraints and has large searching space, so that it

• Blockchain: A new technology that is still being developed and offers some attractive characteristics and enables new kinds of distributed software

 No (Metro Mirror) / minimal (z/OS Global Mirror) data loss if OLDS / WADS copied. – Assumes no connectivity or

Gilbert Habib, Patrizio Lancellotti, Khalil Fattouch, José Luis Zamorano. Congress venue: Roma Eventi Fontana Di

Basic auction concepts such as reservation value, net seller surplus, net buyer surplus, competitive market clearing, market efficiency, market pricing rules, supply offers,

Unos pleitos de ingente magnitud documental cubrieron los años siguien- tes, que dieron como resultado el traspaso de sus principales propiedades a favor de Pedro Pablo Ximénez

Kagan, UC Berkeley Luke Nottage, University of Sydney Thomas Ginsburg, University of